1. เช็คจากไฟล์ /etc/dahdi/system.conf
เครื่องนี้ติดตั้งการ์ด TE110P (การ์ด 1 E1) และ TDM410P (การ์ดนี้ใส่ 3 FXO และ 1 FXS)
# Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER) HDB3/CCS/CRC4
span=1,1,0,ccs,hdb3,crc4
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=oslec,1-15,17-31
# Span 2: WCTDM/0 "Wildcard TDM410P Board 1"
fxsks=32
echocanceller=oslec,32
fxsks=33
echocanceller=oslec,33
fxsks=34
echocanceller=oslec,34
fxoks=35
echocanceller=oslec,35
# Global data
loadzone = us
defaultzone = us
ตัวเลขในบรรทัด echocanceller ก็ใช่หมายเลขพอร์ตนะครับ
การ์ด E1 ให้ดูบรรทัด bchan นะครับ ซึ่งจะเห็นว่ามีหมายเลข channel (หมายเลขพอร์ต) ตั้งแต่ 1, 2, ..., 15, 17, ..., 31 เราก็เอามาเป็นหมายเลขพอร์ตได้เลย
ส่วนการ์ด Analog อย่างในตัวอย่างคือการ์ด TDM410P ให้ดูบรรทัด fxsks หรือ fxoks นะครับ ซึ่งจากตัวอย่างจะได้ว่า พอร์ตที่ 1 ของการ์ด TDM410P มีหมายเลขพอร์ตเป็น 32 ส่วนพอร์ตที่ 2, 3 และ 4 มีหมายเลขพอร์ตเป็น 33, 34 และ 35 ตามลำดับ
มาดูอีกตัวอย่างนึงครับ เครื่องนี้ใส่การ์ด Sangoma A102 เป็นการ์ดแบบ 2 E1
#Sangoma A102 port 1 [slot:4 bus:2 span:1] <wanpipe1>
span=1,1,0,ccs,hdb3,crc4
bchan=1-15,17-31
echocanceller=oslec,1-15,17-31
hardhdlc=16
#Sangoma A102 port 2 [slot:4 bus:2 span:2] <wanpipe2>
span=2,2,0,ccs,hdb3,crc4
bchan=32-46,48-62
echocanceller=oslec,32-46,48-62
hardhdlc=47
ก็จะได้ว่าพอร์ต E1 แรก มีหมายเลขพอร์ตตั้งแต่ 1-15, 17-31 ส่วนพอร์ต E1 ที่สองมีหมายเลขพอร์ตตั้งแต่ 32-46, 48-62
ก็ประมาณนี้ครับ ถ้าจะถามว่าเราสามารถแก้ไขหมายเลขพอร์ตเหล่านี้ได้หรือไม่ อืม... ผมว่าแก้ไขได้นะครับแต่ว่ามันจะเวอร์คหรือเปล่าไม่รู้ เอาตามที่คุณ DAHDI เขาทำให้ดีกว่าครับ
2. ดูหมายเลข Group จากไฟล์ /etc/asterisk/dahdi-channels.conf
ที่จริงเราสามารถดูหมายเลขพอร์ตจากไฟล์นี้ก็ได้นะครับ ดูจากบรรทัด channel =>
ส่วนหมายเลข Group ให้ดูจากบรรทัด group = สีแดงนะครับ เราแก้ไขหมายเลข Group นี้ได้นะครับ (แก้ไขเสร็จแล้วก็พิมพ์คำสั่ง asterisk -rx "dahdi reload" เพื่อให้มีผลโดยไม่ต้องรีสตาร์ท Asterisk ใหม่ แต่สายที่กำลังโทรผ่านการ์ดจะถูกดิสคอนเน็ค)
; Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER) HDB3/CCS/CRC4
group=0,11
context=from-zaptel
switchtype = euroisdn
signalling = pri_cpe
channel => 1-15,17-31
context = default
group = 63
; Span 2: WCTDM/0 "Wildcard TDM410P Board 1"
;;; line="32 WCTDM/0/0 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-zaptel
channel => 32
callerid=
group=
context=default
;;; line="33 WCTDM/0/1 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-zaptel
channel => 33
callerid=
group=
context=default
;;; line="34 WCTDM/0/2 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-zaptel
channel => 34
callerid=
group=
context=default
;;; line="35 WCTDM/0/3 FXOKS (In use) (SWEC: OSLEC)"
signalling=fxo_ks
callerid="Channel 35" <4035>
mailbox=4035
group=5
context=from-internal
channel => 35
callerid=
mailbox=
group=
context=default
จากตัวอย่างด้านบนที่เอามาให้ดูนะครับ จะได้ว่าการ์ด E1 มี Group 0 และ 11 เวลาใช้งานจะอ้างถึง g0, G0, r0, R0 หรือ g11, G11, r11, R11 ก็ได้ ส่วนการ์ด Analog ก็เช่นเดียวกัน สามพอร์ตแรกเป็น FXO อยู่ใน Group 0 ส่วนพอร์ตที่ 4 เป็น FXS อยู่ใน Group 5
จะเห็นว่าทั้งการ์ด E1 และ TDM410P ต่างก็มีหมายเลข Group เดียวกัน คือ 0 ถ้าเป็นผม ผมก็จะจัดการเปลี่ยนให้มันอยู่คนละ Group (ไม่เปลี่ยนก็ได้) เผื่อว่าเวลาผมโทรออก แล้วระบุพอร์ตโทรออกเป็นหมายเลข Group แทน เช่น g0 มันจะได้ไม่มาออกทางการ์ดที่ผมไม่อยากให้ออก
3. วิธีการเปลี่ยนหมายเลข Group
ก็เปลี่ยนไม่ยากครับ เปลี่ยนบรรทัด group ในไฟล์ /etc/asterisk/dahdi-channels.conf นั่นแหล่ะ
3.1 เช็ค Port number และ Group number
ก่อนที่จะเปลี่ยนหมายเลขพอร์ต เรามาเช็คก่อนว่า Asterisk มองเห็นหมายเลขพอร์ตและหมายเลข Group อย่างที่เราเห็นในไฟล์หรือไม่ เช็คแบบนี้ครับ
คำสั่งต่อไปนี้ผมพิมพ์จาก Linux Prompt เลยนะครับ
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
pseudo default default In Service
1 from-zaptel default In Service
2 from-zaptel default In Service
3 from-zaptel default In Service
4 from-zaptel default In Service
5 from-zaptel default In Service
6 from-zaptel default In Service
7 from-zaptel default In Service
8 from-zaptel default In Service
9 from-zaptel default In Service
10 from-zaptel default In Service
11 from-zaptel default In Service
12 from-zaptel default In Service
13 from-zaptel default In Service
14 from-zaptel default In Service
15 from-zaptel default In Service
17 from-zaptel default In Service
18 from-zaptel default In Service
19 from-zaptel default In Service
20 from-zaptel default In Service
21 from-zaptel default In Service
22 from-zaptel default In Service
23 from-zaptel default In Service
24 from-zaptel default In Service
25 from-zaptel default In Service
26 from-zaptel default In Service
27 from-zaptel default In Service
28 from-zaptel default In Service
29 from-zaptel default In Service
30 from-zaptel default In Service
31 from-zaptel default In Service
32 from-zaptel default In Service
33 from-zaptel default In Service
34 from-zaptel default In Service
35 from-internal default In Service
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels group 0"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
1 from-zaptel default In Service
2 from-zaptel default In Service
3 from-zaptel default In Service
4 from-zaptel default In Service
5 from-zaptel default In Service
6 from-zaptel default In Service
7 from-zaptel default In Service
8 from-zaptel default In Service
9 from-zaptel default In Service
10 from-zaptel default In Service
11 from-zaptel default In Service
12 from-zaptel default In Service
13 from-zaptel default In Service
14 from-zaptel default In Service
15 from-zaptel default In Service
17 from-zaptel default In Service
18 from-zaptel default In Service
19 from-zaptel default In Service
20 from-zaptel default In Service
21 from-zaptel default In Service
22 from-zaptel default In Service
23 from-zaptel default In Service
24 from-zaptel default In Service
25 from-zaptel default In Service
26 from-zaptel default In Service
27 from-zaptel default In Service
28 from-zaptel default In Service
29 from-zaptel default In Service
30 from-zaptel default In Service
31 from-zaptel default In Service
32 from-zaptel default In Service
33 from-zaptel default In Service
34 from-zaptel default In Service
กรุ๊ป 0 มีพอร์ตหมายเลข 1-31 (การ์ด E1 TE110P) และ 32-34 (การ์ด TDM410P)
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels group 11"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
1 from-zaptel default In Service
2 from-zaptel default In Service
3 from-zaptel default In Service
4 from-zaptel default In Service
5 from-zaptel default In Service
6 from-zaptel default In Service
7 from-zaptel default In Service
8 from-zaptel default In Service
9 from-zaptel default In Service
10 from-zaptel default In Service
11 from-zaptel default In Service
12 from-zaptel default In Service
13 from-zaptel default In Service
14 from-zaptel default In Service
15 from-zaptel default In Service
17 from-zaptel default In Service
18 from-zaptel default In Service
19 from-zaptel default In Service
20 from-zaptel default In Service
21 from-zaptel default In Service
22 from-zaptel default In Service
23 from-zaptel default In Service
24 from-zaptel default In Service
25 from-zaptel default In Service
26 from-zaptel default In Service
27 from-zaptel default In Service
28 from-zaptel default In Service
29 from-zaptel default In Service
30 from-zaptel default In Service
31 from-zaptel default In Service
กรุ๊ป 11 มีพอร์ตหมายเลข 1-31 (การ์ด E1 TE110P)
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels group 5"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
35 from-internal default In Service
กรุ๊ป 5 มีพอร์ตหมายเลข 35 ซึ่งเป็นพอร์ต FXS บนการ์ด TDM410P
3.2 แก้ไข Group number
มาลองแก้หมายเลข Group ของพอร์ต FXO บนการ์ด TDM410P ให้เป็น Group หมายเลข 2 กันเล่นๆครับ แก้ไขในไฟล์ /etc/asterisk/dahdi-channels.conf
; Span 2: WCTDM/0 "Wildcard TDM410P Board 1"
;;; line="32 WCTDM/0/0 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=2
context=from-zaptel
channel => 32
callerid=
group=
context=default
;;; line="33 WCTDM/0/1 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=2
context=from-zaptel
channel => 33
callerid=
group=
context=default
;;; line="34 WCTDM/0/2 FXSKS (In use) (SWEC: OSLEC)"
signalling=fxs_ks
callerid=asreceived
group=2
context=from-zaptel
channel => 34
callerid=
group=
context=default
3.3 เซฟไฟล์แล้วรีสตาร์ท dahdi
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi restart"
3.4 เช็ค Group number อีกครั้ง
ก็จะเห็นว่าพอร์ต FXO ทั้ง 3 พอร์ตอยู่ใน Group 2 แล้ว
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels group 2"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
32 from-zaptel default In Service
33 from-zaptel default In Service
34 from-zaptel default In Service
- โค้ด: เลือกทั้งหมด
asterisk -rx "dahdi show channels group 0"
- โค้ด: เลือกทั้งหมด
Chan Extension Context Language MOH Interpret Blocked State
1 from-zaptel default In Service
2 from-zaptel default In Service
3 from-zaptel default In Service
4 from-zaptel default In Service
5 from-zaptel default In Service
6 from-zaptel default In Service
7 from-zaptel default In Service
8 from-zaptel default In Service
9 from-zaptel default In Service
10 from-zaptel default In Service
11 from-zaptel default In Service
12 from-zaptel default In Service
13 from-zaptel default In Service
14 from-zaptel default In Service
15 from-zaptel default In Service
17 from-zaptel default In Service
18 from-zaptel default In Service
19 from-zaptel default In Service
20 from-zaptel default In Service
21 from-zaptel default In Service
22 from-zaptel default In Service
23 from-zaptel default In Service
24 from-zaptel default In Service
25 from-zaptel default In Service
26 from-zaptel default In Service
27 from-zaptel default In Service
28 from-zaptel default In Service
29 from-zaptel default In Service
30 from-zaptel default In Service
31 from-zaptel default In Service
ทีนี้ตอนเขียนคำสั่ง Dial ถ้าต้องการโทรออกทางพอร์ต FXO ก็สามารถระบุ g2 หรือ G2 หรือ r2 หรือ R2 ในคำสั่ง Dial ได้แล้วครับ และถ้าต้องการโทรออกทางพอร์ต E1 ก็อาจจะระบุเป็น g0, G0, r0, R0, g11, G11, r11 หรือ R11 ก็ได้ สะดวกดีครับ
เพิ่มเติมอีกนิดนึงครับ พอร์ต FXO ทั้ง 3 พอร์ตนั้นเราก็แยกออกเป็น Group ต่างกันได้อีก ไม่จำเป็นต้องให้มี Group number เดียวกัน จุดประสงค์ที่แยกก็คือ ต้องการกันพอร์ตไว้ชุดหนึ่งสำหรับโทรออก พอร์ตอีกชุดหนึ่งสำหรับโทรเข้า ไม่ให้ปนกัน ก็เปลี่ยนได้ตามใจชอบครับ
บทความที่เกี่ยวข้อง
เทคนิคการติดตั้งและใช้งานการ์ด E1 TE110P
เทคนิคการติดตั้งและใช้งานการ์ด X100P