ตอนที่ 1 การติดตั้ง mcuWeb และโปรแกรมที่เกี่ยวข้อง
แนะนำเว็บไซต์ mcuWeb
- โค้ด: เลือกทั้งหมด
http://www.medooze.com/products/mcu/open-source-installation.aspx
ขั้นตอนการติดตั้ง mcuWeb
การติดตั้ง mcuWeb มีขั้นตอนดังต่อไปนี้
1. ติดตั้ง Java JDK เวอร์ชั่น 1.5
เพื่อความสะดวกและรวดเร็วผมได้เตรียม Java JDK ไว้ให้ท่านเรียบร้อยแล้วครับ เลือกให้เหมาะสมกับ CentOS ได้เลยครับ
** ป.ล. เอา Java JDK มาให้โหลดตรงๆแบบนี้ไม่ค่อยเหมาะเท่าไหร่ แต่ก็เพื่อความสะดวกของสมาชิกเว็บครับ การโหลด JDK จากแหล่งอื่น รวมถึงเวอร์ชั่นอื่นที่นอกเหนือจากนี้สำหรับมือใหม่ๆอาจจะไม่เวอร์คนะครับ **
ดาวน์โหลดและติดตั้ง Java JDK สำหรับ CentOS i386
- โค้ด: เลือกทั้งหมด
wget http://www.voip4share.com/sources/jdk-1_5_0_22-linux-i586.rpm
chmod +x jdk-1_5_0_22-linux-i586.rpm
rpm -ivh jdk-1_5_0_22-linux-i586.rpm
สำหรับ CentOS x86_64
- โค้ด: เลือกทั้งหมด
wget http://www.voip4share.com/sources/jdk-1_5_0_22-linux-x64.rpm
chmod +x jdk-1_5_0_22-linux-x64.rpm
rpm -ivh jdk-1_5_0_22-linux-x64.rpm
จากนั้นพิมพ์คำสั่งต่อไปนี้
- โค้ด: เลือกทั้งหมด
export JAVA_HOME=/usr/java/jdk1.5.0_22
export PATH=$PATH:$JAVA_HOME/bin
สังเกตุว่าไดเร็คตอรี่ของ JAVA_HOME ต้องให้ตรงกับเวอร์ชั่น JDK ที่เราติดตั้งด้วยนะครับ
2. ดาวน์โหลดไฟล์ Binary ของ mcuWeb
ไฟล์ Binary เป็นไฟล์ที่ผู้สร้าง mcuWeb คอมไพล์ให้เราแล้ว ปัจจุบันเป็น Rev 881 เราสามารถโหลดมาใช้งานได้เลย ลิ้งค์นี้ครับ
- โค้ด: เลือกทั้งหมด
http://sourceforge.net/projects/mcumediaserver/files/mcumediaserver/
หรือดาวน์โหลดจากลิ้งค์โดยตรงก็ได้
- โค้ด: เลือกทั้งหมด
cd /tmp
wget http://jaist.dl.sourceforge.net/project/mcumediaserver/mcumediaserver/rev%20881/mcuWeb.sar
เราดาวน์โหลดมาเก็บไว้ในเครื่อง CentOS หรือ PC ก่อน ผมจะแนะนำวิธีการ Import มาใช้งานภายหลังครับ
3. ติดตั้ง Sailfin SIP Application Server
ผมจะติดตั้ง Sailfin ไว้ในโฟลเดอร์ /etc ครับ ก็เลยดาวน์โหลดมาไว้ในโฟลเดอร์นี้
- โค้ด: เลือกทั้งหมด
cd /etc
wget http://download.java.net/javaee5/sailfin/v2_branch/promoted/Linux/sailfin-installer-v2-b31g-linux.jar
java -Xmx256m -jar sailfin-installer-v2-b31g-linux.jar
ระหว่างการแตกไฟล์จะเห็นข้อความ "Accept or Decline? [A,D,a,d]" ให้กด a หรือ A เพื่อ Accept แล้วรอจนแตกไฟล์แล้วเสร็จซึ่งจะมีข้อความว่า "installation complete" จะได้โฟลเดอร์ "/etc/sailfin"
ให้ติดตั้ง Sailfin ต่อไปโดยรันคำสั่งต่อไปนี้
- โค้ด: เลือกทั้งหมด
chmod -R +x /etc/sailfin/lib/ant/bin
/etc/sailfin/lib/ant/bin/ant -f /etc/sailfin/setup.xml
จะมีข้อความแสดงในขณะติดตั้ง รอจนเห็นบรรทัด "BUILD SUCCESSFUL" ก็เป็นอันว่าติดตั้งเสร็จแล้ว ไม่มีปัญหาอะไร
4. สร้าง Script เพื่อ Start/Stop โปรแกรม mcuWeb
- โค้ด: เลือกทั้งหมด
vi /etc/init.d/mcuWeb
ข้อมูลในไฟล์
- โค้ด: เลือกทั้งหมด
#! /bin/sh
### BEGIN INIT INFO
# Provides: mcuWeb
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mcuWeb startup script
# Description: mcuWeb startup script
### END INIT INFO
# Author: Sergio Garcia Murillo “sergio.garcia@fontventa.com”
JAVA_HOME=/usr/java/jdk1.5.0_22
export JAVA_HOME
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$JAVA_HOME/bin
DESC="Start Sailfin domian domain1"
NAME="asadmin"
DAEMON=/etc/sailfin/bin/$NAME
START_ARGS="start-domain domain1"
STOP_ARGS="stop-domain domain1"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
$DAEMON $START_ARGS || return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
$DAEMON $STOP_ARGS || return 2
}
case "$1" in
start)
[ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && echo "Done" ;;
2) [ "$VERBOSE" != no ] && echo "Failed" ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && echo "Done" ;;
2) [ "$VERBOSE" != no ] && echo "Failed" ;;
esac
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
echo "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) echo "Done" ;;
1) echo "Old process is still running" ;; # Old process is still running
*) echo "Failed to start" ;; # Failed to start
esac
;;
*)
# Failed to stop
echo "Failed"
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
สังเกตุบรรทัด JAVA_HOME=/usr/java/jdk1.5.0_22 ด้วยนะครับ ต้องตรงกับเวอร์ชั่น JDK ที่เราติดตั้ง
5. ทำให้ mcuWeb/Sailfin รันเป็น Service
- โค้ด: เลือกทั้งหมด
chmod +x /etc/init.d/mcuWeb
chkconfig mcuWeb on
6. สตาร์ท mcuWeb
ถ้าในเครื่องมี Asterisk รันอยู่ และรันที่พอร์ต 5060 ด้วย ให้ปิดก่อน ดังนี้ครับ
- โค้ด: เลือกทั้งหมด
service asterisk stop
หรือในเครื่องมี Elastix ก็ให้ปิดก่อน ดังนี้
- โค้ด: เลือกทั้งหมด
amportal stop
ทั้งนี้เพราะว่าหาก mcuWeb สตาร์ทขึ้นมาจะมี SIP Application สตาร์ทด้วยซึ่งรันที่พอร์ต 5060 และ 5061
จากนั้นก็ค่อยสตาร์ท mcuWeb
- โค้ด: เลือกทั้งหมด
service mcuWeb start
ข้อความระหว่างกำลัง Start
- โค้ด: เลือกทั้งหมด
Starting Start Sailfin domian domain1 asadmin
Starting Domain domain1, please wait.
Default Log location is /etc/sailfin/domains/domain1/logs/server.log.
Redirecting output to /etc/sailfin/domains/domain1/logs/server.log
Domain domain1 is ready to receive client requests. Additional services are being started in background.
Domain [domain1] is running [Sun GlassFish Communications Server 2.0 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs)] with its configuration and logs at: [/etc/sailfin/domains].
Admin Console is available at [http://localhost:4848].
Use the same port [4848] for "asadmin" commands.
User web applications are available at these URLs:
[http://localhost:8080 https://localhost:8181 ].
Following web-contexts are available:
[/web1 /__wstx-services ].
Standard JMX Clients (like JConsole) can connect to JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://localhost.localdomain:8686/jmxrmi] for domain management purposes.
Domain listens on at least following ports for connections:
[8080 8181 4848 3700 3820 3920 8686 ].
Domain does not support application server clusters and other standalone instances.
Domain listens on at least following ports for SIP connections:
[SIP 0.0.0.0:5060, SIPS 0.0.0.0:5061].
Done
จะเห็นว่ามีพอร์ตรันขึ้นมาหลายพอร์ตด้วยกัน ได้แก่ 8080 8181 4848 3700 3820 3920 8686
http://localhost:4848 สำหรับ Admin Console
http://localhost:8080 และ https://localhost:8181 สำหรับ User Web
udp 5060 เป็น SIP
udp 5061 เป็น SIPs
จะเห็นว่า mcuWeb รันพอร์ต 5060, 5061 ด้วย จึงต้องระวังไม่ให้พอร์ตชนกับ Asterisk ถ้ารันบนเครื่องเดียวกัน ปกติจะเข้าเว็บ Admin Console เพื่อเปลี่ยนให้ mcuWeb รันที่พอร์ตอื่นเช่น 5070, 5071
เช็ค Process
- โค้ด: เลือกทั้งหมด
ps -ef
จะเห็น
- โค้ด: เลือกทั้งหมด
root 4840 1 2 01:04 pts/1 00:00:09 /usr/java/jdk1.5.0_08/jre/../bin/java -Dcom.sun.aas.instanceRoot=/etc/sailfin/domains/domain1 ....
7. คอนฟิก Admin Console ของ mcuWeb ด้วยเว็บเบราเซอร์
- โค้ด: เลือกทั้งหมด
http://192.168.101.29:4848
จะเห็นหน้าล๊อกอินดังรูปครับ
ค่าดีฟอลท์
User = admin
Password = adminadmin
เป็นอันว่าจบบทความแรกครับ สำหรับการตั้งค่าใน Sailfin ผมขอยกไปเขียนเป็นอีกบทความหนึ่งหล่ะกันครับ
บทความที่เกี่ยวข้อง
การคอนฟิก Sailfin
การติดตั้งและคอนฟิก Media Mixer Server