All pastes #253398 Raw Edit

Miscellany

public text v1 · immutable
#253398 ·published 2006-11-20 18:56 UTC
rendered paste body

; # - Company directory
exten => #,1,Answer
exten => #,n,Wait(1)
exten => #,n,AGI(directory,${DIR-CONTEXT},from-did-direct,${DIRECTORY:0:1}${DIRECTORY_OPTS}o)
exten => #,n,Playback(vm-goodbye)
exten => #,n,Hangup

;Stuff I added for line testing.
; *1 - System Status
exten => *1,1,Answer 
exten => *1,n,Wait(.5) 
exten => *1,n,Playback(/usr/local/share/asterisk/sounds/systemstatus) 
exten => *1,n,Wait(.5) 
exten => *1,n,Hangup

; **1 - System status record
exten => **1,1,Answer 
exten => **1,n,Wait(2) 
exten => **1,n,Record(/usr/local/share/sounds/systemstatus:gsm) 
exten => **1,n,Wait(2) 
exten => **1,n,Playback(/usr/local/share/asterisk/sounds/systemstatus) 
exten => **1,n,Wait(2) 
exten => **1,n,Hangup

;*40 - Change Forward-To Number for Customer Programmable Call Forwarding Busy Line
exten => _*40.,1,Answer
exten => _*40.,n,Wait(1)
exten => _*40.,n,Macro(user-callerid,)
exten => _*40.,n,Set(DB(CPCFB/${CALLERID(number)})=${EXTEN:3})
exten => _*40.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*40.,n,SayDigits(${CALLERID(number)})
exten => _*40.,n,Playback(is-set-to)
exten => _*40.,n,SayDigits(${EXTEN:3})
exten => _*40.,n,Macro(hangupcall,)

;n/a *41 - Six-Way Conference Calling Activation - reassign

;*42 - Change Forward-To Number for Customer Programmable Call Forwarding Don't Answer
exten => _*42.,1,Answer
exten => _*42.,n,Wait(1)
exten => _*42.,n,Macro(user-callerid,)
exten => _*42.,n,Set(DB(CPCFDA/${CALLERID(number)})=${EXTEN:3})
exten => _*42.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*42.,n,SayDigits(${CALLERID(number)})
exten => _*42.,n,Playback(is-set-to)
exten => _*42.,n,SayDigits(${EXTEN:3})
exten => _*42.,n,Macro(hangupcall,

;n/a *43 - Drop last member of Six-Way Conference Call - reassign
;n/a *44 - Voice Activated Dialing - work in progress
;n/a *45 - Voice Dialing Extended Dial Tone - work in progress
;n/a *46 - French Voice Activated Network Control
;n/a *47 - Override Feature Authorization -work in profress 

;*48 - Override Do Not Disturb
exten => _*48XXXX,1,Dial(SIP/${ARG1}:3|20|r) ; 20sec timeout
exten => _*48XXXX,n,Voicemail(u${ARG1})
exten => _*48XXXX,n,Hangup
exten => _**48NXXNXXNXXXX,1,Dial(SIP/${ARG1}:4|20|r) ; 20sec timeout
exten => _**48NXXNXXNXXXX,n,Voicemail(u${ARG1})
exten => _**48NXXNXXNXXXX,n,Hangup

;n/a *49 - Long Distance Signal - Reassign
;n/a *50 - Voice Activated Network Control - Reassign

*51 - Who Called Me?
exten => *51,1,Macro(user-callerid)
exten => *51,2,Answer
exten => *51,3,Wait(1)
exten => *51,4,Background(info-about-last-call)
exten => *51,5,Background(telephone-number)
exten => *51,6,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => *51,7,GotoIf($[${lastcaller}]?8:10)
exten => *51,8,SayDigits(${lastcaller})
exten => *51,9,Macro(hangupcall)
exten => *51,10,Playback(from-unknown-caller)
exten => *51,11,Playback(unidentified-no-callback)
exten => *51,12,Macro(hangupcall)

;n/a *52 - Single Line Variety Package (SVP) - Call Hold
;n/a *53 - Single Line Variety Package (SVP) - Distinctive Ring B
;n/a *54 - Single Line Variety Package (SVP) - Distinctive Ring C
;n/a *55 - Single Line Variety Package (SVP) - Distinctive Ring D
;n/a *56 - Change Forward-To Number for ISDN Call Forwarding
;n/a *57 - ISDN Customer Originated Trace
;n/a *58 - ISDN MBKS Manual Exclusion Activation
;n/a *59 - ISDN MBKS Manual Exclusion Deactivation

;*60 - Selective Call Rejection Activation aka Blacklist Add
exten => _*46.,1,Macro(user-callerid)
exten => _*46.,n,Set(DB(BLACKLIST/${CALLERID(number)})=${EXTEN:3})
exten => _*46.,n,Answer
exten => _*46.,n,Wait(1)
exten => _*46.,n,Playback(blacklist-add&for&extension)
exten => _*46.,n,SayDigits(${CALLERID(number)})
exten => _*46.,n,Playback(is-set-to)
exten => _*46.,n,SayDigits(${EXTEN:3})
exten => _*46.,n,Macro(hangupcall)

;*61 - Distinctive Ringing/Call Waiting Activation

;*62 - Selective Call Waiting
exten => *62,1,Answer
exten => *62,n,Wait(1)
exten => *62,n,Macro(user-callerid)
exten => *62,n,Set(DB(SCW/${CALLERID(number)})=ENABLED)
exten => *62,n,Playback(selective-call-waiting&activated)
exten => *62,n,Macro(hangupcall)
exten => _*62.,1,Macro(user-callerid)
exten => _*62.,n,Set(DB(SCW/${CALLERID(number)})=${EXTEN:3})
exten => _*62.,n,Answer
exten => _*62.,n,Wait(1)
exten => _*62.,n,Playback(selective-call-waiting-unconditional&for&extension)
exten => _*62.,n,SayDigits(${CALLERID(number)})
exten => _*62.,n,Playback(is-set-to)
exten => _*62.,n,SayDigits(${EXTEN:3})
exten => _*62.,n,Macro(hangupcall)

;*63 - Selective Call Forwarding Activation
exten => *63,1,Answer
exten => *63,n,Wait(1)
exten => *63,n,Macro(user-callerid)
exten => *63,n,Set(DB(SCF/${CALLERID(number)})=ENABLED)
exten => *63,n,Playback(selective-call-waiting&activated)
exten => *63,n,Macro(hangupcall)
exten => _*63.,1,Set(DB(SCF/${CALLERIDNUM})=${EXTEN:3})})
exten => _*63.,n,Answer
exten => _*63,n,Wait(1)
exten => _*63.,n,Playback(selective-call-forwarding&for&extension)
exten => _*63.,n,SayDigits(${CALLERIDNUM})
exten => _*63.,n,Playback(is-set-to)
exten => _*63.,n,SayDigits(${EXTEN:3})
exten => _*63.,n,Macro(hangupcall)

