All pastes #34356 Raw Edit

Miscellany

public text v1 · immutable
#34356 ·published 2005-12-20 18:02 UTC
rendered paste body
[macro-stdexten]

; Standard extension macro
; ${ARG1} - Tech
; ${ARG2} - Extension
; ${ARG3} - VM Box

; Usage : exten => 1000,1,Macro(stdexten,[SIP/IAX2/ZAP],[EXTENSION],[VMBOX])

exten => s,1,GotoIf($[${CALLERID(num)}=${ARG2}]?a|1)
exten => s,2,Dial(${ARG1}/${ARG2},20)                    ; Ring the interface, 20 seconds maximum
exten => s,3,Goto(s-${DIALSTATUS},1)                     ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)

exten => s-BUSY,1,GotoIf($[${ARG3}=NONE]?:3)             ; If no VM just give Congestion for 5 seconds
exten => s-BUSY,2,Voicemail(b${ARG3})
exten => s-BUSY,3,Congestion(5)
exten => s-BUSY,4,Hangup

exten => s-NOANSWER,1,GotoIf($[${ARG3}=NONE]?:3)         ; If no VM just give Congestion for 5 seconds
exten => s-NOANSWER,2,Voicemail(u${ARG3})
exten => s-NOANSWER,3,Congestion(5)
exten => s-NOANSWER,4,Hangup

exten => _s-.,1,Goto(s-NOANSWER,1)                       ; Treat anything else as no answer 

exten => a,1,VoiceMailMain(${ARG3})                      ; Extension either called itself or hit * in voicemail.
exten => a,2,Congestion(5)
exten => a,3,Hangup