เทคนิคการติดตั้ง Asterisk 13.5.0 + DAHDI 2.10.2
โพสต์แล้ว: 29 ส.ค. 2015 23:37
สวัสดีครับเพื่อนๆชาว VoIP ทุกท่าน กลับมาอัพเดทบทความลงเว็บอีกครั้งครับ เผลอแป๊บเดียวทาง Digium ได้ปล่อย Asterisk เวอร์ชั่น 13 ออกมาสักพักแล้ว ปัจจุบันเป็นเวอร์ชั่น 13.5.0 ครับ ซึ่งบทความนี้จะแนะนำวิธีการติดตั้ง แตกต่างจากตอนติดตั้งเวอร์ชั่น 11 นิดหน่อย มาดูวิธีการติดตั้งกันครับ
1. ติดตั้งและอัพเดท CentOS
ติดตั้ง CentOS ให้เรียบร้อยครับ เสร็จแล้วอย่าลืม Update ท่านจะได้ CentOS เวอร์ชั่นล่าสุด (เวอร์ชั่นล่าสุดที่ผมใช้ทดสอบกับบทความนี้คือ 6.6 ครับ) ตามบทความนี้ เทคนิคการติดตั้ง CentOS 6.4 บทความเป็น CentOS 6.4 ครับ แต่พอ Update ก็จะกลายเป็น 6.6 ให้เอง
2. ปิด SELinux
3. ปิด iptables, ip6tables
ปิดชั่วคราวก่อนครับ (ถ้าเปิดไว้ หรือถ้าไม่แน่ใจว่าเปิดไว้หรือเปล่า) ไว้ทำเสร็จหมดแล้วค่อยเปิดใหม่
4. ติดตั้ง Packages เพิ่มเติม
ถ้า Packages ไหนมีติดตั้งไว้แล้วก็ไม่เป็นไรครับ
สำหรับ CentOS แบบ x86_64
แล้ว reboot อีกทีครับ
5. ติดตั้ง radiusclient-ng
6. ติดตั้ง spandsp
7. ติดตั้ง dahdi 2.10.2
ดาวน์โหลดจากเว็บนี้ได้เลยครับ ไฟล์นี้มี OSLEC ฝังอยู่นะครับ
ทำให้ DAHDI สตาร์ททุกครั้งที่เปิดเครื่อง
สตาร์ท DAHDI
8. ติดตั้ง libpri
9. สตาร์ท DAHDI
10. ติดตั้ง Jansson
11. ติดตั้ง Asterisk 13.5.0
เลือกประมาณนี้ ใช้ปุ่ม Tab, Keys และ Enter ช่วยเลือก
เสร็จแล้วเริ่มต้นติดตั้ง
** หากเป็นการติดตั้งเพื่ออัพเกรด ไม่ควรใช้คำสั่ง make samples นะครับ ไม่เช่นนั้นคอนฟิกที่ทำไว้จะหายไปหมด **
12. สร้างไฟล์ให้ Asterisk มองเห็นไลบรารี่ของ Jansson ได้
เนื่องจากตอนติดตั้ง Jansson มันติดตั้งไลบรารี่ไว้ที่โฟลเดอร์ /usr/lib แทนที่จะเป็น /usr/lib64 จึงอาจทำให้ Asterisk หาไม่เจอ
13. สตาร์ท Asterisk 13.5.0
14. ลองเข้า Asterisk Console
เข้าได้ครับ
15. ติดตั้ง G.723, G.729
จากที่ผมลองทำดูพบว่าไม่สามารถสั่งโหลด codec_g729.so, codec_g723.so สำหรับ Asterisk 13 บน CentOS 6.6 ได้ครับ ซึ่งจากข้อความผมเดาว่าเป็นปัญหาจากเวอร์ชั่นของ GLIBC ครับ โดยที่ Codec สำหรับ Asterisk 13 ที่ให้โหลดในเว็บ http://asterisk.hosting.lv นั้นถูกคอมไพล์ด้วย GLIBC 2.14 แต่บน CentOS 6.6 เป็น GLIBC 2.12 ซึ่งเก่ากว่า หากจะอัพเกรด GLIBC ต้องดาวน์โหลดซอร์สโค๊ดของ GLIBC มาใหม่แล้วคอมไพล์ติดตั้ง เสี่ยงเกินไปที่จะทำแบบนั้นครับเพราะว่า GLIBC มันค่อนข้างสำคัญต่อไฟล์อื่นๆในเครื่องด้วย มีเปอร์เซ็นต์สูงที่ระบบจะล่ม รอจนกว่าทางผู้จัดทำเขาจะแก้ไขครับ
ข้อความที่ผมว่าเป็นแบบนี้ครับ
16. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบดู เวอร์คดีครับ ผมลองแล้วกับ Vicidial
เป็นอันว่าติดตั้ง Asterisk 13.5.0 เสร็จแล้วครับ ระหว่างการติดตั้งก็มีปัญหานิดหน่อยแต่ผมก็แก้ไขให้ในบทความแล้วครับ
บทความที่เกี่ยวข้อง
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
เทคนิคการติดตั้ง Asterisk 13.13.1 และให้รองรับ SIP TLS และ SRTP
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการติดตั้ง Asterisk 14.3.1 + TLS + SRTP
เทคนิคการติดตั้ง Asterisk 14.4.0 บน CentOS 6.8
1. ติดตั้งและอัพเดท CentOS
ติดตั้ง CentOS ให้เรียบร้อยครับ เสร็จแล้วอย่าลืม Update ท่านจะได้ CentOS เวอร์ชั่นล่าสุด (เวอร์ชั่นล่าสุดที่ผมใช้ทดสอบกับบทความนี้คือ 6.6 ครับ) ตามบทความนี้ เทคนิคการติดตั้ง CentOS 6.4 บทความเป็น CentOS 6.4 ครับ แต่พอ Update ก็จะกลายเป็น 6.6 ให้เอง
2. ปิด SELinux
- โค้ด: เลือกทั้งหมด
cp /etc/selinux/config /etc/selinux/config.backup
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
3. ปิด iptables, ip6tables
ปิดชั่วคราวก่อนครับ (ถ้าเปิดไว้ หรือถ้าไม่แน่ใจว่าเปิดไว้หรือเปล่า) ไว้ทำเสร็จหมดแล้วค่อยเปิดใหม่
- โค้ด: เลือกทั้งหมด
chkconfig iptables off
chkconfig ip6tables off
service iptables stop
service ip6tables stop
4. ติดตั้ง Packages เพิ่มเติม
ถ้า Packages ไหนมีติดตั้งไว้แล้วก็ไม่เป็นไรครับ
- โค้ด: เลือกทั้งหมด
yum -y install kernel-devel kernel-headers gcc gcc-c++ bison flex patch make ncurses ncurses-devel newt newt-devel autoconf automake libxml2-devel mysql mysql-devel mysql-server libtiff libtiff-devel net-snmp net-snmp-libs net-snmp-devel net-snmp-utils net-snmp-perl wireshark libc-client libmcrypt mod_ssl ntp libtool-ltdl libtool-ltdl-devel libc-client-devel mhash mhash-devel libxslt libxslt-devel sqlite-devel wget libuuid-devel
สำหรับ CentOS แบบ x86_64
- โค้ด: เลือกทั้งหมด
yum -y install kernel-devel.x86_64 kernel-headers.x86_64 gcc.x86_64 gcc-c++.x86_64 bison.x86_64 flex.x86_64 patch.x86_64 make.x86_64 ncurses-devel.x86_64 newt-devel.x86_64 autoconf automake libxml2-devel.x86_64 mysql-devel.x86_64 mysql-server.x86_64 libtiff-devel.x86_64 net-snmp-libs.x86_64 net-snmp-devel.x86_64 net-snmp-utils.x86_64 net-snmp-perl.x86_64 wireshark.x86_64 httpd-devel.x86_64 libc-client.x86_64 libmcrypt.x86_64 mod_ssl.x86_64 ntp.x86_64 libtool-ltdl-devel.x86_64 libc-client-devel.x86_64 mhash-devel.x86_64 libxslt-devel.x86_64 sqlite-devel.x86_64 wget.x86_64 uuidd.x86_64
แล้ว reboot อีกทีครับ
- โค้ด: เลือกทั้งหมด
reboot
5. ติดตั้ง radiusclient-ng
- โค้ด: เลือกทั้งหมด
cd /home
wget 'http://www.voip4share.com/sources/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
6. ติดตั้ง spandsp
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/spandsp-0.0.6pre21.tgz
tar xzvf spandsp-0.0.6pre21.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
7. ติดตั้ง dahdi 2.10.2
ดาวน์โหลดจากเว็บนี้ได้เลยครับ ไฟล์นี้มี OSLEC ฝังอยู่นะครับ
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/dahdi-linux-complete-2.10.2+2.10.2+oslec.tar.gz
tar xvf dahdi-linux-complete-2.10.2+2.10.2+oslec.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-2.10.2+2.10.2
make distclean && make all && make install && make config
ทำให้ DAHDI สตาร์ททุกครั้งที่เปิดเครื่อง
- โค้ด: เลือกทั้งหมด
chkconfig dahdi on
สตาร์ท DAHDI
- โค้ด: เลือกทั้งหมด
service dahdi start
8. ติดตั้ง libpri
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/libpri-1.4.15.tar.gz
tar xzvf libpri-1.4.15.tar.gz -C /usr/src
cd /usr/src/libpri-1.4.15
make && make install
9. สตาร์ท DAHDI
- โค้ด: เลือกทั้งหมด
chkconfig dahdi on
service dahdi start
10. ติดตั้ง Jansson
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/jansson-2.7.tar.gz
tar xvf jansson-2.7.tar.gz -C /usr/src
cd /usr/src/jansson-2.7
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make install
11. ติดตั้ง Asterisk 13.5.0
- โค้ด: เลือกทั้งหมด
cd /home
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.5.0.tar.gz
tar xvf asterisk-13.5.0.tar.gz -C /usr/src
cd /usr/src/asterisk-13.5.0
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-asteriskssl
make menuselect
เลือกประมาณนี้ ใช้ปุ่ม Tab, Keys และ Enter ช่วยเลือก
- โค้ด: เลือกทั้งหมด
Add-ons -> res_config_mysql, cdr_mysql
Core Sound Packages -> CORE-SOUNDS-EN-G729
Extras Sound Packages -> EXTRA-SOUNDS-EN-G729
เสร็จแล้วเริ่มต้นติดตั้ง
** หากเป็นการติดตั้งเพื่ออัพเกรด ไม่ควรใช้คำสั่ง make samples นะครับ ไม่เช่นนั้นคอนฟิกที่ทำไว้จะหายไปหมด **
- โค้ด: เลือกทั้งหมด
make clean
make
make install
make samples
make config
12. สร้างไฟล์ให้ Asterisk มองเห็นไลบรารี่ของ Jansson ได้
เนื่องจากตอนติดตั้ง Jansson มันติดตั้งไลบรารี่ไว้ที่โฟลเดอร์ /usr/lib แทนที่จะเป็น /usr/lib64 จึงอาจทำให้ Asterisk หาไม่เจอ
- โค้ด: เลือกทั้งหมด
touch /etc/ld.so.conf.d/jansson2.conf
echo /usr/lib > /etc/ld.so.conf.d/jansson2.conf
13. สตาร์ท Asterisk 13.5.0
- โค้ด: เลือกทั้งหมด
chkconfig asterisk on
service asterisk start
14. ลองเข้า Asterisk Console
- โค้ด: เลือกทั้งหมด
asterisk -rvvvv
เข้าได้ครับ
- โค้ด: เลือกทั้งหมด
Asterisk 13.5.0, Copyright (C) 1999 - 2014, 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.
=========================================================================
Connected to Asterisk 13.5.0 currently running on vicidial (pid = 29868)
vicidial*CLI>
15. ติดตั้ง G.723, G.729
จากที่ผมลองทำดูพบว่าไม่สามารถสั่งโหลด codec_g729.so, codec_g723.so สำหรับ Asterisk 13 บน CentOS 6.6 ได้ครับ ซึ่งจากข้อความผมเดาว่าเป็นปัญหาจากเวอร์ชั่นของ GLIBC ครับ โดยที่ Codec สำหรับ Asterisk 13 ที่ให้โหลดในเว็บ http://asterisk.hosting.lv นั้นถูกคอมไพล์ด้วย GLIBC 2.14 แต่บน CentOS 6.6 เป็น GLIBC 2.12 ซึ่งเก่ากว่า หากจะอัพเกรด GLIBC ต้องดาวน์โหลดซอร์สโค๊ดของ GLIBC มาใหม่แล้วคอมไพล์ติดตั้ง เสี่ยงเกินไปที่จะทำแบบนั้นครับเพราะว่า GLIBC มันค่อนข้างสำคัญต่อไฟล์อื่นๆในเครื่องด้วย มีเปอร์เซ็นต์สูงที่ระบบจะล่ม รอจนกว่าทางผู้จัดทำเขาจะแก้ไขครับ
ข้อความที่ผมว่าเป็นแบบนี้ครับ
- โค้ด: เลือกทั้งหมด
Unable to load module codec_g729.so
Command 'module load codec_g729.so' failed.
[Aug 29 17:33:17] WARNING[29942]: loader.c:553 load_dynamic_module: Error loading module 'codec_g729.so': /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib/asterisk/modules/codec_g729.so)
[Aug 29 17:33:17] WARNING[29942]: loader.c:1079 load_resource: Module 'codec_g729.so' could not be loaded.
16. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบดู เวอร์คดีครับ ผมลองแล้วกับ Vicidial
เป็นอันว่าติดตั้ง Asterisk 13.5.0 เสร็จแล้วครับ ระหว่างการติดตั้งก็มีปัญหานิดหน่อยแต่ผมก็แก้ไขให้ในบทความแล้วครับ
บทความที่เกี่ยวข้อง
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
เทคนิคการติดตั้ง Asterisk 13.13.1 และให้รองรับ SIP TLS และ SRTP
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการติดตั้ง Asterisk 14.3.1 + TLS + SRTP
เทคนิคการติดตั้ง Asterisk 14.4.0 บน CentOS 6.8