Академический Документы
Профессиональный Документы
Культура Документы
4 1
บทความต่อไปนี ้นะครับคล้ ายกับบทความการติดตั ้ง Asterisk 1.6.2.0 บน CentOS 5.4 ที่ผมเคยได้ แนะนาไปก่อนหน้ านี ้ แตกต่างกันนิด
หน่อยตรงที่บทความนี ้จะเป็ นการติดตั ้ง Asterisk เวอร์ ชนั่ 1.6.2.6 ซึ่งใหม่กว่า อีกทั ้งโปรแกรม DAHDI ก็เป็ นเวอร์ ชนั่ 2.3.0 ซึ่งก็ใหม่กว่า
เช่นเดียวกันพร้ อมทั ้งดัดแปลงให้ รองรับเทคนิคการกาจัดเสียงสะท้ อนกลับ (Echo Canceller) แบบ Open Source Line Echo Canceller
(OSLEC) ด้ วยพร้ อมๆกันเลย จะได้ ไม่ต้องเปิ ดหาหลายบทความ ทาหลายขั ้นตอน แต่ก็ยงั คงให้ Asterisk ทางานงานร่ วมกับโปรแกรมอื่นๆได้
อีกเช่นเดิมครับ ได้ แก่ MySQL, RADIUS, SNMP, H.323, T.38 Fax เป็ นต้ น
ก่อนที่จะทาอะไรต่อไป ผมแนะนาให้ ทา 3 ขั ้นตอนนี ้ก่อนครับ รี สตาร์ ทเครื่ องแล้ วค่อยเริ่ มต้ นติดตั ้งโปรกรม
เพื่อไม่ให้ CentOS อัพเดทตัวเองโดยที่เราไม่ร้ ูเนื ้อรู้ตัว อัพเดทโปรแกรมอื่นคงไม่เป็ นไร แต่ถ้าอัพเดท Kernel หล่ะยุ่งแน่ครับ ถึงกับต้ อง
คอมไพล์ DAHDI ใหม่เชียวนะครับ
2. ปิ ด SELinux
อีกเซอร์ วิสที่ควรปิ ดคือ SELinux ครับ เพราะมันสร้ างปั ญหามากมายต่อทั ้งการติดตั ้งโปรแกรมและรันโปรแกรมที่จะตามมาในอนาคตใกล้ ๆนี ้
vi /etc/selinux/config
SELINUX=disabled
เซฟไฟล์ ออกจากโปรแกรม
yum –y update
yum -y install kernel-devel kernel-header
4. รีสตาร์ ท CentOS
reboot
ก่อนติดตั ้ง (คอมไพล์) Asterisk เราควรติดตั ้งโปรแกรมต่อไปนี ้ก่อนครับเพื่อให้ เรามีเครื่ องมือที่จะคอมไพล์ Asterisk และให้ Asterisk ทางาน
ร่ วมกับโปรแกรมเหล่านั ้นด้ วย วิธีการติดตั ้งผมจะใช้ แบบผสมคือใช้ แพ็กเกจสาเร็ จรูปและบางโปรแกรมก็คอมไพล์เองด้ วย ดังต่อไปนี ้ครับ
yum -y install gcc gcc-c++ bison flex patch make ncurses ncurses-devel autoconf automake libxml2-devel
2. ติดตัง้ radiusclient-ng
ก่อนติดตั ้งอ่านหมายเหตุด้านล่างก่อนนะครับ
wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz
tar xzvf radiusclient-ng-0.5.6.tar.gz -C /usr/src/
cd /usr/src/radiusclient-ng-0.5.6
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make install
หมายเหตุ
- Asterisk ใช้ Radius แค่เก็บข้ อมูลการโทรหรื อที่เรากเรี ยกว่า CDR (Call Detail Record) เท่านั ้นนะครับ ถ้ าไม่ต้องการเก็บ CDR ไว้ ใน
Radius Server ก็ไม่จาเป็ นต้ องติดตั ้ง radiusclient-ng นะครับ
- ต้ องมี Radius Server ด้ วยนะครับ เพราะว่า radiusclient-ng มันเป็ น Client มันต้ องติดต่อกับ Radius Server โปรแกรมที่นิยมนามาทาเป็ น
Radius Server ก็ได้ แก่ FreeRadius (http://www.freeradius.org)
- สาหรับการคอนฟิ กและไฟล์คอนฟิ ก radiusclient-ng อ่านที่บทความ radiusclient-ng นะครับ ซึ่งสาเหตุที่ผมไม่ได้ เอามาเขียนรวมไว้ ใน
บทความนี ้ด้ วยเป็ นเพราะว่าคงมีบางท่านเท่านั ้นที่ติดตั ้งโปรแกรมนี (หรื
้ ออาจจะไม่มีเลย)
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre17.tgz
tar xzvf spandsp-0.0.6pre17.tgz -C /usr/src
cd /usr/src/spandsp-0.0.6
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make clean
make
make install
vi /usr/include/linux/compiler.h
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
#endif /* __LINUX_COMPILER_H */
บันทึกไฟล์
make optshared
make install
export PWLIBDIR=/usr/src/pwlib_v1_10_3
export OPENH323DIR=/usr/src/openh323_v1_18_0
export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
wget http://www.voxgratia.org/releases/openh323-v1_18_0-src-tar.gz
tar xzvf openh323-v1_18_0-src-tar.gz -C /usr/src
cd /usr/src/openh323_v1_18_0
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make clean
make optshared
make install
6. ติดตัง้ net-snmp
เพื่อให้ Asterisk รองรับ SNMP เราจะได้ ใช้ โปรแกรมประเภท SNMP Manager เช่น Cacti, MRTG, PRTG มอนิเตอร์ ปริ มาณการโทรใน
Asterisk ด้ วย
ตอนที่ 2
หมายเหตุ เนื่องจากการติดตั ้งจะมีการเช็ค kernel ด้ วยนะครับ และจะติดตั ้งไฟล์บางไฟล์เข้ าไปไว้ ในไลบรารี่ ของ kernel ด้ วย ดังนั ้น ถ้ ามีการ
อัพเกรด kernel จะต้ องคอมไพล์ dahdi-linux ใหม่ทกุ ครัง้
wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.3.0.tar.gz
tar xzvf dahdi-tools-2.3.0.tar.gz -C /usr/src
cd /usr/src/dahdi-tools-2.3.0
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make menuselect
1.2.2 เลือกออปชั่นที่จะติดตัง้
ซึ่งเป็ น Tools หรื อคาสัง่ ซึ่งเป็ นยูติลิตี ้ต่างๆในการใช้ งานฮาร์ ดแวร์ การ์ ดอินเตอร์ เฟสที่รองรับ การดีเทคการ์ ด การสร้ างไฟล์คอนฟิ กของการ์ ด
เลือกให้ หมดครับไว้ ก่อนครับ โดยเลื่อนปุ่ มลูกศรลงมายังบรรทัดที่ยงั ไม่มี * แล้ วกดปุ่ ม Space Bar หนึ่งครัง้ จะมี * ปรากฏ แล้ วเลื่อนไปยัง
บรรทัดอื่นทาเช่นเดียวกัน
1.2.4 เริ่มคอมไพล์
make
make install
make config
หมายเหตุ
- มีไฟล์ dahdi_genconf, dahdi_hardware, fxotune, fxstest, sethdlc, dahdi_cfg, dahdi_diag, dahdi_monitor, dahdi_speed,
dahdi_test, dahdi_scan, dahdi_registration ติดตั ้งไว้ ที่โฟลเดอร์ /usr/sbin เราใช้ ไฟล์เหล่านี ้เพื่อดีเท็ค ทดสอบ คอนฟิ ก และมอนิเตอร์
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.10.2.tar.gz
tar xzvf libpri-1.4.10.2.tar.gz -C /usr/src
cd /usr/src/libpri-1.4.10.2
make
make install
2. ติดตัง้ asterisk
พิมพ์บรรทัดต่อไปนี ้อีกครัง้ (เผื่อว่าตอนติดตั ้ง OpenH323 กับ Asterisk จะทาคนละครัง้ กัน)
export PWLIBDIR=/usr/src/pwlib_v1_10_3
export OPENH323DIR=/usr/src/openh323_v1_18_0
export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2.6.tar.gz
tar xzvf asterisk-1.6.2.6.tar.gz -C /usr/src
cd /usr/src/asterisk-1.6.2.6
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
ระหว่างนี ้โปรแกรมติดตั ้งจะตรวจสอบโปรแกรมอื่นที่เราได้ ติดตั ้งมาก่อนหน้ านี ้แล้ ว ถ้ าพบก็จะคอมไพล์ Asterisk ให้ รองรับโปรแกรมเหล่านั ้น
ให้ โดยอัตโนมัติ เราไม่ต้องทาอะไรเป็ นพิเศษครับ
make menuselect
ใช้ ปมลู
ุ่ กศรขึ ้นลงเพื่อเลื่อนเมนู กดปุ่ ม Enter เข้ าเมนูย่อย กดปุ่ ม Spacebar เพื่อเลือกออปชัน่ ภายในเมนูย่อย กดปุ่ ม Esc เพื่อกลับสู่เมนูหลัก
กด s เพื่อบันทึกข้ อมูลและออกจากเมนู
เมนูหลัก
Channel Drivers
Codec Translators
Dialplan Functions
PBX Modules
Resource Modules
Test Modules
Complier Flags
Module Embedding
make
make install
make samples
make config
หมายเหตุ
- มีไฟล์ /etc/rc.d/init.d/asterisk ไว้ ให้ รัน Asterisk เป็ นเซอร์ วิสบน CentOS ได้
- มีไฟล์ asterisk และ safe_asterisk ติดตั ้งไว้ ที่ /usr/sbin
- มีโฟลเดอร์ /usr/include/asterisk, /var/lib/asterisk/, /var/log/asterisk, /var/spool/asterisk, /var/run/asterisk,
/usr/lib/asterisk/modules, /etc/asterisk ถูกสร้ างขึ ้นมา
- มีตวั อย่างไฟล์คอนฟิ ก *.conf อยู่ที่ /etc/asterisk
3. ติดตัง้ asterisk-addons
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.2.1.tar.gz
tar xzvf asterisk-addons-1.6.2.1.tar.gz -C /usr/src
cd /usr/src/asterisk-addons-1.6.2.1
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make menuselect
เมนูหลัก
เลื่อนมาที่ Channel Drivers แล้ วกด Enter แล้ วเอา * หน้ า chan_ooh323 ออก
make
make install
make samples
หมายเหตุ
- asterisk-addons นี ้เป็ นการเก็บ CDR ไว้ ในดาต้ าเบส MySQL และให้ ดึงคอนฟิ กมาจากดาต้ าเบสแทนทีจ่ ะเป็ นไฟล์ .conf
- ที่เอา chan_ooh323 ออกเพราะเราคอมไพล์และใช้ chan_h323 แทนแล้ ว
ถ้ าเราสัง่ รัน Asterisk ตอนนี ้มันจะรันด้ วย User=root และ Group=root ซึ่งไม่ใช่เหมาะสักเท่าไหร่ นะครับ ผมจะให้ มนั รันด้ วย User=asterisk
และ Group=asterisk นะครับ ซึ่งขั ้นตอนก็ง่ายๆครับ ดังต่อไปนี ้
vi /etc/passwd
asterisk:x:62:62:Asterisk User:/etc/asterisk:/sbin/nologin
เช็คก่อนนะครับว่าตัวเลข 62 มีอยู่ในบรรทัดอื่นแล้ วหรื อยัง ถ้ ามีแล้ วก็เปลี่ยนไปเป็ นค่าอื่น (แนะนาว่าไม่ควรเกิน 100 นะครับ)
vi /etc/group
asterisk:x:62:
cp /usr/src/asterisk-1.6.2.6/contrib/init.d/rc.redhat.asterisk /etc/rc.d/init.d/asterisk
chmod 755 /etc/rc.d/init.d/asterisk
vi /etc/init.d/asterisk
ใหม่
AST_USER="asterisk"
AST_GROUP="asterisk"
ซึ่ง AST_USER คือยูสเซอร์ ที่จะใช้ รัน Asterisk นะครับ ต้ องชื่อเดียวกับข้ อ 4.1 ส่วน AST_GROUP คือกรุ๊ปที่จะใช้ รัน Asterisk ต้ องชื่อ
เดียวกับข้ อ 4.2 ครับ
5. คอนฟิ ก radiusclient-ng
ขั ้นตอนนี ้ไม่ต้องทาก็ได้ นะครับถ้ าไม่ได้ ติดตั ้งหรื อไม่ได้ ต้องการใช้ งาน radiusclient-ng มันแค่เก็บ CDR ไว้ ใน Radius ซึ่งก็ต้องติดตั ้ง Radius
Server อีก
แก้ ไขไฟล์ /etc/asterisk/cdr.conf ให้ Asterisk รู้จักที่เก็บไฟล์คอนฟิ กของ radiusclient-ng
vi /etc/asterisk/cdr.conf
[general]
enable=yes
unanswered=yes
[csv]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
[radius]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
radiuscfg => /etc/radiusclient-ng/radiusclient.conf
บันทึกไฟล์
ข้ อความที่ปรากฏ
Starting asterisk: [ OK ]
ข้ อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
ข้ อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
Starting asterisk: [ OK ]
ข้ อความที่ปรากฏ
asterisk (pid 549) is running...
หมายความว่าตอนนี Asterisk
้ กาลังทางานอยู่ และมีค่า Process ID คือ 549
ps -ef
asterisk -r
Asterisk 1.6.2.6, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================