ไฟล์ extensions.conf เป็น Dial Plan ของ Asterisk ครับ แปลเป็นไทยว่า แบบแผนการโทรหรือรูปแบบการโทร (ผมแปลเอง) ข้อมูลในไฟล์นี้จะบอกว่าเราจะโทรไปที่ไหนได้บ้าง โทรไปเบอร์ไหนได้บ้าง ดังนั้นถ้าเราอยากโทรไปที่ไหนได้ก็ต้องเอามาคอนฟิกใส่ไว้ในไฟล์นี้นะครับ แม้กระทั่งการโทรระหว่างเบอร์ Extension ด้วยกันก็ยังต้องเอามาคอนฟิกใส่ไว้ในไฟล์นี้เลยครับ
ไม่ว่าจะเป็นการโทรออก (outbound) หรือรับสายเข้า (inbound) ก็ต้องมาคอนฟิกใส่ไว้ในไฟล์นี้เสมอครับ ถ้ามีการแก้ไขอะไรในไฟล์นี้จะต้องใช้คำสั่ง dialplan reload หรือ reload จาก Asterisk Console จึงจะมีผล ไฟล์นี้เป็นหัวใจของ Asterisk ครับ
ไฟล์ extensions.conf ถูกใช้งานตอนไหน
ไฟล์นี้ถูกเรียกใช้งานตอนที่เรากดเบอร์ส่งไปให้ Asterisk ไม่ว่าจะเป็นเบอร์ Extension หรือเบอร์ภายนอกก็ตาม เช่นกดเบอร์ Extension 500 ส่งไปหา Asterisk เมื่อมันรับเบอร์เข้ามามันก็จะเอามาเช็คในไฟล์ extensions.conf เพื่อดูว่า "จะให้ผมทำอะไรเหรอครับ" แล้วมันก็จะทำตามที่เราคอนฟิกสั่งไว้ ถ้ามันหาไม่เจอก็จะโทรไม่ได้
ไฟล์ extensions.conf ประกอบด้วยอะไรบ้าง
1. [general]
เป็นคอนฟิกทั่วๆไปของ Dial Plan ครับ
2. บรรทัด #include ชื่อไฟล์ เพื่อแยกไฟล์ extensions.conf ออกเป็นหลายๆไฟล์ จะได้ดูแลง่ายเช่น
#include extensions_1.conf
#include extensions_1.conf
บรรทัด #include ต้องอยู่ก่อน [globals] นะครับ
3. [globals]
เป็นที่ๆสำหรับประกาศตัวแปรแบบ global variable ที่สามารถเรียกใช้งานได้จาก Dial Plan เช่นเราอาจจะตั้งชื่อๆหนึ่งขึ้นมาใช้แทนเช่น TRUNK=DAHDI/g1 และเวลาจะเรียกใช้ DAHDI/g1 จาก Dial Plan ก็ใช้คำว่า TRUNK แทนครับ ดูรายละเอียดได้จากบทความการเขียน Dial Plan
4. Context เขียนอยู่ภายในเครื่องหมาย [] เช่น [from-internal] เป็นที่ๆจะเขียน Dial Plan ซึ่งเราจะเขียนสั่งงาน Asterisk ว่ากดเบอร์นี้แล้วให้โทรไปไหน เช่น
[from-internal]
exten => 100,1,Dial(SIP/100)
exten => 100,n,Hangup
กดเบอร์ 100 ให้โทรไปหาเบอร์ Extension 100 แบบ SIP
รายละเอียดแบบครบถ้วนสมบูรณ์จะอยู่ในบทความการเขียน Dial Plan นะครับ
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 15.x + DAHDI 2.11.1 บน CentOS 7