ถ้าเราต้องการให้แต่ละ extension ต้องใส่ password ก่อนที่จะโทรออก trunk ได้ เรามีวิธีการเขียน dialplan ดังนี้
แบบที่ 1 กำหนด password ใน dialplan
dialplan มีดังนี้
[internal]
exten => _0ZX.,1,Verbose(2,Simple setting password for trunk)
exten => _0ZX.,n,Playback(silence/1)
exten => _0ZX.,n,Authenticate(1234)
exten => _0ZX.,n,Dial(DAHDI/g0/${EXTEN},30)
exten => _0ZX.,n,Hangup()
แบบที่ 2 กำหนด password ใน Asterisk database
ขั้นแรกต้องกำหนด password ใน database
*CLI > database put authen pass 1234 trunk_password
*CLI > database show authen
dialplan มีดังนี้
[internal]
exten => _0ZX.,1,Verbose(2,Simple setting password for trunk)
exten => _0ZX.,n,Playback(silence/1)
exten => _0ZX.,n,Authenticate(/authen/pass,d)
exten => _0ZX.,n,Dial(DAHDI/g0/${EXTEN},30)
exten => _0ZX.,n,Hangup()
option d ในคำสั่ง Authenticate จะบังคับให้ระบบตรวจสอบ password จาก Asterisk database
แบบที่ 3 ใช้ voicemail password
มี dialplan ดังนี้
[internal]
exten => _0ZX.,1,Verbose(2,Simple setting password for trunk)
exten => _0ZX.,n,Playback(silence/1)
exten => _0ZX.,n,VMAuthenticate(${CALLERID(num)}@default)
exten => _0ZX.,n,Dial(DAHDI/g0/${EXTEN},30)
exten => _0ZX.,n,Hangup()
ข้อดีของแบบที่ 3 คือ แต่ละ extension มี password ของตนเอง และสามารถเปลี่ยน password ได้ โดยการเปลี่ยน
password voicemail box
ทั้งสามแบบ เมื่อมีการกดผิด ระบบจะให้กดใหม่อีก 2 ครั้ง ก่อนที่จะวางสายไป