1. จุดประสงค์
ต้องการเชื่อมต่อ Asterisk กับเบอร์โทรศัพท์เพื่อโทรออกไปยังภายนอกและรับสายจากภายนอก และต่อหัวเครื่องโทรศัพท์และแฟ็กซ์
2. การ์ด A400P และโมดูล FXS/FXO
การ์ด A400P มีบัสแบบ PCI มีอยู่ 4 สล๊อตบนการ์ดไว้สำหรับใส่โมดูล FXS/FXO สมมติว่าเราเลือกติดตั้ง 2 FXS และ 2 FXO โดยสองโมดูแรกเป็น FXS และสองโมดูลหลังเป็น FXO
3 ติดตั้งการ์ดและเชื่อมต่อสาย
ติดตั้งการ์ดเข้าไปใน PCI Slot ว่างในเครื่องคอมพิวเตอร์ การ์ดนี้พิเศษคือรองรับ PCI ทั้งแบบ 3.3 โวลต์และ 5 โวลต์ จากนั้นใช้คำสั่งเพื่อตรวจสอบว่าเครื่องมองเห็นการ์ดหรือไม่ ดังนี้
- โค้ด: เลือกทั้งหมด
lspci -vvvv
ควรจะเห็นข้อความประมาณนี้นะครับ
02:0d.0 Communitcation controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
4. ติดตั้ง DAHDI
4.1 ติดตั้ง dahdi-linux แบบที่ให้รองรับ OSLEC - Open Source Line Echo Canceller ด้วยนะครับ
4.2 ติดตั้ง dahdi-tools
5. ติดตั้ง Asterisk
6. ไฟล์คอนฟิก DAHDI
6.1 รันคำสั่ง dahdi_genconf
- โค้ด: เลือกทั้งหมด
dahdi_genconf
จะมีไฟล์ /etc/dahdi/system.conf และ /etc/asterisk/dahdi-channels ถูกสร้างขึ้นมา แต่ละไฟล์มีรายละเอียดดังต่อไปนี้
6.2 ไฟล์ /etc/dahdi/system.conf
;Span 1: WCT1/0 "Wildcard TDM40P REV E/F Board 1" (MASTER)
fxoks=1
fxoks=2
fxsks=3
fxsks=4
echocanceller=oslec,1-4
# Global Data
loadzone = us
defaultzone = us
6.3 ไฟล์ /etc/asterisk/dahdi-channels.conf
; Span 1: WCTDM/0 "Wildcard TDM400P REV E/F Board 1" (MASTER)
;;; line="1 WCTDM/0/0"
signalling=fxo_ks
callerid="Channel 1" <6001>
mailbox=6001
group=5
context=from-internal
channel => 1
callerid=
mailbox=
group=
context=default
;;;line="2 WCTDM/0/1"
signalling=fxo_ks
callerid="Channel 2" <6002>
mailbox=6002
group=5
context=from-internal
channel => 2
callerid=
mailbox=
group=
context=default
;;; line="3 WCTDM/0/2"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 3
context=default
;;; line="4 WCTDM/0/3"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 4
context=default
แก้ไขค่า callerid และ mailbox ของพอร์ต FXS ตามที่ต้องการครับ ส่วนเบอร์ Extension ของพอร์ต FXS ทั้ง 2 พอร์ตให้ไปตั้งเอาที่ Dialplan ครับ
6.3 ไฟล์ /etc/asterisk/chan_dahdi.conf
เปิดไฟล์นี้ขึ้นมา
- โค้ด: เลือกทั้งหมด
vi /etc/asterisk/chan_dahdi.conf
เพิ่มบรรทัดนี้
#include dahdi-channels.conf
7. รันคำสั่งต่อไปนี้
- โค้ด: เลือกทั้งหมด
modprobe dahdi
modprobe wctdm
dahdi_cfg -vvvvvvvvvvvv
8. เข้า Asterisk Console
พิมพ์คำสั่ง
- โค้ด: เลือกทั้งหมด
dahdi show channels
จะเห็นรายชื่อ Channel ของการ์ด
9. สร้าง Dialplan
- โค้ด: เลือกทั้งหมด
vi /etc/asterisk/extensions.conf
[from-internel]
include => from-pstn
exten => 6001,1,Dial(DAHDI/1,30)
exten => 6001,n,Hangup()
exten => 6002,1,Dial(DAHDI/2,30)
exten => 6002,n,Hangup()
[from-pstn]
exten => _0X.,1,Dial(DAHDI/g0,${EXTEN})
exten => _0X.,n,Hangup()
exten => s,1,Goto(from-internal,6001,1)
exten => s,n,Hangup()
10. โทรออก
เบอร์ Extension 6001 และ 6002 โทรหากันได้โดยกดเบอร์ปลายทางโดยตรง หรือจะโทรออกภายนอกก็กดเบอร์ปลายทางได้เช่นเดียวกัน เช่น 029009000
11. รับสายเข้า
เมื่อมีคนโทรเข้ามาที่เบอร์โทรศัพท์ที่ต่ออยู่กับพอร์ต FXO จะทำให้ Asterisk โอนสายไปเบอร์ Extension 6001 โดยอัตโนมัติ