;*64 - Selective Call Acceptance Activation
exten => *64,1,Answer
exten => *64,n,Wait(1)
exten => *64,n,Macro(user-callerid)
exten => *64,n,Set(DB(SCA/${CALLERID(number)})=ENABLED)
exten => *64,n,Playback(selective-call-accept&activated)
exten => *64,n,Macro(hangupcall)
exten => _*64.,1,Macro(user-callerid)
exten => _*64.,n,Set(DB(SCA/${CALLERID(number)})=${EXTEN:3})
exten => _*64.,n,Answer
exten => _*64.,n,Wait(1)
exten => _*64.,n,Playback(selective-call-accept&for&extension)
exten => _*64.,n,SayDigits(${CALLERID(number)})
exten => _*64.,n,Playback(is-set-to)
exten => _*64.,n,SayDigits(${EXTEN:3})
exten => _*64.,n,Macro(hangupcall)

;*65 - Calling Number Delivery Activation 
exten => *65,1,Macro(user-callerid)
exten => *65,n,Set(DB(CIDB/${CALLERIDNUM}=YES)
exten => *65,n,Answer
exten => *65,n,Wait()
exten => *65,n,Playback(caller-id-blk&activated)
exten => *65,n,Hangup

;n/a *66 - Automatic Callback Activation

;*67 - Calling Number Delivery Blocking
exten => *67,1,Answer
exten => *67,n,Wait(1)
exten => *67,n,Macro(user-callerid) 
exten => *67,1,Set(DB(CIDB/${CALLERIDNUM}=YES)
exten => *67,n,Answer
exten => *67,n,Wait(1)
exten => *67,n,Playback(caller-ib-blockin&activated)
exten => *67,n,Hangup

;*68 - Call Forwarding Busy Line/Don't Answer Activation
exten => *68,1,Answer
exten => *68,n,Wait(1)
exten => *68,n,Playback(call-fwd-on-busy&please-enter-your&extension)
exten => *68,n,Read(fromext,then-press-pound,,)
exten => *68,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *68,n,Wait(1)
exten => *68,n(startread),Playback(ent-target-attendant)
exten => *68,n,Read(toext,then-press-pound,,)
exten => *68,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *68,n,Wait(1)
exten => *68,n,Set(DB(CFBDA${fromext})=${toext})
exten => *68,n,Playback(call-fwd-on-busy&for&extension)
exten => *68,n,SayDigits(${fromext})
exten => *68,n,Playback(is-set-to)
exten => *68,n,SayDigits(${toext})
exten => *68,n,Macro(hangupcall,)
exten => _*68.,1,Answer
exten => _*68.,n,Wait(1)
exten => _*68.,n,Macro(user-callerid,)
exten => _*68.,n,Set(DB(CFBDA/${CALLERID(number)})=${EXTEN:3})
exten => _*68.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*68.,n,SayDigits(${CALLERID(number)})
exten => _*68.,n,Playback(is-set-to)
exten => _*68.,n,SayDigits(${EXTEN:3})
exten => _*68.,n,Macro(hangupcall,)

;*69 - Automatic Recall Activation
exten => *69,1,Macro(user-callerid)
exten => *69,2,Answer
exten => *69,3,Wait(1)
exten => *69,4,Background(info-about-last-call)
exten => *69,5,Background(telephone-number)
exten => *69,6,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => *69,7,GotoIf($[${lastcaller}]?8:14)
exten => *69,8,SayDigits(${lastcaller})
exten => *69,9,Set(TIMEOUT(digit)=3)
exten => *69,10,Set(TIMEOUT(response)=7)
exten => *69,11,Background(to-call-this-number&press-1)
exten => *69,13,Goto(16)
exten => *69,14,Playback(from-unknown-caller)
exten => *69,15,Playback(unidentified-no-callback)
exten => *69,16,Macro(hangupcall)
exten => *69,17,NoOp
exten => 1,1,Goto(from-internal,${lastcaller},1);
exten => i,1,Playback(pbx-invalid)
exten => i,n,Playback(vm-goodbye)
exten => i,n,Macro(hangupcall)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Macro(hangupcall)

;*70 - Call Waiting Activation
exten => *70,1,Set(DB(CW/${CALLERIDNUM}=YES)})
exten => *70,n,Answer
exten => *70,n,Playback(call-waiting)
exten => *70,n,Playback(activated)
exten => *70,n,Hangup

;*71 - Call Waiting Deactivation
exten => *71,1,DBdel(CW/${CALLERIDNUM})
exten => *71,n,Answer
exten => *71,n,Playback(call-waiting)
exten => *71,n,Playback(de-activated)
exten => *71,n,Hangup

;*72 - Call Forwarding Activation
exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Playback(call-fwd-unconditional)
exten => *72,n,Playback(please-enter-your&extension)
exten => *72,n,Read(fromext,then-press-pound,,)
exten => *72,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *72,n,Wait(1)
exten => *72,n(startread),Playback(ent-target-attendant)
exten => *72,n,Read(toext,then-press-pound,,)
exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Playback(call-fwd-unconditional&for&extension)
exten => *72,n,SayDigits(${fromext})
exten => *72,n,Playback(is-set-to)
exten => *72,n,SayDigits(${toext})
exten => *72,n,Macro(hangupcall,)
exten => _*72.,1,Answer
exten => _*72.,n,Wait(1)
exten => _*72.,n,Macro(user-callerid,)
exten => _*72.,n,Set(DB(CF/${CALLERID(number)})=${EXTEN:3})
exten => _*72.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*72.,n,SayDigits(${CALLERID(number)})
exten => _*72.,n,Playback(is-set-to)
exten => _*72.,n,SayDigits(${EXTEN:3})
exten => _*72.,n,Macro(hangupcall,)

;*73 - Call Forwarding Deactivation
exten => *73,1,Answer
exten => *73,n,Wait(1)
exten => *73,n,Macro(user-callerid,)
exten => *73,n,dbDel(CF/${CALLERID(number)})
exten => *73,n,Playback(call-fwd-unconditional&de-activated)
exten => *73,n,Macro(hangupcall,)
exten => _*73,1,Answer
exten => _*73,n,Wait(1)
exten => _*73,n,Set(fromext=${EXTEN:3})
exten => _*73,n,dbDel(CF/${fromext})
exten => _*73,n,Playback(call-fwd-unconditional&for&extension)
exten => _*73,n,SayDigits(${fromext})
exten => _*73,n,Playback(cancelled)
exten => _*73,n,Macro(hangupcall,)
exten => **73,1,Answer
exten => **73,n,Wait(1)
exten => **73,n,Playback(please-enter-your&extension)
exten => **73,n,Read(fromext,then-press-pound,,)
exten => **73,n,Wait(1)
exten => **73,n,dbDel(CF/${fromext})
exten => **73,n,Playback(call-fwd-unconditional&for&extension)
exten => **73,n,SayDigits(${fromext})
exten => **73,n,Playback(cancelled)
exten => **73,n,Macro(hangupcall,)

;*74 - Speed Calling 8 - Change List

;*75 - Speed Calling 30 - Change List

;*76 - Advanced Call Waiting Deluxe
exten => *76,1,Answer
exten => *76,n,Wait(1)
exten => *76,n,Macro(user-callerid)
exten => *76,n,DBdel(ACW/${CALLERID(number)})
exten => *76,n,Playback(selective-call-waiting)
exten => *76,n,Playback(de-activated)
exten => *76,n,Macro(hangupcall)
exten => **76,1,Answer
exten => **76,n,Wait(1)
exten => **76,n,Playback(please-enter-your&extension)
exten => **76,n,Read(fromext,then-press-pound,,)
exten => **76,n,Wait(1)
exten => **76,n,dbDel(ACW/${fromext})
exten => **76,n,Playback(selective-call-waiting&for&extension)
exten => **76,n,SayDigits(${fromext})
exten => **76,n,Playback(cancelled)
exten => **76,n,Macro(hangupcall,)

;*77 - Anonymous Call Rejection Activation
exten => *77,1,Answer
exten => *77,n,Wait(1)
exten => *77,n,Macro(user-callerid)
exten => *77,n,Set(DB(ACR/${CALLERIDNUM}=>YES)
exten => *77,n,Playback(anon-call-rej&activated)
exten => *77.,n,Macro(hangupcall)

;*78 - Do Not Disturb Activation
exten => *78,1,Answer
exten => *78,n,Wait(1)
exten => *78,n,Macro(user-callerid,)
exten => *78,n,Set(DB(DND/${CALLERIDNUM})=YES)})
exten => *78,n,Playback(do-not-disturb&activated)
exten => _*82.,n,Macro(hangupcall)

