การติดตั้งการ์ดสายนอก Yeastar TDM400/800

จาก Asterisk DIY - VoIP Opensource WiKi, สารานุกรมฟรี

Jump to: navigation, search

ในการติดตั้งการ์ด 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
โดยทำการแก้ไขบรรทัดสีน้ำเงิน ให้เป็นค่าในบรรทัดสีแดงแทน
ภาพ:Yeastar_trixbox1.jpg
ภาพ:Yeastar_trixbox2.jpg


การสร้าง ZapTrunk ใน Trixbox

ภาพ:Freepbx_zaptrunk.jpg

ทำการ click ไปยัง Setup -> Trunk -> Add Trunk

จากนั้นทำการแก้ "Zap Identifier (trunk name) เป็น เบอร์ของ port ที่ต้องการครับ


การตั้งค่าการโทรเข้า และ ออก ทาง TRIXBOX

การตั้งค่าการโทรออกสายนอก

1.	ทำการ Add Zap trunk โดยการเข้าไปที่  “Setup -> Trunks -> Add ZAP Trunk”
               โดยในตัวอย่างจะทำการ ตั้งค่าการโทรออก โดยจำเป็นต้องมีการเลือก trunk ที่จะทำการโทรออก เช่น “4” หรือ สายนอกตำแหน่งที่ 4
       
       ภาพ:Trixbox-trunk.jpg

2.	ทำการสร้าง  Outbound Routes โดยเข้าไปที่ “Setup -> Outbound Routes” 
               โดยทำการ Add Route โดย ใส่ information ที่จำเป็นเช่น “Route Name”, “Dial Pattern”, “Trunk Sequence”  
               เช่นในตัวอย่าง  จะทำการ บอกระบบว่าในทำการโทรออกผ่าน ZAP พอร์ทที่ 4 หากผู้ใช้งาน โทรออก โดยใช้ หมายเลข 1X 
       (เลขหมายตั้งแต่ 11 – 19)

       ภาพ:Trixbox-editoutroute.jpg


การตั้งค่าการรับสายเข้าจากสายภายนอก

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”


       ภาพ:Trixbox-inboundroute.jpg
Personal tools