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

เทคนิคการติดตั้ง Asterisk 11.15.0 พร้อม DAHDI 2.10.0.1

โพสต์โพสต์แล้ว: 04 ม.ค. 2015 14:28
โดย nuiz
สวัสดีปีใหม่ 2558 ทุกท่านครับ ช่วงนี้อยู่สกลนครไม่ค่อยมีไรทำครับ วันๆก็เดินไปดูสวนชาวบ้านเขา ที่ไหนเขาว่าดี ที่ไหนเขาว่าดัง ก็จะไปดู เผื่อจะได้ความคิดดีๆมาทำของตัวเองบ้างหน่ะครับ เพิ่งรู้ว่าแถวนี้มีคนทำเกษตรผสมผสานดังระดับประเทศหลายราย

บทความนี้จะแนะนำวิธีการติดตั้ง Asterisk 11.15.0 ครับ หากติดตั้งตามขั้นตอนในบทความนี้ท่านจะได้

Asterisk 11.15.0
DAHDI 2.10.0.1
Libpri 1.4.15

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 อีกทีครับ

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.0.1
ดาวน์โหลดจากเว็บนี้ได้เลยครับ ไฟล์นี้มี OSLEC ฝังอยู่นะครับ
โค้ด: เลือกทั้งหมด
cd /home
wget 'http://www.voip4share.com/sources/dahdi-linux-complete-2.10.0.1+2.10.0.1+oslec.tar.gz'
tar xzvf dahdi-linux-complete-2.10.0.1+2.10.0.1+oslec.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1
make all
make install
make config
chkconfig dahdi on


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. ติดตั้ง Asterisk 11.15.0
โค้ด: เลือกทั้งหมด
cd /home
wget 'http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11.15.0.tar.gz'
tar xzvf asterisk-11.15.0.tar.gz -C /usr/src
cd /usr/src/asterisk-11.15.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
make install
make samples
make config


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

ลองเข้า Asterisk Console
โค้ด: เลือกทั้งหมด
asterisk -rvvvv

เข้าได้ครับ
โค้ด: เลือกทั้งหมด
Asterisk 11.15.0, Copyright (C) 1999 - 2013 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 11.15.0 currently running on first (pid = 7689)
first*CLI>


12. ติดตั้ง G.723, G.729

** ดูรายละเอียดวิธีการติดตั้ง G.723, G.729 Codec ได้ที่บทความนี้ครับ เทคนิคการติดตั้ง G.723, G.729 บน Asterisk **

เมื่อใช้คำสั่ง cat /proc/cpuinfo บน Linux prompt ก็ได้ว่า CPU เครื่องผมเป็น Core i3 มี sse4 ดังตัวอย่าง
** CentOS มองเห็น 4 CPU ครับ มี processor 0 ถึง 3 แต่ผมก็อบมาให้ดูแค่ process 0 อย่างเดียว **

โค้ด: เลือกทั้งหมด
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 60
model name      : Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
stepping        : 3
cpu MHz         : 3392.436
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 avx2 smep bmi2 erms invpcid
bogomips        : 6784.87
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:


ผมติดตั้ง CentOS แบบ 64 บิต (x86_64) และ Asterisk ก็เป็น Asterisk 11 ดังนั้นจึงดาวน์โหลด G.729 และ G.723.1 Codecs
** CPU Core i3, i5, i7 ไม่ว่าจะ Dual หรือว่า Quad ก็แล้วแต่ ใช้ไฟล์ที่มีคำว่า core2 ได้ครับ **
โค้ด: เลือกทั้งหมด
cd /home
wget http://asterisk.hosting.lv/bin/codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so
wget http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-x86_64-core2-sse4.so

ก๊อบปี้ไฟล์ Codec พร้อมเปลี่ยนชื่อ
โค้ด: เลือกทั้งหมด
cp codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so /usr/lib/asterisk/modules/codec_g723.so
cp codec_g729-ast110-gcc4-glibc-x86_64-core2-sse4.so /usr/lib/asterisk/modules/codec_g729.so


13. สั่งโหลด codec_g729.so, codec_g723.so
โค้ด: เลือกทั้งหมด
asterisk -rvvvv

รันคำสั่งต่อไปนี้
โค้ด: เลือกทั้งหมด
module load codec_g729.so
module load codec_g723.so

โชว์ Codec Translation
โค้ด: เลือกทั้งหมด
core show translation

ผลลัพธ์จะเห็น Row/Column ของ g723 และ g729 มีตัวเลขแล้ว

14. คอนฟิก Codec G.723.1 ให้ใช้แบบ High Bit Rate (6.3 kbps)
แก้ไขไฟล์ /etc/asterisk/codecs.conf เพิ่มบรรทัดต่อไปนี้
โค้ด: เลือกทั้งหมด
[g723]
sendrate => 63


15. ตรวจสอบดูความเรียบร้อยอีกครั้ง
รีสตาร์ทเครื่อง เช็คว่า Asterisk สตาร์ทหรือไม่ จากนั้นคอนฟิก Dialplan, SIP Extensions แล้วโทรทดสอบดู เวอร์คดีครับ ผมลองแล้ว

เป็นอันว่าติดตั้ง Asterisk 11.15.0 เสร็จแล้วครับ ราบรื่น ไม่มีปัญหาอะไร

บทความที่เกี่ยวข้อง
เทคนิคการติดตั้ง Asterisk 13.13.1 และให้รองรับ SIP TLS และ SRTP
การเขียน Dialplan เพื่อโอนสายไปยังเบอร์อื่นตามเงื่อนไขการโทร
เทคนิคการแก้ปัญหาเมื่อ Asterisk ฟ้อง No RTP Engine
เทคนิคการติดตั้ง Asterisk-GUI เพื่อคอนฟิก Asterisk
เทคนิคการติดตั้ง Asterisk 14.4.0 บน CentOS 6.8