;*79 - Do Not Disturb Deactivation
exten => *79,1,Answer
exten => *79,n,Wait(1)
exten => *79,n,Macro(user-callerid,)
exten => *79,n,DBdel(DND/${CALLERIDNUM})
exten => *79,n,Playback(do-not-disturb&de-activated)
exten => *79,n,Macro(hangupcall)

;*80 - Selective Call Rejection Deactivation aka Blacklist Remove
exten => _*80.,1,Answer
exten => _*80.,n,Wait(1)
exten => _*80.,n,Macro(user-callerid)
exten => _*80.,n,DBdel(BLACKLIST/${CALLERID(number)})
exten => _*80.,n,Playback(blacklist-remove)
exten => _*80.,n,Macro(hangupcall)

;*81 - Distinctive Ringing/Call Waiting Deactivation

;*82 - 

;*83 - Selective Call Forwarding Deactivation
exten => *83,1,Answer
exten => *83,n,Wait(1)
exten => *83,n,DBdel(SCF/${CALLERIDNUM})
exten => *83,n,Playback(selective-call-fwd)
exten => *83,n,Wait(1)
exten => *83,n,Playback(deactivated)
exten => *83.,n,Macro(hangupcall)

;*84 - Selective Call Acceptance Deactivation
exten => *84,1,Answer
exten => *84,n,Wait(1)
exten => *84,n,Macro(user-callerid)
exten => *84,n,DBdel(SCA/${CALLERID(number)})
exten => *84,n,Playback(selective-call-accept)
exten => *84,n,Playback(de-activated)
exten => *84,n,Macro(hangupcall)
exten => **84,1,Answer
exten => **84,n,Wait(1)
exten => **84,n,Playback(please-enter-your&extension)
exten => **84,n,Read(fromext,then-press-pound,,)
exten => **84,n,Wait(1)
exten => **84,n,dbDel(SCA/${fromext})
exten => **84,n,Playback(selective-call-accept&for&extension)
exten => **84,n,SayDigits(${fromext})
exten => **84,n,Playback(cancelled)
exten => **84,n,Macro(hangupcall,)

