การติดตั้งการ์ดสายนอก Yeastar TDM400/800
จาก Asterisk DIY - VoIP Opensource WiKi, สารานุกรมฟรี
ในการติดตั้งการ์ด Yeastar นั้นจำเป็นจะต้องทำการ Patch zaptel ก่อนจึงจะสามารถที่จะทำให้ zaptel รู้จักการ์ด yeastar ได้ โดยขั่นตอนในการติดตั้งนั้นไม่มีอะไรยุ่งยากเพียงแค่ทำการ patch file เข้าไป แล้วทำตาม process เดิมก็ได้แล้วครับ
ขั่นตอนโดยคร่าวๆ
1. download zaptel 2. download yeastar patch file 3. recompile and install zaptel
สารบัญ |
[แก้ไข]
สี่งที่ต้องทำเพิ่มเติมในกรณีที่ใช้กับระบบ Trixbox
จำเป็นต้องทำการ ติดตั้ง Development Tools ด้วย
[root@asterisk1 ~]# yum -y install kernel-devel gcc
หรือ
[root@asterisk1 ~]# yum -y install kernel-smp-devel.i686 gcc
จากนั้นต้องทำการ fix spinlock.h โดย ทำการแก้ไขข้อมูบใน file "/usr/src/kernels/2.6.x.x.EL-smp-i686/include/linux/spinlock.h"
โดยต้องทำการหาบรรทัดด้านล่าง
#define DEFINE_RWLOCK(x) rw_lock_t x = RW__LOCK_UNLOCK
แล้วทำการแก้เป็น
#define DEFINE_RWLOCK(x) rwlock_t x = RW__LOCK_UNLOCK
แทนครับ
หรืออาจทำการแก้ไข spinlock.h ได้ โดยการ copy script ด้านล่าง ไปไว้ใน file "fix"
จากนั้นทำการแก้ permission ให้ สามารถทำการ execute ได้
แล้วทำการ run script fix ซึ่งจะทำการแก้ไขไฟล์ไห้โดยอัตโนมัติ
#
# fixed the spinlock.h file on the redhat system
# fix_spin
#
if [ "$version" = "64bits" ]
then
echo "MESSAGE: 64bits OS"
uname=`uname -a | sed 's/smp/smp-x86_64/' | sed 's/EL/EL-/' | awk '{ print $3
}'`
else
echo "MESSAGE: 32bits OS"
uname=`uname -a | sed 's/smp/smp-i686/' | sed 's/el5/el5-i686/' | awk '{ print $3 }
'`
fi
echo "MESSAGE: Current Kernel Version == $uname"
sleep 2
if [ -d "/usr/src/kernels/$uname" ]
then
fullpath="/usr/src/kernels/$uname/include/linux/spinlock.h"
backfile="/usr/src/kernels/$uname/include/linux/spinlock.h.bak"
tmpfile="/usr/src/kernels/$uname/include/linux/spinlock.h.tmp"
if [ -f $backfile ]
then
echo "MESSAGE: spinlock.h was already patch"
sleep 5
else
if [ -f $fullpath ]
then
cp $fullpath $backfile
sed 's/rw_lock_t x/rwlock_t x/' < $fullpath > $tmpfile
cp $tmpfile $fullpath
echo "MESSAGE: Patch Successfully"
else
echo "ERROR: No spinlock file found"
echo "Please press any key to continue..."
read
exit -1
fi
fi
else
echo "ERROR: No Kernel Source file Install"
read
exit -1
fi
[แก้ไข]
รายละเอียดการติดตั้ง
ยกตัวอย่างโดยใช้ zaptel version 1.4.11 บน CentOS 4.X และเก็บไฟล์ไว้ใน /usr/src
1. ทำการ download zaptel จาก website ของ Asterisk
# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.11.tar.gz
2. ทำการ download yeastar patch โดยจะต้องเลือก file ที่ตรงกับ version ของ zaptel
# wget http://www.yeastar.com/download/ystdm16xx-zaptel-1.4.11.patch.tar.gz
3. ทำการ แตก file ทั้งคู่
# tar zxf ystdm16xx-zaptel-1.4.11.patch.tar.gz # tar zxf zaptel-1.4.11.tar.gz
4. ทำการ patch ไฟล์ zaptel
# patch -p0 <ystdm16xx-zaptel-1.4.11.patch
5. ทำการ compile zaptel ใหม่ทั้งหมด
# cd zaptel-1.4.11 # ./configure # make # make install # make config
[แก้ไข]
การทดสอบการติดตั้ง
ตรวจสอบการ์ดว่ามีอยู่ในระบบหรือไม่ # lspci หากมีการ์ดในระบบ จะต้องมี ข้อความด้านล่างปรากฎอยู่ด้วยครับ 01:01.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
ทำการ restart zaptel # service zaptel restart
การตรวจสอบ port ที่ zaptel พบในระบบ # genzaptelconf -l ซึ่งจะแสดงข้อความเช่นด้านล่าง หากมีการพบการ์ด ### Span 1: WCTDM/0 "YSTDM8xx REV E Board 1" (MASTER) 1 FXO 2 FXO 3 FXO 4 FXO
[แก้ไข]
การตรวจสอบ การ์ดใน Asterisk CLI สำหรับ trixbox
1. ทำการ run "Zap Show Channels" บน Asterisk CLI
[root@localhost ~]# asterisk –r
asterisk1*CLI> zap show channels
Chan Extension Context Language MusicOnHold
pseudo default en
1 from-pstn en
2 from-pstn en
3 from-pstn en
4 from-pstn en
หากมี error หรือ ไม่มี zap channel ในระบบ
ให้ทำการแก้ไข ไฟล์ "/etc/asterisk/zapata.conf" [root@localhost ~]# vi /etc/asterisk/zapata.conf โดยทำการแก้ไขบรรทัดสีน้ำเงิน ให้เป็นค่าในบรรทัดสีแดงแทน![]()
![]()
[แก้ไข]
การสร้าง ZapTrunk ใน Trixbox
ทำการ click ไปยัง Setup -> Trunk -> Add Trunk จากนั้นทำการแก้ "Zap Identifier (trunk name) เป็น เบอร์ของ port ที่ต้องการครับ
[แก้ไข]
การตั้งค่าการโทรเข้า และ ออก ทาง TRIXBOX
การตั้งค่าการโทรออกสายนอก
1. ทำการ Add Zap trunk โดยการเข้าไปที่ “Setup -> Trunks -> Add ZAP Trunk”
โดยในตัวอย่างจะทำการ ตั้งค่าการโทรออก โดยจำเป็นต้องมีการเลือก trunk ที่จะทำการโทรออก เช่น “4” หรือ สายนอกตำแหน่งที่ 4
2. ทำการสร้าง Outbound Routes โดยเข้าไปที่ “Setup -> Outbound Routes”
โดยทำการ Add Route โดย ใส่ information ที่จำเป็นเช่น “Route Name”, “Dial Pattern”, “Trunk Sequence”
เช่นในตัวอย่าง จะทำการ บอกระบบว่าในทำการโทรออกผ่าน ZAP พอร์ทที่ 4 หากผู้ใช้งาน โทรออก โดยใช้ หมายเลข 1X
(เลขหมายตั้งแต่ 11 – 19)
การตั้งค่าการรับสายเข้าจากสายภายนอก
1. ทำการสร้าง trunk ตาม information ด้านบน
2. ทำการสร้าง Inbound Routes โดยเข้าไปที่ “Setup -> Inbound Routes”
โดยทำการกำหนด ตำแหน่ง พอร์ท ที่ต้องการสร้าง rules (Zaptel Channel),
และ destination ที่ต้องการ ซึ่งในตัวอย่างให้ โทรเข้าเบอร์ Extensions 999
3. ทำการ check ค่า config ใน “/etc/asterisk/Zapata-channels.conf”
โดย ปรับเปลี่ยน บรรทัดทีมี คำว่า
“context = from-pstn”
เป็น
“context = from-zaptel”



