All pastes #637774 Raw Edit

Something

public text v1 · immutable
#637774 ·published 2007-07-29 05:59 UTC
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