99 lines
2.7 KiB
Plaintext
99 lines
2.7 KiB
Plaintext
; /etc/asterisk/extensions.conf
|
|
|
|
; Remember, context names for each SIP account are specified in pjsip_wizard.conf.
|
|
|
|
; First, some safeguards against abuse of the built-in contexts.
|
|
[default]
|
|
exten => s,1,Verbose(1, "INFO ${CALLERID(num)} was passed to default.")
|
|
same => n,Wait(1)
|
|
same => n,Answer(1)
|
|
same => n,Goto(s-info,1)
|
|
same => n,Goto(s-info,1)
|
|
same => n,Goto(s-info,1)
|
|
same => n,Hangup(3)
|
|
|
|
exten => s-info,1,PlayTones(info)
|
|
same => n,Playback(hangup-try-again)
|
|
|
|
[globals]
|
|
|
|
; trunk caller IDs.
|
|
TRUNK_ONE_CID = +442012345678
|
|
TRUNK_TWO_CID = +442087456210
|
|
|
|
; Default queue
|
|
QUEUE_ONE = queue-one
|
|
|
|
[subscribe]
|
|
exten => _X.,hint,PJSIP/${EXTEN}
|
|
|
|
[from-trunk-one]
|
|
exten => s,1,Queue(${QUEUE_ONE},nr,,,50)
|
|
; same => n,Answer(500)
|
|
; same => n,Voicemail(${VOICEMAIL_BOX},su)
|
|
same => n,Hangup()
|
|
|
|
|
|
[outbound-one]
|
|
exten => _X.,1,Verbose(1, "OUTBOUND TRUNK ONE ${TRUNK_ONE_CID}")
|
|
same => n,Set(CALLERID(all)=${TRUNK_ONE_CID})
|
|
same => n,Dial(PJSIP/${EXTEN}@trunk-one)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?outbound-two,${EXTEN},1)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?outbound-two,${EXTEN},1)
|
|
same => n,Hangup()
|
|
|
|
[outbound-two]
|
|
exten => _X.,1,Verbose(1, "OUTBOUND TRUNK TWO ${TRUNK_TWO_CID}")
|
|
same => n,Set(CALLERID(all)=${TRUNK_TWO_CID})
|
|
same => n,Dial(PJSIP/${EXTEN}@trunk-two)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?default,s,1)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?default,s,1)
|
|
same => n,Hangup()
|
|
|
|
[app-lastcallreturn]
|
|
exten => 1471,1,Verbose(1, "${CALLERID(num)} dialed app-lastcallreturn.")
|
|
same => Wait(1)
|
|
same => n,Answer(1)
|
|
same => n,Playback(last-num-to-call)
|
|
same => n,Set(number=${DB(lastcaller/${CALLERID(num)})})
|
|
same => n,GotoIf($["${number}" = ""]?s-nonum,1)
|
|
same => n,SayDigits(${number})
|
|
same => n,Wait(2)
|
|
same => n,SayDigits(${number})
|
|
same => n,Wait(1)
|
|
same => n,Playback(to-call-num-press)
|
|
same => n,Playback(digits/1)
|
|
|
|
exten => 1,1,Goto(outbound-one,${number},1)
|
|
|
|
exten => s-nonum,1,Playback(unidentified-no-callback)
|
|
same => n,Hangup()
|
|
|
|
[app-vm]
|
|
exten = 1571,1,Verbose(1, "${CALLERID(num)} dialed the voicemail feature.")
|
|
same = n,VoiceMailMain(${CALLERID(num)}@default,s)
|
|
same = n,Hangup()
|
|
|
|
|
|
[from-ext]
|
|
|
|
exten => 123,1,Goto(default,s,1)
|
|
same => n,Hangup()
|
|
|
|
exten => 1471,1,Goto(app-lastcallreturn,${EXTEN},1)
|
|
same => n,Hangup()
|
|
|
|
exten => 1571,1,Goto(app-vm,${EXTEN},1)
|
|
same => n,Hangup()
|
|
|
|
exten => _X.,1,Goto(outbound-one,${EXTEN},1)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?outbound-two,${EXTEN},1)
|
|
same => n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?outbound-two,${EXTEN},1)
|
|
same => n,Hangup()
|
|
|
|
[to-ext]
|
|
exten => _X.,1,Set(DB(lastcaller/${ARG1})=${CALLERID(num)})
|
|
same => n,Dial(PJSIP/${EXTEN})
|
|
same => n,Hangup()
|
|
|