หน้า 1 จากทั้งหมด 1

การติดตั้ง mcuWeb - Open Source MCU

โพสต์โพสต์แล้ว: 04 พ.ย. 2013 23:33
โดย nuiz
บทความนี้จะแนะนำวิธีการติดตั้ง mcuWeb แบบละเอียดยิบ โดยผมจะใช้ระบบปฏิบัติการ CentOS 6.4 ครับ

ตอนที่ 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