All pastes #519283 Raw Edit

woolbeo

public text v1 · immutable
#519283 ·published 2007-05-29 16:39 UTC
rendered paste body
exten => o,1,NoOp,-= Operator/Emergency =-
exten => o,n,GotoIf($["${DB_EXISTS(${dbroot}/settings/ahop/1)}" = "1"]?ah)   ; Day mode

exten => o,n(dm),Dial(${DB(${dbroot}/settings/ringgroup-day)},20)
exten => o,n,Voicemail(u${DB(${dbroot}/settings/operatorvm)}@${DB(${dbroot}/settings/companynumber)})
exten => o,n,Goto(end)
exten => o,n(ah),NoOp,-= Handling with night operators =-
exten => o,n,Set(AHOP1DT=12) ;delay before dialing 2nd night op (was 24)
"1"],Dial,Local/${DB(${dbroot}/settings/ahop/1)}@mtu-trusted/n,${AHOP1DT},${DEFAULTDIALARGS})
exten => o,n,Set(DEFAULTDIALTIME=12)
exten => o,n,ExecIf(${DB_EXISTS(${dbroot}/settings/ahop/1)},Dial,Local/${DB(${dbroot}/settings/ahop/1)}@mtu-trusted/n,${AHOP1DT},${DEFAULTDIALARGS})
exten => o,n,ExecIf(${DB_EXISTS(${dbroot}/settings/ahop/2)},Dial,Local/${DB(${dbroot}/settings/ahop/2)}@mtu-trusted/n,,${DEFAULTDIALARGS})
exten => o,n,Voicemail(u${DB(${dbroot}/settings/operatorvm)}@${DB(${dbroot}/settings/companynumber)})
exten => o,n,Goto(end)

exten => o,n(end),Wait(1)                               ; Wait to see if user is going to hang up so we don't loop rig
exten => o,n,Goto(s,start)

[mtu-trusted]
include => answermode
include => app-callforward
include => mtu-nightop
include => mtu-exts
include => switch-services
include => switch-tollfree
include => switch-local
include => switch-ld
include => switch-int

[mtu-exts]

;===============================
; Capture three digit extensions
; This is where we process 

exten => _ZXX,1,GotoIf($["${dbroot}" != ""]?handle)
exten => _ZXX,n,NoOp,-= dbroot not defined but required: DIALEDPEERNUMBER: ${DIALEDPEERNUMBER} DIALEDPEERNAME: ${DIALEDPEERNAME} BLINDTRANSFER: ${BLINDTRANSFER} =-
exten => _ZXX,n,DumpChan
exten => _ZXX,n,ExecIf($["${LEN(${DIALEDPEERNUMBER})}" = "5"],Set,dbroot=mtu/${DIALEDPEERNUMBER:0:2})
exten => _ZXX,n,GotoIf($["${dbroot}" != ""]?handle)

exten => _ZXX,n,ExecIf($["${DIALEDPEERNAME:0:3}" = "SIP"],Set,dbroot=mtu/${DIALEDPEERNUMBER:0:2})
exten => _ZXX,n,GotoIf($["${dbroot}" != ""]?handle)

exten => _ZXX,n,NoOp,-= dbroot still not defined but required =-
exten => _ZXX,n,Macro(admin-notify,email,passthrough,dbroot-notdefined-and-not-determined-at-${EXTEN}-DIALEDPEERNUMBER-${DIALEDPEERNUMBER})
exten => _ZXX,n,Set(TIMEOUT(absolute)=10)
exten => _ZXX,n,Congestion
exten => _ZXX,n(handle),Goto(${DB(${dbroot}/settings/companynumber)}${EXTEN},1)

;======================================
; Place company extension mappings here

exten => _21ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _22ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _23ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _24ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _26ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _28ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _30ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})
exten => _31ZXX,1,Macro(mtu-ext-v3,${EXTEN:0:2},${EXTEN:2})

;
; End company extension mappings
;===============================


[macro-mtu-ext-v3]
; Version 3 removed the daqe-lookup AGI script and now relies on the local
; asterisk database to be up to date for extension lookups
;
;       ${ARG1} = Company number
;       ${ARG2} = Extension minus company number
exten => s,1,ExecIf($["system/debug" = "1"],DumpChan)

exten => s,n,Set(COMPANY=${ARG1})
exten => s,n,Set(EXTENSION=${ARG2})

; Just in case!!!!!
exten => s,n,ExecIf($["${dbroot}" = ""],Set,__dbroot=mtu/${COMPANY})

