1. ติดตั้ง python-devel php-pear และ HTTP_Client
- โค้ด: เลือกทั้งหมด
yum -y install php-pear python-devel
- โค้ด: เลือกทั้งหมด
pear install HTTP_Client
2. ติดตั้ง Starpy
- โค้ด: เลือกทั้งหมด
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/starpy/starpy/1.0.0a13/starpy-1.0.0a13.tar.gz
tar xzvf starpy-1.0.0a13.tar.gz -C /usr/src
cd /usr/src/starpy-1.0.0a13
python setup.py install
3. ติดตั้ง Zope Interface
- โค้ด: เลือกทั้งหมด
wget http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.1.tar.gz
tar xzvf zope.interface-3.6.1.tar.gz -C /usr/src
cd /usr/src/zope.interface-3.6.1
python setup.py install
4. ติดตั้ง Twisted Python
- โค้ด: เลือกทั้งหมด
wget http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2
tar xvf Twisted-10.2.0.tar.bz2 -C /usr/src
cd /usr/src/Twisted-10.2.0
python setup.py install
5. ไฟล์ /etc/asterisk/manager.conf
สำหรับคนที่รันบน Elastix จะเพิ่มไว้ในไฟล์ /etc/asterisk/manager_custom.conf ก็ได้นะครับ
- โค้ด: เลือกทั้งหมด
[monast]
secret=password
writetimeout=100
read=system,call,log,verbose,command,agent,user,config,originate,reporting
write=system,call,log,verbose,command,agent,user,config,originate,reporting
- โค้ด: เลือกทั้งหมด
asterisk -rx "manager reload"
6. ดาวน์โหลดและติดตั้ง MonAst
เช็คเวอร์ชั่นล่าสุดจากเว็บไซต์นี้ http://monast.sourceforge.net
- โค้ด: เลือกทั้งหมด
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/monast/Monast%20for%20Asterisk%201.4%2C%201.6%20and%201.8/3.0b4/monast-3.0b4.tar.gz
tar xzvf monast-3.0b4.tar.gz -C /opt
chmod -R 755 /opt/monast-3.0b4
chown -R apache:apache /opt/monast-3.0b4
7. ก๊อบปี้ไฟล์คอนฟิกของ MonAst และแก้ไขให้เหมาะสม
- โค้ด: เลือกทั้งหมด
cp /opt/monast-3.0b4/pymon/monast.conf.sample /etc/monast.conf
ไฟล์ /etc/monast.conf ที่แก้ไขแล้ว
- โค้ด: เลือกทั้งหมด
##
## Global Section
##
[global]
# Bind client connetions on host:port
bind_host = 127.0.0.1
bind_port = 5039
# Use client autentication on browser
auth_required = false
##
## Servers Definitions
##
[server: Localhost] # Server name can not contains space
hostname = localhost
hostport = 5038
username = monast
password = password
# Default user context
default_context = from-pstn
# Context to use in transfer calls
transfer_context = default
# Context and prefix for meetme
meetme_context = default
meetme_prefix =
;[server: Server_2] # Server name can not contains space
;hostname = 192.168.0.2
;hostport = 5038
;username = ami_username
;password = ami_password
# Default user context
;default_context = default
# Context to use in transfer calls
;transfer_context = default
# Context and prefix for meetme
;meetme_context = default
;meetme_prefix =
##
## Peers Definitions
##
[peers]
# sort peers (options: channel, callerid)
sortby = callerid
# default show/hide
default = show
# hide peer when default = show
;<Server Name>/SIP/user-1 = hide
# show peer when default = hide
;<Server Name>/SIP/user-2 = show
# always show peer.
;<Server Name>/SIP/user-3 = force
# force CallerID (only in forced mode)
;<Server Name>/SIP/user-4 = force,Diego Aguirre <5555>
# Create peer groups
;<Server Name>/@group/Group 1 = SIP/user-1,SIP/user-2
;<Server Name>/@group/Group 2 = SIP/user-3,SIP/user-4
##
## Meetmes / Conferences Definitions
##
[meetmes]
# default show/hide
default = show
# hide meetme when default = show
;<Server Name>/1234 = hide
# show meetme when default = hide
;<Server Name>/1234 = show
# always show meetme
;<Server Name>/1234 = force
##
## Queues Definitions
##
[queues]
# defualt show/hide
default = show
# show queue queue01
;<Server Name>/queue01 = show
# show queue queue02 with display name Support
;<Server Name>/queue02 = show,Support
# hide queue queue03
;<Server Name>/queue03 = hide
# Map Member name
;<Server Name>/@member/SIP/user-1 = Diego Aguirre <5555>
## Define users and roles to use on auth_required is set to true
## roles must be:
## originate : user can originate, transfer, park and drop calls
## agent : user cans add, remove, pause and unpause members on queues
## command : user can execute asterisk cli commands
## spy : user can start a spy
[user: admin]
secret = 12345
roles = originate,queue,command,spy
servers = ALL
;[user: aguirre]
;secret = 12345
;roles = originate
;servers = Server_1, Server_2
## per server roles for user aguirre
Server_2 = originate,queue,command
;[user: demo]
;secret =
;roles =
;servers = Server_1
8. แก้ไขไฟล์ /etc/init.d/monast
หาบรรทัด
- โค้ด: เลือกทั้งหมด
elif [ -f /opt/monast/monast.py ]; then
MONAST=/opt/monast/monast.py
แล้วแก้ไขไดเร็คตอรี่ให้ตรง
- โค้ด: เลือกทั้งหมด
elif [ -f /opt/monast-3.0b4/pymon/monast.py ]; then
MONAST=/opt/monast-3.0b4/pymon/monast.py
9. ลองรัน MonAst ดู
- โค้ด: เลือกทั้งหมด
/opt/monast-3.0b4/pymon/monast.py
ถ้า OK จะเห็นข้อความคล้ายๆแบบนี้
[Sat Feb 04 15:23:32 2012] NOTICE :: Initializing Monast AMI Interface...
[Sat Feb 04 15:23:32 2012] NOTICE :: Parsing config file /etc/monast.conf
[Sat Feb 04 15:23:32 2012] NOTICE :: Server Localhost :: AMI Connected...
กรณีรันแล้วมี Error ส่วนใหญ่จะเกิดจากใจร้อน ลืม ยังติดตั้งโปรแกรมอื่นๆไม่ครบ หรือไม่ก็ใส่ User/Pass ของ AMI ผิด เช็คให้ดีๆครับ
ถ้าไม่มีปัญหาอะไรก็ให้กด Ctrl+C ออกก่อน
10. รัน MonAst เป็น Service และ Start
- โค้ด: เลือกทั้งหมด
cp /opt/monast-3.0b4/contrib/init.d/rc.redhat.monast /etc/init.d/monast
chmod 755 /etc/init.d/monast
chkconfig monast on
service monast start
11. เช็คดู Process ของ MonAst
- โค้ด: เลือกทั้งหมด
ps -ef | grep monast
ก็จะเจอแบบนี้
root 6633 1 1 15:28 ? 00:00:00 /usr/bin/python -u /opt/monast-3.0b4/pymon/monast.py --daemon
แสดงว่าทุกอย่างก็ OK แล้ว ต่อไปก็มาคอนฟิก Httpd ต่อเพื่อให้เราเปิดเว็บ MonAst ได้
12. ไฟล์ /etc/http/conf.d/alias
- โค้ด: เลือกทั้งหมด
Alias /stats /opt/monast-3.0b4
<Directory /opt/monast-3.0b4>
Order allow,deny
Allow from all
</Directory>
เปลี่ยนคำว่า stats เป็นอะไรก็ได้ตามที่ต้องการ ให้เรียกหน้าเว็บได้ง่ายๆ สะดวกๆ ไม่ต้องพิมพ์ยาว เซฟไฟล์แล้วรีสตาร์ท httpd
- โค้ด: เลือกทั้งหมด
service httpd restart
13. เข้าหน้าเว็บ
- โค้ด: เลือกทั้งหมด
http://x.x.x.x/stats
14. หน้าเว็บ Monast 3.0
เครื่องนี้ใส่การ์ด 8 E1 A108d ของ Sangoma
15. ตั้ง Username/Password เข้าหน้าเว็บ
ถ้าอยากให้มีพร้อมท์ให้กรอก User/Pass เวลาเข้าหน้าเว็บ MonAst ก็ให้แก้ไขที่ไฟล์ /etc/monast.conf
- โค้ด: เลือกทั้งหมด
# Use client autentication on browser
auth_required = true
[user: admin]
secret = 12345
roles = originate,queue,command,spy
servers = ALL
[user: aguirre]
secret = 12345
roles = originate
servers = Server_1, Server_2
รีสตาร์ท MonAst แล้วเข้าหน้าเว็บใหม่
- โค้ด: เลือกทั้งหมด
service monast restart
บทความที่เกี่ยวข้อง
มอนิเตอร์ Asterisk ด้วยโปรแกรม MonAst 1.4