All pastes #272742 Raw Edit

Someone

public text v1 · immutable
·published 2006-12-09 06:23 UTC
rendered paste body
;-------------------------------------------------------------------------------------------
; REPORT BACK ON EXTENSION STATUS
;
; Settings Currently Supported:
;       CW:     Call Waiting
;       DND:    Do Not Disturb
;       CFB:    Call Forward On Busy
;       CFU:    Call Forward On Unavailable / No Answer
;       CF:     Call Forward Unconditional
;
; get status of a specific extentsion by dialing *109xxx where xxx is the extension status is
; desired for. (Can be any number of supported extension digits

exten => _*109.,1,Set(uext=${EXTEN:4})
exten => _*109.,n,Noop(STATUS ON EXTENSION: ${EXTEN:4})
exten => _*109.,n,Answer
exten => _*109.,n,Wait(1)
exten => _*109.,n,Goto(custom-check-status,s,1)

; get status from specific extension, prompted after dialing
exten => *109,1,Answer
exten => *109,n,Wait(1)
exten => *109,n,BackGround(please-enter-the)
exten => *109,n,Playback(extension)
exten => *109,n,Read(uext,then-press-pound)
exten => *109,n,Wait(1)
exten => *109,n,Goto(custom-check-status,s,1)

; playback extension settings for current or prompted phone
exten => *108,1,Answer
exten => *108,n,Set(uext=${CALLERIDNUM})
exten => *108,n,Goto(custom-check-status,s,1)

; this function is passed an extension number and will read back the
; status on the target extension
;
; TARGET EXTENSION ${uext}
;
; Settings Currently Supported:
;       CW:     Call Waiting
;       DND:    Do Not Disturb
;       CFB:    Call Forward On Busy
;       CFU:    Call Forward On Unavailable / No Answer
;       CF:     Call Forward Unconditional

[custom-check-status]

; Announce Extension Being Reported on
exten => s,1,Noop(REPORTING STATUS ON EXT: ${uext})
exten => s,n,Playback(status)
exten => s,n,Playback(for)
exten => s,n,Playback(extension)
exten => s,n,SayDigits(${uext})
exten => s,n,Playback(is)

; CW:  Call Waiting Status
exten => s,n,Noop(CW RESULTS: ${DB_EXISTS(CW/${uext})} : ${DB_RESULT})
exten => s,n,Playback(custom/quarter-second-silence)
exten => s,n,Playback(call-waiting)
exten => s,n,GotoIf($[${DB_EXISTS(CW/${uext})}]?cwenabled:cwdisabled)
exten => s,n(cwenabled),Playback(activated)
exten => s,n,Goto(dndcheck)
exten => s,n(cwdisabled),Playback(de-activated)

; DND: Do Not Disturb Status
exten => s,n(dndcheck),Noop(DND RESULTS: ${DB_EXISTS(DND/${uext})} : ${DB_RESULT})
exten => s,n,Playback(custom/quarter-second-silence)
exten => s,n,Playback(do-not-disturb)
exten => s,n,GotoIf($[${DB_EXISTS(DND/${uext})}]?dndenabled:dnddisabled)
exten => s,n(dndenabled),Playback(activated)
exten => s,n,Goto(cfbcheck)
exten => s,n(dnddisabled),Playback(de-activated)

; CFB: Call Forward on Busy Status
exten => s,n(cfbcheck),Noop(CFB RESULTS: ${DB_EXISTS(CFB/${uext})} : ${DB_RESULT})
exten => s,n,Playback(custom/quarter-second-silence)
exten => s,n,Playback(call-fwd-on-busy)
exten => s,n,GotoIf($[${DB_EXISTS(CFB/${uext})}]?cfbenabled:cfbdisabled)
exten => s,n(cfbenabled),Playback(activated)
exten => s,n,Playback(and)
exten => s,n,Playback(is-set-to)
exten => s,n,SayDigits(${DB_RESULT})
exten => s,n,Goto(cfucheck)
exten => s,n(cfbdisabled),Playback(de-activated)

; CFU: Call Forward on Unavailable Status
exten => s,n(cfucheck),Noop(CFU RESULTS: ${DB_EXISTS(CFU/${uext})} : ${DB_RESULT})
exten => s,n,Playback(custom/quarter-second-silence)
exten => s,n,Playback(call-fwd-no-ans)
exten => s,n,GotoIf($[${DB_EXISTS(CFU/${uext})}]?cfuenabled:cfudisabled)
exten => s,n(cfuenabled),Playback(activated)
exten => s,n,Playback(and)
exten => s,n,Playback(is-set-to)
exten => s,n,SayDigits(${DB_RESULT})
exten => s,n,Goto(cfcheck)
exten => s,n(cfudisabled),Playback(de-activated)

; CF:  Call Forward Unconditional Status
exten => s,n(cfcheck),Noop(CF RESULTS: ${DB_EXISTS(CF/${uext})} : ${DB_RESULT})
exten => s,n,Playback(custom/quarter-second-silence)
exten => s,n,Playback(call-fwd-unconditional)
exten => s,n,GotoIf($[${DB_EXISTS(CF/${uext})}]?cfenabled:cfdisabled)
exten => s,n(cfenabled),Playback(activated)
exten => s,n,Playback(and)
exten => s,n,Playback(is-set-to)
exten => s,n,SayDigits(${DB_RESULT})
exten => s,n,Goto(endcheck)
exten => s,n(cfdisabled),Playback(de-activated)

; CALL STATUS END - GOODBYE!
exten => s,n,(endcheck)Playback(custom/quarter-second-silence)
exten => s,n,Playback(goodbye)
exten => s,n,Hangup

;-------------------------------------------------------------------------------------------