;*85 - Calling Number Delivery Deactivation
exten => *85,1,Answer
exten => *85,n,Wait(1)
exten => *85,n,Macro(user-callerid)
exten => *85,1,DBdel(CIDB/${CALLERIDNUM})
exten => *85,n,Answer
exten => *85,n,Wait(1)
exten => *85,n,Playback(caller-id-blocking&de-activated)
exten => *85,n,Hangup

;n/a *86 - Automatic Callback Deactivation - Reassign

;*87 - Anonymous Call Rejection Deactivation
exten => *87,1,Answer
exten => *87,n,Wait(1)
exten => *87,n,Macro(user-callerid)
exten => *87,n,DBdel(ACR/${CALLERIDNUM})
exten => *87,n,Playback(anon-call-rej)
exten => *87,n,Playback(deactivated)
exten => *87,n,Hangup

;*88 - Call Forwarding Busy Line/Don't Answer Deactivation
exten => *88,1,Answer
exten => *88,n,Wait(1)
exten => *88,n,Macro(user-callerid,)
exten => *88,n,dbDel(CFBDA/${CALLERID(number)})
exten => *88,n,Playback(call-fwd-on-busy&de-activated)
exten => *88,n,Macro(hangupcall,)
exten => _*88.,1,Answer
exten => _*88.,n,Wait(1)
exten => _*88.,n,Set(fromext=${EXTEN:3})
exten => _*88.,n,dbDel(CFB/${fromext})
exten => _*88.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*88.,n,SayDigits(${fromext})
exten => _*88.,n,Playback(cancelled)
exten => _*88.,n,Macro(hangupcall,)
exten => **88,1,Answer
exten => **88,n,Wait(1)
exten => **88,n,Playback(please-enter-your&extension)
exten => **88,n,Read(fromext,then-press-pound,,)
exten => **88,n,Wait(1)
exten => **88,n,dbDel(CFBDA/${fromext})
exten => **88,n,Playback(call-fwd-on-busy&for&extension)
exten => **88,n,SayDigits(${fromext})
exten => **88,n,Playback(cancelled)
exten => **88,n,Macro(hangupcall,)

