กรณีเรามีเร้าท์ (หรือ Trunk) โทรออกไปภายนอกได้ ไม่ว่าจะเป็น DAHDI หรือ SIP หรือ IAX ปรกติเราก็จะเลือก Trunk โดยดูจากเบอร์ปลายทาง (called number) ใช่มั๊ยครับ ซึ่งเป็นวิธีที่เราๆท่านใช้กันอยู่ในขณะนี้ แต่บางท่านอาจไม่ทราบว่า (หรือกำลังหาทางอยู่) Asterisk สามารถเลือก Trunk โทรออก โดยดูจากเบอร์ต้นทาง (calling number) ได้ด้วย มาดูตัวอย่างนี้กัน
Caller ID หรือ Calling Number เป็นเบอร์ต้นทางครับ ถ้าโทรจาก Extension 100 ก็จะได้ว่า Caller ID คือ 100
สมมติว่าเรามีเบอร์ Extension 100, 101 และ 102 และมี Trunk โทรออก 3 Trunk คือ trunk1, trunk2 และ trunk3 เราอยากให้เบอร์ 100 โทรออกทาง trunk1 เบอร์ 101 โทรออกทาง trunk2 และเบอร์ 102 โทรออกทาง trunk3 เราก็เขียน Dialplan แบบนี้
ไฟล์ extensions.conf
[from-internal]
include => outbound-trunk
exten => _1XX,1,Dial(SIP/${EXTEN},30,tT)
exten => _1XX,2,Voicemail(u${EXTEN})
exten => _1XX,102,Voicemail(b${EXTEN})
[outbound-trunk]
exten => _9X./100,1,Dial(SIP/${EXTEN:1}@trunk1,30,tT)
exten => _9X./101,1,Dial(SIP/${EXTEN:1}@trunk2,30,tT)
exten => _9X./102,1,Dial(SIP/${EXTEN:1}@trunk3,30,tT)
เมื่อยูสเซอร์เบอร์ 100 กดโทรออกเบอร์ไหนก็แล้วแต่ เช่น 9028888888 จะทำให้ Asterisk ส่งเบอร์ 028888888 ออกไปทางเร้าท์ trunk1 ถ้าโทรไม่ติดภายใน 30 วินาทีก็จะตัดสายไป
บทความที่เกี่ยวข้อง
เทคนิคการแปลง Caller ID ใน Asterisk