All my SIP clients are using DID's, so the way I do is using context: -
[a2billing]
; CallingCard application
include => a2billing-int
include => a2billing-usa
exten => _1NXXNXXXXXX,1,Answer
exten => _1NXXNXXXXXX,n,Wait,2
exten => _1NXXNXXXXXX,n,Goto(ext-local,${EXTEN},1)
exten => _1NXXNXXXXXX,n,DeadAGI(a2billing.php)
exten => _1NXXNXXXXXX,n,Wait,2
exten => _1NXXNXXXXXX,n,Hangup
[ext-local]
exten => _X.,1,GotoIf(${DB_EXISTS(DND/${EXTEN})}?DND-ON,1);If DND entry exists on AstDB it means DND is ON
exten => _X.,n,Dial(SIP/${EXTEN:1},300,tr) ; DND is OFF, start dialing
exten => _X.,n,DeadAGI(a2billing.php)
exten => _s-.,1,Playback(is-curntly-busy)
exten => _s-.,n,hangup
exten => DND-ON,1,Goto(_s-.,1) ;In this example if DND is ON it will present you Unavailable VoiceMail Message
exten => h,1,hangup
[a2billing-int]
exten => _011.,1,Answer
exten => _011.,n,DeadAGI(a2billing.php)
exten => _011.,n,Hangup
[a2billing-usa]
exten => _NXXNXXXXXX,1,Answer
exten => _NXXNXXXXXX,n,Wait,2
exten => _NXXNXXXXXX,n,Goto(ext-local,${EXTEN},1)
exten => _NXXNXXXXXX,n,DeadAGI(a2billing.php)
exten => _NXXNXXXXXX,n,Wait,2
exten => _NXXNXXXXXX,n,Hangup
Hope it works for you...
Cheers,
Neel
|