;n/a *89 - Automatic Recall Deactivation - Reassign

;*90 - Customer Programmable Call Forwarding Busy Line Activation
exten => *90,1,Answer
exten => *90,n,Wait(1)
exten => *90,n,Playback(call-fwd-on-busy)
exten => *90,n,Playback(please-enter-your&extension)
exten => *90,n,Read(fromext,then-press-pound,,)
exten => *90,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *90,n,Wait(1)
exten => *90,n,(startread),Playback(ent-target-attendant)
exten => *90,n,Read(toext,then-press-pound,,)
exten => *90,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *90,n,Wait(1)
exten => *90,n,Set(DB(CPCFB/${fromext})=${toext})
exten => *90,n,Playback(call-fwd-on-busy&for&extension)
exten => *90,n,SayDigits(${fromext})
exten => *90,n,Playback(is-set-to)
exten => *90,n,SayDigits(${toext})
exten => *90,n,Macro(hangupcall,)
exten => _*90.,1,Answer
exten => _*90.,n,Wait(1)
exten => _*90.,n,Macro(user-callerid,)
exten => _*90.,n,Set(DB(CPCFB/${CALLERID(number)})=${EXTEN:3})
exten => _*90.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*90.,n,SayDigits(${CALLERID(number)})
exten => _*90.,n,Playback(is-set-to)
exten => _*90.,n,SayDigits(${EXTEN:3})
exten => _*90.,n,Macro(hangupcall,)

;*91 - Customer Programmable Call Forwarding Busy Line Deactivation
exten => *91,1,Answer
exten => *91,n,Wait(1)
exten => *91,n,Macro(user-callerid,)
exten => *91,n,dbDel(CPCFB/${CALLERID(number)})
exten => *91,n,Playback(call-fwd-on-busy&de-activated)
exten => *91,n,Macro(hangupcall,)
exten => _*91.,1,Answer
exten => _*91.,n,Wait(1)
exten => _*91.,n,Set(fromext=${EXTEN:3})
exten => _*91.,n,dbDel(CPCFB/${fromext})
exten => _*91.,n,Playback(cust-call-fwd-on-busy&for&extension)
exten => _*91.,n,SayDigits(${fromext})
exten => _*91.,n,Playback(cancelled)
exten => _*91.,n,Macro(hangupcall,)
exten => **91,1,Answer
exten => **91,n,Wait(1)
exten => **91,n,Playback(please-enter-your&extension)
exten => **91,n,Read(fromext,then-press-pound,,)
exten => **91,n,Wait(1)
exten => **91,n,dbDel(CPCFB/${fromext})
exten => **91,n,Playback(cust-call-fwd-on-busy&for&extension)
exten => **91,n,SayDigits(${fromext})
exten => **91,n,Playback(cancelled)
exten => **91,n,Macro(hangupcall,)

;*92 - Customer Programmable Call Forwarding Don't Answer Activation
exten => *92,1,Answer
exten => *92,n,Wait(1)
exten => *92,n,Playback(cust-pro-call-fwd-no-ans)
exten => *92,n,Playback(please-enter-your&extension)
exten => *92,n,Read(fromext,then-press-pound,,)
exten => *92,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *92,n,Wait(1)
exten => *92,n(startread),Playback(ent-target-attendant)
exten => *92,n,Read(toext,then-press-pound,,)
exten => *92,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *92,n,Wait(1)
exten => *92,n,Set(DB(CPCFN/${fromext})=${toext})
exten => *92,n,Playback(call-fwd-no-ans&for&extension)
exten => *92,n,SayDigits(${fromext})
exten => *92,n,Playback(is-set-to)
exten => *92,n,SayDigits(${toext})
exten => *92,n,Macro(hangupcall,)
exten => _*92.,1,Answer
exten => _*92.,n,Wait(1)
exten => _*92.,n,Macro(user-callerid,)
exten => _*92.,n,Set(DB(CPCFNA/${CALLERID(number)})=${EXTEN:3})
exten => _*92.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*92.,n,SayDigits(${CALLERID(number)})
exten => _*92.,n,Playback(is-set-to)
exten => _*92.,n,SayDigits(${EXTEN:3})
exten => _*92.,n,Macro(hangupcall,)

