ติดตั้ง Asterisk 1.6.2.6 บน CentOS 5.4 ตอนที่ 1
โพสต์แล้ว: 16 เม.ย. 2010 08:43
ดาวน์โหลดบทความการติดตั้ง Asterisk 1.6.2.6 นี้ในรูปแบบไฟล์ PDF
บทความต่อไปนี้นะครับคล้ายกับบทความการติดตั้ง 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 ขั้นตอนนี้ก่อนครับ รีสตาร์ทเครื่องแล้วค่อยเริ่มต้นติดตั้งโปรกรม
1. ปิดเซอร์วิส yum-updatesd บน CentOS
เพื่อไม่ให้ CentOS อัพเดทตัวเองโดยที่เราไม่รู้เนื้อรู้ตัว อัพเดทโปรแกรมอื่นคงไม่เป็นไร แต่ถ้าอัพเดท Kernel หล่ะยุ่งแน่ครับ ถึงกับต้องคอมไพล์ DAHDI ใหม่เชียวนะครับ
2. ปิด SELinux
อีกเซอร์วิสที่ควรปิดคือ SELinux ครับ เพราะมันสร้างปัญหามากมายต่อทั้งการติดตั้งโปรแกรมและรันโปรแกรมที่จะตามมาในอนาคตใกล้ๆนี้
เช็คบรรทัดนี้นะครับ ถ้าไม่เป็น disabled ก็แก้ไขให้เป็น disabled
เซฟไฟล์ ออกจากโปรแกรม
3. อัพเดท CentOS และติดตั้ง kernel-devel, kernel-header
4. รีสตาร์ท CentOS
ก่อนติดตั้ง (คอมไพล์) Asterisk เราควรติดตั้งโปรแกรมต่อไปนี้ก่อนครับเพื่อให้เรามีเครื่องมือที่จะคอมไพล์ Asterisk และให้ Asterisk ทำงานร่วมกับโปรแกรมเหล่านั้นด้วย วิธีการติดตั้งผมจะใช้แบบผสมคือใช้แพ็กเกจสำเร็จรูปและบางโปรแกรมก็คอมไพล์เองด้วย ดังต่อไปนี้ครับ
1. ติดตั้ง C/C++ Compiler
เราจะใช้ C/C++ Compiler ในการคอมไพล์โปรแกรมที่เขียนด้วยภาษา C/C++ ซึ่งโปรแกรมส่วนมากที่รันบน CentOS/Linux เขียนด้วย C/C++ ครับ และ Asterisk ก็เป็นหนึ่งในโปรแกรมเหล่านั้น
ติดตั้งด้วยคำสั่ง yum ดังนี้ครับ
2. ติดตั้ง radiusclient-ng
ก่อนติดตั้งอ่านหมายเหตุด้านล่างก่อนนะครับ
หมายเหตุ
- 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 นะครับ ซึ่งสาเหตุที่ผมไม่ได้เอามาเขียนรวมไว้ในบทความนี้ด้วยเป็นเพราะว่าคงมีบางท่านเท่านั้นที่ติดตั้งโปรแกรมนี้ (หรืออาจจะไม่มีเลย)
3. ติดตั้ง mysql และ mysql-devel
4. ติดตั้ง libtiff และ spandsp
เพื่อให้ใช้งาน T.38 Fax ได้
4.1 ติดตั้ง libtiff, libtiff-devel
ใช้สร้างไฟล์เอกสารจากแฟกซ์ที่รับเข้ามา ติดตั้ง libtiff, libtiff-devel โดยใช้คำสั่ง yum
4.2 ติดตั้ง spandsp
เว็บไซต์ของโปรแกรมคือ http://www.soft-switch.org/downloads/spandsp/ อาจมีเวอร์ชั่นใหม่กว่านี้
5. ติดตั้ง pwlib และ openh323
ทั้ง pwlib และ openh323 นี่จะทำให้ Asterisk รองรับ VoIP แบบ H.323 ครับ แต่ก็ใช่ว่าเราจะติดตั้ง pwlib, openh323 เวอร์ชั่นอะไรก็ได้ มันไม่ใช่แบบนั้นครับ เอาเป็นว่าใช้เวอร์ชั่นที่ผมแนะนำในนี้ก็แล้วกัน ผมลองมาแล้วว่าใช้งานได้ดีมากเลย
5.1 สร้างไฟล์ compiler.h
แล้วใส่บรรทัดเหล่านี้เข้าไป
บันทึกไฟล์
5.2 ติดตั้ง pwlib
5.3 ติดตั้ง openh323
พิมพ์ 3 บรรทัดนี้ก่อนครับ พิมพ์เสร็จแต่ละบรรทัดก็กด enter เลย หรือจะ Copy และ Paste ก็ได้
ถ้าคอมไพล์ไม่สำเร็จ มี Error ปัญหาอาจจะอยู่ที่ไฟล์ compiler.h ก็ได้นะครับ (ถ้าแน่ใจว่าได้สร้างไฟล์ compiler.h ไว้ใน /usr/include/linux แล้ว) ให้ค้นหาไฟล์ compiler.h ในเครื่อง แล้วก็อบไปแทนที่ไฟล์ compiler.h ใน /usr/include/linux แล้วจากนั้นคอมไพล์ openh323 ใหม่อีกรอบครับ
6. ติดตั้ง net-snmp
เพื่อให้ Asterisk รองรับ SNMP เราจะได้ใช้โปรแกรมประเภท SNMP Manager เช่น Cacti, MRTG, PRTG มอนิเตอร์ปริมาณการโทรใน Asterisk ด้วย
บทความที่เกี่ยวข้อง
ติดตั้ง Asterisk 1.6.2.6 ตอนที่ 2
ติดตั้ง CentOS 5.4
มอนิเตอร์ Asterisk ด้วย SNMP
แสดงสถานะการทำงานของ Asterisk ด้วยโปรแกรม FOP
ติดตั้งและคอนฟิก FreeRadius - Open Source Radius Server
คอนฟิก Asterisk ให้ใช้งานแบบ H.323
บทความต่อไปนี้นะครับคล้ายกับบทความการติดตั้ง 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 ขั้นตอนนี้ก่อนครับ รีสตาร์ทเครื่องแล้วค่อยเริ่มต้นติดตั้งโปรกรม
1. ปิดเซอร์วิส yum-updatesd บน CentOS
- โค้ด: เลือกทั้งหมด
chkconfig --level 2345 yum-updatesd off
เพื่อไม่ให้ CentOS อัพเดทตัวเองโดยที่เราไม่รู้เนื้อรู้ตัว อัพเดทโปรแกรมอื่นคงไม่เป็นไร แต่ถ้าอัพเดท Kernel หล่ะยุ่งแน่ครับ ถึงกับต้องคอมไพล์ DAHDI ใหม่เชียวนะครับ
2. ปิด SELinux
อีกเซอร์วิสที่ควรปิดคือ SELinux ครับ เพราะมันสร้างปัญหามากมายต่อทั้งการติดตั้งโปรแกรมและรันโปรแกรมที่จะตามมาในอนาคตใกล้ๆนี้
- โค้ด: เลือกทั้งหมด
vi /etc/selinux/config
เช็คบรรทัดนี้นะครับ ถ้าไม่เป็น disabled ก็แก้ไขให้เป็น disabled
- โค้ด: เลือกทั้งหมด
SELINUX=disabled
เซฟไฟล์ ออกจากโปรแกรม
3. อัพเดท CentOS และติดตั้ง kernel-devel, kernel-header
- โค้ด: เลือกทั้งหมด
yum –y update
- โค้ด: เลือกทั้งหมด
yum -y install kernel-devel kernel-headers
4. รีสตาร์ท CentOS
- โค้ด: เลือกทั้งหมด
reboot
ก่อนติดตั้ง (คอมไพล์) Asterisk เราควรติดตั้งโปรแกรมต่อไปนี้ก่อนครับเพื่อให้เรามีเครื่องมือที่จะคอมไพล์ Asterisk และให้ Asterisk ทำงานร่วมกับโปรแกรมเหล่านั้นด้วย วิธีการติดตั้งผมจะใช้แบบผสมคือใช้แพ็กเกจสำเร็จรูปและบางโปรแกรมก็คอมไพล์เองด้วย ดังต่อไปนี้ครับ
1. ติดตั้ง C/C++ Compiler
เราจะใช้ C/C++ Compiler ในการคอมไพล์โปรแกรมที่เขียนด้วยภาษา C/C++ ซึ่งโปรแกรมส่วนมากที่รันบน CentOS/Linux เขียนด้วย C/C++ ครับ และ Asterisk ก็เป็นหนึ่งในโปรแกรมเหล่านั้น
ติดตั้งด้วยคำสั่ง yum ดังนี้ครับ
- โค้ด: เลือกทั้งหมด
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 นะครับ ซึ่งสาเหตุที่ผมไม่ได้เอามาเขียนรวมไว้ในบทความนี้ด้วยเป็นเพราะว่าคงมีบางท่านเท่านั้นที่ติดตั้งโปรแกรมนี้ (หรืออาจจะไม่มีเลย)
3. ติดตั้ง mysql และ mysql-devel
- โค้ด: เลือกทั้งหมด
yum -y install mysql mysql-devel mysql-server
4. ติดตั้ง libtiff และ spandsp
เพื่อให้ใช้งาน T.38 Fax ได้
4.1 ติดตั้ง libtiff, libtiff-devel
ใช้สร้างไฟล์เอกสารจากแฟกซ์ที่รับเข้ามา ติดตั้ง libtiff, libtiff-devel โดยใช้คำสั่ง yum
- โค้ด: เลือกทั้งหมด
yum -y install libtiff libtiff-devel
4.2 ติดตั้ง spandsp
- โค้ด: เลือกทั้งหมด
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
เว็บไซต์ของโปรแกรมคือ http://www.soft-switch.org/downloads/spandsp/ อาจมีเวอร์ชั่นใหม่กว่านี้
5. ติดตั้ง pwlib และ openh323
ทั้ง pwlib และ openh323 นี่จะทำให้ Asterisk รองรับ VoIP แบบ H.323 ครับ แต่ก็ใช่ว่าเราจะติดตั้ง pwlib, openh323 เวอร์ชั่นอะไรก็ได้ มันไม่ใช่แบบนั้นครับ เอาเป็นว่าใช้เวอร์ชั่นที่ผมแนะนำในนี้ก็แล้วกัน ผมลองมาแล้วว่าใช้งานได้ดีมากเลย
5.1 สร้างไฟล์ compiler.h
- โค้ด: เลือกทั้งหมด
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 */
บันทึกไฟล์
5.2 ติดตั้ง pwlib
- โค้ด: เลือกทั้งหมด
wget http://www.voxgratia.org/releases/pwlib-v1_10_3-src-tar.gz
tar xzvf pwlib-v1_10_3-src-tar.gz -C /usr/src
cd /usr/src/pwlib_v1_10_3
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make clean
make optshared
make install
5.3 ติดตั้ง openh323
พิมพ์ 3 บรรทัดนี้ก่อนครับ พิมพ์เสร็จแต่ละบรรทัดก็กด enter เลย หรือจะ Copy และ Paste ก็ได้
- โค้ด: เลือกทั้งหมด
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
ถ้าคอมไพล์ไม่สำเร็จ มี Error ปัญหาอาจจะอยู่ที่ไฟล์ compiler.h ก็ได้นะครับ (ถ้าแน่ใจว่าได้สร้างไฟล์ compiler.h ไว้ใน /usr/include/linux แล้ว) ให้ค้นหาไฟล์ compiler.h ในเครื่อง แล้วก็อบไปแทนที่ไฟล์ compiler.h ใน /usr/include/linux แล้วจากนั้นคอมไพล์ openh323 ใหม่อีกรอบครับ
6. ติดตั้ง net-snmp
เพื่อให้ Asterisk รองรับ SNMP เราจะได้ใช้โปรแกรมประเภท SNMP Manager เช่น Cacti, MRTG, PRTG มอนิเตอร์ปริมาณการโทรใน Asterisk ด้วย
- โค้ด: เลือกทั้งหมด
yum -y install net-snmp net-snmp-libs net-snmp-devel net-snmp-utils net-snmp-perl
บทความที่เกี่ยวข้อง
ติดตั้ง Asterisk 1.6.2.6 ตอนที่ 2
ติดตั้ง CentOS 5.4
มอนิเตอร์ Asterisk ด้วย SNMP
แสดงสถานะการทำงานของ Asterisk ด้วยโปรแกรม FOP
ติดตั้งและคอนฟิก FreeRadius - Open Source Radius Server
คอนฟิก Asterisk ให้ใช้งานแบบ H.323