kit/asterisk/conf/mobile/extensions.conf

130 lines
3.7 KiB
Plaintext

; /etc/asterisk/extensions.conf
; Remember, context names for each SIP account are specified in pjsip_wizard.conf.
;
[globals]
; first queue.
QUEUE_ONE = queue-one
; Voicemail address (configured in voicemail.conf)
VOICEMAIL_BOX = 1000@default
; Trunk numbers.
TRUNK_ONE_CID = +447123456789
TRUNK_TWO_CID = +447987654321
; First, some safeguards against abuse of the built-in contexts.
[default]
exten => s,1, Verbose(1, "info: ${CALLERID(num)} passed to default")
same => n,Answer(100)
same => n,PlayTones(info)
same => n,Wait(2)
same => n,Playback(cannot-complete-as-dialed&check-number-dial-again)
same => n,PlayTones(info)
same => n,Hangup(3)
[presence]
exten => _X.,hint,PJSIP/${EXTEN}
[app-lastcallreturn]
exten => 1471,1,Verbose(1, "info: ${CALLERID(num)} dialed app-lastcallreturn")
same => n,Set(number=${DB(lastcaller/${CALLERID(num)})})
same => n,Answer(100)
same => n,GotoIf($["${number}" = ""]?nonum,1)
same => n,Playback(info-about-last-call&telephone-number)
same => n,Wait(1)
same => n,SayDigits(${number})
same => n,Wait(1)
same => n,Playback(to-call-num-press)
same => n,Playback(digits/3)
same => n,WaitExten(5)
same => n,SayDigits(${number})
same => n,Wait(1)
same => n,Playback(to-call-num-press)
same => n,Playback(digits/3)
same => n,WaitExten(10)
same => n,Goto(timeout,1)
exten => 3,1,Goto(outbound-one,${number},1)
same => n,Hangup()
exten => nonum,1,Playback(unidentified-no-callback)
same => n,Hangup()
exten => timeout,1,Playback(vm-goodbye)
same => Hangup()
[app-vm]
exten = 1571,1,Verbose(1, "info: ${CALLERID(num)} dialed voicemail")
same = n,VoiceMailMain(${CALLERID(num)}@default,s)
same = n,Hangup()
[inbound-one]
exten => _X.,1,Queue(${QUEUE_ONE},nr,,,120)
same => n,Answer(200)
same => n,Voicemail(${VOICEMAIL_BOX},)
same => n,Hangup()
; Mobile networks have shorter rings - answer and place in queue.
exten => ${TRUNK_ONE_CID},1,Verbose(1, "info: mobile incoming")
same => n,Answer(200)
same => n,Wait(3)
same => n,Playback(pls-hold-while-try)
same => n,Queue(${QUEUE_ONE},nr,,,60)
same => n,Voicemail(${VOICEMAIL_BOX},)
same => n,Hangup()
exten => i,1,Answer(200)
same => n,Voicemail(${VOICEMAIL_BOX},)
same => n,Hangup()
[from-quectel0]
exten => ${TRUNK_ONE_CID},1,Goto(inbound-one,${EXTEN},1)
same => n,Hangup()
[outbound-one]
exten => _X.,1,Verbose(1, "info: using ${TRUNK_ONE_CID} for ${EXTEN}")
same => n,Set(CALLERID(all)=${TRUNK_ONE_CID})
same => n,Dial(Quectel/quectel0/${EXTEN},,r)
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, "info: using ${TRUNK_TWO_CID} for ${EXTEN}")
same => n,Set(CALLERID(all)=${TRUNK_TWO_CID})
same => n,Dial(PJSIP/${EXTEN}@trunk-two,,r)
same => n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?default,s,1)
same => n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?default,s,1)
same => n,Hangup()
[from-ext]
exten => 123,1,Goto(i,1)
same => n,Hangup()
exten => _XX.,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()
exten => 1471,1,Goto(app-lastcallreturn,${EXTEN},1)
same => n,Hangup()
exten => 1571,1,Goto(app-vm,${EXTEN},1)
same => n,Hangup()
exten => i,1,Answer(100)
same => n,PlayTones(info)
same => n,Wait(2)
same => n,Playback(cannot-complete-as-dialed&check-number-dial-again)
same => n,PlayTones(info)
same => n,Wait(1)
same => n,Playback(cannot-complete-as-dialed&check-number-dial-again)
same => n,PlayTones(info)
same => n,Hangup()
[to-ext]
exten => _X.,1,Set(DB(lastcaller/${EXTEN})=${CALLERID(num)})
same => n,Dial(PJSIP/${EXTEN},,r)
same => n,Hangup()