;*93 - Customer Programmable Call Forwarding Don't Answer Deactivation
exten => *93,1,Answer
exten => *93,n,Wait(1)
exten => *93,n,Macro(user-callerid,)
exten => *53,n,dbDel(CPCFNA/${CALLERID(number)})
exten => *53,n,Playback(call-fwd-no-ans&de-activated)
exten => *93,n,Macro(hangupcall,)
exten => _*93.,1,Answer
exten => _*93.,n,Wait(1)
exten => _*93.,n,Set(fromext=${EXTEN:3})
exten => _*93.,n,dbDel(CPCFN/${fromext})
exten => _*93.,n,Playback(cust-pro-call-fwd-no-ans&for&extension)
exten => _*93.,n,SayDigits($/{fromext/})
exten => _*93.,n,Playback(cancelled)
exten => _*93.,n,Macro(hangupcall,)
exten => **93,1,Answer
exten => **93,n,Wait(1)
exten => **93,n,Playback(please-enter-your&extension)
exten => **93,n,Read(fromext,then-press-pound,,)
exten => **93,n,Wait(1)
exten => **93,n,dbDel(CPCFNA/${fromext})
exten => **93,n,Playback(cust-pro-call-fwd-unconditional&for&extension)
exten => **93,n,SayDigits(${fromext})
exten => **93,n,Playback(cancelled)
exten => **93,n,Macro(hangupcall,)

;*96 Voicemail Acivate/Deactivate
exten => *96,1,Answer
exten => *96,n,Wait(1)
exten => *96,n,Macro(user-callerid,)
exten => *96,n,DBdel(VM/${CALLERIDNUM})
exten => *96,n,Wait(1)
exten => *96,n,Playback(deactivated)
exten => *96,n,Hangup
exten => **96,1,Answer
exten => **96,n,Wait(1)
exten => **96,n,Macro(user-callerid,)
exten => **96,n,Set(DB(VM/${CALLERIDNUM})=YES)})
exten => **96,n,Wait(.5)
exten => **96,n,Playback(activated)
exten => **96,n,Hangup

;*97
exten => *97,1,Answer
exten => *97,n,Wait(1)
exten => *97,n,Macro(user-callerid,)
exten => *97,n,Macro(get-vmcontext,${CALLERID(num)})
exten => *97,n,VoiceMailMain(${CALLERID(num)}@${VMCONTEXT})
exten => *97,n,Macro(hangupcall,)

;*98
exten => *98,1,Answer
exten => *98,n,Wait(1)
exten => *98,n,VoiceMailMain()
exten => *98,n,Macro(hangupcall,)
exten => _*98.,1,Answer
exten => _*98.,n,Wait(1)
exten => _*98.,n,Macro(get-vmcontext,${EXTEN:3})
exten => _*98.,n,VoiceMailMain(${EXTEN:3}@${VMCONTEXT})
exten => _*98.,n,Macro(hangupcall,)

[app-dnd-on]
exten => *78,1,Answer
exten => *78,n,Wait(1)
exten => *78,n,Macro(user-callerid,)
exten => *78,n,Set(DB(DND/${CALLERID(number)})=YES)
exten => *78,n,Playback(do-not-disturb&activated)
exten => *78,n,Macro(hangupcall,)

[app-recordings]
exten => *77,1,Macro(user-callerid,)
exten => *77,n,Wait(2)
exten => *77,n,Macro(systemrecording,dorecord)
exten => *99,1,Macro(user-callerid,)
exten => *99,n,Wait(2)
exten => *99,n,Macro(systemrecording,docheck)

[app-dialvm]
exten => *98,1,Answer
exten => *98,n,Wait(1)
exten => *98,n,VoiceMailMain()
exten => *98,n,Macro(hangupcall,)
exten => _*98.,1,Answer
exten => _*98.,n,Wait(1)
exten => _*98.,n,Macro(get-vmcontext,${EXTEN:3})
exten => _*98.,n,VoiceMailMain(${EXTEN:3}@${VMCONTEXT})
exten => _*98.,n,Macro(hangupcall,)

[app-vmmain]
exten => *97,1,Answer
exten => *97,n,Wait(1)
exten => *97,n,Macro(user-callerid,)
exten => *97,n,Macro(get-vmcontext,${CALLERID(num)})
exten => *97,n,VoiceMailMain(${CALLERID(num)}@${VMCONTEXT})
exten => *97,n,Macro(hangupcall,)

[app-calltrace]
exten => *69,1,Goto(app-calltrace-perform,s,1)

