rendered paste body[macro-enable-forward]
exten => s,1,Playback(pls-ent-num-transfer)
exten => s,n,Playback(then-press-pound)
exten => s,n,Read(target)
exten => s,n,Playback(you-entered)
exten => s,n,SayDigits(${TARGET})
exten => s,n,Playback(if-this-is-correct)
exten => s,n,Playback(press-1)
exten => s,n,Playback(if-this-is-not-correct)
exten => s,n,Playback(press-2)
exten => s,n,Read(option||1)
exten => s,n,GotoIf($[${option} = 2]?*73,1)
exten => s,n,Goto(commit,1)
exten => commit,1,Set(DB(forward/${CALLERID(num)})=${TARGET});
exten => commit,n,Playback(activated)
exten => commit,n,Playback(goodbye)
exten => commit,n,Hangup()
[macro-disable-forward]
exten => s,1,DBdel(forward/${CALLERID(num)});
exten => s,n,Playback(de-activated)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup
[macro-stdexten];
;
; Standard extension macro:
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;
exten => s,1,Set(TARGET=${DB(forward/${ARG1})})
exten => s,2,GotoIf($["TARGET" == ""]?5:forward,1)
exten => s,5,Dial(${ARG2},20,Tt) ; Ring the interface, 20 seconds maximum
exten => s,6,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,GotoIf($["${DB_EXISTS(followme/${MACRO_EXTEN})}" = "1"]?follow)
exten => s-NOANSWER,n,Voicemail(${ARG1}|u) ; If unavailable, send to voicemail w/ unavail announce
exten => s-NOANSWER,n,Goto(default,s,1) ; If they press , return to start
exten => s-BUSY,1,GotoIf($["${DB_EXISTS(followme/${MACRO_EXTEN})}" = "1"]?follow)
exten => s-BUSY,n,Voicemail(${ARG1}|b) ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,n,Goto(default,s,1) ; If they press , return to start
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain
exten => o,1,Goto(mainmenu,0,1)
exten => _X,1,Goto(mainmenu,${EXTEN},1)
exten => forward,1,Goto(default,${TARGET},1)
[default]
;
; By default we include the demo. In a production system, you
; probably don't want to have the demo there.
;
exten => *72,1,Macro(enable-forward)
exten => *73,1,Macro(disable-forward)
exten => 600,1,Playback(demo-echotest) ; Let them know what's going on
exten => 600,n,Echo ; Do the echo test
exten => 600,n,Playback(demo-echodone) ; Let them know it's over
exten => 600,n,Goto(s,6) ; Start over
;include => macro-enable-forward
;include => macro-stdexten
include => dans
include => localcalling
include => networkone
;include => CFIM
[dans]
; create call forward
;exten => _*21*X.,1,GotoIf(${EXTEN:4} = #?2:3)
;exten => _*21*X.,1,DBput(CFIM/${CALLERIDNUM}=+${EXTEN:4})
;exten => _*21*X.,2,Hangup
; delete call forward
;exten => **21,1,DBdel(CFIM/${CALLERIDNUM})
;exten => **21,2,Hangup
;exten => s,1,DBget(temp=CFIM/${ARG1}) ; Get CFIM key, if not existing, goto 102
;exten => s,2,Dial(SIP/${temp}@netlogic/n) ; Unconditional forward
;exten => s,3,Dial(${ARG2},20) ; 20sec timeout
;exten => s,4,DBget(temp=CFBS/${ARG1}) ; Get CFBS key, if not existing, goto 105
;exten => s,5,Dial(SIP/${temp}@netlogic/n) ; Forward on busy or unavailable
; No CFIM key
;exten => s,102,Goto(s,3)
; No CFBS key - voicemail ?
;exten => s,105,Busy
exten => 7602,1,Dial,SIP/dansip
exten => 7601,1,Dial,IAX2/3142624843
exten => +13142624843,1,Dial(IAX2/3142624843,10,tT)
exten => 3142624843,1,Dial(IAX2/3142624843,,r)
exten => +13142661005,1,Macro(stdexten,${EXTEN},SIP/3142661005)
exten => 3142661005,1,Macro(stdexten,${EXTEN},SIP/3142661005,,tr)
exten => +16366141361,1,Dial(SIP/6366141361,,tr)
[localcalling]
exten => _2[16][26]XXXX/_3142[16][26]XXXX,1,Set(CDR(accountcode)=00000)
exten => _2[16][26]XXXX/_3142[16][26]XXXX,2,Dial(SIP/+1314${EXTEN}@netlogic,,T)
exten => _474XXXX/_636474XXXX,1,Set(CDR(accountcode)=00000)
exten => _474XXXX/_636474XXXX,2,Dial(SIP/+1636${EXTEN}@netlogic,,T)
exten => _681XXXX/_3149[16][138]XXXX,1,Set(CDR(accountcode)=00000)
exten => _681XXXX/_3149[16][138]XXXX,2,Dial(SIP/+1314${EXTEN}@netlogic,,T)
exten => _9[16][138]XXXX/_3149[16][138]XXXX,1,Set(CDR(accountcode)=00000)
exten => _9[16][138]XXXX/_3149[16][138]XXXX,2,Dial(SIP/+1314${EXTEN}@netlogic,,T)
exten => _NXXXXXX/_314[92]XXXXXX,1,Set(CDR(accountcode)=4444)
exten => _NXXXXXX/_314[92]XXXXXX,2,Dial(SIP/+1314${EXTEN}@netlogic,,T)
exten => _636NXXXXXX/_314[92]XXXXXX,1,Set(CDR(accountcode)=5555)
exten => _636NXXXXXX/_314[92]XXXXXX,2,Dial(SIP/+1${EXTEN}@netlogic,,T)
[networkone]
exten => _1NXXNXXXXXX,1,Dial(SIP/+${EXTEN}@netlogic,,T)
exten => _1NXXNXXXXXX,n,Hangup
exten => _911,1,Dial,SIP/+${EXTEN}@netlogic)
exten => _911,n,Hangup
exten => _411,1,Dial,SIP/+1${EXTEN}@netlogic)
exten => _411,n,Hangup
exten => _0,1,Dial,SIP/+${EXTEN}@netlogic)
exten => _0,n,Hangup