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

เทคนิคการติดตั้ง Asterisk 17.x + DAHDI 3.1.0 บน CentOS 7

โพสต์โพสต์แล้ว: 26 ม.ค. 2020 22:09
โดย nuiz
บทความนี้จะแนะนำวิธีการติดตั้ง Asterisk เวอร์ชั่น 17 ซึ่งเป็นเวอร์ชั่นใหม่ล่าสุดของ Asterisk ณ ขณะนี้ครับ (วันที่โพสต์บทความนี้) ผมติดตั้งบน CentOS 7 เวอร์ชั่นล่าสุดในขณะนี้ด้วยเช่นกัน (เวอร์ชั่น 7.7.1908) การติดตั้งก็ราบรื่นดีครับ ไม่ติดขัดอะไร ขั้นตอนการติดตั้งมีดังต่อไปนี้ครับ

1. ติดตั้ง CentOS 7 และอัพเดท
โค้ด: เลือกทั้งหมด
yum -y update


2. ปิด SELinux
โค้ด: เลือกทั้งหมด
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config


3. ปิด firewalld
โค้ด: เลือกทั้งหมด
systemctl disable firewalld
systemctl stop firewalld


4. ติดตั้ง Packets เพิ่ม
โค้ด: เลือกทั้งหมด
yum -y install kernel kernel-tools kernel-tools-libs kernel-headers kernel-devel 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 net-tools libtool


5. ติดตั้ง libmcrypt และ mhash
โค้ด: เลือกทั้งหมด
rpm -ivh http://www.voip4share.com/sources2/libmcrypt-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


6. รีบู๊ตเครื่อง
โค้ด: เลือกทั้งหมด
reboot


7. ติดตั้ง 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


8. ติดตั้ง 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


9. ติดตั้ง DAHDI 3.1.0
โค้ด: เลือกทั้งหมด
cd /home
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-3.1.0+3.1.0.tar.gz
tar xvf dahdi-linux-complete-3.1.0+3.1.0.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-3.1.0+3.1.0
make all
make install
make install-config


(ออปชั่น) หรือจะติดตั้ง DAHDI 2.11.1 ก็ได้ ดังนี้
โค้ด: เลือกทั้งหมด
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
cp -p /usr/src/dahdi-linux-complete-*/tools/dahdi.init /etc/init.d/dahdi
cp -p /etc/dahdi/system.conf.sample /etc/dahdi/system.conf
systemctl enable dahdi
ldconfig


(ออปชั่น) สตาร์ท dahdi หรือไม่ต้องสตาร์ทก็ได้ถ้าไม่ได้ติดตั้ง DAHDI Card
โค้ด: เลือกทั้งหมด
systemctl start dahdi


10. ติดตั้ง 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


11. ติดตั้ง libsrtp
โค้ด: เลือกทั้งหมด
yum install libsrtp libsrtp-devel


12. ติดตั้ง Asterisk เวอร์ชั่น 17 ล่าสุด
โค้ด: เลือกทั้งหมด
cd /home
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-17-current.tar.gz
tar xvf asterisk-17-current.tar.gz -C /usr/src
cd /usr/src/asterisk-17.*
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-crypto --with-ssl --with-srtp --with-jansson-bundled
make menuselect.makeopts
make menuselect


ออปชั่นที่ควรเลือกในแต่ละหัวข้อของ Menu

Add-ons (See README-addons.txt)
- format_mp3
- res_config_mysql

Applications
- app_meetme
- app_macro

Core Sound Packages
- CORE-SOUNDS-EN-WAV
- CORE-SOUNDS-EN-ULAW
- CORE-SOUNDS-EN-ALAW
- CORE-SOUNDS-EN-G729

Music On Hold File packages
- MOH-OPSOUND-WAV
- MOH-OPSOUND-ULAW
- MOH-OPSOUND-ALAW
- MOH-OPSOUND-G729