[app-calltrace-perform]
exten => s,1,Macro(user-callerid,)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(info-about-last-call&telephone-number)
exten => s,n,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => s,n,GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}" = "unknown" ] ]?noinfo)
exten => s,n,SayDigits(${lastcaller})
exten => s,n,Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=7)
exten => s,n,Background(to-call-this-number&press-1)
exten => s,n,Goto(fin)
exten => s,n(noinfo),Playback(from-unknown-caller)
exten => s,n,Macro(hangupcall,)
exten => s,n(fin),Noop(Waiting for input)
exten => 1,1,Goto(from-internal,${lastcaller},1)
exten => i,1,Playback(vm-goodbye)
exten => i,n,Macro(hangupcall,)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Macro(hangupcall,)


[app-callwaiting-cwon]
exten => *70,1,Answer
exten => *70,n,Wait(1)
exten => *70,n,Macro(user-callerid,)
exten => *70,n,Set(DB(CW/${CALLERID(number)})=ENABLED)
exten => *70,n,Playback(call-waiting&activated)
exten => *70,n,Macro(hangupcall,)

[app-callwaiting-cwoff]
exten => *71,1,Answer
exten => *71,n,Wait(1)
exten => *71,n,Macro(user-callerid,)
exten => *71,n,dbDel(CW/${CALLERID(number)})
exten => *71,n,Playback(call-waiting&de-activated)
exten => *71,n,Macro(hangupcall,)

[app-cf-busy-off]
exten => *91,1,Answer
exten => *91,n,Wait(1)
exten => *91,n,Macro(user-callerid,)
exten => *91,n,dbDel(CFB/${CALLERID(number)})
exten => *91,n,Playback(call-fwd-on-busy&de-activated)
exten => *91,n,Macro(hangupcall,)
exten => _*91.,1,Answer
exten => _*91.,n,Wait(1)
exten => _*91.,n,Set(fromext=${EXTEN:3})
exten => _*91.,n,dbDel(CFB/${fromext})
exten => _*91.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*91.,n,SayDigits(${fromext})
exten => _*91.,n,Playback(cancelled)
exten => _*91.,n,Macro(hangupcall,)

[app-cf-busy-off-any]
exten => *92,1,Answer
exten => *92,n,Wait(1)
exten => *92,n,Playback(please-enter-your&extension)
exten => *92,n,Read(fromext,then-press-pound,,)
exten => *92,n,Wait(1)
exten => *92,n,dbDel(CFB/${fromext})
exten => *92,n,Playback(call-fwd-on-busy&for&extension)
exten => *92,n,SayDigits(${fromext})
exten => *92,n,Playback(cancelled)
exten => *92,n,Macro(hangupcall,)

[app-cf-busy-on]
exten => *90,1,Answer
exten => *90,n,Wait(1)
exten => *90,n,Playback(call-fwd-on-busy)
exten => *90,n,Playback(please-enter-your&extension)
exten => *90,n,Read(fromext,then-press-pound,,)
exten => *90,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *90,n,Wait(1)
exten => *90,n(startread),Playback(ent-target-attendant)
exten => *90,n,Read(toext,then-press-pound,,)
exten => *90,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *90,n,Wait(1)
exten => *90,n,Set(DB(CFB/${fromext})=${toext})
exten => *90,n,Playback(call-fwd-on-busy&for&extension)
exten => *90,n,SayDigits(${fromext})
exten => *90,n,Playback(is-set-to)
exten => *90,n,SayDigits(${toext})
exten => *90,n,Macro(hangupcall,)
exten => _*90.,1,Answer
exten => _*90.,n,Wait(1)
exten => _*90.,n,Macro(user-callerid,)
exten => _*90.,n,Set(DB(CFB/${CALLERID(number)})=${EXTEN:3})
exten => _*90.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*90.,n,SayDigits(${CALLERID(number)})
exten => _*90.,n,Playback(is-set-to)
exten => _*90.,n,SayDigits(${EXTEN:3})
exten => _*90.,n,Macro(hangupcall,)

[app-cf-off]
exten => *73,1,Answer
exten => *73,n,Wait(1)
exten => *73,n,Macro(user-callerid,)
exten => *73,n,dbDel(CF/${CALLERID(number)})
exten => *73,n,Playback(call-fwd-unconditional&de-activated)
exten => *73,n,Macro(hangupcall,)
exten => _*73.,1,Answer
exten => _*73.,n,Wait(1)
exten => _*73.,n,Set(fromext=${EXTEN:3})
exten => _*73.,n,dbDel(CF/${fromext})
exten => _*73.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*73.,n,SayDigits(${fromext})
exten => _*73.,n,Playback(cancelled)
exten => _*73.,n,Macro(hangupcall,)

