rendered paste body
[macro-dial-pstn-iax-sip]
exten => s,1,Goto(2)
exten => s,2,GotoIf($[${LEN(${MACRO_EXTEN})} = 7]?6:7)
exten => s,3,GotoIf($[${LEN(${MACRO_EXTEN})} = 10]?8:9)
exten => s,6,SetVar(MACRO_EXTEN=1408${MACRO_EXTEN})
exten => s,7,Goto(21)
exten => s,8,SetVar(MACRO_EXTEN=1${MACRO_EXTEN})
exten => s,9,Goto(21)
exten => s,21,Dial(${PSTN}/ww${MACRO_EXTEN:-7},${ARG2})
exten => s,22,NoOp(${DIALSTATUS})
exten => s,23,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?24:25)
;exten => s,23,Dial(${IAXCO1}/${MACRO_EXTEN:-11},${ARG2})
exten => s,24,Dial(${IAXCO1}/${MACRO_EXTEN:-11})
exten => s,25,Goto(s-${DIALSTATUS},1)
;
; returns here if busy on PSTN
;
exten => s,122,Goto(s-BUSY,1)
;
; returns here if busy on IAXCO1
;
exten => s,125,Goto(s-BUSY,1)
;
; returns here if busy on IAXCO1
;
exten => s,115,SetGlobalVar(FOUNDME=BUSY)
exten => s,116,Goto(s-BUSY,1)
;
; returns here if busy on IAXCO2
;
exten => s,119,SetGlobalVar(FOUNDME=BUSY)
exten => s,120,Goto(s-BUSY,1)
;
exten => s-BUSY,1,BackGround(the-party-you-are-calling)
exten => s-BUSY,2,BackGround(is-curntly-busy)
exten => s-BUSY,3,SetGlobalVar(FOUNDME=BUSY)
exten => s-BUSY,4,Goto(s-CLEANEXIT,1)
;
exten => s-CANCEL,1,BackGround(canceled)
exten => s-CANCEL,2,SetGlobalVar(FOUNDME=CANCEL)
exten => s-CANCEL,3,Goto(s-CLEANEXIT,1)
;
exten => s-CHANUNAVAIL,1,BackGround(channel)
exten => s-CHANUNAVAIL,2,BackGround(is-curntly-unavail)
exten => s-CHANUNAVAIL,3,SetGlobalVar(FOUNDME=CHANUNAVAIL)
exten => s-CHANUNAVAIL,4,Goto(s-CLEANEXIT,1)
;
exten => s-NOANSWER,1,BackGround(nbdy-avail-to-take-call)
exten => s-NOANSWER,2,SetGlobalVar(FOUNDME=NOANSWER)
exten => s-NOANSWER,3,Goto(s-CLEANEXIT,1)
;
exten => s-ANSWER,1,SetGlobalVar(FOUNDME=ANSWER)
exten => s-ANSWER,2,Goto(s-CLEANEXIT,3)
;
exten => s-.,1,BackGround(something-Usr2bly-wrong)
exten => s-.,2,SetGlobalVar(FOUNDME=ERROR)
exten => s-.,3,Goto(s-CLEANEXIT,1)
;
exten => s-CLEANEXIT,1,GotoIf($[${ARG3} = RT]?3:2)
exten => s-CLEANEXIT,2,Hangup
exten => s-CLEANEXIT,3,NoOp