แม้ว่าเครื่องที่จะติดตั้งเป็น CentOS 5 แบบ i386 แต่ผมก็ได้ทำเผื่อไว้สำหรับ x86_64 ด้วยครับ
อีกบทความที่คล้ายกันครับ เทคนิคการติดตั้ง Asterisk 13.13.1 บน CentOS 6
1. ติดตั้งและอัพเดท CentOS
อัพเดท CentOS ให้เป็นเวอร์ชั่นใหม่ล่าสุด
- โค้ด: เลือกทั้งหมด
yum -y update
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 ไหนมีติดตั้งไว้แล้วก็ไม่เป็นไรครับ
สำหรับ CentOS แบบ i386
- โค้ด: เลือกทั้งหมด
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 mod_ssl ntp libtool-ltdl libtool-ltdl-devel libc-client-devel mhash libxslt libxslt-devel sqlite-devel wget libuuid-devel uuid uuid-devel mod_dav_svn
และติดตั้ง mcrypt และ mhash
- โค้ด: เลือกทั้งหมด
yum -y install libmcrypt-devel mhash-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 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 libuuid.x86_64 libuuid-devel.x86_64 uuid.x86_64 uuid-devel.x86_64 mod_dav_svn.x86_64
และติดตั้ง mcrypt และ mhash
- โค้ด: เลือกทั้งหมด
yum -y install libmcrypt-devel.x86_64 mhash-devel.x86_64
5. รีบู๊ตอีกทีครับ เพื่อให้ใช้ Kernel ใหม่
- โค้ด: เลือกทั้งหมด
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 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 13.14.0
- โค้ด: เลือกทั้งหมด
cd /home
wget wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.14.0.tar.gz
tar xvf asterisk-13.14.0.tar.gz -C /usr/src
cd /usr/src/asterisk-13.14.0
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-crypto --with-ssl --with-srtp
make menuselect.makeopts
make menuselect
เลือกประมาณนี้ ใช้ปุ่ม Tab, Keys และ Enter ช่วยเลือก
- โค้ด: เลือกทั้งหมด
Add-ons เลือกเพิ่ม format_mp3, res_config_mysql, cdr_mysql
Core Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) CORE-SOUNDS-EN-G729
Extras Sound Packages เลือกเพิ่ม (หรือไม่ต้องก็ได้) EXTRA-SOUNDS-EN-G729
เพิ่มเติมนิดนึงครับตอนเลือกไฟล์ เราอาจจะเลือกให้ติดตั้งไฟล์ -ALAW, -ULAW เพิ่มด้วยก็ได้ เผื่อว่าถ้า Asterisk ต้องเล่นไฟล์เสียงกับ Client ที่ใช้ alaw หรือ ulaw มันจะได้ไม่ต้องแปลงครับ จะไม่ได้โหลดเครื่องเพิ่มโดยไม่จำเป็น
เสร็จแล้วเริ่มต้นติดตั้ง หากเป็นการติดตั้งเพื่ออัพเกรด ไม่ควรใช้คำสั่ง make samples นะครับ ไม่เช่นนั้นคอนฟิกที่ทำไว้จะหายไปหมด
- โค้ด: เลือกทั้งหมด
make clean
make
make install
make samples
make config
13. [สำหรับ CentOS แบบ x86_64] ทำให้ 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
และพิมพ์คำสั่งนี้เพื่อให้มีผล
- โค้ด: เลือกทั้งหมด
ldconfig
14. ทำให้สตาร์ท Asterisk ทุกครั้งที่เปิดเครื่อง
- โค้ด: เลือกทั้งหมด
chkconfig asterisk on
15. สตาร์ท Asterisk 13.14.0
- โค้ด: เลือกทั้งหมด
service asterisk start
16. ลองเข้า Asterisk Console
พิมพ์คำสั่งนี้ครับ
- โค้ด: เลือกทั้งหมด
asterisk -rvvvvv
เข้าได้ครับ
- โค้ด: เลือกทั้งหมด
Asterisk 13.14.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.14.0 currently running on siptrunk (pid = 8119)
siptrunk*CLI>
17. ติดตั้ง G.723, G.729
ผมดาวน์โหลดแล้วก๊อบไปไว้ในโฟลเดอร์ /usr/lib/asterisk/modules ในคำสั่งเดียวเลยนะครับ
สำหรับ CentOS i386, Asterisk 13, CPU Xeon
- โค้ด: เลือกทั้งหมด
wget http://asterisk.hosting.lv/bin/codec_g723-ast130-gcc4-glibc-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g729.so
สำหรับ CentOS x86_64, Asterisk 13, CPU Xeon และ Asterisk modules ติดตั้งอยู่ที่โฟลเดอร์ /usr/lib64/asterisk/modules
- โค้ด: เลือกทั้งหมด
wget http://asterisk.hosting.lv/bin/codec_g723-ast130-gcc4-glibc2.2-x86_64-core2-sse4.so -O /usr/lib64/asterisk/modules/codec_g723.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc2.2-x86_64-core2-sse4.so -O /usr/lib64/asterisk/modules/codec_g729.so
แล้วสั่งให้ Asterisk โหลดสอง codecs นี้ครับ
- โค้ด: เลือกทั้งหมด
asterisk -rvvvvv
จาก Asterisk CLI เราสั่งโหลดด้วยคำสั่ง module load codec_g729.so และ module load codec_g723.so ครับ ดังตัวอย่าง
- โค้ด: เลือกทั้งหมด
siptrunk*CLI> module load 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 2000
Loaded codec_g729.so => (g729 Coder/Decoder, based on Intel IPP)
siptrunk*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 4000
Loaded codec_g723.so => (g723 Coder/Decoder, based on Intel IPP)
สามารถโหลดได้ทั้ง G.723 และ G.729 ครับ ไม่ฟ้อง Errors
18. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบการใช้งานดูครับ
เป็นอันว่าติดตั้ง Asterisk 13.14.0 เสร็จแล้วครับ สำหรับการใช้งาน Asterisk SIP Over TLS และ SRTP นั้น ผมจะได้แนะนำในโอกาสต่อไปครับ
บทความที่เกี่ยวข้อง
เปิดบริการ อบรม Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
เทคนิคการติดตั้ง Asterisk 14.4.0 + +TLS + SRTP + DAHDI 2.11.1 + G.729 บน CentOS 7
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการติดตั้ง Asterisk 14.3.1 + TLS + SRTP
เทคนิคการติดตั้ง Asterisk 17.x + DAHDI 3.1.0 บน CentOS 7