; check for mtu/${COMPANY}/cf/${EXTENSION} forward
; If an entry does not exist at mtu/company/cf/exten, jump to the daqe lookup.
; This will provide a mechanism for *72/*73 to override DAQE
; If an entry does exist, set a variable and then jump to number processing

exten => s,n(check-cf),GotoIf($["${DB_EXISTS(mtu/${COMPANY}/cf/${EXTENSION})}" != "1"]?do-daqe-lookup)
exten => s,n,Set(MTU-FORWARD-NUM=${DB(mtu/${COMPANY}/cf/${EXTENSION})})
exten => s,n,Goto(processnumber)

; check daqe for forwarding information
; ask daqe for a number
; set a variable and then jump to number processing

exten => s,n(do-daqe-lookup),GotoIf($["${DB_EXISTS(DAQE-CACHE/${COMPANY}/agentphone/${EXTENSION})}" != "1"]?s-DS-NOANSWER,1)
exten => s,n,ExecIf($["${calltype}" = "incoming"],Playback,pls-wait-connect-call)
exten => s,n,Set(DAQE-NUMTODIAL=${DB(DAQE-CACHE/${COMPANY}/agentphone/${EXTENSION})})
exten => s,n,Set(DAQE-NUMTODIALLENGTH=${LEN(${DAQE-NUMTODIAL})})
exten => s,n,NoOp,${DAQE-NUMTODIALLENGTH} ${DAQE-NUMTODIAL}
exten => s,n,Set(MTU-FORWARD-NUM=${DAQE-NUMTODIAL})
exten => s,n,Goto(processnumber)


; record the length of the number were going to

exten => s,n(processnumber),Goto(s-len-${LEN(${MTU-FORWARD-NUM})},1)

; process forwards to pstn

exten => s-len-11,1,ExecIf($["${calltype}" = "incoming"],Playback,connecting)
exten => s-len-11,n,Goto(mtu-trusted,${MTU-FORWARD-NUM:1},1)

exten => s-len-10,1,ExecIf($["${calltype}" = "incoming"],Playback,connecting)
exten => s-len-10,n,Goto(mtu-trusted,${MTU-FORWARD-NUM},1)

exten => s-len-7,1,ExecIf($["${calltype}" = "incoming"],Playback,connecting)
exten => s-len-7,n,Goto(mtu-trusted,${DB(mtu/${COMPANY}/settings/defaultareacode)}${MTU-FORWARD-NUM},1)

; process forward to a 5 digit extension
; if the forward number is us, we're there and we can then figure out what devices to dial
; if the forward number is someone else, we forward to that extension

exten => s-len-5,1,GotoIf($["${MTU-FORWARD-NUM}" = "${COMPANY}${EXTENSION}"]?s-call-device|1)
exten => s-len-5,n,Goto(mtu-trusted,${MTU-FORWARD-NUM},1)

; process forward to a 3 digit extension
; all we're doing here is tacking on the current company number and then forwarding the 5 digit processor

exten => s-len-3,1,Goto(s-len-5,${COMPANY}${MTU-FORWARD-NUM},1)
; handle all other length numbers
; first check to see if we can leave them voicemail
; if we returned from voicemail with an error, goto the calling context invalid handler

exten => _s-len-_,1,Voicemail(u${EXTENSION}@${COMPANY})
exten => _s-len-_,n,GotoIf($[ ${VMSTATUS} = FAILED ]?${MACRO_CONTEXT}|i|1)

; lookup devices to dial and then dial

exten => s-call-device,1,Set(DEVICE=${DB(mtu/${COMPANY}/devices/${EXTENSION})})
exten => s-call-device,n,ExecIf(${DB_EXISTS(mtu/${COMPANY}/altdevs/${ARG2})},Set,DEVICE=${DEVICE}&${DB(mtu/${COMPANY}/altdevs/${ARG2})})
exten => s-call-device,n,GotoIf($["${DEVICE}" =  ""]?s-DS-NOANSWER,1)
exten => s-call-device,n,NoOp,-= Macro mtu-ext: Using ${DEVICE} to call ${EXTENSION}@${COMPANY} =-
exten => s-call-device,n,ExecIf($["${calltype}" = "incoming"],Playback,connecting)
exten => s-call-device,n,Dial(${DEVICE},${DEFAULTDIALTIME},${DEFAULTDIALARGS})
exten => s-call-device,n,Goto(s-DS-${DIALSTATUS},1)

; handle dialstatus

exten => s-DS-ANSWER,1,Hangup

exten => s-DS-BUSY,1,Voicemail(b${EXTENSION}@${COMPANY})                   ; If busy, send to voicemail w/ busy announce
exten => s-DS-BUSY,n,GotoIf($[$["${DIALSTATUS}" = "CHANUNAVAIL"] & $["${VMSTATUS}" = "FAILED"]]?s-INVALIDEXTEN|1)
exten => s-DS-BUSY,n,ExecIf($["${calltype}" = "incoming"],Goto,${DB(${dbroot}/settings/defaultreturncontext)})             ; If they press #, return to start

exten => s-DS-CANCEL,1,Hangup

exten => s-DS-CONGESTION,1,Goto(s-DS-NOANSWER,1)

exten => s-DS-CHANUNAVAIL,1,Goto(s-DS-NOANSWER,1)

exten => s-DS-DONTCALL,1,Goto(s-DS-NOANSWER,1)

exten => s-DS-NOANSWER,1,Voicemail(u${EXTENSION}@${COMPANY})               ; If unavailable, send to voicemail w/ unavail announce
exten => s-DS-NOANSWER,n,GotoIf($[$["${DIALSTATUS}" = "CHANUNAVAIL"] & $["${VMSTATUS}" = "FAILED"]]?s-INVALIDEXTEN|1)
exten => s-DS-NOANSWER,n,ExecIf($["${calltype}" = "incoming"],Goto,${DB(${dbroot}/settings/defaultreturncontext)})         ; If they press #, return to start

exten => s-DS-TORTURE,1,Goto(s-DS-NOANSWER,1)

exten => s-INVALIDEXTEN,1,NoOp,We must be calling an invalid extension ${EXTENSION}@${COMPANY}
exten => s-INVALIDEXTEN,n,Playback(pbx-invalid)
exten => s-INVALIDEXTEN,n,Wait(1)
exten => s-INVALIDEXTEN,n,GotoIf($["${calltype}" = "incoming"]?${DB(${dbroot}/settings/companynumber)}-incoming|s|start)
exten => s-INVALIDEXTEN,n,Hangup

; handle pressing * to go to VoicemailMain

exten => a,1,VoicemailMain(${EXTENSION}@${COMPANY})



[switch-ld]
exten => _XXXNXXXXXX,1,Goto(1${EXTEN},1)

exten => _1XXXNXXXXXX,1,NoOp
exten => _1XXXNXXXXXX,n,Macro(mungevars,outgoing)
exten => _1XXXNXXXXXX,n,Dial(${OUTBOUNDTRUNK}/${EXTEN},,tT)
exten => _1XXXNXXXXXX,n,NoOp,Dialstatus: ${DIALSTATUS}
exten => _1XXXNXXXXXX,n,Wait(1)
exten => _1XXXNXXXXXX,n,Set(TIMEOUT(absolute)=10)
exten => _1XXXNXXXXXX,n,Busy
exten => _1XXXNXXXXXX,n,Hangup

/mtu/26/altdevs/100                               : SIP/26150                
/mtu/26/altdevs/101                               : SIP/26151                
/mtu/26/altdevs/102                               : SIP/26152                
/mtu/26/altdevs/105                               : SIP/26155                
/mtu/26/altdevs/106                               : SIP/26156                
/mtu/26/devices/100                               : SIP/26100                
/mtu/26/devices/101                               : SIP/26101                
/mtu/26/devices/102                               : SIP/26102                
/mtu/26/devices/103                               : SIP/26103                
/mtu/26/devices/104                               : SIP/26104                
/mtu/26/devices/105                               : SIP/26105                
/mtu/26/devices/106                               : SIP/26106                
/mtu/26/devices/107                               : SIP/26107                
/mtu/26/devices/110                               : SIP/26110                
/mtu/26/devices/200                               : IAX2/nothing             
/mtu/26/settings//rnggroup-day                    : SIP/26100&SIP/26101&SIP/26102&SIP/26103&SIP/26104&SIP/26105&SIP/26106&SIP/26110&SIP/26150&SIP/26156&SIP/26151&SIP/26155&SIP/26152
/mtu/26/settings/ah                               : 1                        
/mtu/26/settings/am                               : 1                        
/mtu/26/settings/companyname                      : Teen Soulutions          
/mtu/26/settings/companynumber                    : 26                       
/mtu/26/settings/defaultareacode                  : 435                      
/mtu/26/settings/defaultcidname                   : National Contract        
/mtu/26/settings/defaultcidnumber                 : 8004295922               
/mtu/26/settings/defaultreturncontext             : 26-incoming,s,start      
/mtu/26/settings/operatorvm                       : 104                      
/mtu/26/settings/ringgroup-day                    : SIP/26100&SIP/26101&SIP/26102&SIP/26103&SIP/26104&SIP/26105&SIP/26106&SIP/26110&SIP/26150&SIP/26156&SIP/26151&SIP/26155&SIP/26152