หน้า 1 จากทั้งหมด 1

เทคนิคการติดตั้ง Asterisk 14.4.0 + DAHDI 2.11.1 บน CentOS 7

โพสต์โพสต์แล้ว: 13 พ.ค. 2017 17:12
โดย nuiz
บทความนี้เป็นบทความแก้มือครับ ผมจะลองติดตั้ง 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
โค้ด: เลือกทั้งหมด
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