rendered paste body; ############################################################################
; Applications [app]
; ############################################################################
;
[app-directory]
;DIR-CONTEXT set in Digital Receptionist
exten => ${APP-DIRECTORY},1,Wait(1)
exten => ${APP-DIRECTORY},2,AGI(directory,${DIR-CONTEXT},ext-local,${DIRECTORY:0:1}${DIRECTORY_OPTS}o)
exten => ${APP-DIRECTORY},3,Playback(vm-goodbye)
exten => ${APP-DIRECTORY},4,Hangup
; ${APP-DIRECTORY-TOTAL} will access the entire directory (not just a single context)
exten => ${APP-DIRECTORY-TOTAL},1,Answer
exten => ${APP-DIRECTORY-TOTAL},2,Wait(1)
exten => ${APP-DIRECTORY-TOTAL},3,AGI(directory,general,ext-local,${DIRECTORY:0:1}${DIRECTORY_OPTS})
exten => ${APP-DIRECTORY-TOTAL},4,Playback(vm-goodbye)
exten => ${APP-DIRECTORY-TOTAL},5,Hangup
exten => h,1,Hangup
exten => o,1,GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1)
[app-dnd]
exten => ${APP-DND-ON},1,Answer
exten => ${APP-DND-ON},2,Wait(1)
exten => ${APP-DND-ON},3,Macro(user-callerid)
exten => ${APP-DND-ON},4,Set(DB(DND/${CALLERID(number)})=YES)
exten => ${APP-DND-ON},5,Playback(do-not-disturb)
exten => ${APP-DND-ON},6,Playback(activated)
exten => ${APP-DND-ON},7,Macro(hangupcall)
exten => ${APP-DND-OFF},1,Answer
exten => ${APP-DND-OFF},2,Wait(1)
exten => ${APP-DND-OFF},3,Macro(user-callerid)
exten => ${APP-DND-OFF},4,DBdel(DND/${CALLERID(number)})
exten => ${APP-DND-OFF},5,Playback(do-not-disturb)
exten => ${APP-DND-OFF},6,Playback(de-activated)
exten => ${APP-DND-OFF},7,Macro(hangupcall)
exten => $(APP-DND-OFF-ANY),1,Answer
exten => $(APP-DND-OFF-ANY),n,Wait(1)
exten => $(APP-DND-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-DND-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-DND-OFF-ANY),n,Wait(1)
exten => $(APP-DND-OFF-ANY),n,dbDel(dnd/${fromext})
exten => $(APP-DND-OFF-ANY),n,Playback(do-not-disturb&for&extension)
exten => $(APP-DND-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-DND-OFF-ANY),n,Playback(cancelled)
exten => $(APP-DND-OFF-ANY),n,Macro(hangupcall,)
[app-messagecenter]
exten => ${APP-MESSAGECENTER},1,Answer
exten => ${APP-MESSAGECENTER},2,Wait(1)
exten => ${APP-MESSAGECENTER},3,Macro(user-callerid)
exten => ${APP-MESSAGECENTER},4,Macro(get-vmcontext,${CALLERIDNUM})
; Asterisk 1.2 _requires_ that context be set if mailbox is not in default context
; Dialing ${APP-MESSAGECENTER} from an IVR will be a problem, as macro-get-vmcontext will only return "default" in that case
exten => ${APP-MESSAGECENTER},5,VoiceMailMain(${VMCONTEXT})
exten => ${APP-MESSAGECENTER},6,Macro(hangupcall)
exten => _${APP-MESSAGECENTER}X.,1,Answer ; can dial ${APP-MESSAGECENTER}<exten> to skip 'mailbox' prompt. Useful for speedial.
exten => _${APP-MESSAGECENTER}X.,2,Wait(1)
exten => _${APP-MESSAGECENTER}X.,3,Macro(get-vmcontext,${EXTEN:3})
exten => _${APP-MESSAGECENTER}X.,4,VoiceMailMain(${EXTEN:3}@${VMCONTEXT})
exten => _${APP-MESSAGECENTER}X.,5,Macro(hangupcall)
exten => ${APP-MESSAGECENTER-DIRECT},1,Answer
exten => ${APP-MESSAGECENTER-DIRECT},2,Wait(1)
exten => ${APP-MESSAGECENTER-DIRECT},3,Macro(user-callerid)
exten => ${APP-MESSAGECENTER-DIRECT},4,Macro(get-vmcontext,${CALLERIDNUM})
exten => ${APP-MESSAGECENTER-DIRECT},5,VoicemailMain(${CALLERIDNUM}@${VMCONTEXT})
exten => ${APP-MESSAGECENTER-DIRECT},6,Macro(hangupcall)
[app-callwaiting]
exten => ${APP-CALLWAITING-ON},1,Answer
exten => ${APP-CALLWAITING-ON},2,Wait(1)
exten => ${APP-CALLWAITING-ON},3,Macro(user-callerid)
exten => ${APP-CALLWAITING-ON},4,Set(DB(CW/${CALLERID(number)})=ENABLED)
exten => ${APP-CALLWAITING-ON},5,Playback(call-waiting)
exten => ${APP-CALLWAITING-ON},6,Playback(activated)
exten => ${APP-CALLWAITING-ON},7,Macro(hangupcall)
exten => ${APP-CALLWAITING-OFF},1,Answer
exten => ${APP-CALLWAITING-OFF},2,Wait(1)
exten => ${APP-CALLWAITING-OFF},3,Macro(user-callerid)
exten => ${APP-CALLWAITING-OFF},4,DBdel(CW/${CALLERID(number)})
exten => ${APP-CALLWAITING-OFF},5,Playback(call-waiting)
exten => ${APP-CALLWAITING-OFF},6,Playback(de-activated)
exten => ${APP-CALLWAITING-OFF},7,Macro(hangupcall)
;Overrides disabled callwaiting with callerid matching.
exten => ${APP-SELECTIVE-CALLWAITING-ON},1,Answer
exten => ${APP-SELECTIVE-CALLWAITING-ON},2,Wait(1)
exten => ${APP-SELECTIVE-CALLWAITING-ON},3,Macro(user-callerid)
exten => ${APP-SELECTIVE-CALLWAITING-ON},4,Set(DB(SCW/${CALLERID(number)})=ENABLED)
exten => ${APP-SELECTIVE-CALLWAITING-ON},5,Playback(selective-call-waiting)
exten => ${APP-SELECTIVE-CALLWAITING-ON},6,Playback(activated)
exten => ${APP-SELECTIVE-CALLWAITING-ON},7,Macro(hangupcall)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,1,Macro(user-callerid)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,2,Set(DB(SCW/${CALLERID(number)})=${EXTEN:3})
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,3,Answer
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,4,Wait(1)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,5,Playback(selective-call-waiting-unconditional)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,6,Playback(for)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,7,Playback(extension)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,8,SayDigits(${CALLERID(number)})
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,9,Playback(is-set-to)
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,10,SayDigits(${EXTEN:3})
exten => _${APP-SELECTIVE-CALLWAITING-ON}.,11,Macro(hangupcall)
exten => ${APP-SELECTIVE-CALLWAITING-OFF},1,Answer
exten => ${APP-SELECTIVE-CALLWAITING-OFF},2,Wait(1)
exten => ${APP-SELECTIVE-CALLWAITING-OFF},3,Macro(user-callerid)
exten => ${APP-SELECTIVE-CALLWAITING-OFF},4,DBdel(SCW/${CALLERID(number)})
exten => ${APP-SELECTIVE-CALLWAITING-OFF},5,Playback(selective-call-waiting)
exten => ${APP-SELECTIVE-CALLWAITING-OFF},6,Playback(de-activated)
exten => ${APP-SELECTIVE-CALLWAITING-OFF},7,Macro(hangupcall)
;[app-selective-callwaiting-off-any]
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),1,Answer
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Wait(1)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Wait(1)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,dbDel(scw/${fromext})
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(selective-call-waiting&for&extension)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(cancelled)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Macro(hangupcall,)
[app-callforward]
; dialed call forward app - forwards calling extension
exten => _${APP-CALLFORWARD-ON}.,1,Macro(user-callerid)
exten => _${APP-CALLFORWARD-ON}.,2,Set(DB(CF/${CALLERID(number)})=${EXTEN:3})
exten => _${APP-CALLFORWARD-ON}.,3,Answer
exten => _${APP-CALLFORWARD-ON}.,4,Wait(1)
exten => _${APP-CALLFORWARD-ON}.,5,Playback(call-fwd-unconditional)
exten => _${APP-CALLFORWARD-ON}.,6,Playback(for)
exten => _${APP-CALLFORWARD-ON}.,7,Playback(extension)
exten => _${APP-CALLFORWARD-ON}.,8,SayDigits(${CALLERID(number)})
exten => _${APP-CALLFORWARD-ON}.,9,Playback(is-set-to)
exten => _${APP-CALLFORWARD-ON}.,10,SayDigits(${EXTEN:3})
exten => _${APP-CALLFORWARD-ON}.,11,Macro(hangupcall)
; prompting call forward app - forwards entered extension
exten => ${APP-CALLFORWARD-ON},1,Answer
exten => ${APP-CALLFORWARD-ON},2,Wait(1)
exten => ${APP-CALLFORWARD-ON},3,BackGround(please-enter-your)
exten => ${APP-CALLFORWARD-ON},4,Playback(extension)
exten => ${APP-CALLFORWARD-ON},5,Read(fromext,then-press-pound)
exten => ${APP-CALLFORWARD-ON},6,Wait(1)
exten => ${APP-CALLFORWARD-ON},7,BackGround(ent-target-attendant)
exten => ${APP-CALLFORWARD-ON},8,Read(toext,then-press-pound)
exten => ${APP-CALLFORWARD-ON},9,Wait(1)
exten => ${APP-CALLFORWARD-ON},10,Set(DB(CF/${fromext})=${toext})
exten => ${APP-CALLFORWARD-ON},11,Playback(call-fwd-unconditional)
exten => ${APP-CALLFORWARD-ON},12,Playback(for)
exten => ${APP-CALLFORWARD-ON},13,Playback(extension)
exten => ${APP-CALLFORWARD-ON},14,SayDigits(${fromext})
exten => ${APP-CALLFORWARD-ON},15,Playback(is-set-to)
exten => ${APP-CALLFORWARD-ON},16,SayDigits(${toext})
exten => ${APP-CALLFORWARD-ON},17,Macro(hangupcall)
; cancels dialed extension call forward
exten => _${APP-CALLFORWARD-OFF}.,1,DBdel(CF/${EXTEN:3})
exten => _${APP-CALLFORWARD-OFF}.,2,Answer
exten => _${APP-CALLFORWARD-OFF}.,3,Wait(1)
exten => _${APP-CALLFORWARD-OFF}.,4,SayDigits(${EXTEN:3})
exten => _${APP-CALLFORWARD-OFF}.,5,Playback(call-fwd-cancelled)
exten => _${APP-CALLFORWARD-OFF}.,6,Macro(hangupcall)
; cancels call forward for calling extension
exten => ${APP-CALLFORWARD-OFF},1,Macro(user-callerid)
exten => ${APP-CALLFORWARD-OFF},2,DBdel(CF/${CALLERID(number)})
exten => ${APP-CALLFORWARD-OFF},3,Answer
exten => ${APP-CALLFORWARD-OFF},4,Wait(1)
exten => ${APP-CALLFORWARD-OFF},5,Playback(call-fwd-cancelled)
exten => ${APP-CALLFORWARD-OFF},6,Macro(hangupcall)
;[app-CALLFORWARD-off-any]
exten => $(APP-CALLFORWARD-OFF-ANY),1,Answer
exten => $(APP-CALLFORWARD-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-CALLFORWARD-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-CALLFORWARD-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-OFF-ANY),n,dbDel(scw/${fromext})
exten => $(APP-CALLFORWARD-OFF-ANY),n,Playback(selective-call-waiting&for&extension)
exten => $(APP-CALLFORWARD-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-CALLFORWARD-OFF-ANY),n,Playback(cancelled)
exten => $(APP-CALLFORWARD-OFF-ANY),n,Macro(hangupcall,)
; dialed call forward on busy app - forwards calling extension when busy
exten => _${APP-CALLFORWARD-BUSY-ON}.,1,Macro(user-callerid)
exten => _${APP-CALLFORWARD-BUSY-ON}.,2,Set(DB(CFB/${CALLERID(number)})=${EXTEN:3})
exten => _${APP-CALLFORWARD-BUSY-ON}.,3,Answer
exten => _${APP-CALLFORWARD-BUSY-ON}.,4,Wait(1)
exten => _${APP-CALLFORWARD-BUSY-ON}.,5,Playback(call-fwd-on-busy)
exten => _${APP-CALLFORWARD-BUSY-ON}.,6,Playback(for)
exten => _${APP-CALLFORWARD-BUSY-ON}.,7,Playback(extension)
exten => _${APP-CALLFORWARD-BUSY-ON}.,8,SayDigits(${CALLERID(number)})
exten => _${APP-CALLFORWARD-BUSY-ON}.,9,Playback(is-set-to)
exten => _${APP-CALLFORWARD-BUSY-ON}.,10,SayDigits(${EXTEN:3})
exten => _${APP-CALLFORWARD-BUSY-ON}.,11,Macro(hangupcall)
; cancels call forward on busy for calling extension from any exten
;[APP-CALLFORWARD-busy-off]
include => APP-CALLFORWARD-busy-off-custom
exten => $(APP-CALLFORWARD-BUSY-OFF),1,Answer
exten => $(APP-CALLFORWARD-BUSY-OFF),n,Wait(1)
exten => $(APP-CALLFORWARD-BUSY-OFF),n,Macro(user-callerid,)
exten => $(APP-CALLFORWARD-BUSY-OFF),n,dbDel(CFB/${CALLERID(number)})
exten => $(APP-CALLFORWARD-BUSY-OFF),n,Playback(call-fwd-on-busy&de-activated)
exten => $(APP-CALLFORWARD-BUSY-OFF),n,Macro(hangupcall,)
exten => _$(APP-CALLFORWARD-BUSY-OFF).,1,Answer
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,Wait(1)
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,Set(fromext=${EXTEN:3})
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,dbDel(CFB/${fromext})
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,Playback(call-fwd-on-busy&for&extension)
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,SayDigits(${fromext})
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,Playback(cancelled)
exten => _$(APP-CALLFORWARD-BUSY-OFF).,n,Macro(hangupcall,)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),1,Answer
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,dbDel(scw/${fromext})
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Playback(call-fwd-on-busy&for&extension)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Playback(cancelled)
exten => $(APP-CALLFORWARD-BUSY-OFF-ANY),n,Macro(hangupcall,)
;[APP-CF-UNAVAIBLE-]
include => app-cf-unavailable-off-custom
exten => [APP-CF-UNAVAIBLE-OFF],1,Answer
exten => [APP-CF-UNAVAIBLE-OFF],n,Wait(1)
exten => [APP-CF-UNAVAIBLE-OFF],n,Macro(user-callerid,)
exten => [APP-CF-UNAVAIBLE-OFF],n,dbDel(CFU/${CALLERID(number)})
exten => [APP-CF-UNAVAIBLE-OFF],n,Playback(call-fwd-no-ans&de-activated)
exten => [APP-CF-UNAVAIBLE-OFF],n,Macro(hangupcall,)
exten => _[APP-CF-UNAVAIBLE-OFF].,1,Answer
exten => _[APP-CF-UNAVAIBLE-OFF].,n,Wait(1)
exten => _[APP-CF-UNAVAIBLE-OFF].,n,Set(fromext=${EXTEN:3})
exten => _[APP-CF-UNAVAIBLE-OFF].,n,dbDel(CFU/${fromext})
exten => _[APP-CF-UNAVAIBLE-OFF].,n,Playback(call-fwd-no-ans&for&extension)
exten => _[APP-CF-UNAVAIBLE-OFF].,n,SayDigits(${fromext})
exten => _[APP-CF-UNAVAIBLE-OFF].,n,Playback(cancelled)
exten => _[APP-CF-UNAVAIBLE-OFF].,n,Macro(hangupcall,)
;[APP-CF-UNAVAIBLE-ON]
exten => [APP-CF-UNAVAIBLE-ON],1,Answer
exten => [APP-CF-UNAVAIBLE-ON],n,Wait(1)
exten => [APP-CF-UNAVAIBLE-ON],n,Playback(call-fwd-no-ans)
exten => [APP-CF-UNAVAIBLE-ON],n,Playback(please-enter-your&extension)
exten => [APP-CF-UNAVAIBLE-ON],n,Read(fromext,then-press-pound,,)
exten => [APP-CF-UNAVAIBLE-ON],n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => [APP-CF-UNAVAIBLE-ON],n,Wait(1)
exten => [APP-CF-UNAVAIBLE-ON],n(startread),Playback(ent-target-attendant)
exten => [APP-CF-UNAVAIBLE-ON],n,Read(toext,then-press-pound,,)
exten => [APP-CF-UNAVAIBLE-ON],n,GotoIf($["foo${toext}"="foo"]?startread)
exten => [APP-CF-UNAVAIBLE-ON],n,Wait(1)
exten => [APP-CF-UNAVAIBLE-ON],n,Set(DB(CFU/${fromext})=${toext})
exten => [APP-CF-UNAVAIBLE-ON],n,Playback(call-fwd-no-ans&for&extension)
exten => [APP-CF-UNAVAIBLE-ON],n,SayDigits(${fromext})
exten => [APP-CF-UNAVAIBLE-ON],n,Playback(is-set-to)
exten => [APP-CF-UNAVAIBLE-ON],n,SayDigits(${toext})
exten => [APP-CF-UNAVAIBLE-ON],n,Macro(hangupcall,)
exten => _[APP-CF-UNAVAIBLE-ON].,1,Answer
exten => _[APP-CF-UNAVAIBLE-ON].,n,Wait(1)
exten => _[APP-CF-UNAVAIBLE-ON].,n,Macro(user-callerid,)
exten => _[APP-CF-UNAVAIBLE-ON].,n,Set(DB(CFU/${CALLERID(number)})=${EXTEN:3})
exten => _[APP-CF-UNAVAIBLE-ON].,n,Playback(call-fwd-no-ans&for&extension)
exten => _[APP-CF-UNAVAIBLE-ON].,n,SayDigits(${CALLERID(number)})
exten => _[APP-CF-UNAVAIBLE-ON].,n,Playback(is-set-to)
exten => _[APP-CF-UNAVAIBLE-ON].,n,SayDigits(${EXTEN:3})
exten => _[APP-CF-UNAVAIBLE-ON].,n,Macro(hangupcall,)
[app-selective-callforward-on]
; dialed call forward app - forwards calling extension
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,1,Macro(user-callerid)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,2,Set(DB(SCF/${CALLERID(number)})=${EXTEN:3})
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,3,Answer
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,4,Wait(1)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,5,Playback(selective-call-fwd-unconditional)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,6,Playback(for)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,7,Playback(extension)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,8,SayDigits(${CALLERID(number)})
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,9,Playback(is-set-to)
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,10,SayDigits(${EXTEN:3})
exten => _${APP-SELECTIVE-CALLFORWARD-ON}.,11,Macro(hangupcall)
; prompting selective call forward app - forwards entered extension
exten => ${APP-SELECTIVE-CALLFORWARD-ON},1,Answer
exten => ${APP-SELECTIVE-CALLFORWARD-ON},2,Wait(1)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},3,BackGround(please-enter-your)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},4,Playback(extension)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},5,Read(fromext,then-press-pound)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},6,Wait(1)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},7,BackGround(ent-target-attendant)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},8,Read(toext,then-press-pound)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},9,Wait(1)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},10,Set(DB(SCF/${fromext})=${toext})
exten => ${APP-SELECTIVE-CALLFORWARD-ON},11,Playback(selective-call-fwd-unconditional)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},12,Playback(for)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},13,Playback(extension)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},14,SayDigits(${fromext})
exten => ${APP-SELECTIVE-CALLFORWARD-ON},15,Playback(is-set-to)
exten => ${APP-SELECTIVE-CALLFORWARD-ON},16,SayDigits(${toext})
exten => ${APP-SELECTIVE-CALLFORWARD-ON},17,Macro(hangupcall)
; cancels dialed extension selective call forward
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,1,DBdel(SCF/${EXTEN:3})
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,2,Answer
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,3,Wait(1)
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,4,SayDigits(${EXTEN:3})
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,5,Playback(call-fwd-cancelled)
exten => _${APP-SELECTIVE-CALLFORWARD-OFF}.,6,Macro(hangupcall)
; cancels call forward for selective calling extension
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},1,Macro(user-callerid)
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},2,DBdel(SCF/${CALLERID(number)})
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},3,Answer
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},4,Wait(1)
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},5,Playback(call-fwd-cancelled)
exten => ${APP-SELECTIVE-CALLFORWARD-OFF},6,Macro(hangupcall)
; cancels call forward for selective calling extension from any exten
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),1,Answer
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Wait(1)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Wait(1)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,dbDel(scw/${fromext})
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(selective-call-waiting&for&extension)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Playback(cancelled)
exten => $(APP-SELECTIVE-CALLWAITING-OFF-ANY),n,Macro(hangupcall,)
exten => h,1,Hangup
[app-callforward-unavailable-on]
include => APP-CALLFORWARD-unavailable-on-custom
exten => $(APP-CALLFORWARD-UNAVIL-ON),1,Answer
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Playback(call-fwd-no-ans)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Playback(please-enter-your&extension)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Read(fromext,then-press-pound,,)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n(startread),Playback(ent-target-attendant)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Read(toext,then-press-pound,,)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,GotoIf($["foo${toext}"="foo"]?startread)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Set(DB(CFU/${fromext})=${toext})
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Playback(call-fwd-no-ans&for&extension)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,SayDigits(${fromext})
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Playback(is-set-to)
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,SayDigits(${toext})
exten => $(APP-CALLFORWARD-UNAVIL-ON),n,Macro(hangupcall,)
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,1,Answer
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Wait(1)
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Macro(user-callerid,)
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Set(DB(CFU/${CALLERID(number)})=${EXTEN:3})
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Playback(call-fwd-no-ans&for&extension)
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,SayDigits(${CALLERID(number)})
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Playback(is-set-to)
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,SayDigits(${EXTEN:3})
exten => _$(APP-CALLFORWARD-UNAVIL-ON).,n,Macro(hangupcall,)
;[APP-CALLFORWARD-unavailable-off]
include => APP-CALLFORWARD-unavailable-off-custom
exten => $(APP-CALLFORWARD-UNAVIL-OFF),1,Answer
exten => $(APP-CALLFORWARD-UNAVIL-OFF),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-OFF),n,Macro(user-callerid,)
exten => $(APP-CALLFORWARD-UNAVIL-OFF),n,dbDel(CFU/${CALLERID(number)})
exten => $(APP-CALLFORWARD-UNAVIL-OFF),n,Playback(call-fwd-no-ans&de-activated)
exten => $(APP-CALLFORWARD-UNAVIL-OFF),n,Macro(hangupcall,)
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,1,Answer
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,Wait(1)
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,Set(fromext=${EXTEN:3})
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,dbDel(CFU/${fromext})
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,Playback(call-fwd-no-ans&for&extension)
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,SayDigits(${fromext})
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,Playback(cancelled)
exten => _$(APP-CALLFORWARD-UNAVIL-OFF).,n,Macro(hangupcall,)
;[app-call-forward-unavil-off-any]
include => app-CALLFORWARD-UNAVIL-off-any-custom
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),1,Answer
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Playback(please-enter-your&extension)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Read(fromext,then-press-pound,,)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Wait(1)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,dbDel(scw/${fromext})
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Playback(call-fwd-no-ans&for&extension)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,SayDigits(${fromext})
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Playback(cancelled)
exten => $(APP-CALLFORWARD-UNAVIL-OFF-ANY),n,Macro(hangupcall,)
[app-anoncall-rejection]
;Activate's anonamous call rejection
exten => ${APP-ANONCALL-REJECTION-ON},1,Macro(user-callerid)
exten => ${APP-ANONCALL-REJECTION-ON},2,Set(DB(ACR/${CALLERIDNUM}=>YES)
exten => ${APP-ANONCALL-REJECTION-ON},3,Answer
exten => ${APP-ANONCALL-REJECTION-ON},4,Wait(1)
exten => ${APP-ANONCALL-REJECTION-ON},5,Playback(anon-call-rej)
exten => ${APP-ANONCALL-REJECTION-ON},6,Playback(activated)
exten => ${APP-ANONCALL-REJECTION-ON},7,Hangup
; cancels anonamous call blocking.
exten => ${APP-ANONCALL-REJECTION-OFF},1,Macro(user-callerid)
exten => ${APP-ANONCALL-REJECTION-OFF},2,DBdel(ACR/${CALLERIDNUM})
exten => ${APP-ANONCALL-REJECTION-OFF},3,Answer
exten => ${APP-ANONCALL-REJECTION-OFF},4,Wait(1)
exten => ${APP-ANONCALL-REJECTION-OFF},5,Playback(anon-call-rej)
exten => ${APP-ANONCALL-REJECTION-OFF},6,Playback(deactivated)
exten => ${APP-ANONCALL-REJECTION-OFF},7,Hangup
[app-blacklist]
exten => _${APP-BLACKLIST-ADD}.,1,Macro(user-callerid)
exten => _${APP-BLACKLIST-ADD}.,2,Set(DB(BLACKLIST/${CALLERID(number)})=${EXTEN:3})
exten => _${APP-BLACKLIST-ADD}.,3,Answer
exten => _${APP-BLACKLIST-ADD}.,4,Wait(1)
exten => _${APP-BLACKLIST-ADD}.,5,Playback(blacklist-add)
exten => _${APP-BLACKLIST-ADD}.,6,Playback(for)
exten => _${APP-BLACKLIST-ADD}.,7,Playback(extension)
exten => _${APP-BLACKLIST-ADD}.,8,SayDigits(${CALLERID(number)})
exten => _${APP-BLACKLIST-ADD}.,9,Playback(is-set-to)
exten => _${APP-BLACKLIST-ADD}.,10,SayDigits(${EXTEN:3})
exten => _${APP-BLACKLIST-ADD}.,11,Macro(hangupcall)
exten => _${APP-BLACKLIST-REMOVE}.,1,Answer
exten => _${APP-BLACKLIST-REMOVE}.,2,Wait(1)
exten => _${APP-BLACKLIST-REMOVE}.,3,Macro(user-callerid)
exten => _${APP-BLACKLIST-REMOVE}.,4,DBdel(BLACKLIST/${CALLERID(number)})
exten => _${APP-BLACKLIST-REMOVE}.,5,Playback(do-not-disturb)
exten => _${APP-BLACKLIST-REMOVE}.,6,Playback(de-activated)
exten => _${APP-BLACKLIST-REMOVE}.,7,Macro(hangupcall)
[app-calltrace]
; We can't have our timeouts or dial digits collide with other applications
; or extensions, so we build the app in pieces
exten => ${APP-CALLTRACE},1,Goto(app-calltrace-perform,s,1)
[app-calltrace-perform]
exten => s,1,Macro(user-callerid)
exten => s,2,Answer
exten => s,3,Wait(1)
exten => s,4,Background(info-about-last-call)
exten => s,5,Background(telephone-number)
exten => s,6,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => s,7,GotoIf($[${lastcaller}]?8:14)
exten => s,8,SayDigits(${lastcaller})
exten => s,9,Set(TIMEOUT(digit)=3)
exten => s,10,Set(TIMEOUT(response)=7)
exten => s,11,Background(to-call-this-number)
exten => s,12,Background(press-1)
exten => s,13,Goto(16)
exten => s,14,Playback(from-unknown-caller)
exten => s,15,Macro(hangupcall)
exten => s,16,NoOp
exten => 1,1,Goto(from-internal,${lastcaller},1);
exten => i,1,Playback(vm-goodbye)
exten => i,2,Macro(hangupcall)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Macro(hangupcall)
[app-userlogonoff]
exten => ${APP-USERLOGON},1,Macro(user-logon)
exten => ${APP-USERLOGON},2,Hangup()
exten => _${APP-USERLOGON}.,1,Macro(user-logon,${EXTEN:3})
exten => _${APP-USERLOGON}.,2,Hangup()
exten => ${APP-USERLOGOFF},1,Macro(user-logoff)
exten => ${APP-USERLOGOFF},2,Hangup()