Extras Sound Packages
- EXTRA-SOUNDS-EN-WAV
- EXTRA-SOUNDS-EN-ULAW
- EXTRA-SOUNDS-EN-ALAW
- EXTRA-SOUNDS-EN-G729

จากนั้น Save แล้วรันคำสั่งต่อไปนี้
โค้ด: เลือกทั้งหมด
contrib/scripts/get_mp3_source.sh
make clean
make
make install
make samples
make config


13. สตาร์ท Asterisk ทุกครั้งที่เปิดเครื่อง
โค้ด: เลือกทั้งหมด
systemctl enable asterisk


14. สตาร์ท Asterisk
โค้ด: เลือกทั้งหมด
systemctl start asterisk


15. เข้า Asterisk Prompt
โค้ด: เลือกทั้งหมด
[root@asterisk ~]# asterisk -rvvvvv
Asterisk 17.1.0, Copyright (C) 1999 - 2018, 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 17.1.0 currently running on asterisk (pid = 5914)
asterisk*CLI>


16. ติดตั้ง G.729 และ G.723 Codecs

ติดตั้ง G.723, G.729 ฟรี

เครื่องที่ผมใช้ทดสอบ
CPU=Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
SSE4=Yes
KERNEL = 3.10.0-1062.9.1.el7.x86_64
Asterisk = 17.1.0
Asterisk Modules Path = /usr/lib/asterisk/modules

ดาวน์โหลดและสร้างไฟล์สำหรับ Codec g729 และ g723
** Asterisk 16 ติดตั้ง Asterisk modules ไว้ในโฟลเดอร์ /usr/lib นะครับ ไม่ว่าเครื่องจะเป็น 32 บิตหรือว่า 64 บิต **
โค้ด: เลือกทั้งหมด
wget http://asterisk.hosting.lv/bin/codec_g723-ast170-gcc4-glibc-x86_64-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast170-gcc4-glibc-x86_64-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g729.so


17. ทดสอบโหลด codec_g729.so และ codec_g723.so
โค้ด: เลือกทั้งหมด
[root@asterisk ~]# asterisk -rvvvvv
Asterisk 17.1.0, Copyright (C) 1999 - 2018, 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 17.1.0 currently running on asterisk (pid = 5914)
asterisk*CLI>

โหลด codec_g723.so
โค้ด: เลือกทั้งหมด
 
pbx*CLI> module load codec_g723.so
Loaded codec_g723.so
  == Registered translator 'g723tolin' from codec g723 to slin, table cost, 900000, computational cost 156
  == Registered translator 'lintog723' from codec slin to g723, table cost, 600000, computational cost 2002
Loaded codec_g723.so => (g723 Coder/Decoder, based on Intel IPP)

โหลด codec_g729.so
โค้ด: เลือกทั้งหมด

pbx*CLI> module load codec_g729.so
Loaded codec_g729.so
  == Registered translator 'g729tolin' from codec g729 to slin, table cost, 900000, computational cost 418
  == Registered translator 'lintog729' from codec slin to g729, table cost, 600000, computational cost 1227
Loaded codec_g729.so => (g729 Coder/Decoder, based on Intel IPP)
pbx*CLI>


โหลดได้สมบูรณ์ทั้งสอง Codecs ครับ

18. ส่งท้าย
เป็นอันว่าติดตั้ง Asterisk 17 และ DAHDI 3.1.0 บน CentOS 7.7 ได้อย่างไม่มีปัญหาครับ ผมยังไม่ได้สร้างเบอร์ Extensions ยังไม่ได้คอนฟิก Dialplan ถ้าจะสร้างก็น่าจะรีจิสเตอร์ได้และโทรได้ครับ

บทความที่เกี่ยวข้อง
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการดาวน์โหลดไฟล์เสียง mp3 จากเว็บ TTS (ใหม่)
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
วิธีการติดตั้ง Issabel บน CentOS 7
ตัวอย่างการใช้งาน Action URL บน Grandstream IP Phone
รวมเทคนิคการใช้งาน RasPBX - Asterisk on Raspberry Pi