[app-cf-off-any]
exten => *74,1,Answer
exten => *74,n,Wait(1)
exten => *74,n,Playback(please-enter-your&extension)
exten => *74,n,Read(fromext,then-press-pound,,)
exten => *74,n,Wait(1)
exten => *74,n,dbDel(CF/${fromext})
exten => *74,n,Playback(call-fwd-unconditional&for&extension)
exten => *74,n,SayDigits(${fromext})
exten => *74,n,Playback(cancelled)
exten => *74,n,Macro(hangupcall,)


[app-cf-on]
exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Playback(call-fwd-unconditional)
exten => *72,n,Playback(please-enter-your&extension)
exten => *72,n,Read(fromext,then-press-pound,,)
exten => *72,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *72,n,Wait(1)
exten => *72,n(startread),Playback(ent-target-attendant)
exten => *72,n,Read(toext,then-press-pound,,)
exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Playback(call-fwd-unconditional&for&extension)
exten => *72,n,SayDigits(${fromext})
exten => *72,n,Playback(is-set-to)
exten => *72,n,SayDigits(${toext})
exten => *72,n,Macro(hangupcall,)
exten => _*72.,1,Answer
exten => _*72.,n,Wait(1)
exten => _*72.,n,Macro(user-callerid,)
exten => _*72.,n,Set(DB(CF/${CALLERID(number)})=${EXTEN:3})
exten => _*72.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*72.,n,SayDigits(${CALLERID(number)})
exten => _*72.,n,Playback(is-set-to)
exten => _*72.,n,SayDigits(${EXTEN:3})
exten => _*72.,n,Macro(hangupcall,)

[app-cf-unavailable-off]
exten => *53,1,Answer
exten => *53,n,Wait(1)
exten => *53,n,Macro(user-callerid,)
exten => *53,n,dbDel(CFU/${CALLERID(number)})
exten => *53,n,Playback(call-fwd-no-ans&de-activated)
exten => *53,n,Macro(hangupcall,)
exten => _*53.,1,Answer
exten => _*53.,n,Wait(1)
exten => _*53.,n,Set(fromext=${EXTEN:3})
exten => _*53.,n,dbDel(CFU/${fromext})
exten => _*53.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*53.,n,SayDigits(${fromext})
exten => _*53.,n,Playback(cancelled)
exten => _*53.,n,Macro(hangupcall,)

[app-cf-unavailable-on]
exten => *52,1,Answer
exten => *52,n,Wait(1)
exten => *52,n,Playback(call-fwd-no-ans)
exten => *52,n,Playback(please-enter-your&extension)
exten => *52,n,Read(fromext,then-press-pound,,)
exten => *52,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *52,n,Wait(1)
exten => *52,n(startread),Playback(ent-target-attendant)
exten => *52,n,Read(toext,then-press-pound,,)
exten => *52,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *52,n,Wait(1)
exten => *52,n,Set(DB(CFU/${fromext})=${toext})
exten => *52,n,Playback(call-fwd-no-ans&for&extension)
exten => *52,n,SayDigits(${fromext})
exten => *52,n,Playback(is-set-to)
exten => *52,n,SayDigits(${toext})
exten => *52,n,Macro(hangupcall,)
exten => _*52.,1,Answer
exten => _*52.,n,Wait(1)
exten => _*52.,n,Macro(user-callerid,)
exten => _*52.,n,Set(DB(CFU/${CALLERID(number)})=${EXTEN:3})
exten => _*52.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*52.,n,SayDigits(${CALLERID(number)})
exten => _*52.,n,Playback(is-set-to)
exten => _*52.,n,SayDigits(${EXTEN:3})
exten => _*52.,n,Macro(hangupcall,)

[ext-meetme]
exten => STARTMEETME,1,MeetMe(${MEETME_ROOMNUM},${MEETME_OPTS},${PIN})
exten => STARTMEETME,n,Hangup
exten => h,1,Hangup
exten => 8000,1,Set(MEETME_ROOMNUM=8000)
exten => 8000,n,GotoIf($[${DIALSTATUS} = ANSWER]?USER)
exten => 8000,n,Answer
exten => 8000,n,Wait(1)
exten => 8000,n(USER),Set(MEETME_OPTS=ciMs)
exten => 8000,n,Goto(STARTMEETME,1)

[app-userlogonoff]
exten => *12,1,Macro(user-logoff,)
exten => *12,n,Hangup
exten => *11,1,Macro(user-logon,)
exten => *11,n,Hangup
exten => _*11.,1,Macro(user-logon,${EXTEN:3},)
exten => _*11.,n,Hangup

[app-zapbarge]
exten => 888,1,Macro(user-callerid,)
exten => 888,n,Set(GROUP()=${CALLERID(number)})
exten => 888,n,Answer
exten => 888,n,Wait(1)
exten => 888,n,ZapBarge()
exten => 888,n,Hangup