ผมจะมาแนะนำการเขียน Dial Plan แบบที่ให้สามารถฝากข้อความ Voicemail ใน Mailbox ได้ในกรณีที่ติดต่อเบอร์ Extension ปลายทางไม่ได้ รับรองว่าเป็น Dial Plan แบบง่ายๆไม่ยุ่งยากซับซ้อนชวนน่าปวดหัวหรอกครับ เชื่อผม
1 ตั้ง context ในไฟล์ sip.conf
เอาเป็น context ชื่อ from-internal ก็แล้วกันครับ ส่วนออปชั่นในบรรทัดอื่นๆก็ยังต้องมีตามปกตินะครับ ไม่ได้มีแค่นี้
ไฟล์ sip.conf
[100]
context=from-internal
[101]
context=from-internal
[102]
context=from-internal
ไฟล์ extensions.conf
คอนฟิกเพื่อส่งเข้า Voicemail ดังนี้
[from-internal]
exten => 100,1,Dial(SIP/100,30,tTr)
exten => 100,2,Voicemail(u100@voip4share)
exten => 100,102,Voicemail(b100@voip4share)
exten => 101,1,Dial(SIP/101,30,tTr)
exten => 101,2,Voicemail(u101@voip4share)
exten => 101,102,Voicemail(b101@voip4share)
exten => 102,1,Dial(SIP/102,30,tTr)
exten => 102,2,Voicemail(u102@voip4share)
exten => 102,102,Voicemail(b102@voip4share)
; Dial *99 to Listen to Mailbox
exten => *99,1,VoiceMailMain(@voip4share)
บรรทัด Hangup() ไม่ต้องใส่ก็ได้นะครับ เพราะ Asterisk จะรู้เองโดยอัตโนมัติ บันทึกไฟล์ จากนั้นเข้า Asterisk Console แล้วรีโหลด dialplan
ผมขออธิบายเฉพาะเบอร์ 100 นะครับ ดังนี้
exten => 100,1,Dial(SIP/100,30,tTr) ; ลำดับที่ 1 เมื่อมีคนกดเบอร์ 100 ให้โทรไปที่เบอร์ 100 แบบ SIP ถ้าไม่มีผู้รับสายภายใน 30 วินาทีก็จะเข้าสู่เงื่อนไข Unavailable
exten => 100,2,Voicemail(u100@voip4share) ; ลำดับที่ 2 เมื่อเข้าสู่เงื่อนไข Unavailable (u) ให้ส่งเข้า Voicemail ของเบอร์ 100
exten => 100,102,Voicemail(b100@voip4share) ; ลำดับที่ 102 ถ้าเบอร์ 100 สายไม่ว่าง (b หมายถึง busy) ก็ให้ส่งเข้า Voicemail ของเบอร์ 100 เช่นกัน กรณีของ busy เป็นกรณีพิเศษ จะต้องใส่ลำดับเป็น n+101 โดยที่ n คือลำดับที่ของบรรทัด Dial
ส่วน *99 เป็นเบอร์เอาไว้กดเข้าไปฟัง Voicemail