เทคนิคการติดตั้ง Asterisk 14.4.0 + DAHDI 2.11.1 บน CentOS 7
โพสต์แล้ว: 13 พ.ค. 2017 17:12
บทความนี้เป็นบทความแก้มือครับ ผมจะลองติดตั้ง Asterisk 14.4.0 บน CentOS 7 ดูครับ ว่าจะจะติดตั้ง G.729 และ G.723 ได้มั๊ย เพราะจากบทความนี้ เทคนิคการติดตั้ง Asterisk 14.4 บน CentOS 6 ที่ผมลองติดตั้งบน CentOS 6 พบว่าติดตั้ง Codecs 2 ตัวนี้ไม่ได้ มันฟ้องว่า GLIBC ในเครื่องเวอร์ชั่นต่ำไป มันต้องการ GLIBC 2.14+ บทความนี้ผมติดตั้งบน CentOS 7 อัพเดทล่าสุดบน vmware ESXi 6.5
1. ติดตั้ง CentOS 7 และอัพเดท CentOS
ติดตั้ง CentOS ให้เรียบร้อยครับ เสร็จแล้วอย่าลืม Update ท่านจะได้ CentOS เวอร์ชั่นล่าสุด อัพเดทเสร็จก็อย่าลืม reboot นะครับ เสร็จแล้วค่อยเริ่มทำงานต่อ
2. ปิด SELinux
3. ปิด iptables, ip6tables
ปิดชั่วคราวก่อนครับ (ถ้าเปิดไว้ หรือถ้าไม่แน่ใจว่าเปิดไว้หรือเปล่า) ไว้ทำเสร็จหมดแล้วค่อยเปิดใหม่
4. ติดตั้ง Packages เพิ่มเติม
ถ้า Packages ไหนมีติดตั้งไว้แล้วก็ไม่เป็นไรครับ ที่ผมใส่ x86_64 ต่อท้ายแต่ละ Packages ด้วย เพราะเดี๋ยวมันจะติดตั้ง Packages ของ i386 ให้ด้วยครับ
ติดตั้ง libmcrypt และ mhash
5. รีบู๊ตอีกทีครับ
ุ6. ติดตั้ง radiusclient-ng
7. ติดตั้ง spandsp
8. ติดตั้ง dahdi 2.11.1
ดาวน์โหลดจากเว็บนี้ได้เลยครับ ไฟล์นี้มี OSLEC ฝังอยู่นะครับ
9. ติดตั้ง libpri
10. ติดตั้ง Jansson
11. ติดตั้ง libsrtp
12. ติดตั้ง Asterisk 14.4.0
เลือกประมาณนี้ ใช้ปุ่ม Tab ปุ่มลูกศร และปุ่ม Enter ช่วยเลือก สำหรับไฟล์เสียง ผมแนะนำให้ติดตั้งไฟล์เสียงฟอร์แม็ต ulaw, alaw ดีกว่าครับ ปกติเราก็ใช้ ulaw,alaw อยู่แล้ว จะได้ไม่ต้องมีการ transcoding
Add-ons เลือกเพิ่ม format_mp3, res_config_mysql, cdr_mysql
Core Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) CORE-SOUNDS-EN-ULAW, -ALAW
Extras Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) EXTRA-SOUNDS-EN-ULAW, -ALAW
เสร็จแล้วเริ่มต้นติดตั้ง หากเป็นการติดตั้งเพื่ออัพเกรด ไม่ควรใช้คำสั่ง make samples นะครับ ไม่เช่นนั้นคอนฟิกที่ทำไว้จะหายไปหมด
13. ทำให้ Asterisk มองเห็นไลบรารี่ของ Jansson ได้
เนื่องจากตอนติดตั้ง Jansson มันติดตั้งไลบรารี่ไว้ที่โฟลเดอร์ /usr/lib แทนที่จะเป็น /usr/lib64 จึงอาจทำให้ Asterisk หาไม่เจอ
14. ทำให้สตาร์ท Asterisk ทุกครั้งที่เปิดเครื่อง
15. สตาร์ท Asterisk 14.4.0
ผลลัพธ์
Starting asterisk (via systemctl): [ OK ]
16. ลองเข้า Asterisk Console
พิมพ์คำสั่งนี้ครับ
เข้าได้ครับ
17. ติดตั้ง G.723, G.729
เครื่องนี้นะครับ asterisk modules เก็บไว้ที่โฟลเดอร์ /usr/lib/asterisk/modules และ cpu เป็น xeon และมี sse4 ผมจึงดาวน์โหลดแล้วก๊อบไปไว้ในโฟลเดอร์ /usr/lib/asterisk/modules ในคำสั่งเดียวเลย
แล้วสั่งให้ Asterisk โหลดสอง codecs นี้ครับ
จาก Asterisk CLI เราสั่งโหลดด้วยคำสั่ง module load codec_g729.so และ module load codec_g723.so ครับ ดังตัวอย่าง
ผลลัพธ์ครับ โหลด codec_g729.so ได้ครับ
Loaded codec_g729.so
== Registered translator 'g729tolin' from codec g729 to slin, table cost, 900000, computational cost 1
== Registered translator 'lintog729' from codec slin to g729, table cost, 600000, computational cost 1
Loaded codec_g729.so => (g729 Coder/Decoder, based on Intel IPP)
และโหลด codec_g723.so ด้วยครับ
ผลลัพธ์ครับ โหลดได้ไม่มีปัญหา
Loaded codec_g723.so
== Parsing '/etc/asterisk/codecs.conf': Found
== Registered translator 'g723tolin' from codec g723 to slin, table cost, 900000, computational cost 1
== Registered translator 'lintog723' from codec slin to g723, table cost, 600000, computational cost 1
Loaded codec_g723.so => (g723 Coder/Decoder, based on Intel IPP)
18. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบดู
เป็นอันว่าติดตั้งเรา Asterisk 14.4.0 เสร็จแล้วครับ ลองดูครับ "ทำตามนี้ ไม่มีพลาด"
บทความที่เกี่ยวข้อง
เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
วิธีการติดตั้ง Issabel บน CentOS 7
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการดาวน์โหลดไฟล์เสียง mp3 จากเว็บ TTS (ใหม่)
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 15.x + DAHDI 2.11.1 บน CentOS 7
รวมเทคนิคการใช้งาน RasPBX - Asterisk on Raspberry Pi
เทคนิคการติดตั้ง Asterisk 17.x + DAHDI 3.1.0 บน CentOS 7
1. ติดตั้ง CentOS 7 และอัพเดท CentOS
ติดตั้ง CentOS ให้เรียบร้อยครับ เสร็จแล้วอย่าลืม Update ท่านจะได้ CentOS เวอร์ชั่นล่าสุด อัพเดทเสร็จก็อย่าลืม reboot นะครับ เสร็จแล้วค่อยเริ่มทำงานต่อ
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 firewalld off
systemctl stop firewalld
4. ติดตั้ง Packages เพิ่มเติม
ถ้า Packages ไหนมีติดตั้งไว้แล้วก็ไม่เป็นไรครับ ที่ผมใส่ x86_64 ต่อท้ายแต่ละ Packages ด้วย เพราะเดี๋ยวมันจะติดตั้ง Packages ของ i386 ให้ด้วยครับ
- โค้ด: เลือกทั้งหมด
yum install kernel-devel kernel-headers gcc gcc-c++ bison flex patch make ncurses-devel newt-devel autoconf automake libxml2-devel mariadb mariadb-devel mariadb-libs libtiff-devel net-snmp-libs net-snmp-devel net-snmp-utils net-snmp-perl wireshark httpd-devel mod_ssl ntp libtool-ltdl-devel libxslt-devel sqlite-devel wget libuuid libuuid-devel uuid uuid-devel ftp bzip2 libedit-devel libedit svn
ติดตั้ง libmcrypt และ mhash
- โค้ด: เลือกทั้งหมด
rpm -ivh http://www.voip4share.com/sources2/ibmcrypt-2.5.8-13.el7.x86_64.rpm
rpm -ivh http://www.voip4share.com/sources2/mhash-0.9.9.9-10.el7.x86_64.rpm
5. รีบู๊ตอีกทีครับ
- โค้ด: เลือกทั้งหมด
reboot
ุ6. ติดตั้ง 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
7. ติดตั้ง 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
8. ติดตั้ง dahdi 2.11.1
ดาวน์โหลดจากเว็บนี้ได้เลยครับ ไฟล์นี้มี OSLEC ฝังอยู่นะครับ
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/dahdi-linux-complete-2.11.1+2.11.1.tar.gz
tar xvf dahdi-linux-complete-2.11.1+2.11.1.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-2.11.1+2.11.1
make distclean
make all
make install
make config
9. ติดตั้ง libpri
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/libpri-1.6.0.tar.gz
tar xzvf libpri-1.6.0.tar.gz -C /usr/src
cd /usr/src/libpri-1.6.0
make
make install
10. ติดตั้ง Jansson
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources/jansson-2.9.tar.gz
tar xvf jansson-2.9.tar.gz -C /usr/src
cd /usr/src/jansson-2.9
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install
11. ติดตั้ง libsrtp
- โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources2/srtp-1.4.2.tgz
tar xvf srtp-1.4.2.tgz -C /usr/src
cd /usr/src/srtp
./configure CFLAGS=-fPIC --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install
12. ติดตั้ง Asterisk 14.4.0
- โค้ด: เลือกทั้งหมด
cd /home
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14.4.0.tar.gz
tar xvf asterisk-14.4.0.tar.gz -C /usr/src
cd /usr/src/asterisk-14.4.0
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-crypto --with-ssl --with-srtp
make menuselect.makeopts
make menuselect
เลือกประมาณนี้ ใช้ปุ่ม Tab ปุ่มลูกศร และปุ่ม Enter ช่วยเลือก สำหรับไฟล์เสียง ผมแนะนำให้ติดตั้งไฟล์เสียงฟอร์แม็ต ulaw, alaw ดีกว่าครับ ปกติเราก็ใช้ ulaw,alaw อยู่แล้ว จะได้ไม่ต้องมีการ transcoding
Add-ons เลือกเพิ่ม format_mp3, res_config_mysql, cdr_mysql
Core Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) CORE-SOUNDS-EN-ULAW, -ALAW
Extras Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) EXTRA-SOUNDS-EN-ULAW, -ALAW
เสร็จแล้วเริ่มต้นติดตั้ง หากเป็นการติดตั้งเพื่ออัพเกรด ไม่ควรใช้คำสั่ง make samples นะครับ ไม่เช่นนั้นคอนฟิกที่ทำไว้จะหายไปหมด
- โค้ด: เลือกทั้งหมด
contrib/scripts/get_mp3_source.sh
make clean
make
make install
make samples
make config
13. ทำให้ 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
ldconfig
14. ทำให้สตาร์ท Asterisk ทุกครั้งที่เปิดเครื่อง
- โค้ด: เลือกทั้งหมด
chkconfig asterisk on
15. สตาร์ท Asterisk 14.4.0
- โค้ด: เลือกทั้งหมด
service asterisk start
ผลลัพธ์
Starting asterisk (via systemctl): [ OK ]
16. ลองเข้า Asterisk Console
พิมพ์คำสั่งนี้ครับ
- โค้ด: เลือกทั้งหมด
asterisk -rvvvvv
เข้าได้ครับ
- โค้ด: เลือกทั้งหมด
Asterisk 14.4.0, Copyright (C) 1999 - 2016, 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 14.4.0 currently running on centos7 (pid = 19828)
centos7*CLI>
17. ติดตั้ง G.723, G.729
เครื่องนี้นะครับ asterisk modules เก็บไว้ที่โฟลเดอร์ /usr/lib/asterisk/modules และ cpu เป็น xeon และมี sse4 ผมจึงดาวน์โหลดแล้วก๊อบไปไว้ในโฟลเดอร์ /usr/lib/asterisk/modules ในคำสั่งเดียวเลย
- โค้ด: เลือกทั้งหมด
wget http://asterisk.hosting.lv/bin/codec_g723-ast140-gcc4-glibc-x86_64-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast140-gcc4-glibc-x86_64-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g729.so
แล้วสั่งให้ Asterisk โหลดสอง codecs นี้ครับ
- โค้ด: เลือกทั้งหมด
asterisk -rvvvvv
จาก Asterisk CLI เราสั่งโหลดด้วยคำสั่ง module load codec_g729.so และ module load codec_g723.so ครับ ดังตัวอย่าง
- โค้ด: เลือกทั้งหมด
centos7*CLI> module load codec_g729.so
ผลลัพธ์ครับ โหลด codec_g729.so ได้ครับ
Loaded codec_g729.so
== Registered translator 'g729tolin' from codec g729 to slin, table cost, 900000, computational cost 1
== Registered translator 'lintog729' from codec slin to g729, table cost, 600000, computational cost 1
Loaded codec_g729.so => (g729 Coder/Decoder, based on Intel IPP)
และโหลด codec_g723.so ด้วยครับ
- โค้ด: เลือกทั้งหมด
centos7*CLI> module load codec_g723.so
ผลลัพธ์ครับ โหลดได้ไม่มีปัญหา
Loaded codec_g723.so
== Parsing '/etc/asterisk/codecs.conf': Found
== Registered translator 'g723tolin' from codec g723 to slin, table cost, 900000, computational cost 1
== Registered translator 'lintog723' from codec slin to g723, table cost, 600000, computational cost 1
Loaded codec_g723.so => (g723 Coder/Decoder, based on Intel IPP)
18. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบดู
เป็นอันว่าติดตั้งเรา Asterisk 14.4.0 เสร็จแล้วครับ ลองดูครับ "ทำตามนี้ ไม่มีพลาด"
บทความที่เกี่ยวข้อง
เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
วิธีการติดตั้ง Issabel บน CentOS 7
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการดาวน์โหลดไฟล์เสียง mp3 จากเว็บ TTS (ใหม่)
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 15.x + DAHDI 2.11.1 บน CentOS 7
รวมเทคนิคการใช้งาน RasPBX - Asterisk on Raspberry Pi
เทคนิคการติดตั้ง Asterisk 17.x + DAHDI 3.1.0 บน CentOS 7