ถ้าเราต้องการให้แต่ละ 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 ครั้ง ก่อนที่จะวางสายไป