Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [ Context '__func_periodic_hook_context__' created by 'func_periodic_hook' ]
- 'beep' (CID match '') => 1. Answer() [func_periodic_hook]
- 2. Playback(beep) [func_periodic_hook]
- 'hook' (CID match '') => 1. Set(EncodedChannel=${CUT(HOOK_CHANNEL,-,1-2)}) [func_periodic_hook]
- 2. Set(GROUP_NAME=${EncodedChannel}${HOOK_ID}) [func_periodic_hook]
- 3. Set(GROUP(periodic-hook)=${GROUP_NAME}) [func_periodic_hook]
- 4. ExecIf($[${GROUP_COUNT(${GROUP_NAME}@periodic-hook)} > 1]?Hangup()) [func_periodic_hook]
- 5. Set(ChannelToSpy=${URIDECODE(${EncodedChannel})}) [func_periodic_hook]
- 6. ChanSpy(${ChannelToSpy},qEB) [func_periodic_hook]
- [ Context 'macro-saydigits' created by 'pbx_config' ]
- 's' => 1. Noop(Trying custom SayDigits playback for "${ARG1}") [pbx_config]
- 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
- 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
- [tts] 4. Macro(tts-saydigits,${ARG1},${ARG2},${ARG3}) [pbx_config]
- 5. SayDigits(${ARG1}) [pbx_config]
- 6. Goto(done) [pbx_config]
- [ Context 'macro-saynumber' created by 'pbx_config' ]
- 's' => 1. Noop(Trying custom SayNumber playback for "${ARG1}") [pbx_config]
- 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
- 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
- [tts] 4. Macro(tts-saynumber,${ARG1},${ARG2},${ARG3}) [pbx_config]
- 5. SayNumber(${ARG1}) [pbx_config]
- 6. Goto(done) [pbx_config]
- 105. Noop(tts handled saynumber) [pbx_config]
- [ Context 'macro-sayname' created by 'pbx_config' ]
- 's' => 1. Noop(Trying custom SayName playback for "${ARG1}") [pbx_config]
- 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
- 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
- [tts] 4. Macro(tts-sayalpha,${ARG1},${ARG2},${ARG3}) [pbx_config]
- 5. SayAlpha(${ARG1}) [pbx_config]
- 6. Goto(done) [pbx_config]
- 105. Noop(tts handled sayname) [pbx_config]
- [ Context 'macro-saytext' created by 'pbx_config' ]
- 's' => 1. Noop(Trying custom SayText playback for "${ARG1}") [pbx_config]
- 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
- 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
- [tts] 4. Macro(tts-saytext,${ARG1},${ARG2},${ARG3}) [pbx_config]
- 5. Noop(No text-to-speech handler for SayText, cannot say "${ARG1}") [pbx_config]
- 6. Goto(done) [pbx_config]
- 105. Noop(tts handled saytext) [pbx_config]
- [ Context 'macro-fixcid' created by 'pbx_config' ]
- 's' => 1. Set(CALLERID(name)=${CALLERID(name)}) [pbx_config]
- [ Context 'default' created by 'pbx_config' ]
- 's' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Noop(ERROR: FreePBX Does not use the [default] context, confguration error) [pbx_config]
- 3. Macro(hangupcall) [pbx_config]
- Include => 'ext-local' [pbx_config]
- [ Context 'macro-user-logoff' created by 'pbx_config' ]
- 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
- 2. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
- 3. AGI(user_login_out.agi,logout,${CALLERID(number)}) [pbx_config]
- [done] 4. Playback(agent-loggedoff) [pbx_config]
- 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged out of) [pbx_config]
- 2. Playback(an-error-has-occured&vm-goodbye) [pbx_config]
- 3. Hangup() [pbx_config]
- [ Context 'macro-user-logon' created by 'pbx_config' ]
- 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
- 5. Set(AMPUSER=${ARG1}) [pbx_config]
- 6. GotoIf($["${AMPUSER}" != ""]?gotpass) [pbx_config]
- [playagain] 7. Read(AMPUSER,please-enter-your-extension-then-press-pound,,,4) [pbx_config]
- 8. GotoIf($["${AMPUSER}" = ""]?s-MAXATTEMPTS,1) [pbx_config]
- [gotpass] 9. GotoIf($["${DB_EXISTS(AMPUSER/${AMPUSER}/password)}" = "0"]?s-NOUSER,1) [pbx_config]
- 10. Set(AMPUSERPASS=${DB_RESULT}) [pbx_config]
- 11. GotoIf($[${LEN(${AMPUSERPASS})} = 0]?s-NOPASSWORD,1) [pbx_config]
- 12. Set(DEVICEUSER=${DB(DEVICE/${CALLERID(number)}/user)}) [pbx_config]
- 13. GotoIf($["${DEVICEUSER}" = "${AMPUSER}"]?s-ALREADYLOGGEDON,1) [pbx_config]
- 14. Authenticate(${AMPUSERPASS}) [pbx_config]
- 15. AGI(user_login_out.agi,login,${CALLERID(number)},${AMPUSER}) [pbx_config]
- 16. Playback(agent-loginok) [pbx_config]
- 's-ALREADYLOGGEDON' => 1. NoOp(This device has already been logged into by this user) [pbx_config]
- 2. Playback(vm-goodbye) [pbx_config]
- 3. Hangup() [pbx_config]
- 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged into) [pbx_config]
- 2. Playback(ha/phone) [pbx_config]
- 3. SayDigits(${CALLERID(number)}) [pbx_config]
- 4. Playback(is-curntly-unavail&vm-goodbye) [pbx_config]
- 5. Hangup() [pbx_config]
- 's-MAXATTEMPTS' => 1. NoOp(Too many login attempts) [pbx_config]
- 2. Playback(vm-goodbye) [pbx_config]
- 3. Hangup() [pbx_config]
- 's-NOPASSWORD' => 1. NoOp(This extension does not exist or no password is set) [pbx_config]
- 2. Playback(pbx-invalid) [pbx_config]
- 3. Goto(s,playagain) [pbx_config]
- 's-NOUSER' => 1. NoOp(Invalid extension ${AMPUSER} entered) [pbx_config]
- 2. Playback(pbx-invalid) [pbx_config]
- 3. Goto(s,playagain) [pbx_config]
- [ Context 'macro-dialout-dundi-predial-hook' created by 'pbx_config' ]
- 's' => 1. MacroExit() [pbx_config]
- [ Context 'macro-dial-ringall-predial-hook' created by 'pbx_config' ]
- 's' => 1. MacroExit() [pbx_config]
- [ Context 'macro-dial-hunt-predial-hook' created by 'pbx_config' ]
- 's' => 1. MacroExit() [pbx_config]
- [ Context 'macro-dialout-one-predial-hook' created by 'pbx_config' ]
- 's' => 1. MacroExit() [pbx_config]
- [ Context 'macro-dialout-trunk-predial-hook' created by 'pbx_config' ]
- 's' => 1. MacroExit() [pbx_config]
- [ Context 'macro-get-vmcontext' created by 'pbx_config' ]
- 's' => 1. Set(VMCONTEXT=${DB(AMPUSER/${ARG1}/voicemail)}) [pbx_config]
- 2. GotoIf($["foo${VMCONTEXT}" = "foo"]?200:300) [pbx_config]
- 200. Set(VMCONTEXT=default) [pbx_config]
- 300. NoOp() [pbx_config]
- [ Context 'from-did-direct' created by 'pbx_config' ]
- Include => 'ext-findmefollow' [pbx_config]
- Include => 'ext-local' [pbx_config]
- [ Context 'from-internal-xfer' created by 'pbx_config' ]
- 'h' => 1. Macro(hangupcall) [pbx_config]
- Include => 'from-internal-custom' [pbx_config]
- Include => 'from-internal-additional' [pbx_config]
- [ Context 'from-internal-noxfer' created by 'pbx_config' ]
- 'h' => 1. Macro(hangupcall) [pbx_config]
- Include => 'from-internal-noxfer-custom' [pbx_config]
- Include => 'from-internal-noxfer-additional' [pbx_config]
- [ Context 'from-internal' created by 'pbx_config' ]
- 'h' => 1. Macro(hangupcall) [pbx_config]
- Include => 'from-internal-noxfer' [pbx_config]
- Include => 'from-internal-xfer' [pbx_config]
- Include => 'bad-number' [pbx_config]
- [ Context 'from-sip-external' created by 'pbx_config' ]
- 'h' => 1. Hangup() [pbx_config]
- 'i' => 1. Hangup() [pbx_config]
- 's' => 1. GotoIf($["${ALLOW_SIP_ANON}"="yes"]?checklang:noanonymous) [pbx_config]
- [checklang] 2. GotoIf($["${SIPLANG}"!=""]?setlanguage:from-trunk,${DID},1) [pbx_config]
- [setlanguage] 3. Set(CHANNEL(language)=${SIPLANG}) [pbx_config]
- 4. Goto(from-trunk,${DID},1) [pbx_config]
- [noanonymous] 5. Set(TIMEOUT(absolute)=15) [pbx_config]
- 6. Log(WARNING,"Rejecting unknown SIP connection from ${CHANNEL(recvip)}") [pbx_config]
- 7. Answer() [pbx_config]
- 8. Wait(2) [pbx_config]
- 9. Playback(ss-noservice) [pbx_config]
- 10. Playtones(congestion) [pbx_config]
- 11. Congestion(5) [pbx_config]
- 't' => 1. Hangup() [pbx_config]
- '_.' => 1. NoOp(Received incoming SIP connection from unknown peer to ${EXTEN}) [pbx_config]
- 2. Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})}) [pbx_config]
- 3. Goto(s,1) [pbx_config]
- [ Context 'from-pstn-toheader' created by 'pbx_config' ]
- '_.' => 1. Goto(from-pstn,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1) [pbx_config]
- [ Context 'from-pstn-e164-us' created by 'pbx_config' ]
- 's' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
- 's' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
- 's' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
- 's' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
- 's' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
- '_+1NXXNXXXXXX' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
- '_+1NXXNXXXXXX' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
- '_+1NXXNXXXXXX' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
- '_+1NXXNXXXXXX' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
- '_+1NXXNXXXXXX' => 1. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
- '_[0-9+].' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
- '_[0-9+].' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
- '_[0-9+].' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
- '_[0-9+].' (CID match '_1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):1}) [pbx_config]
- '_[0-9+].' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
- '_[0-9+].' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
- [ Context 'from-pstn' created by 'pbx_config' ]
- Include => 'from-pstn-custom' [pbx_config]
- Include => 'ext-did' [pbx_config]
- Include => 'ext-did-post-custom' [pbx_config]
- Include => 'from-did-direct' [pbx_config]
- Include => 'ext-did-catchall' [pbx_config]
- [ Context 'from-trunk' created by 'pbx_config' ]
- Include => 'from-pstn' [pbx_config]
- [ Context 'from-analog' created by 'pbx_config' ]
- Include => 'from-dahdi' [pbx_config]
- [ Context 'from-digital' created by 'pbx_config' ]
- Include => 'from-pstn' [pbx_config]
- [ Context 'from-internal-noxfer-additional' created by 'pbx_config' ]
- 'h' => 1. Hangup() [pbx_config]
- Include => 'from-internal-noxfer-additional-custom' [pbx_config]
- [ Context 'from-internal-additional' created by 'pbx_config' ]
- 'h' => 1. Hangup() [pbx_config]
- Include => 'from-internal-additional-custom' [pbx_config]
- Include => 'app-fmf-toggle' [pbx_config]
- Include => 'ext-findmefollow' [pbx_config]
- Include => 'fmgrps' [pbx_config]
- Include => 'app-calltrace' [pbx_config]
- Include => 'app-echo-test' [pbx_config]
- Include => 'app-speakextennum' [pbx_config]
- Include => 'app-speakingclock' [pbx_config]
- Include => 'app-recordings' [pbx_config]
- Include => 'ext-group' [pbx_config]
- Include => 'grps' [pbx_config]
- Include => 'app-dialvm' [pbx_config]
- Include => 'app-vmmain' [pbx_config]
- Include => 'app-userlogonoff' [pbx_config]
- Include => 'ext-local-confirm' [pbx_config]
- Include => 'findmefollow-ringallv2' [pbx_config]
- Include => 'app-pickup' [pbx_config]
- Include => 'app-chanspy' [pbx_config]
- Include => 'ext-test' [pbx_config]
- Include => 'ext-local' [pbx_config]
- Include => 'outbound-allroutes' [pbx_config]
- [ Context 'macro-parked-call' created by 'pbx_config' ]
- 's' => 1. Gosub(sub-record-check,s,1(parking,${AMPUSER},${AMPUSER})) [pbx_config]
- Include => 'macro-parked-call-custom' [pbx_config]
- [ Context 'func-apply-sipheaders' created by 'pbx_config' ]
- 's' => 1. Noop(Applying SIP Headers to channel) [pbx_config]
- 2. Set(SIPHEADERKEYS=${HASHKEYS(SIPHEADERS)}) [pbx_config]
- 3. While($["${SET(sipkey=${SHIFT(SIPHEADERKEYS)})}" != ""]) [pbx_config]
- 4. Set(sipheader=${HASH(SIPHEADERS,${sipkey})}) [pbx_config]
- 5. SIPAddHeader(${sipkey}: ${sipheader}) [pbx_config]
- 6. Set(PJSIP_HEADER(add,${sipkey})=${sipheader}) [pbx_config]
- 7. EndWhile() [pbx_config]
- 8. Return() [pbx_config]
- Include => 'func-apply-sipheaders-custom' [pbx_config]
- [ Context 'func-set-sipheader' created by 'pbx_config' ]
- 's' => 1. Noop(Sip Add Header function called. Adding ${ARG1} = ${ARG2}) [pbx_config]
- 2. Set(HASH(_SIPHEADERS,${ARG1})=${ARG2}) [pbx_config]
- 3. Return() [pbx_config]
- Include => 'func-set-sipheader-custom' [pbx_config]
- [ Context 'macro-dial-one' created by 'pbx_config' ]
- 'cf' => 1. Set(CFAMPUSER=${IF($["${AMPUSER}"=""]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
- 2. ExecIf($["${DB(CF/${DEXTEN})}"="${CFAMPUSER}" | "${DB(CF/${DEXTEN})}"="${REALCALLERIDNUM}" | "${CUT(CUT(BLINDTRANSFER,-,1),/,1)}" = "${DB(CF/${DEXTEN})}" | "${DEXTEN}"="${DB(CF/${DEXTEN})}"]?Return()) [pbx_config]
- 3. ExecIf($["${DB(AMPUSER/${DEXTEN}/cfringtimer)}" != "0" & "${DB(AMPUSER/${DEXTEN}/cfringtimer)}" != ""]?Set(ARG1=${IF($["${DB(AMPUSER/${DEXTEN}/cfringtimer)}"="-1"]? : ${DB(AMPUSER/${DEXTEN}/cfringtimer)})})) [pbx_config]
- 4. Set(DEXTEN=${IF($["${CFIGNORE}"=""]?"${DB(CF/${DEXTEN})}#": )}) [pbx_config]
- 5. ExecIf($["${DEXTEN}"!=""]?Return()) [pbx_config]
- 6. Set(DIALSTATUS=NOANSWER) [pbx_config]
- 7. Return() [pbx_config]
- 'ctclear' => 1. Noop(Deleting: CALLTRACE/${DEXTEN} ${DB_DELETE(CALLTRACE/${DEXTEN})}) [pbx_config]
- 2. Return() [pbx_config]
- 'ctset' => 1. Set(DB(CALLTRACE/${DEXTEN})=${CALLERID(number)}) [pbx_config]
- 2. Return() [pbx_config]
- 'dlocal' => 1. Set(DSTRING=${IF($["${ARG1}"=""]?${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}:Local/${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}@from-internal/n)}) [pbx_config]
- 2. Set(USEGOTO=${IF($["${ARG1}"=""]?1:0)}) [pbx_config]
- 3. Return() [pbx_config]
- 'dstring' => 1. Set(DSTRING=) [pbx_config]
- 2. Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)}) [pbx_config]
- 3. ExecIf($["${DEVICES}"=""]?Return()) [pbx_config]
- 4. ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1})) [pbx_config]
- 5. Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) [pbx_config]
- 6. Set(ITER=1) [pbx_config]
- [begin] 7. Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)}) [pbx_config]
- 8. GosubIf($["${ASTCHANDAHDI}" = "1"]?zap2dahdi,1()) [pbx_config]
- 9. GotoIf($["${THISDIAL:0:5}"!="PJSIP"]?docheck) [pbx_config]
- 10. Noop(Debug: Found PJSIP Destination ${THISDIAL}, updating with PJSIP_DIAL_CONTACTS) [pbx_config]
- 11. Set(THISDIAL=${PJSIP_DIAL_CONTACTS(${THISDIAL:6})}) [pbx_config]
- [docheck] 12. GotoIf($["${THISDIAL}"=""]?skipset) [pbx_config]
- [doset] 13. Set(DSTRING=${DSTRING}${THISDIAL}&) [pbx_config]
- [skipset] 14. Set(ITER=$[${ITER}+1]) [pbx_config]
- 15. GotoIf($[${ITER}<=${LOOPCNT}]?begin) [pbx_config]
- 16. ExecIf($["${DSTRING:-1}"!="&"]?Return()) [pbx_config]
- 17. Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]}) [pbx_config]
- 18. Return() [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 'qwait' => 1. ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)})) [pbx_config]
- 2. Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)}) [pbx_config]
- 3. Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME}) [pbx_config]
- 4. Return() [pbx_config]
- 's' => 1. Set(DEXTEN=${ARG3}) [pbx_config]
- 2. Set(DIALSTATUS_CW=) [pbx_config]
- 3. GosubIf($["${FROM_DID}"!="" & "${SCREEN}"="" & "${DB(AMPUSER/${DEXTEN}/screen)}"!=""]?screen,1()) [pbx_config]
- 4. GosubIf($["${DB(CF/${DEXTEN})}"!=""]?cf,1()) [pbx_config]
- 5. GotoIf($["${DEXTEN:-1}"="#" | "${DB(DND/${DEXTEN})}"=""]?skip1) [pbx_config]
- 6. Set(DEXTEN=) [pbx_config]
- 7. Set(DIALSTATUS=BUSY) [pbx_config]
- [skip1] 8. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
- 9. GotoIf($["${DEXTEN:-1}"="#"]?continue) [pbx_config]
- 10. Set(EXTHASCW=${IF($["${CWIGNORE}"!=""]? :${DB(CW/${DEXTEN})})}) [pbx_config]
- 11. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!="" | "${DB(CFU/${DEXTEN})}"!=""]?next1:cwinusebusy) [pbx_config]
- [next1] 12. GotoIf($["${DB(CFU/${DEXTEN})}"!="" & ("${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN")]?docfu:skip3) [pbx_config]
- [docfu] 13. Set(DEXTEN=) [pbx_config]
- 14. Set(DIALSTATUS=NOANSWER) [pbx_config]
- 15. Goto(nodial) [pbx_config]
- [skip3] 16. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!=""]?next2:continue) [pbx_config]
- [next2] 17. GotoIf($["${EXTENSION_STATE(${DEXTEN})}"="NOT_INUSE" | "${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN"]?continue) [pbx_config]
- 18. ExecIf($["${DB(CFB/${DEXTEN})}"!="" & "${CFIGNORE}"=""]?Set(DIALSTATUS=BUSY)) [pbx_config]
- 19. GotoIf($["${EXTHASCW}"!="" | "${DEXTEN:-1}"="#"]?cwinusebusy) [pbx_config]
- 20. Set(DEXTEN=) [pbx_config]
- 21. Set(DIALSTATUS=BUSY) [pbx_config]
- 22. Goto(nodial) [pbx_config]
- [cwinusebusy] 23. GotoIf($["${EXTHASCW}"!="" & "${CWINUSEBUSY}"="true"]?next3:continue) [pbx_config]
- [next3] 24. ExecIf($["${EXTENSION_STATE(${DEXTEN})}"!="UNAVAILABLE" & "${EXTENSION_STATE(${DEXTEN})}"!="NOT_INUSE" & "${EXTENSION_STATE(${DEXTEN})}"!="UNKNOWN"]?Set(DIALSTATUS_CW=BUSY)) [pbx_config]
- [continue] 25. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
- 26. GosubIf($["${DEXTEN:-1}"!="#"]?dstring,1():dlocal,1()) [pbx_config]
- 27. GotoIf($[${LEN(${DSTRING})}=0]?nodial) [pbx_config]
- 28. GotoIf($["${DEXTEN:-1}"="#"]?skiptrace) [pbx_config]
- 29. GosubIf($[${REGEX("^[\+]?[0-9]+$" ${CALLERID(number)})} = 1]?ctset,1():ctclear,1()) [pbx_config]
- [skiptrace] 30. Set(D_OPTIONS=${IF($["${NODEST}"!="" & ${REGEX("(M[(]auto-blkvm[)])" ${ARG2})} != 1]?${ARG2}M(auto-blkvm):${ARG2})}) [pbx_config]
- 31. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) [pbx_config]
- 32. ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${LEN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) [pbx_config]
- 33. ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
- 34. ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
- 35. GosubIf($["${ALERT_INFO}"!="" & "${ALERT_INFO}"!=" "]?func-set-sipheader,s,1(Alert-Info,${ALERT_INFO})) [pbx_config]
- 36. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
- 37. GosubIf($["${QUEUEWAIT}"!=""]?qwait,1()) [pbx_config]
- 38. Set(__CWIGNORE=${CWIGNORE}) [pbx_config]
- 39. Set(__KEEPCID=TRUE) [pbx_config]
- 40. GotoIf($["${USEGOTO}"="1"]?usegoto,1) [pbx_config]
- 41. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cidname)}" = "" || "${DB(AMPUSER/${AMPUSER}/cidname)}" = ""]?godial) [pbx_config]
- 42. Gosub(sub-presencestate-display,s,1(${EXTTOCALL})) [pbx_config]
- 43. Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 44. Set(CONNECTEDLINE(num)=${EXTTOCALL}) [pbx_config]
- 45. Set(D_OPTIONS=${D_OPTIONS}I) [pbx_config]
- [godial] 46. Macro(dialout-one-predial-hook,) [pbx_config]
- 47. Dial(${DSTRING},${ARG1},${D_OPTIONS}b(func-apply-sipheaders^s^1)) [pbx_config]
- 48. ExecIf($["${DIALSTATUS}"="ANSWER" & "${CALLER_DEST}"!=""]?MacroExit()) [pbx_config]
- 49. ExecIf($["${DIALSTATUS_CW}"!=""]?Set(DIALSTATUS=${DIALSTATUS_CW})) [pbx_config]
- 50. GosubIf($[("${SCREEN}"!=""&("${DIALSTATUS}"="TORTURE"|"${DIALSTATUS}"="DONTCALL"))|"${DIALSTATUS}"="ANSWER"]?s-${DIALSTATUS},1()) [pbx_config]
- 51. MacroExit() [pbx_config]
- [nodial] 52. ExecIf($["${DIALSTATUS}" = ""]?Set(DIALSTATUS=NOANSWER)) [pbx_config]
- 53. Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
- 54. MacroExit() [pbx_config]
- 's-BUSY' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
- 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
- 3. Return() [pbx_config]
- 's-CHANUNAVAIL' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
- 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
- 3. Return() [pbx_config]
- 's-DONTCALL' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Zapateller() [pbx_config]
- 4. Playback(ss-noservice) [pbx_config]
- 5. Macro(hangupcall,) [pbx_config]
- 's-NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
- 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
- 3. Return() [pbx_config]
- 's-TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- 'screen' => 1. GotoIf($["${DB(AMPUSER/${DEXTEN}/screen)}"!="nomemory" | "${CALLERID(number)}"=""]?memory) [pbx_config]
- 2. ExecIf($[${REGEX("^[0-9a-zA-Z ]+$" ${CALLERID(number)})} = 1]?System(rm -f ${ASTVARLIBDIR}/sounds/priv-callerintros/${CALLERID(number)}.*)) [pbx_config]
- [memory] 3. Set(__SCREEN=${DB(AMPUSER/${DEXTEN}/screen)}) [pbx_config]
- 4. Set(__SCREEN_EXTEN=${DEXTEN}) [pbx_config]
- 5. Set(ARG2=${ARG2}p) [pbx_config]
- 6. Return() [pbx_config]
- 'usegoto' => 1. Set(USEGOTO=) [pbx_config]
- 2. Goto(from-internal,${DSTRING},1) [pbx_config]
- 'zap2dahdi' => 1. ExecIf($["${THISDIAL}" = ""]?Return()) [pbx_config]
- 2. Set(NEWDIAL=) [pbx_config]
- 3. Set(LOOPCNT2=${FIELDQTY(THISDIAL,&)}) [pbx_config]
- 4. Set(ITER2=1) [pbx_config]
- [begin2] 5. Set(THISPART2=${CUT(THISDIAL,&,${ITER2})}) [pbx_config]
- 6. ExecIf($["${THISPART2:0:3}" = "ZAP"]?Set(THISPART2=DAHDI${THISPART2:3})) [pbx_config]
- 7. Set(NEWDIAL=${NEWDIAL}${THISPART2}&) [pbx_config]
- 8. Set(ITER2=$[${ITER2} + 1]) [pbx_config]
- 9. GotoIf($[${ITER2} <= ${LOOPCNT2}]?begin2) [pbx_config]
- 10. Set(THISDIAL=${NEWDIAL:0:$[${LEN(${NEWDIAL})}-1]}) [pbx_config]
- 11. Return() [pbx_config]
- Include => 'macro-dial-one-custom' [pbx_config]
- [ Context 'macro-hangupcall' created by 'pbx_config' ]
- 's' => 1. GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?theend) [pbx_config]
- [delrgi] 2. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
- [theend] 3. ExecIf($["${ONETOUCH_RECFILE}"!="" & "${CDR(recordingfile)}"=""]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE})) [pbx_config]
- 4. Hangup() [pbx_config]
- 5. MacroExit() [pbx_config]
- Include => 'macro-hangupcall-custom' [pbx_config]
- [ Context 'macro-blkvm-check' created by 'pbx_config' ]
- 's' => 1. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
- 2. ExecIf($["${GOSUB_RETVAL}"="" & "${CC_RECALL}"="1"]?Set(GOSUB_RETVAL=TRUE)) [pbx_config]
- 3. MacroExit() [pbx_config]
- Include => 'macro-blkvm-check-custom' [pbx_config]
- [ Context 'macro-blkvm-clr' created by 'pbx_config' ]
- 's' => 1. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=) [pbx_config]
- 2. Set(GOSUB_RETVAL=) [pbx_config]
- 3. MacroExit() [pbx_config]
- Include => 'macro-blkvm-clr-custom' [pbx_config]
- [ Context 'macro-blkvm-set' created by 'pbx_config' ]
- 's' => 1. ExecIf($[!${EXISTS(${BLKVM_CHANNEL})} | "{ARG1}" = "reset"]?Set(__BLKVM_CHANNEL=${CHANNEL})) [pbx_config]
- 2. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
- 3. Set(GOSUB_RETVAL=TRUE) [pbx_config]
- 4. MacroExit() [pbx_config]
- Include => 'macro-blkvm-set-custom' [pbx_config]
- [ Context 'macro-blkvm-setifempty' created by 'pbx_config' ]
- 's' => 1. GotoIf($[!${EXISTS(${BLKVM_CHANNEL})}]?init) [pbx_config]
- 2. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
- 3. MacroExit() [pbx_config]
- [init] 4. Set(__BLKVM_CHANNEL=${CHANNEL}) [pbx_config]
- 5. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
- 6. Set(GOSUB_RETVAL=TRUE) [pbx_config]
- 7. MacroExit() [pbx_config]
- Include => 'macro-blkvm-setifempty-custom' [pbx_config]
- [ Context 'originate-skipvm' created by 'pbx_config' ]
- '_.X' => 1. Macro(blkvm-set,) [pbx_config]
- 2. Goto(from-internal,${EXTEN},1) [pbx_config]
- Include => 'originate-skipvm-custom' [pbx_config]
- [ Context 'macro-simple-dial' created by 'pbx_config' ]
- 'docfb' => 1. GotoIf($["${DB(AMPUSER/${CFBEXT}/device)}" = "" ]?chlocal) [pbx_config]
- 2. Dial(Local/${CFBEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
- 3. Return() [pbx_config]
- [chlocal] 4. Dial(Local/${CFBEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
- 5. Return() [pbx_config]
- 'docfu' => 1. GotoIf($["${DB(AMPUSER/${CFUEXT}/device)}" = "" ]?chlocal) [pbx_config]
- 2. Dial(Local/${CFUEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
- 3. Return() [pbx_config]
- [chlocal] 4. Dial(Local/${CFUEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
- 5. Return() [pbx_config]
- 's' => 1. Set(__EXTTOCALL=${ARG1}) [pbx_config]
- 2. Set(RT=${ARG2}) [pbx_config]
- 3. Set(CFUEXT=${DB(CFU/${EXTTOCALL})}) [pbx_config]
- 4. Set(CFBEXT=${DB(CFB/${EXTTOCALL})}) [pbx_config]
- 5. Set(CWI_TMP=${CWIGNORE}) [pbx_config]
- [macrodial] 6. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
- 7. Set(__CWIGNORE=${CWI_TMP}) [pbx_config]
- 8. Set(PR_DIALSTATUS=${DIALSTATUS}) [pbx_config]
- [calldocfu] 9. GosubIf($["${PR_DIALSTATUS}"="NOANSWER" & "${CFUEXT}"!=""]?docfu,1()) [pbx_config]
- [calldocfb] 10. GosubIf($["${PR_DIALSTATUS}"="BUSY" & "${CFBEXT}"!=""]?docfb,1()) [pbx_config]
- 11. Set(DIALSTATUS=${PR_DIALSTATUS}) [pbx_config]
- 12. Goto(s-${DIALSTATUS},1) [pbx_config]
- '_s-.' => 1. Noop(Extension is reporting ${EXTEN}) [pbx_config]
- Include => 'macro-simple-dial-custom' [pbx_config]
- [ Context 'macro-exten-vm' created by 'pbx_config' ]
- 'clrheader' => 1. ExecIf($[${LEN(${SIPURI})}&"${SIPURI}"="${SIP_URI_OPTIONS}"]?Set(SIP_URI_OPTIONS=)) [pbx_config]
- 2. ExecIf($[${LEN(${ALERTINFO})}]?SIPRemoveHeader(${ALERTINFO})) [pbx_config]
- 3. ExecIf($[${LEN(${CALLINFO})}]?SIPRemoveHeader(${CALLINFO})) [pbx_config]
- 4. Return() [pbx_config]
- 'docfb' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG4}"="1")]?StackPop()) [pbx_config]
- 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG4}"="1")]?from-internal,${DB(CFB/${EXTTOCALL})},1) [pbx_config]
- 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
- 4. Dial(Local/${DB(CFB/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
- 5. Return() [pbx_config]
- 'docfu' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG3}"="1")]?StackPop()) [pbx_config]
- 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG3}"="1")]?from-internal,${DB(CFU/${EXTTOCALL})},1) [pbx_config]
- 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
- 4. Dial(Local/${DB(CFU/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
- 5. Return() [pbx_config]
- 'exit' => 1. Playback(beep&line-busy-transfer-menu&silence/1) [pbx_config]
- 2. MacroExit() [pbx_config]
- 's' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(RingGroupMethod=none) [pbx_config]
- 3. Set(__EXTTOCALL=${ARG2}) [pbx_config]
- 4. Set(__PICKUPMARK=${ARG2}) [pbx_config]
- 5. Set(RT=${IF($["${ARG1}"!="novm" | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | "${ARG3}"="1" | "${ARG4}"="1" | "${ARG5}"="1"]?${RINGTIMER}:)}) [pbx_config]
- [checkrecord] 6. Gosub(sub-record-check,s,1(exten,${EXTTOCALL},dontcare)) [pbx_config]
- 7. GotoIf($["${AMPUSER}"=""|${LEN(${FROM_DID})}|"${DB(AMPUSER/${EXTTOCALL}/answermode)}"!="intercom"|${LEN(${BLINDTRANSFER})}|"${EXTENSION_STATE(${EXTTOCALL})}"!="NOT_INUSE"|"${CC_RECALL}"!=""]?macrodial) [pbx_config]
- 8. Set(INTERCOM_EXT_DOPTIONS=${DIAL_OPTIONS}) [pbx_config]
- 9. Set(INTERCOM_RETURN=TRUE) [pbx_config]
- 10. Gosub(ext-intercom,*80${EXTTOCALL},1()) [pbx_config]
- 11. Set(INTERCOM_RETURN=) [pbx_config]
- 12. Set(INTERCOM_EXT_DOPTIONS=) [pbx_config]
- [macrodial] 13. GosubIf($["${INTERCOM_CALL}"="TRUE" & ${LEN(${BLINDTRANSFER})}]?clrheader,1()) [pbx_config]
- 14. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
- 15. Set(SV_DIALSTATUS=${DIALSTATUS}) [pbx_config]
- [calldocfu] 16. GosubIf($[("${SV_DIALSTATUS}"="NOANSWER"|"${SV_DIALSTATUS}"="CHANUNAVAIL") & "${DB(CFU/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfu,1()) [pbx_config]
- [calldocfb] 17. GosubIf($["${SV_DIALSTATUS}"="BUSY" & "${DB(CFB/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfb,1()) [pbx_config]
- 18. Set(DIALSTATUS=${SV_DIALSTATUS}) [pbx_config]
- 19. ExecIf($[("${DIALSTATUS}"="NOANSWER"&"${ARG3}"="1")|("${DIALSTATUS}"="BUSY"&"${ARG4}"="1")|("${DIALSTATUS}"="CHANUNAVAIL"&"${ARG5}"="1")]?MacroExit()) [pbx_config]
- 20. GotoIf($["${ARG1}"="novm"]?s-${DIALSTATUS},1) [pbx_config]
- 21. Macro(vm,${ARG1},${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 's-BUSY' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
- 2. Playtones(busy) [pbx_config]
- 3. Busy(20) [pbx_config]
- '_s-!' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
- 2. Playtones(congestion) [pbx_config]
- 3. Congestion(10) [pbx_config]
- Include => 'macro-exten-vm-custom' [pbx_config]
- [ Context 'macro-vm' created by 'pbx_config' ]
- 'a' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/novmstar)}" = "1"]?s,1) [pbx_config]
- 3. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/ext)}" = "0"]?adef,1) [pbx_config]
- 4. Set(VMX_ADEST_EXT=${DB_RESULT}) [pbx_config]
- [acontext] 5. Set(VMX_ADEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
- [apri] 6. Set(VMX_ADEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
- 7. Goto(${VMX_ADEST_CONTEXT},${VMX_ADEST_EXT},${VMX_ADEST_PRI}) [pbx_config]
- 'adef' => 1. VoiceMailMain(${MEXTEN}@${VMCONTEXT}) [pbx_config]
- 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
- 3. Hangup() [pbx_config]
- 'dovm' => 1. Noop(VMX Timeout - go to voicemail) [pbx_config]
- 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VMX_OPTS}${VMGAIN}) [pbx_config]
- 3. Goto(exit-${VMSTATUS},1) [pbx_config]
- 'exit-FAILED' => 1. Playback(im-sorry&an-error-has-occured) [pbx_config]
- 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
- 3. Hangup() [pbx_config]
- 'exit-RETURN' => 1. Noop(Returning From Voicemail because macro) [pbx_config]
- 'exit-SUCCESS' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
- 2. Playback(goodbye) [pbx_config]
- 3. Hangup() [pbx_config]
- 'exit-USEREXIT' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
- 2. Playback(goodbye) [pbx_config]
- 3. Hangup() [pbx_config]
- 'o' => 1. Playback(one-moment-please) [pbx_config]
- 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/ext)}" = "0"]?doopdef) [pbx_config]
- 3. Set(VMX_OPDEST_EXT=${DB_RESULT}) [pbx_config]
- [opcontext] 4. Set(VMX_OPDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
- [oppri] 5. Set(VMX_OPDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
- 6. Goto(${VMX_OPDEST_CONTEXT},${VMX_OPDEST_EXT},${VMX_OPDEST_PRI}) [pbx_config]
- [doopdef] 7. GotoIf($["x${OPERATOR_XTN}"="x"]?nooper:from-internal,${OPERATOR_XTN},1) [pbx_config]
- [nooper] 8. GotoIf($["x${FROM_DID}"="x"]?nodid) [pbx_config]
- 9. Dial(Local/${FROM_DID}@from-pstn,) [pbx_config]
- 10. Macro(hangup,) [pbx_config]
- [nodid] 11. Dial(Local/s@from-pstn,) [pbx_config]
- 12. Macro(hangup,) [pbx_config]
- 's' => 1. Macro(user-callerid,SKIPTTL) [pbx_config]
- 2. Set(VMGAIN=${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})": )}) [pbx_config]
- 3. Macro(blkvm-check,) [pbx_config]
- 4. GotoIf($["${GOSUB_RETVAL}" != "TRUE"]?vmx,1) [pbx_config]
- 5. Hangup() [pbx_config]
- 's-BUSY' => 1. Noop(BUSY voicemail) [pbx_config]
- 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}) [pbx_config]
- 4. Goto(exit-${VMSTATUS},1) [pbx_config]
- 's-DIRECTDIAL' => 1. Noop(DIRECTDIAL voicemail) [pbx_config]
- 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN}) [pbx_config]
- 4. Goto(exit-${VMSTATUS},1) [pbx_config]
- 's-INSTRUCT' => 1. Noop(NOMESSAGE (beeb only) voicemail) [pbx_config]
- 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}${VMGAIN}) [pbx_config]
- 4. Goto(exit-${VMSTATUS},1) [pbx_config]
- 's-NOMESSAGE' => 1. Noop(NOMESSAGE (beep only) voicemail) [pbx_config]
- 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 3. VoiceMail(${MEXTEN}@${VMCONTEXT},s${VM_OPTS}${VMGAIN}) [pbx_config]
- 4. Goto(exit-${VMSTATUS},1) [pbx_config]
- 't' => 1. Hangup() [pbx_config]
- 'vmx' => 1. Set(MEXTEN=${ARG1}) [pbx_config]
- 2. Set(MMODE=${ARG2}) [pbx_config]
- 3. Set(RETVM=${ARG3}) [pbx_config]
- 4. Set(MODE=${IF($["${MMODE}"="BUSY"]?busy:unavail)}) [pbx_config]
- 5. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 6. Set(MODE=${IF($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.wav)} = 1) || (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.WAV)} = 1)]?temp:${MODE})}) [pbx_config]
- 7. Noop(MODE IS: ${MODE}) [pbx_config]
- 8. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?chknomsg) [pbx_config]
- 9. Set(VM_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}" = "1"]?${DB_RESULT}:${VM_OPTS})}) [pbx_config]
- [chknomsg] 10. GotoIf($["${MMODE}"="NOMESSAGE"]?s-${MMODE},1) [pbx_config]
- 11. GotoIf($["${MMODE}" != "DIRECTDIAL"]?notdirect) [pbx_config]
- 12. Set(MODE=${IF($["${REGEX("[b]" ${VM_DDTYPE})}" = "1"]?busy:${MODE})}) [pbx_config]
- [notdirect] 13. Noop(Checking if ext ${MEXTEN} is enabled: ${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}) [pbx_config]
- 14. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?s-${MMODE},1) [pbx_config]
- 15. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.wav)} = 1) || (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.WAV)} = 1)]?tmpgreet) [pbx_config]
- 16. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.wav)} = 0) && (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.WAV)} = 0)]?nofile) [pbx_config]
- 17. Set(VMX_TIMEOUT=) [pbx_config]
- 18. Set(VMX_REPEAT=) [pbx_config]
- 19. Set(VMX_LOOPS=) [pbx_config]
- 20. Set(LOOPCOUNT=0) [pbx_config]
- 21. Set(VMX_REPEAT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/repeat)}" = "1"]?${DB_RESULT}:${VMX_REPEAT})}) [pbx_config]
- [vmxtime] 22. Set(VMX_TIMEOUT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timeout)}" = "1"]?${DB_RESULT}:${VMX_TIMEOUT})}) [pbx_config]
- [vmxloops] 23. Set(VMX_LOOPS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loops)}" = "1"]?${DB_RESULT}:${VMX_LOOPS})}) [pbx_config]
- [vmxanswer] 24. Answer() [pbx_config]
- [loopstart] 25. Read(ACTION,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE},1,skip,${VMX_REPEAT},${VMX_TIMEOUT}) [pbx_config]
- 26. GotoIf($["${EXISTS(${ACTION})}" = "1"]?checkopt) [pbx_config]
- [noopt] 27. Noop(Timeout: going to timeout dest) [pbx_config]
- 28. Set(VMX_OPTS=${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}) [pbx_config]
- [chktime] 29. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/ext)}" = "0"]?dotime) [pbx_config]
- 30. Set(VMX_TIMEDEST_EXT=${DB_RESULT}) [pbx_config]
- 31. Set(VMX_TIMEDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/context)}" = "1"]?${DB_RESULT}:${VMX_TIMEDEST_CONTEXT})}) [pbx_config]
- [timepri] 32. Set(VMX_TIMEDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/pri)}" = "1"]?${DB_RESULT}:${VMX_TIMEDEST_PRI})}) [pbx_config]
- [dotime] 33. Goto(${VMX_TIMEDEST_CONTEXT},${VMX_TIMEDEST_EXT},${VMX_TIMEDEST_PRI}) [pbx_config]
- [checkopt] 34. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/ext)}" = "1"]?doopt) [pbx_config]
- 35. GotoIf($["${ACTION}" = "0"]?o,1) [pbx_config]
- 36. GotoIf($["${ACTION}" = "*"]?adef,1) [pbx_config]
- 37. Set(LOOPCOUNT=$[${LOOPCOUNT} + 1]) [pbx_config]
- 38. GotoIf($["${LOOPCOUNT}" > "${VMX_LOOPS}"]?toomany) [pbx_config]
- 39. Playback(pm-invalid-option&please-try-again) [pbx_config]
- 40. Goto(loopstart) [pbx_config]
- [toomany] 41. Noop(Too Many invalid entries, got to invalid dest) [pbx_config]
- 42. Set(VMX_OPTS=${VMX_OPTS_LOOP}) [pbx_config]
- 43. Set(VMX_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/loops)}" = "1"]?${DB_RESULT}:${VMX_OPTS})}) [pbx_config]
- [chkloop] 44. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/ext)}" = "0"]?doloop) [pbx_config]
- 45. Set(VMX_LOOPDEST_EXT=${DB_RESULT}) [pbx_config]
- 46. Set(VMX_LOOPDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/context)}" = "1"]?${DB_RESULT}:${VMX_LOOPDEST_CONTEXT})}) [pbx_config]
- [looppri] 47. Set(VMX_LOOPDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/pri)}" = "1"]?${DB_RESULT}:${VMX_LOOPDEST_PRI})}) [pbx_config]
- [doloop] 48. Goto(${VMX_LOOPDEST_CONTEXT},${VMX_LOOPDEST_EXT},${VMX_LOOPDEST_PRI}) [pbx_config]
- [doopt] 49. Noop(Got a valid option: ${DB_RESULT}) [pbx_config]
- 50. Set(VMX_EXT=${DB_RESULT}) [pbx_config]
- 51. GotoIf($["${VMX_EXT}" != "dovm"]?getdest) [pbx_config]
- [vmxopts] 52. Set(VMX_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/dovm)}" = "1"]?${DB_RESULT}:${VMX_OPTS_DOVM})}) [pbx_config]
- [vmxdovm] 53. Goto(dovm,1) [pbx_config]
- [getdest] 54. Set(VMX_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
- [vmxpri] 55. Set(VMX_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
- [vmxgoto] 56. Goto(${VMX_CONTEXT},${VMX_EXT},${VMX_PRI}) [pbx_config]
- [nofile] 57. Noop(File for mode: ${MODE} does not exist, SYSTEMSTATUS: ${SYSTEMSTATUS}, going to normal voicemail) [pbx_config]
- 58. Goto(s-${MMODE},1) [pbx_config]
- [tmpgreet] 59. Noop(Temporary Greeting Detected, going to normal voicemail) [pbx_config]
- 60. Goto(s-${MMODE},1) [pbx_config]
- '_s-.' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
- 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) [pbx_config]
- 3. Goto(exit-${VMSTATUS},1) [pbx_config]
- Include => 'macro-vm-custom' [pbx_config]
- [ Context 'macro-block-cf' created by 'pbx_config' ]
- 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- '_X.' => 1. Hangup() [pbx_config]
- Include => 'macro-block-cf-custom' [pbx_config]
- [ Context 'macro-setmusic' created by 'pbx_config' ]
- 's' => 1. Set(CHANNEL(musicclass)=${ARG1}) [pbx_config]
- Include => 'macro-setmusic-custom' [pbx_config]
- [ Context 'macro-dial-confirm' created by 'pbx_config' ]
- 's' => 1. Set(DB(RG/${ARG4}/${CHANNEL})=RINGING) [pbx_config]
- 2. Set(__UNIQCHAN=${CHANNEL}) [pbx_config]
- 3. Set(USE_CONFIRMATION=TRUE) [pbx_config]
- 4. Set(RINGGROUP_INDEX=${ARG4}) [pbx_config]
- 5. Set(FORCE_CONFIRM=) [pbx_config]
- 6. Set(ARG4=) [pbx_config]
- 7. Macro(dial,${ARG1},${ARG2},${ARG3}) [pbx_config]
- 8. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
- 9. Set(USE_CONFIRMATION=) [pbx_config]
- 10. Set(RINGGROUP_INDEX=) [pbx_config]
- Include => 'macro-dial-confirm-custom' [pbx_config]
- [ Context 'from-dahdi' created by 'pbx_config' ]
- 's' => 1. Noop(Entering from-dahdi with DID == ${DID}) [pbx_config]
- 2. Ringing() [pbx_config]
- 3. Set(DID=${IF($["${DID}"= ""]?s:${DID})}) [pbx_config]
- 4. Noop(DID is now ${DID}) [pbx_config]
- 5. GotoIf($["${CHANNEL:0:5}"="DAHDI"]?dahdiok:checkzap) [pbx_config]
- [checkzap] 6. GotoIf($["${CHANNEL:0:3}"="Zap"]?zapok:neither) [pbx_config]
- [neither] 7. Goto(from-pstn,${DID},1) [pbx_config]
- 8. Macro(Hangupcall,dummy) [pbx_config]
- [dahdiok] 9. Noop(Is a DAHDi Channel) [pbx_config]
- 10. Set(CHAN=${CHANNEL:6}) [pbx_config]
- 11. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
- 12. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
- 13. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
- 14. Goto(from-pstn,${DID},1) [pbx_config]
- [zapok] 15. Noop(Is a Zaptel Channel) [pbx_config]
- 16. Set(CHAN=${CHANNEL:4}) [pbx_config]
- 17. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
- 18. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
- 19. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
- 20. Goto(from-pstn,${DID},1) [pbx_config]
- '_X.' => 1. Set(DID=${EXTEN}) [pbx_config]
- 2. Goto(s,1) [pbx_config]
- Include => 'from-dahdi-custom' [pbx_config]
- [ Context 'from-zaptel' created by 'pbx_config' ]
- 'foo' => 1. Noop(bar) [pbx_config]
- Include => 'from-zaptel-custom' [pbx_config]
- Include => 'from-dahdi' [pbx_config]
- [ Context 'macro-outbound-callerid' created by 'pbx_config' ]
- 's' => 1. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
- 2. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV})) [pbx_config]
- 3. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
- [start] 4. GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid) [pbx_config]
- 5. Set(USEROUTCID=${REALCALLERIDNUM}) [pbx_config]
- 6. GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass) [pbx_config]
- [normcid] 7. Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)}) [pbx_config]
- [bypass] 8. Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)}) [pbx_config]
- 9. Set(TRUNKOUTCID=${OUTCID_${ARG1}}) [pbx_config]
- 10. GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:1:2}" = ""]?trunkcid) [pbx_config]
- 11. Set(CALLERID(all)=${EMERGENCYCID}) [pbx_config]
- 12. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
- 13. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
- [exit] 14. MacroExit() [pbx_config]
- [trunkcid] 15. ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=${TRUNKOUTCID})) [pbx_config]
- [usercid] 16. ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=${USEROUTCID})) [pbx_config]
- 17. ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORCEDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}})}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})})) [pbx_config]
- [hidecid] 18. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(name-pres)=prohib_passed_screen)) [pbx_config]
- 19. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(num-pres)=prohib_passed_screen)) [pbx_config]
- 20. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
- 21. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
- Include => 'macro-outbound-callerid-custom' [pbx_config]
- [ Context 'macro-user-callerid' created by 'pbx_config' ]
- 'en' => 1. Playback(im-sorry&an-error-has-occured&with&call-forwarding) [pbx_config]
- 2. Return() [pbx_config]
- [hook_1] 3. Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye) [pbx_config]
- 4. Return() [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 'ja' => 1. Playback(im-sorry&call-forwarding&jp-no&an-error-has-occured) [pbx_config]
- 2. Return() [pbx_config]
- [hook_1] 3. Playback(beep&im-sorry&simul-call-limit-reached) [pbx_config]
- 4. Return() [pbx_config]
- 'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(macro-user-callerid,${CHANNEL(language)})}]?macro-user-callerid,${CHANNEL(language)},${ARG1}():macro-user-callerid,en,${ARG1}()) [pbx_config]
- 2. Return() [pbx_config]
- 's' => 1. Set(TOUCH_MONITOR=${UNIQUEID}) [pbx_config]
- 2. Set(AMPUSER=${IF($["${AMPUSER}" = ""]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
- 3. GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPUSERCIDNAME})}]?report) [pbx_config]
- 4. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
- 5. Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)}) [pbx_config]
- 6. GotoIf($["${AMPUSER}" = "none"]?limit) [pbx_config]
- 7. Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}) [pbx_config]
- 8. GotoIf($["${AMPUSERCIDNAME:1:2}" = ""]?report) [pbx_config]
- 9. Set(AMPUSERCID=${IF($["${ARG2}" != "EXTERNAL" & "${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})}) [pbx_config]
- 10. Set(__DIAL_OPTIONS=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/dialopts)}" = "1"]?${DB_RESULT}:${DIAL_OPTIONS})}) [pbx_config]
- 11. Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>) [pbx_config]
- 12. GotoIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})} & ${DB_EXISTS(AMPUSER/${AMPUSER}/concurrency_limit)} & ${DB(AMPUSER/${AMPUSER}/concurrency_limit)}>0 & ${GROUP_COUNT(${AMPUSER}@concurrency_limit)}>=${DB(AMPUSER/${AMPUSER}/concurrency_limit)}]?limit) [pbx_config]
- 13. ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER})) [pbx_config]
- 14. ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})) [pbx_config]
- [report] 15. GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?continue) [pbx_config]
- [report2] 16. Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])}) [pbx_config]
- 17. GotoIf($[ ${TTL} > 0 ]?continue) [pbx_config]
- 18. Wait(${RINGTIMER}) [pbx_config]
- 19. Answer() [pbx_config]
- 20. Wait(1) [pbx_config]
- 21. Gosub(macro-user-callerid,lang-playback,1(hook_0)) [pbx_config]
- 22. Macro(hangupcall,) [pbx_config]
- [limit] 23. Answer() [pbx_config]
- 24. Wait(1) [pbx_config]
- 25. Gosub(macro-user-callerid,lang-playback,1(hook_1)) [pbx_config]
- 26. Macro(hangupcall,) [pbx_config]
- 27. Congestion(20) [pbx_config]
- [continue] 28. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
- 29. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
- 30. Set(CDR(cnum)=${CALLERID(num)}) [pbx_config]
- 31. Set(CDR(cnam)=${CALLERID(name)}) [pbx_config]
- 32. Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))}) [pbx_config]
- Include => 'macro-user-callerid-custom' [pbx_config]
- [ Context 'macro-privacy-mgr' created by 'pbx_config' ]
- 'h' => 1. Hangup() [pbx_config]
- 's' => 1. Set(KEEPCID=${CALLERID(num)}) [pbx_config]
- 2. Set(TESTCID=${IF($["${CALLERID(num):0:1}"="+"]?${MATH(1+${CALLERID(num):1})}:${MATH(1+${CALLERID(num)})})}) [pbx_config]
- 3. ExecIf($[${LEN(${TESTCID})}=0]?Set(CALLERID(num)=)) [pbx_config]
- 4. PrivacyManager(${ARG1},${ARG2}) [pbx_config]
- 5. GotoIf($["${PRIVACYMGRSTATUS}"="FAILED"]?fail) [pbx_config]
- 6. GosubIf($["${CALLED_BLACKLIST}"="1"]?app-blacklist-check,s,1()) [pbx_config]
- 7. Set(CALLERID(num-pres)=allowed_passed_screen) [pbx_config]
- 8. MacroExit() [pbx_config]
- [fail] 9. Noop(STATUS: ${PRIVACYMGRSTATUS} CID: ${CALLERID(num)} ${CALLERID(name)} CALLPRES: ${CALLLINGPRES}) [pbx_config]
- 10. Playback(sorry-youre-having-problems&goodbye) [pbx_config]
- 11. Playtones(congestion) [pbx_config]
- 12. Congestion(20) [pbx_config]
- Include => 'macro-privacy-mgr-custom' [pbx_config]
- [ Context 'macro-dialout-trunk' created by 'pbx_config' ]
- '1' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
- '17' => 1. Goto(s-BUSY,1) [pbx_config]
- '18' => 1. Goto(s-NOANSWER,1) [pbx_config]
- '22' => 1. Goto(s-CHANGED,1) [pbx_config]
- '23' => 1. Goto(s-CHANGED,1) [pbx_config]
- '28' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
- 'bypass' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) [pbx_config]
- 'continue' => 1. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
- 2. ExecIf($["${AMPUSER}"!="" ]?Set(CALLERID(number)=${AMPUSER})) [pbx_config]
- 'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 's' => 1. Set(DIAL_TRUNK=${ARG1}) [pbx_config]
- 2. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
- 3. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) [pbx_config]
- 4. Set(DIAL_NUMBER=${ARG2}) [pbx_config]
- 5. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
- 6. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
- 7. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) [pbx_config]
- 8. GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) [pbx_config]
- [nomax] 9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx_config]
- 10. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
- 11. Macro(outbound-callerid,${DIAL_TRUNK}) [pbx_config]
- [skipoutcid] 12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
- 13. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
- 14. Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) [pbx_config]
- 15. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) [pbx_config]
- 16. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm))) [pbx_config]
- [gocall] 17. Macro(dialout-trunk-predial-hook,) [pbx_config]
- 18. GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) [pbx_config]
- 19. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
- 20. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"!="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)})) [pbx_config]
- 21. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:(Hidden)${CALLERID(number)})) [pbx_config]
- 22. GotoIf($["${custom}" = "AMP"]?customtrunk) [pbx_config]
- 23. Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
- 24. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
- 25. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1) [pbx_config]
- [customtrunk] 26. Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) [pbx_config]
- 27. Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) [pbx_config]
- 28. Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) [pbx_config]
- 29. GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) [pbx_config]
- [outnum] 30. Set(the_num=${OUTNUM}) [pbx_config]
- [skipoutnum] 31. Dial(${pre_num:4}${the_num}${post_num},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
- 32. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
- 33. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1) [pbx_config]
- [chanfull] 34. Noop(max channels used up) [pbx_config]
- 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- 's-BUSY' => 1. Noop(Dial failed due to trunk reporting BUSY - giving up) [pbx_config]
- 2. Playtones(busy) [pbx_config]
- 3. Busy(20) [pbx_config]
- 's-CHANGED' => 1. Noop(Dial failed due to trunk reporting Number Changed - giving up) [pbx_config]
- 2. Playtones(busy) [pbx_config]
- 3. Busy(20) [pbx_config]
- 's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomplete - giving up) [pbx_config]
- 2. Progress() [pbx_config]
- 3. Playback(ss-noservice,noanswer) [pbx_config]
- 4. Busy(20) [pbx_config]
- 's-NOANSWER' => 1. Noop(Dial failed due to trunk reporting NOANSWER - giving up) [pbx_config]
- 2. Progress() [pbx_config]
- 3. Playback(number-not-answering,noanswer) [pbx_config]
- 4. Congestion(20) [pbx_config]
- '_s-.' => 1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) [pbx_config]
- 2. Goto(${RC},1) [pbx_config]
- '_X.' => 1. Goto(continue,1) [pbx_config]
- '_X' => 1. Goto(continue,1) [pbx_config]
- Include => 'macro-dialout-trunk-custom' [pbx_config]
- [ Context 'sub-pincheck' created by 'pbx_config' ]
- 's' => 1. Authenticate(${ARG3},) [pbx_config]
- 2. ResetCDR() [pbx_config]
- 3. Return() [pbx_config]
- Include => 'sub-pincheck-custom' [pbx_config]
- [ Context 'macro-auto-blkvm' created by 'pbx_config' ]
- 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
- 2. Set(CFIGNORE=) [pbx_config]
- 3. Set(MASTER_CHANNEL(CFIGNORE)=) [pbx_config]
- 4. Set(FORWARD_CONTEXT=from-internal) [pbx_config]
- 5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_config]
- 6. Macro(blkvm-clr,) [pbx_config]
- 7. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
- 8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
- Include => 'macro-auto-blkvm-custom' [pbx_config]
- [ Context 'macro-auto-confirm' created by 'pbx_config' ]
- 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
- 2. Set(CFIGNORE=) [pbx_config]
- 3. Set(MASTER_CHANNEL(CFIGNORE)=) [pbx_config]
- 4. Set(FORWARD_CONTEXT=from-internal) [pbx_config]
- 5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_config]
- 6. Macro(blkvm-clr,) [pbx_config]
- 7. Noop(Deleting: RG/${ARG1}/${UNIQCHAN} ${DB_DELETE(RG/${ARG1}/${UNIQCHAN})}) [pbx_config]
- 8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
- 9. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
- Include => 'macro-auto-confirm-custom' [pbx_config]
- [ Context 'macro-confirm' created by 'pbx_config' ]
- '1' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
- 2. Noop(Deleting: RG/${ARG3}/${UNIQCHAN} ${DB_DELETE(RG/${ARG3}/${UNIQCHAN})}) [pbx_config]
- 3. Macro(blkvm-clr,) [pbx_config]
- 4. Set(SHARED(ANSWER_STATUS,${FORCE_CONFIRM})=) [pbx_config]
- [skip] 5. Set(__MACRO_RESULT=) [pbx_config]
- 6. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
- [exitopt1] 7. MacroExit() [pbx_config]
- '2' => 1. Goto(noanswer,1) [pbx_config]
- '3' => 1. SayDigits(${CALLCONFIRMCID}) [pbx_config]
- 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1:s,start) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 'noanswer' => 1. Set(__MACRO_RESULT=ABORT) [pbx_config]
- [exitnoanswer] 2. MacroExit() [pbx_config]
- 's' => 1. Set(LOOPCOUNT=0) [pbx_config]
- 2. Set(__MACRO_RESULT=ABORT) [pbx_config]
- 3. Set(MSG1=${IF($["${ARG1}${ALT_CONFIRM_MSG}"=""]?incoming-call-1-accept-2-decline:${IF($[${LEN(${ALT_CONFIRM_MSG})}>0]?${ALT_CONFIRM_MSG}:${ARG1})})}) [pbx_config]
- [start] 4. Background(${MSG1},m,${CHANNEL(language)},macro-confirm) [pbx_config]
- 5. Read(INPUT,,1,,,4) [pbx_config]
- 6. GotoIf($[${LEN(${INPUT})} > 0]?${INPUT},1:t,1) [pbx_config]
- 't' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
- 2. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
- 3. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
- 'toolate' => 1. Set(MSG2=${IF($["foo${ARG2}" != "foo"]?${ARG2}:"incoming-call-no-longer-avail")}) [pbx_config]
- 2. Playback(${MSG2}) [pbx_config]
- 3. Set(__MACRO_RESULT=ABORT) [pbx_config]
- [exittoolate] 4. MacroExit() [pbx_config]
- '_X' => 1. Background(invalid,m,${CHANNEL(language)},macro-confirm) [pbx_config]
- 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" | "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
- 3. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
- 4. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
- Include => 'macro-confirm-custom' [pbx_config]
- [ Context 'sub-presencestate-display' created by 'pbx_config' ]
- 's' => 1. Goto(state-${TOLOWER(${PRESENCE_STATE(CustomPresence:${ARG1},value)})},1) [pbx_config]
- 'state-' => 1. Set(PRESENCESTATE_DISPLAY=) [pbx_config]
- 2. Return() [pbx_config]
- 'state-available' => 1. Set(PRESENCESTATE_DISPLAY=(Available)) [pbx_config]
- 2. Return() [pbx_config]
- 'state-away' => 1. Set(PRESENCESTATE_DISPLAY=(Away)) [pbx_config]
- 2. Return() [pbx_config]
- 'state-chat' => 1. Set(PRESENCESTATE_DISPLAY=(Chatty)) [pbx_config]
- 2. Return() [pbx_config]
- 'state-dnd' => 1. Set(PRESENCESTATE_DISPLAY=(DND)) [pbx_config]
- 2. Return() [pbx_config]
- 'state-unavailable' => 1. Set(PRESENCESTATE_DISPLAY=(Unavailable)) [pbx_config]
- 2. Return() [pbx_config]
- 'state-xa' => 1. Set(PRESENCESTATE_DISPLAY=(Extended Away)) [pbx_config]
- 2. Return() [pbx_config]
- '_state-.' => 1. Set(PRESENCESTATE_DISPLAY=) [pbx_config]
- 2. Return() [pbx_config]
- Include => 'sub-presencestate-display-custom' [pbx_config]
- [ Context 'bad-number' created by 'pbx_config' ]
- '_X.' => 1. ResetCDR() [pbx_config]
- 2. NoCDR() [pbx_config]
- 3. Progress() [pbx_config]
- 4. Wait(1) [pbx_config]
- 5. Progress() [pbx_config]
- 6. Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer) [pbx_config]
- 7. Wait(1) [pbx_config]
- 8. Congestion(20) [pbx_config]
- 9. Hangup() [pbx_config]
- Include => 'bad-number-custom' [pbx_config]
- [ Context 'app-blackhole' created by 'pbx_config' ]
- 'busy' => 1. Noop(Blackhole Dest: Busy) [pbx_config]
- 2. Progress() [pbx_config]
- 3. Busy(20) [pbx_config]
- 4. Hangup() [pbx_config]
- 'congestion' => 1. Noop(Blackhole Dest: Congestion) [pbx_config]
- 2. Progress() [pbx_config]
- 3. Playtones(congestion) [pbx_config]
- 4. Congestion(20) [pbx_config]
- 5. Hangup() [pbx_config]
- 'hangup' => 1. Noop(Blackhole Dest: Hangup) [pbx_config]
- 2. Hangup() [pbx_config]
- 'musiconhold' => 1. Noop(Blackhole Dest: Put caller on hold forever) [pbx_config]
- 2. Answer() [pbx_config]
- 3. MusicOnHold() [pbx_config]
- 'no-service' => 1. Noop(Blackhole Dest: No service) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. Zapateller() [pbx_config]
- 5. Playback(ss-noservice) [pbx_config]
- 6. Hangup() [pbx_config]
- 'ring' => 1. Noop(Blackhole Dest: Ring) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Playtones(ring) [pbx_config]
- 4. Wait(300) [pbx_config]
- 5. Hangup() [pbx_config]
- 'zapateller' => 1. Noop(Blackhole Dest: Play SIT Tone) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Zapateller() [pbx_config]
- Include => 'app-blackhole-custom' [pbx_config]
- [ Context 'outrt-1' created by 'pbx_config' ]
- '1911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN:1},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '211' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '311' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '411' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '511' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '611' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '711' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '91911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN:2},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '933' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '9911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN:1},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1800NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1844NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1855NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1866NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1877NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1888NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_1NXXNXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- '_NXXNXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
- 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
- 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
- 4. Set(_NODEST=) [pbx_config]
- 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
- 6. Macro(outisbusy,) [pbx_config]
- Include => 'outrt-1-custom' [pbx_config]
- [ Context 'outbound-allroutes' created by 'pbx_config' ]
- 'foo' => 1. Noop(bar) [pbx_config]
- Include => 'outbound-allroutes-custom' [pbx_config]
- Include => 'outrt-1' [pbx_config]
- [ Context 'macro-prepend-cid' created by 'pbx_config' ]
- 's' => 1. GotoIf($["${RGPREFIX}" = ""]?REPCID) [pbx_config]
- 2. GotoIf($["${RGPREFIX}" != "${CALLERID(name):0:${LEN(${RGPREFIX})}}"]?REPCID) [pbx_config]
- 3. Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}}) [pbx_config]
- 4. Set(_RGPREFIX=) [pbx_config]
- [REPCID] 5. Set(_RGPREFIX=${ARG1}) [pbx_config]
- 6. Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)}) [pbx_config]
- Include => 'macro-prepend-cid-custom' [pbx_config]
- [ Context 'from-trunk-sip-Teliphone' created by 'pbx_config' ]
- '_.' => 1. Set(GROUP()=OUT_2) [pbx_config]
- 2. Goto(from-trunk,${EXTEN},1) [pbx_config]
- Include => 'from-trunk-sip-Teliphone-custom' [pbx_config]
- [ Context 'ext-trunk' created by 'pbx_config' ]
- '1' => 1. Set(TDIAL_STRING=DAHDI/g0) [pbx_config]
- 2. Set(DIAL_TRUNK=1) [pbx_config]
- 3. Goto(ext-trunk,tdial,1) [pbx_config]
- '2' => 1. Set(TDIAL_STRING=SIP/Teliphone) [pbx_config]
- 2. Set(DIAL_TRUNK=2) [pbx_config]
- 3. Goto(ext-trunk,tdial,1) [pbx_config]
- 'tdial' => 1. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
- 2. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax) [pbx_config]
- 3. GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}}]?hangit) [pbx_config]
- [nomax] 4. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
- 5. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV})) [pbx_config]
- 6. Set(DIAL_NUMBER=${FROM_DID}) [pbx_config]
- 7. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
- 8. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
- 9. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
- 10. Dial(${TDIAL_STRING}/${OUTNUM}${TDIAL_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
- 11. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
- 12. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
- [hangit] 13. Hangup() [pbx_config]
- Include => 'ext-trunk-custom' [pbx_config]
- [ Context 'ext-did-catchall' created by 'pbx_config' ]
- '_.' => 1. Noop(Catch-All DID Match - Found ${EXTEN} - You probably want a DID for this.) [pbx_config]
- 2. Log(WARNING,Friendly Scanner from ${CUT(CUT(SIP_HEADER(Via), ,2),:,1)}) [pbx_config]
- 3. Set(__FROM_DID=${EXTEN}) [pbx_config]
- 4. Goto(ext-did,s,1) [pbx_config]
- Include => 'ext-did-catchall-custom' [pbx_config]
- [ Context 'ext-did-0001' created by 'pbx_config' ]
- 's' => 1. ExecIf($["${FROM_DID}" = ""]?Set(__FROM_DID=${EXTEN})) [pbx_config]
- 2. Gosub(sub-record-check,s,1(in,${EXTEN},dontcare)) [pbx_config]
- 3. Set(CDR(did)=${FROM_DID}) [pbx_config]
- 4. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)})) [pbx_config]
- 5. Set(__MOHCLASS=) [pbx_config]
- 6. Set(__REVERSAL_REJECT=FALSE) [pbx_config]
- 7. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-charge) [pbx_config]
- 8. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupcall) [pbx_config]
- [post-reverse-charge] 9. Noop() [pbx_config]
- 10. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_config]
- 11. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_config]
- 12. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_config]
- 13. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config]
- [did-cid-hook] 14. Noop(CallerID Entry Point) [pbx_config]
- [dest-ext] 15. Goto(from-did-direct,232,1) [pbx_config]
- Include => 'ext-did-0001-custom' [pbx_config]
- [ Context 'ext-did' created by 'pbx_config' ]
- 'foo' => 1. Noop(bar) [pbx_config]
- Include => 'ext-did-custom' [pbx_config]
- Include => 'ext-did-0001' [pbx_config]
- Include => 'ext-did-0002' [pbx_config]
- [ Context 'ext-test' created by 'pbx_config' ]
- '7777' => 1. Macro(user-callerid,) [pbx_config]
- 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- Include => 'ext-test-custom' [pbx_config]
- [ Context 'app-chanspy' created by 'pbx_config' ]
- '555' => 1. Macro(user-callerid,) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. ChanSpy() [pbx_config]
- 5. Hangup() [pbx_config]
- Include => 'app-chanspy-custom' [pbx_config]
- [ Context 'app-pickup' created by 'pbx_config' ]
- '***80222' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(222&222@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80224' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(224&224@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group&601@from-internal&601@from-internal-xfer&601@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80226' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(226&226@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80228' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(228&228@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80229' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(229&229@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80230' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(230&230@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '***80232' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(232&232@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**222' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(222&222@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**224' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(224&224@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group&601@from-internal&601@from-internal-xfer&601@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**226' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(226&226@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**228' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(228&228@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**229' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(229&229@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**230' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(230&230@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '**232' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(232&232@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
- 4. Hangup() [pbx_config]
- '_***80.' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(${EXTEN:5}&${EXTEN:5}@PICKUPMARK) [pbx_config]
- 4. Hangup() [pbx_config]
- '_**.' => 1. Macro(user-callerid,) [pbx_config]
- 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
- 3. Pickup(${EXTEN:2}&${EXTEN:2}@PICKUPMARK) [pbx_config]
- 4. Hangup() [pbx_config]
- Include => 'app-pickup-custom' [pbx_config]
- [ Context 'findmefollow-ringallv2' created by 'pbx_config' ]
- '_FMGL-.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Set(ENDLOOP=$[${EPOCH} + ${FMPRERING} + 2]) [pbx_config]
- [start] 3. GotoIf($["${SHARED(FM_DND,${FMUNIQUE})}" = "DND"]?dodnd) [pbx_config]
- 4. Wait(1) [pbx_config]
- 5. GotoIf($[${EPOCH} < ${ENDLOOP}]?start) [pbx_config]
- 6. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
- [dodial] 7. Macro(dial,${FMGRPTIME},${DIAL_OPTIONS},${EXTEN:5}) [pbx_config]
- 8. Hangup() [pbx_config]
- [dodnd] 19. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
- 20. GotoIf($["${FMPRIME}" = "FALSE"]?dodial) [pbx_config]
- 21. Hangup() [pbx_config]
- '_FMPR-.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Set(RingGroupMethod=) [pbx_config]
- 3. Set(USE_CONFIRMATION=) [pbx_config]
- 4. Set(RINGGROUP_INDEX=) [pbx_config]
- 5. Macro(simple-dial,${EXTEN:5},${FMREALPRERING}) [pbx_config]
- 6. ExecIf($["${DIALSTATUS}" = "BUSY"]?Set(SHARED(FM_DND,${FMUNIQUE})=DND)) [pbx_config]
- 7. Hangup() [pbx_config]
- Include => 'findmefollow-ringallv2-custom' [pbx_config]
- [ Context 'ext-local-confirm' created by 'pbx_config' ]
- '_LC-.' => 1. Dial(${DB(DEVICE/${EXTEN:3}/dial)},${RT},${DIAL_OPTIONS}M(auto-confirm^${RG_IDX})b(func-apply-sipheaders^s^1)) [pbx_config]
- Include => 'ext-local-confirm-custom' [pbx_config]
- [ Context 'macro-dial' created by 'pbx_config' ]
- 'ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- 'DONTCALL' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Zapateller() [pbx_config]
- 4. Playback(ss-noservice) [pbx_config]
- 5. Macro(hangupcall,) [pbx_config]
- 'NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
- 2. GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" = ""]?bye) [pbx_config]
- 3. Return() [pbx_config]
- [bye] 4. Macro(hangupcall,) [pbx_config]
- 'TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 's' => 1. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) [pbx_config]
- 2. ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${LEN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) [pbx_config]
- 3. ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
- 4. ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
- 5. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
- [dial] 6. AGI(dialparties.agi) [pbx_config]
- 7. Noop(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
- 8. MacroExit() [pbx_config]
- [normdial] 9. Noop(Returned from dialparties with groups to dial) [pbx_config]
- 10. Set(LOOPCNT=${FIELDQTY(FILTERED_DIAL,-)}) [pbx_config]
- 11. Set(ITER=1) [pbx_config]
- [ndloopbegin] 12. Set(EXTTOCALL=${CUT(FILTERED_DIAL,-,${ITER})}) [pbx_config]
- 13. Noop(Working with ${EXTTOCALL}) [pbx_config]
- 14. Set(ITER=$[${ITER}+1]) [pbx_config]
- 15. GotoIf($[${ITER}<=${LOOPCNT}]?ndloopbegin) [pbx_config]
- 16. Macro(dial-ringall-predial-hook,) [pbx_config]
- 17. Dial(${ds}b(func-apply-sipheaders^s^1),) [pbx_config]
- 18. Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})}) [pbx_config]
- 19. GosubIf($[("${SCREEN}" != "" & ("${DIALSTATUS}" = "TORTURE" | "${DIALSTATUS}" = "DONTCALL")) | "${DIALSTATUS}" = "ANSWER"]?${DIALSTATUS},1()) [pbx_config]
- [groupnoanswer] 20. Noop(Returning since nobody answered) [pbx_config]
- 21. MacroExit() [pbx_config]
- [huntdial] 22. Noop(Returned from dialparties with hunt groups to dial) [pbx_config]
- 23. Set(HuntLoop=0) [pbx_config]
- 24. ExecIf($[${LEN(${HuntMembers})}=0]?Set(HuntMembers=0)) [pbx_config]
- [a22] 25. GotoIf($[${HuntMembers} >= 1]?a30) [pbx_config]
- [huntnoanswer] 26. Noop(Returning as there are no members left in the hunt group to ring) [pbx_config]
- 27. MacroExit() [pbx_config]
- [a30] 28. Set(HuntMember=HuntMember${HuntLoop}) [pbx_config]
- 29. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGroupMethod}" = "hunt" ] | $["${RingGroupMethod}" = "firstavailable"] | $["${RingGroupMethod}" = "firstnotonphone"]]]?a32:a35) [pbx_config]
- [a32] 30. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])}) [pbx_config]
- 31. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
- 32. Goto(s,huntstart) [pbx_config]
- [a35] 33. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupMethod}" = "memoryhunt" ]]?a36:a50) [pbx_config]
- [a36] 34. Set(CTLoop=0) [pbx_config]
- [a37] 35. GotoIf($[${CTLoop} > ${HuntLoop}]?huntstart) [pbx_config]
- 36. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])}) [pbx_config]
- 37. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
- 38. Set(CTLoop=$[1 + ${CTLoop}]) [pbx_config]
- 39. Goto(s,a37) [pbx_config]
- [huntstart] 40. Noop(Hunt Dial Start) [pbx_config]
- 41. Macro(dial-hunt-predial-hook,) [pbx_config]
- 42. Dial(${${HuntMember}}${ds}b(func-apply-sipheaders^s^1),) [pbx_config]
- 43. GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1) [pbx_config]
- 44. Set(HuntLoop=$[1 + ${HuntLoop}]) [pbx_config]
- 45. GotoIf($[$[$["foo${RingGroupMethod}" != "foofirstavailable"] & $["foo${RingGroupMethod}" != "foofirstnotonphone"]] | $["foo${DialStatus}" = "fooBUSY"]]?a46) [pbx_config]
- 46. Set(HuntMembers=0) [pbx_config]
- [a46] 47. Set(HuntMembers=$[${HuntMembers} - 1]) [pbx_config]
- 48. Goto(s,a22) [pbx_config]
- [a50] 49. Noop(Deleting: CALLTRACE/${CT_EXTEN} ${DB_DELETE(CALLTRACE/${CT_EXTEN})}) [pbx_config]
- 50. Goto(s,huntstart) [pbx_config]
- Include => 'macro-dial-custom' [pbx_config]
- [ Context 'app-userlogonoff' created by 'pbx_config' ]
- '*11' => 1. Macro(user-logon,) [pbx_config]
- [hook_on_1] 2. Hangup() [pbx_config]
- '*12' => 1. Macro(user-logoff,) [pbx_config]
- [hook_off] 2. Hangup() [pbx_config]
- '_*11.' => 1. Macro(user-logon,${EXTEN:3},) [pbx_config]
- [hook_on_2] 2. Hangup() [pbx_config]
- Include => 'app-userlogonoff-custom' [pbx_config]
- [ Context 'app-vmmain' created by 'pbx_config' ]
- '*97' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Macro(user-callerid,) [pbx_config]
- 4. Macro(get-vmcontext,${AMPUSER}) [pbx_config]
- [check] 5. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${AMPUSER}@${VMCONTEXT},exists)}?SUCCESS:FAILED)}) [pbx_config]
- 6. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?mbexist) [pbx_config]
- 7. VoiceMailMain() [pbx_config]
- 8. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
- 9. Macro(hangupcall,) [pbx_config]
- [mbexist] 106. GotoIf($["${DB(AMPUSER/${AMPUSER}/novmpw)}"!=""]?novmpw:vmpw) [pbx_config]
- [novmpw] 107. Noop(Verifying channel ${CHANNEL} is actually ${AMPUSER}) [pbx_config]
- 108. GotoIf($["${REGEX("^${DB(DEVICE/${AMPUSER}/dial)}-[0-9a-fx]+$" ${CHANNEL})}"!="1"]?vmpws) [pbx_config]
- 109. VoiceMailMain(${AMPUSER}@${VMCONTEXT},s) [pbx_config]
- 110. Goto(vmend) [pbx_config]
- [vmpws] 111. Noop(Channel ${CHANNEL} is NOT ${AMPUSER} forcing VM Password) [pbx_config]
- [vmpw] 112. VoiceMailMain(${AMPUSER}@${VMCONTEXT}) [pbx_config]
- 113. Goto(vmend) [pbx_config]
- [vmend] 114. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
- 115. Macro(hangupcall,) [pbx_config]
- [playret] 116. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
- 117. Goto(${IVR_CONTEXT},return,1) [pbx_config]
- Include => 'app-vmmain-custom' [pbx_config]
- [ Context 'from-did-direct-ivr' created by 'pbx_config' ]
- '*222' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,222,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*224' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,224,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*225' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,225,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*226' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,226,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*228' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,228,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*229' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,229,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*230' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,230,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '*232' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Macro(vm,232,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
- '_XXXXXXXXXXXX' => 1. Macro(blkvm-clr,) [pbx_config]
- 2. Set(__NODEST=) [pbx_config]
- 3. Goto(from-did-direct,${EXTEN},1) [pbx_config]
- Include => 'from-did-direct-ivr-custom' [pbx_config]
- [ Context 'ext-local' created by 'pbx_config' ]
- '*222' => 1. Macro(vm,222,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*224' => 1. Macro(vm,224,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*225' => 1. Macro(vm,225,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*226' => 1. Macro(vm,226,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*228' => 1. Macro(vm,228,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*229' => 1. Macro(vm,229,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*230' => 1. Macro(vm,230,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '*232' => 1. Macro(vm,232,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- '222' => hint: PJSIP/001565851953,CustomPresence:222 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/222/ringtimer)}" > "0"]?${DB(AMPUSER/222/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,222,222,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,222,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '224' => hint: PJSIP/001565461075,CustomPresence:224 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/224/ringtimer)}" > "0"]?${DB(AMPUSER/224/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,224,224,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,224,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '225' => hint: PJSIP/001565461361,CustomPresence:225 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/225/ringtimer)}" > "0"]?${DB(AMPUSER/225/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,225,225,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,225,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '226' => hint: PJSIP/001565461091,CustomPresence:226 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/226/ringtimer)}" > "0"]?${DB(AMPUSER/226/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,226,226,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,226,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '228' => hint: PJSIP/001565461365,CustomPresence:228 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/228/ringtimer)}" > "0"]?${DB(AMPUSER/228/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,228,228,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,228,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '229' => hint: PJSIP/001565461377,CustomPresence:229 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/229/ringtimer)}" > "0"]?${DB(AMPUSER/229/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,229,229,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,229,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '230' => hint: PJSIP/001565461367,CustomPresence:230 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/230/ringtimer)}" > "0"]?${DB(AMPUSER/230/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,230,230,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,230,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- '232' => hint: PJSIP/001565352134,CustomPresence:232 [pbx_config]
- 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/232/ringtimer)}" > "0"]?${DB(AMPUSER/232/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
- 2. Macro(exten-vm,232,232,0,0,0) [pbx_config]
- [dest] 3. Set(__PICKUPMARK=) [pbx_config]
- 4. Macro(vm,232,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
- 5. Goto(vmret,1) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80222' => hint: PJSIP/001565851953,CustomPresence:222 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80224' => hint: PJSIP/001565461075,CustomPresence:224 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80225' => hint: PJSIP/001565461361,CustomPresence:225 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80226' => hint: PJSIP/001565461091,CustomPresence:226 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80228' => hint: PJSIP/001565461365,CustomPresence:228 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80229' => hint: PJSIP/001565461377,CustomPresence:229 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80230' => hint: PJSIP/001565461367,CustomPresence:230 [pbx_config]
- 'sess_8hh3st2u5vv4tsqqe9v1021v80232' => hint: PJSIP/001565352134,CustomPresence:232 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84222' => hint: ccss:PJSIP/001565851953 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84224' => hint: ccss:PJSIP/001565461075 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84225' => hint: ccss:PJSIP/001565461361 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84226' => hint: ccss:PJSIP/001565461091 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84228' => hint: ccss:PJSIP/001565461365 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84229' => hint: ccss:PJSIP/001565461377 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84230' => hint: ccss:PJSIP/001565461367 [pbx_config]
- 'sess_i6nt3cg7nm9rq14b1uapuhdg84232' => hint: ccss:PJSIP/001565352134 [pbx_config]
- 'vmb222' => 1. Macro(vm,222,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb224' => 1. Macro(vm,224,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb225' => 1. Macro(vm,225,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb226' => 1. Macro(vm,226,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb228' => 1. Macro(vm,228,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb229' => 1. Macro(vm,229,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb230' => 1. Macro(vm,230,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmb232' => 1. Macro(vm,232,BUSY,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi222' => 1. Macro(vm,222,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi224' => 1. Macro(vm,224,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi225' => 1. Macro(vm,225,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi226' => 1. Macro(vm,226,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi228' => 1. Macro(vm,228,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi229' => 1. Macro(vm,229,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi230' => 1. Macro(vm,230,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmi232' => 1. Macro(vm,232,INSTRUCT,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmret' => 1. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
- 2. Hangup() [pbx_config]
- [playret] 3. Playback(exited-vm-will-be-transfered&silence/1) [pbx_config]
- 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
- 'vms222' => 1. Macro(vm,222,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms224' => 1. Macro(vm,224,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms225' => 1. Macro(vm,225,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms226' => 1. Macro(vm,226,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms228' => 1. Macro(vm,228,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms229' => 1. Macro(vm,229,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms230' => 1. Macro(vm,230,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vms232' => 1. Macro(vm,232,NOMESSAGE,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu222' => 1. Macro(vm,222,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu224' => 1. Macro(vm,224,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu225' => 1. Macro(vm,225,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu226' => 1. Macro(vm,226,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu228' => 1. Macro(vm,228,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu229' => 1. Macro(vm,229,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu230' => 1. Macro(vm,230,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- 'vmu232' => 1. Macro(vm,232,NOANSWER,${IVR_RETVM}) [pbx_config]
- 2. Goto(vmret,1) [pbx_config]
- Include => 'ext-local-custom' [pbx_config]
- [ Context 'app-dialvm' created by 'pbx_config' ]
- '*98' => 1. Macro(user-callerid,) [pbx_config]
- 2. Answer() [pbx_config]
- [start] 3. Wait(1) [pbx_config]
- 4. Noop(app-dialvm: Asking for mailbox) [pbx_config]
- 5. Read(MAILBOX,vm-login,,,3,2) [pbx_config]
- [check] 6. Noop(app-dialvm: Got Mailbox ${MAILBOX}) [pbx_config]
- 7. Macro(get-vmcontext,${MAILBOX}) [pbx_config]
- 8. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${MAILBOX}@${VMCONTEXT},exists)}?SUCCESS:FAILED)}) [pbx_config]
- 9. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?good:bad) [pbx_config]
- 10. Macro(hangupcall,) [pbx_config]
- [good] 11. Noop(app-dialvm: Good mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
- 12. VoiceMailMain(${MAILBOX}@${VMCONTEXT}) [pbx_config]
- 13. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
- 14. Macro(hangupcall,) [pbx_config]
- [bad] 15. Noop(app-dialvm: BAD mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
- 16. Wait(1) [pbx_config]
- 17. Noop(app-dialvm: Asking for password so people can't probe for existence of a mailbox) [pbx_config]
- 18. Read(FAKEPW,vm-password,,,3,2) [pbx_config]
- 19. Noop(app-dialvm: Asking for mailbox again) [pbx_config]
- 20. Read(MAILBOX,vm-incorrect-mailbox,,,3,2) [pbx_config]
- 21. Goto(check) [pbx_config]
- 22. Macro(hangupcall,) [pbx_config]
- [playret] 23. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
- 24. Goto(${IVR_CONTEXT},return,1) [pbx_config]
- '_*98.' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Macro(get-vmcontext,${EXTEN:3}) [pbx_config]
- 4. VoiceMailMain(${EXTEN:3}@${VMCONTEXT}) [pbx_config]
- 5. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1) [pbx_config]
- 6. Macro(hangupcall,) [pbx_config]
- Include => 'app-dialvm-custom' [pbx_config]
- [ Context 'vm-callme' created by 'pbx_config' ]
- '#' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Hangup() [pbx_config]
- '*' => 1. Macro(get-vmcontext,${MBOX}) [pbx_config]
- 2. VoiceMailMain(${MBOX}@${VMCONTEXT},s) [pbx_config]
- '5' => 1. Goto(s,repeat) [pbx_config]
- 'h' => 1. Hangup() [pbx_config]
- 'i' => 1. Playback(pm-invalid-option) [pbx_config]
- 2. Goto(s,repeat) [pbx_config]
- 's' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- [repeat] 3. Background(${MSG}&silence/2&vm-repeat&vm-starmain) [pbx_config]
- 4. WaitExten(15,) [pbx_config]
- 't' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Hangup() [pbx_config]
- Include => 'vm-callme-custom' [pbx_config]
- [ Context 'sub-rgsetcid' created by 'pbx_config' ]
- 's' => 1. Goto(s-${DB(RINGGROUP/${NODEST}/changecid)},1) [pbx_config]
- 's-did' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__REALCALLERIDNUM=${FROM_DID})) [pbx_config]
- 2. Return() [pbx_config]
- 's-extern' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST}/fixedcid)})}" == "1" & "${FROM_DID}" != ""]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGROUP/${NODEST}/fixedcid)})) [pbx_config]
- 2. Return() [pbx_config]
- 's-fixed' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST}/fixedcid)})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGROUP/${NODEST}/fixedcid)})) [pbx_config]
- 2. Return() [pbx_config]
- 's-forcedid' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${FROM_DID})) [pbx_config]
- 2. Return() [pbx_config]
- '_s-.' => 1. Noop(Unknown value for RINGGROUP/${NODEST}/changecid of ${DB(RINGGROUP/${NODEST}/changecid)} set to "default") [pbx_config]
- 2. Set(DB(RINGGROUP/${NODEST}/changecid)=default) [pbx_config]
- 3. Return() [pbx_config]
- Include => 'sub-rgsetcid-custom' [pbx_config]
- [ Context 'ext-group' created by 'pbx_config' ]
- '600' => 1. Progress() [pbx_config]
- 2. Macro(user-callerid,) [pbx_config]
- 3. Macro(blkvm-setifempty,) [pbx_config]
- 4. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 5. Macro(blkvm-set,reset) [pbx_config]
- 6. Set(__NODEST=) [pbx_config]
- [skipov] 7. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 8. Set(__NODEST=${EXTEN}) [pbx_config]
- 9. GosubIf($[${DB_EXISTS(RINGGROUP/600/changecid)} = 1 & "${DB(RINGGROUP/600/changecid)}" != "default" & "${DB(RINGGROUP/600/changecid)}" != ""]?sub-rgsetcid,s,1()) [pbx_config]
- 10. Set(__ALERT_INFO= ) [pbx_config]
- 11. Gosub(sub-record-check,s,1(rg,600,dontcare)) [pbx_config]
- 12. Set(RingGroupMethod=ringall) [pbx_config]
- [DIALGRP] 13. Macro(dial,15,${DIAL_OPTIONS},224-229-222-232-230-228-226) [pbx_config]
- 14. Gosub(sub-record-cancel,s,1()) [pbx_config]
- 15. Set(RingGroupMethod=) [pbx_config]
- 16. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 17. Set(__NODEST=) [pbx_config]
- 18. Macro(blkvm-clr,) [pbx_config]
- 19. Goto(ext-local,vmu224,1) [pbx_config]
- [nodest] 20. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '601' => 1. Progress() [pbx_config]
- 2. Macro(user-callerid,) [pbx_config]
- 3. Macro(blkvm-setifempty,) [pbx_config]
- 4. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 5. Macro(blkvm-set,reset) [pbx_config]
- 6. Set(__NODEST=) [pbx_config]
- [skipov] 7. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 8. Set(__NODEST=${EXTEN}) [pbx_config]
- 9. GosubIf($[${DB_EXISTS(RINGGROUP/601/changecid)} = 1 & "${DB(RINGGROUP/601/changecid)}" != "default" & "${DB(RINGGROUP/601/changecid)}" != ""]?sub-rgsetcid,s,1()) [pbx_config]
- 10. Set(__ALERT_INFO= ) [pbx_config]
- 11. Gosub(sub-record-check,s,1(rg,601,dontcare)) [pbx_config]
- 12. Set(RingGroupMethod=ringall) [pbx_config]
- [DIALGRP] 13. Macro(dial,15,${DIAL_OPTIONS},224) [pbx_config]
- 14. Gosub(sub-record-cancel,s,1()) [pbx_config]
- 15. Set(RingGroupMethod=) [pbx_config]
- 16. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 17. Set(__NODEST=) [pbx_config]
- 18. Macro(blkvm-clr,) [pbx_config]
- 19. Goto(ivr-1,s,1) [pbx_config]
- [nodest] 20. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- Include => 'ext-group-custom' [pbx_config]
- [ Context 'macro-systemrecording' created by 'pbx_config' ]
- '*' => 1. Goto(dorecord,1) [pbx_config]
- '1' => 1. Goto(${LISTEN},dc_start) [pbx_config]
- '2' => 1. Goto(doaccept,1) [pbx_config]
- '3' => 1. Goto(switchlang,1) [pbx_config]
- 'confmenu' => 1. Background(to-listen-to-it&press-1&to-accept-recording&press-2&to-rerecord-it&press-star&language&press-3,m,${CHANNEL(language)},macro-systemrecording) [pbx_config]
- 2. Read(RECRESULT,,1,,,4) [pbx_config]
- 3. GotoIf($["x${RECRESULT}"="x*"]?dorecord,1) [pbx_config]
- 4. GotoIf($["x${RECRESULT}"="x1"]?${LISTEN},2) [pbx_config]
- 5. GotoIf($["x${RECRESULT}"="x2"]?doaccept,1) [pbx_config]
- 6. GotoIf($["x${RECRESULT}"="x3"]?switchlang,1) [pbx_config]
- 7. Goto(1) [pbx_config]
- 'doaccept' => 1. Set(EXISTS=${STAT(e,${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav)}) [pbx_config]
- 2. Noop(${EXISTS}) [pbx_config]
- 3. GotoIf($["${EXISTS}" != "1"]?exit) [pbx_config]
- 4. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished) [pbx_config]
- 5. GotoIf($["x${TMPRECFILE}"="x"]?exit) [pbx_config]
- 6. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav ${ASTVARLIBDIR}/sounds/${RECFILE}.wav) [pbx_config]
- 7. Set(TMPRECFILE=${RECFILE}) [pbx_config]
- [exit] 8. Playback(auth-thankyou) [pbx_config]
- 9. Goto(confmenu,1) [pbx_config]
- 'docheck' => 1. Playback(beep) [pbx_config]
- [dc_start] 2. Background(${RECFILE},m,${CHANNEL(language)},macro-systemrecording) [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. Goto(confmenu,1) [pbx_config]
- 'dochecknolanguage' => 1. Playback(beep) [pbx_config]
- [dc_start] 2. Background(${TMPRECFILE},m,,macro-systemrecording) [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. Goto(confmenu,1) [pbx_config]
- 'dorecord' => 1. Set(TMPRECFILE=${RECFILE}-TMP) [pbx_config]
- 2. Background(say-temp-msg-prs-pound,,${CHANNEL(language)}) [pbx_config]
- 3. Record(${TMPRECFILE}.wav,,,k) [pbx_config]
- 4. Set(LISTEN=dochecknolanguage) [pbx_config]
- 5. Goto(confmenu,1) [pbx_config]
- 'h' => 1. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished) [pbx_config]
- 2. GotoIf($["x${TMPRECFILE}"="x"]?exit) [pbx_config]
- 3. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav ${ASTVARLIBDIR}/sounds/${CHANNEL(language)}/${RECFILE}.wav) [pbx_config]
- [exit] 4. Hangup() [pbx_config]
- 'i' => 1. Playback(pm-invalid-option) [pbx_config]
- 2. Goto(confmenu,1) [pbx_config]
- 'invalid' => 1. Playback(pm-invalid-option) [pbx_config]
- 2. Hangup() [pbx_config]
- 's' => 1. GotoIf($["${ARG2}" = ""]?invalid) [pbx_config]
- 2. Set(TMPLANG=${CHANNEL(language)}) [pbx_config]
- 3. Set(RECFILE=${TMPLANG}/${ARG2}) [pbx_config]
- 4. Set(LISTEN=docheck) [pbx_config]
- 5. ExecIf($["${ARG3}" != ""]?Authenticate(${ARG3})) [pbx_config]
- 6. Goto(${ARG1},1) [pbx_config]
- 'switchlang' => 1. Playback(language&is-set-to) [pbx_config]
- 2. SayAlpha(${TMPLANG}) [pbx_config]
- 3. Playback(after-the-tone) [pbx_config]
- 4. Background(press-1) [pbx_config]
- 5. SayAlpha(en) [pbx_config]
- 6. Background(press-2) [pbx_config]
- 7. SayAlpha(fr) [pbx_config]
- 8. Playback(beep) [pbx_config]
- 9. Read(LANGRESULT,,1,,,4) [pbx_config]
- 10. ExecIf($["x${LANGRESULT}"="x1"]?Set(TMPLANG=en)) [pbx_config]
- 11. ExecIf($["x${LANGRESULT}"="x2"]?Set(TMPLANG=fr)) [pbx_config]
- 12. Set(RECFILE=${TMPLANG}/${ARG2}) [pbx_config]
- 13. Playback(language&is-set-to) [pbx_config]
- 14. SayAlpha(${TMPLANG}) [pbx_config]
- 15. Goto(confmenu,1) [pbx_config]
- 't' => 1. Playback(goodbye) [pbx_config]
- 2. Hangup() [pbx_config]
- Include => 'macro-systemrecording-custom' [pbx_config]
- [ Context 'systemrecording-gui' created by 'pbx_config' ]
- 'dorecord' => 1. Record(${RECFILE}.wav,,,k) [pbx_config]
- 'h' => 1. System(touch ${RECFILE}.finished) [pbx_config]
- [exit] 2. Hangup() [pbx_config]
- Include => 'systemrecording-gui-custom' [pbx_config]
- [ Context 'app-languages' created by 'pbx_config' ]
- '1' => 1. Noop(Changing Channel to language: en (ENG)) [pbx_config]
- 2. Set(CHANNEL(language)=en) [pbx_config]
- 3. Goto(ivr-2,s,1) [pbx_config]
- Include => 'app-languages-custom' [pbx_config]
- [ Context 'ivr-1' created by 'pbx_config' ]
- '*' => 1. Goto(directory,1,1) [pbx_config]
- '0' => 1. Goto(ext-group,600,1) [pbx_config]
- '1' => 1. Goto(ext-group,600,1) [pbx_config]
- '2' => 1. Goto(from-did-direct,224,1) [pbx_config]
- '3' => 1. Goto(from-did-direct,232,1) [pbx_config]
- '4' => 1. Goto(from-did-direct,222,1) [pbx_config]
- '9' => 1. Goto(app-languages,1,1) [pbx_config]
- 'h' => 1. Hangup() [pbx_config]
- 'hang' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Hangup() [pbx_config]
- 'i' => 1. Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1]) [pbx_config]
- 2. GotoIf($[${INVALID_LOOPCOUNT} > 3]?final) [pbx_config]
- 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
- 6. Goto() [pbx_config]
- 'return' => 1. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
- 2. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}}) [pbx_config]
- 3. Set(IVR_MSG=custom/octantis-music-fr_8k-wav) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- 's' => 1. Set(TIMEOUT_LOOPCOUNT=0) [pbx_config]
- 2. Set(INVALID_LOOPCOUNT=0) [pbx_config]
- 3. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT}) [pbx_config]
- 4. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
- 5. Set(__IVR_RETVM=) [pbx_config]
- 6. GotoIf($["${CHANNEL(state)}" = "Up"]?skip) [pbx_config]
- 7. Answer() [pbx_config]
- 8. Wait(1) [pbx_config]
- [skip] 9. Set(IVR_MSG=custom/octantis-music-fr_8k-wav) [pbx_config]
- [start] 10. Set(TIMEOUT(digit)=3) [pbx_config]
- 11. ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG})) [pbx_config]
- 12. WaitExten(10,) [pbx_config]
- 't' => 1. Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1]) [pbx_config]
- 2. GotoIf($[${TIMEOUT_LOOPCOUNT} > 3]?final) [pbx_config]
- 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
- 6. Goto() [pbx_config]
- Include => 'ivr-1-custom' [pbx_config]
- Include => 'from-did-direct-ivr' [pbx_config]
- [ Context 'ivr-2' created by 'pbx_config' ]
- '*' => 1. Goto(directory,1,1) [pbx_config]
- '0' => 1. Goto(ext-group,600,1) [pbx_config]
- '1' => 1. Goto(ext-group,600,1) [pbx_config]
- '2' => 1. Goto(from-did-direct,224,1) [pbx_config]
- '3' => 1. Goto(from-did-direct,232,1) [pbx_config]
- '4' => 1. Goto(from-did-direct,222,1) [pbx_config]
- 'h' => 1. Hangup() [pbx_config]
- 'hang' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Hangup() [pbx_config]
- 'i' => 1. Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1]) [pbx_config]
- 2. GotoIf($[${INVALID_LOOPCOUNT} > 3]?final) [pbx_config]
- 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
- 6. Goto() [pbx_config]
- 'return' => 1. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
- 2. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}}) [pbx_config]
- 3. Set(IVR_MSG=custom/octantis-music-en_8k-wav) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- 's' => 1. Set(TIMEOUT_LOOPCOUNT=0) [pbx_config]
- 2. Set(INVALID_LOOPCOUNT=0) [pbx_config]
- 3. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT}) [pbx_config]
- 4. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
- 5. Set(__IVR_RETVM=) [pbx_config]
- 6. GotoIf($["${CHANNEL(state)}" = "Up"]?skip) [pbx_config]
- 7. Answer() [pbx_config]
- 8. Wait(1) [pbx_config]
- [skip] 9. Set(IVR_MSG=custom/octantis-music-en_8k-wav) [pbx_config]
- [start] 10. Set(TIMEOUT(digit)=3) [pbx_config]
- 11. ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG})) [pbx_config]
- 12. WaitExten(10,) [pbx_config]
- 't' => 1. Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1]) [pbx_config]
- 2. GotoIf($[${TIMEOUT_LOOPCOUNT} > 3]?final) [pbx_config]
- 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
- 4. Goto(s,start) [pbx_config]
- [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
- 6. Goto() [pbx_config]
- Include => 'ivr-2-custom' [pbx_config]
- Include => 'from-did-direct-ivr' [pbx_config]
- [ Context 'sub-hr24format' created by 'pbx_config' ]
- 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
- 3. Return() [pbx_config]
- 'en' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,kM 'and' S 'seconds') [pbx_config]
- 3. Return() [pbx_config]
- 'fr' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
- 3. Return() [pbx_config]
- 'ja' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
- 3. Return() [pbx_config]
- 's' => 1. GotoIf($[${DIALPLAN_EXISTS(sub-hr24format,${CHANNEL(language)},1)}]?${CHANNEL(language)},1:en,1) [pbx_config]
- Include => 'sub-hr24format-custom' [pbx_config]
- [ Context 'app-speakingclock' created by 'pbx_config' ]
- '*60' => 1. Macro(user-callerid,) [pbx_config]
- 2. Answer() [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. Set(NumLoops=0) [pbx_config]
- [start] 5. Set(FutureTime=$[${EPOCH} + 8]) [pbx_config]
- 6. Set(FutureTimeMod=$[${FutureTime} % 10]) [pbx_config]
- 7. Set(FutureTime=$[${FutureTime} - ${FutureTimeMod} + 10]) [pbx_config]
- 8. Gosub(sub-hr12format,s,1()) [pbx_config]
- [waitloop] 9. Set(TimeLeft=$[${FutureTime} - ${EPOCH}]) [pbx_config]
- 10. GotoIf($[${TimeLeft} < 1]?playbeep) [pbx_config]
- 11. Wait(1) [pbx_config]
- 12. Goto(waitloop) [pbx_config]
- [playbeep] 13. Playback(beep) [pbx_config]
- 14. Wait(5) [pbx_config]
- 15. Set(NumLoops=$[${NumLoops} + 1]) [pbx_config]
- 16. GotoIf($[${NumLoops} < 5]?start) [pbx_config]
- 17. Playback(goodbye) [pbx_config]
- 18. Hangup() [pbx_config]
- Include => 'app-speakingclock-custom' [pbx_config]
- [ Context 'sub-hr12format' created by 'pbx_config' ]
- 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
- 3. Return() [pbx_config]
- 4. Playback(at-tone-time-exactly) [pbx_config]
- 5. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
- 6. Return() [pbx_config]
- 'en' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,IM 'and' S 'seconds' p) [pbx_config]
- 3. Return() [pbx_config]
- 4. Playback(at-tone-time-exactly) [pbx_config]
- 5. SayUnixTime(${FutureTime},,IM 'and' S 'seconds' p) [pbx_config]
- 6. Return() [pbx_config]
- 'fr' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
- 3. Return() [pbx_config]
- 4. Playback(at-tone-time-exactly) [pbx_config]
- 5. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
- 6. Return() [pbx_config]
- 'ja' => 1. Playback(at-tone-time-exactly) [pbx_config]
- 2. SayUnixTime(${FutureTime},,pIMS) [pbx_config]
- 3. Return() [pbx_config]
- 4. Playback(at-tone-time-exactly) [pbx_config]
- 5. SayUnixTime(${FutureTime},,pIMS) [pbx_config]
- 6. Return() [pbx_config]
- 's' => 1. GotoIf($[${DIALPLAN_EXISTS(sub-hr12format,${CHANNEL(language)},1)}]?sub-hr12format,${CHANNEL(language)},1:sub-hr12format,en,1) [pbx_config]
- 2. GotoIf($[${DIALPLAN_EXISTS(sub-hr12format,${CHANNEL(language)},1)}]?${CHANNEL(language)},1:en,1) [pbx_config]
- Include => 'sub-hr12format-custom' [pbx_config]
- [ Context 'app-speakextennum' created by 'pbx_config' ]
- '*65' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Macro(user-callerid,) [pbx_config]
- 4. GotoIf($[${DIALPLAN_EXISTS(app-speakextennum,${CHANNEL(language)},1)}]?app-speakextennum,${CHANNEL(language)},1:app-speakextennum,en,1) [pbx_config]
- 'en' => 1. Playback(your) [pbx_config]
- 2. Playback(extension) [pbx_config]
- 3. Playback(number) [pbx_config]
- 4. Playback(is) [pbx_config]
- 5. SayDigits(${AMPUSER}) [pbx_config]
- 6. Wait(2) [pbx_config]
- 7. Hangup() [pbx_config]
- 'fr' => 1. Playback(your) [pbx_config]
- 2. Playback(extension) [pbx_config]
- 3. Playback(is2) [pbx_config]
- 4. SayDigits(${AMPUSER}) [pbx_config]
- 5. Wait(2) [pbx_config]
- 6. Hangup() [pbx_config]
- 'ja' => 1. Playback(your) [pbx_config]
- 2. Playback(extension) [pbx_config]
- 3. Playback(jp-wa) [pbx_config]
- 4. SayDigits(${AMPUSER}) [pbx_config]
- 5. Wait(2) [pbx_config]
- 6. Hangup() [pbx_config]
- Include => 'app-speakextennum-custom' [pbx_config]
- [ Context 'app-echo-test-echo' created by 'pbx_config' ]
- '_[0-9#*]' => 1. Echo() [pbx_config]
- 2. Playback(demo-echodone) [pbx_config]
- 3. Hangup() [pbx_config]
- Include => 'app-echo-test-echo-custom' [pbx_config]
- [ Context 'app-echo-test' created by 'pbx_config' ]
- '*43' => 1. Answer() [pbx_config]
- 2. Macro(user-callerid,) [pbx_config]
- 3. Wait(1) [pbx_config]
- 4. Background(demo-echotest,,,app-echo-test-echo) [pbx_config]
- 5. Goto(app-echo-test-echo,1,1) [pbx_config]
- Include => 'app-echo-test-custom' [pbx_config]
- [ Context 'app-calltrace-perform' created by 'pbx_config' ]
- '1' => 1. Goto(from-internal,${lastcaller},1) [pbx_config]
- 'i' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- 's' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Macro(user-callerid,) [pbx_config]
- 4. Playback(info-about-last-call&telephone-number) [pbx_config]
- 5. Set(lastcaller=${DB(CALLTRACE/${AMPUSER})}) [pbx_config]
- 6. GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}" = "unknown" ] ]?noinfo) [pbx_config]
- 7. SayDigits(${lastcaller}) [pbx_config]
- 8. Set(TIMEOUT(digit)=3) [pbx_config]
- 9. Set(TIMEOUT(response)=7) [pbx_config]
- 10. Background(to-call-this-number&press-1) [pbx_config]
- 11. Goto(fin) [pbx_config]
- [noinfo] 12. Playback(from-unknown-caller) [pbx_config]
- 13. Macro(hangupcall,) [pbx_config]
- [fin] 14. Noop(Waiting for input) [pbx_config]
- 15. WaitExten(60,) [pbx_config]
- 16. Playback(sorry-youre-having-problems&goodbye) [pbx_config]
- 't' => 1. Playback(vm-goodbye) [pbx_config]
- 2. Macro(hangupcall,) [pbx_config]
- Include => 'app-calltrace-perform-custom' [pbx_config]
- [ Context 'app-calltrace' created by 'pbx_config' ]
- '*69' => 1. Goto(app-calltrace-perform,s,1) [pbx_config]
- Include => 'app-calltrace-custom' [pbx_config]
- [ Context 'sub-fmsetcid' created by 'pbx_config' ]
- 's' => 1. Goto(s-${DB(AMPUSER/${EXTTOCALL}/followme/changecid)},1) [pbx_config]
- 's-did' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__REALCALLERIDNUM=${FROM_DID})) [pbx_config]
- 2. Return() [pbx_config]
- 's-extern' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})}" == "1" & "${FROM_DID}" != ""]?Set(__TRUNKCIDOVERRIDE=${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})) [pbx_config]
- 2. Return() [pbx_config]
- 's-fixed' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})) [pbx_config]
- 2. Return() [pbx_config]
- 's-forcedid' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${FROM_DID})) [pbx_config]
- 2. Return() [pbx_config]
- '_s-.' => 1. Noop(Unknown value for AMPUSER/${EXTTOCALL}/followme/changecid of ${DB(AMPUSER/${EXTTOCALL}/followme/changecid)} set to "default") [pbx_config]
- 2. Set(DB(AMPUSER/${EXTTOCALL}/followme/changecid)=default) [pbx_config]
- 3. Return() [pbx_config]
- Include => 'sub-fmsetcid-custom' [pbx_config]
- [ Context 'fmgrps' created by 'pbx_config' ]
- '_RG-222.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/222/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^222),${EXTEN:7}) [pbx_config]
- '_RG-224.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/224/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^224),${EXTEN:7}) [pbx_config]
- '_RG-225.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/225/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^225),${EXTEN:7}) [pbx_config]
- '_RG-226.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/226/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^226),${EXTEN:7}) [pbx_config]
- '_RG-228.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/228/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^228),${EXTEN:7}) [pbx_config]
- '_RG-229.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/229/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^229),${EXTEN:7}) [pbx_config]
- '_RG-230.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/230/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^230),${EXTEN:7}) [pbx_config]
- '_RG-232.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
- 2. Macro(dial,${DB(AMPUSER/232/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^232),${EXTEN:7}) [pbx_config]
- Include => 'fmgrps-custom' [pbx_config]
- [ Context 'ext-findmefollow' created by 'pbx_config' ]
- '*21001565352134' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461075' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461091' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461361' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461365' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461367' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565461377' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '*21001565851953' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
- '222' => 1. GotoIf($[ "${DB(AMPUSER/222/followme/ddial)}" = "EXTENSION" ]?ext-local,222,1) [pbx_config]
- [FM222] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=222) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(222)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/222/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(222@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/222/followme/changecid)} = 1 & "${DB(AMPUSER/222/followme/changecid)}" != "default" & "${DB(AMPUSER/222/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,222,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=222) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/222/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/222/followme/grptime)} + ${DB(AMPUSER/222/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/222/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/222/followme/grptime)} + ${DB(AMPUSER/222/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/222/followme/grplist)},222) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,222,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '224' => 1. GotoIf($[ "${DB(AMPUSER/224/followme/ddial)}" = "EXTENSION" ]?ext-local,224,1) [pbx_config]
- [FM224] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=224) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(224)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/224/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(224@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/224/followme/changecid)} = 1 & "${DB(AMPUSER/224/followme/changecid)}" != "default" & "${DB(AMPUSER/224/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,224,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=224) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/224/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/224/followme/grptime)} + ${DB(AMPUSER/224/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/224/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/224/followme/grptime)} + ${DB(AMPUSER/224/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/224/followme/grplist)},224) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,224,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '225' => 1. GotoIf($[ "${DB(AMPUSER/225/followme/ddial)}" = "EXTENSION" ]?ext-local,225,1) [pbx_config]
- [FM225] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=225) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(225)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/225/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(225@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/225/followme/changecid)} = 1 & "${DB(AMPUSER/225/followme/changecid)}" != "default" & "${DB(AMPUSER/225/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,225,)) [pbx_config]
- [skipsimple] 19. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 20. Set(_FMGRP=225) [pbx_config]
- [DIALGRP] 21. GotoIf($[("${DB(AMPUSER/225/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 22. Macro(dial,$[ ${DB(AMPUSER/225/followme/grptime)} + ${DB(AMPUSER/225/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/225/followme/grplist)}) [pbx_config]
- 23. Goto(nextstep) [pbx_config]
- [doconfirm] 24. Macro(dial-confirm,$[ ${DB(AMPUSER/225/followme/grptime)} + ${DB(AMPUSER/225/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/225/followme/grplist)},225) [pbx_config]
- [nextstep] 25. Set(RingGroupMethod=) [pbx_config]
- 26. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 27. Set(__NODEST=) [pbx_config]
- 28. Set(__PICKUPMARK=) [pbx_config]
- 29. Macro(blkvm-clr,) [pbx_config]
- 30. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 31. Goto(ext-local,225,dest) [pbx_config]
- [nodest] 32. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '226' => 1. GotoIf($[ "${DB(AMPUSER/226/followme/ddial)}" = "EXTENSION" ]?ext-local,226,1) [pbx_config]
- [FM226] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=226) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(226)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/226/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(226@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/226/followme/changecid)} = 1 & "${DB(AMPUSER/226/followme/changecid)}" != "default" & "${DB(AMPUSER/226/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,226,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2) [pbx_config]
- 22. Set(_FMGRP=226) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/226/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/226/followme/grptime)} + ${DB(AMPUSER/226/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/226/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/226/followme/grptime)} + ${DB(AMPUSER/226/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/226/followme/grplist)},226) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,226,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '228' => 1. GotoIf($[ "${DB(AMPUSER/228/followme/ddial)}" = "EXTENSION" ]?ext-local,228,1) [pbx_config]
- [FM228] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=228) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(228)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/228/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(228@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/228/followme/changecid)} = 1 & "${DB(AMPUSER/228/followme/changecid)}" != "default" & "${DB(AMPUSER/228/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,228,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=228) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/228/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/228/followme/grptime)} + ${DB(AMPUSER/228/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/228/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/228/followme/grptime)} + ${DB(AMPUSER/228/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/228/followme/grplist)},228) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,228,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '229' => 1. GotoIf($[ "${DB(AMPUSER/229/followme/ddial)}" = "EXTENSION" ]?ext-local,229,1) [pbx_config]
- [FM229] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=229) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(229)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/229/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(229@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/229/followme/changecid)} = 1 & "${DB(AMPUSER/229/followme/changecid)}" != "default" & "${DB(AMPUSER/229/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,229,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=229) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/229/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/229/followme/grptime)} + ${DB(AMPUSER/229/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/229/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/229/followme/grptime)} + ${DB(AMPUSER/229/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/229/followme/grplist)},229) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,229,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '230' => 1. GotoIf($[ "${DB(AMPUSER/230/followme/ddial)}" = "EXTENSION" ]?ext-local,230,1) [pbx_config]
- [FM230] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=230) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(230)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/230/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(230@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/230/followme/changecid)} = 1 & "${DB(AMPUSER/230/followme/changecid)}" != "default" & "${DB(AMPUSER/230/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,230,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=230) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/230/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/230/followme/grptime)} + ${DB(AMPUSER/230/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/230/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/230/followme/grptime)} + ${DB(AMPUSER/230/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/230/followme/grplist)},230) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,230,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- '232' => 1. GotoIf($[ "${DB(AMPUSER/232/followme/ddial)}" = "EXTENSION" ]?ext-local,232,1) [pbx_config]
- [FM232] 2. Macro(user-callerid,) [pbx_config]
- 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
- 4. Set(CONNECTEDLINE(num,i)=232) [pbx_config]
- 5. Gosub(sub-presencestate-display,s,1(232)) [pbx_config]
- 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/232/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
- 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(232@ext-local)}) [pbx_config]
- 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
- 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
- 10. Macro(blkvm-setifempty,) [pbx_config]
- 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
- 12. Macro(blkvm-set,reset) [pbx_config]
- 13. Set(__NODEST=) [pbx_config]
- [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
- [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
- 16. GosubIf($[${DB_EXISTS(AMPUSER/232/followme/changecid)} = 1 & "${DB(AMPUSER/232/followme/changecid)}" != "default" & "${DB(AMPUSER/232/followme/changecid)}" != ""]?sub-fmsetcid,s,1()) [pbx_config]
- 17. Set(RecordMethod=Group) [pbx_config]
- [checkrecord] 18. Gosub(sub-record-check,s,1(exten,232,)) [pbx_config]
- 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
- 20. Set(__ALERT_INFO= ) [pbx_config]
- [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
- 22. Set(_FMGRP=232) [pbx_config]
- [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/232/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
- 24. Macro(dial,$[ ${DB(AMPUSER/232/followme/grptime)} + ${DB(AMPUSER/232/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/232/followme/grplist)}) [pbx_config]
- 25. Goto(nextstep) [pbx_config]
- [doconfirm] 26. Macro(dial-confirm,$[ ${DB(AMPUSER/232/followme/grptime)} + ${DB(AMPUSER/232/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/232/followme/grplist)},232) [pbx_config]
- [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
- 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
- 29. Set(__NODEST=) [pbx_config]
- 30. Set(__PICKUPMARK=) [pbx_config]
- 31. Macro(blkvm-clr,) [pbx_config]
- 32. Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"]?CHANUNAVAIL:BUSY)})}) [pbx_config]
- 33. Goto(ext-local,232,dest) [pbx_config]
- [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
- 'FM222' => 1. Goto(222,FM222) [pbx_config]
- 'FM224' => 1. Goto(224,FM224) [pbx_config]
- 'FM225' => 1. Goto(225,FM225) [pbx_config]
- 'FM226' => 1. Goto(226,FM226) [pbx_config]
- 'FM228' => 1. Goto(228,FM228) [pbx_config]
- 'FM229' => 1. Goto(229,FM229) [pbx_config]
- 'FM230' => 1. Goto(230,FM230) [pbx_config]
- 'FM232' => 1. Goto(232,FM232) [pbx_config]
- '_*21X.' => hint: Custom:FOLLOWME${EXTEN:3} [pbx_config]
- Include => 'ext-findmefollow-custom' [pbx_config]
- [ Context 'app-fmf-toggle' created by 'pbx_config' ]
- '*21' => 1. Goto(app-fmf-toggle,s,start) [pbx_config]
- 's' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. Macro(user-callerid,) [pbx_config]
- 4. GotoIf($["${DB(AMPUSER/${AMPUSER}/followme/ddial)}" = "EXTENSION"]?activate) [pbx_config]
- 5. GotoIf($["${DB(AMPUSER/${AMPUSER}/followme/ddial)}" = "DIRECT"]?deactivate:end) [pbx_config]
- [deactivate] 6. Set(DB(AMPUSER/${AMPUSER}/followme/ddial)=EXTENSION) [pbx_config]
- 7. Set(STATE=NOT_INUSE) [pbx_config]
- 8. Gosub(app-fmf-toggle,sstate,1()) [pbx_config]
- [hook_off] 9. Playback(followme&de-activated) [pbx_config]
- [end] 10. Macro(hangupcall,) [pbx_config]
- [activate] 11. Set(DB(AMPUSER/${AMPUSER}/followme/ddial)=DIRECT) [pbx_config]
- 12. Set(STATE=INUSE) [pbx_config]
- 13. Gosub(app-fmf-toggle,sstate,1()) [pbx_config]
- [hook_on] 14. Playback(followme&activated) [pbx_config]
- 15. Macro(hangupcall,) [pbx_config]
- 'sstate' => 1. Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)}) [pbx_config]
- 2. GotoIf($["${DEVICES}" = "" ]?return) [pbx_config]
- 3. Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) [pbx_config]
- 4. Set(ITER=1) [pbx_config]
- [begin] 5. Set(DEVICE_STATE(Custom:FOLLOWME${CUT(DEVICES,&,${ITER})})=${STATE}) [pbx_config]
- 6. Set(ITER=$[${ITER} + 1]) [pbx_config]
- 7. GotoIf($[${ITER} <= ${LOOPCNT}]?begin) [pbx_config]
- [return] 8. Return() [pbx_config]
- Include => 'app-fmf-toggle-custom' [pbx_config]
- [ Context 'ext-featurecodes' created by 'pbx_config' ]
- '*43' => 1. Goto(from-internal,*43,1) [pbx_config]
- '*60' => 1. Goto(from-internal,*60,1) [pbx_config]
- '*98' => 1. Goto(from-internal,*98,1) [pbx_config]
- '555' => 1. Goto(from-internal,555,1) [pbx_config]
- '7777' => 1. Goto(from-internal,7777,1) [pbx_config]
- '888' => 1. Goto(from-internal,888,1) [pbx_config]
- Include => 'ext-featurecodes-custom' [pbx_config]
- [ Context 'directory' created by 'pbx_config' ]
- '1' => 1. Answer() [pbx_config]
- 2. Wait(1) [pbx_config]
- 3. AGI(directory.agi,dir=1,retivr=true) [pbx_config]
- [dial-1] 4. Ringing() [pbx_config]
- 5. Goto(from-internal,${DIR_DIAL},1) [pbx_config]
- 'h' => 1. Macro(hangupcall,) [pbx_config]
- 'invalid' => 1. Playback(${DIR_INVALID_RECORDING}) [pbx_config]
- 2. Ringing() [pbx_config]
- 3. Goto(${DIR_INVALID_CONTEXT},${DIR_INVALID_EXTEN},${DIR_INVALID_PRI}) [pbx_config]
- 'retivr' => 1. Playback(${DIR_INVALID_RECORDING}) [pbx_config]
- 2. Goto(${IVR_CONTEXT},return,1) [pbx_config]
- Include => 'directory-custom' [pbx_config]
- [ Context 'macro-one-touch-record' created by 'pbx_config' ]
- 's' => 1. Set(ONETOUCH_REC_SCRIPT_STATUS=) [pbx_config]
- 2. System(/var/lib/asterisk/bin/one_touch_record.php "${CHANNEL(name)}") [pbx_config]
- 3. Noop(ONETOUCH_REC_SCRIPT_STATUS: [${ONETOUCH_REC_SCRIPT_STATUS}]) [pbx_config]
- 4. ExecIf($["${REC_STATUS}"="RECORDING"]?Playback(beep)) [pbx_config]
- 5. ExecIf($["${REC_STATUS}"="STOPPED"]?Playback(beep&beep)) [pbx_config]
- 6. ExecIf($["${ONETOUCH_REC_SCRIPT_STATUS:0:6}"="DENIED"]?Playback(access-denied)) [pbx_config]
- 7. MacroExit() [pbx_config]
- Include => 'macro-one-touch-record-custom' [pbx_config]
- [ Context 'sub-record-check' created by 'pbx_config' ]
- 'conf' => 1. Noop(Conference Recording Check ${FROMEXTEN} to ${ARG2}) [pbx_config]
- 2. Gosub(recconf,1(${ARG2},${ARG2},${ARG3})) [pbx_config]
- 3. Return() [pbx_config]
- 'exten' => 1. Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2}) [pbx_config]
- 2. Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?external:internal)}) [pbx_config]
- 3. ExecIf(${LEN(${CALLTYPE_OVERRIDE})}?Set(CALLTYPE=${CALLTYPE_OVERRIDE})) [pbx_config]
- 4. Set(CALLEE=${DB(AMPUSER/${ARG2}/recording/in/${CALLTYPE})}) [pbx_config]
- 5. ExecIf($[!${LEN(${CALLEE})}]?Set(CALLEE=dontcare)) [pbx_config]
- 6. GotoIf($["${CALLTYPE}"="external"]?callee) [pbx_config]
- 7. GotoIf($["${CALLEE}"="dontcare"]?caller) [pbx_config]
- 8. ExecIf($[${LEN(${DB(AMPUSER/${FROMEXTEN}/recording/priority)})}]?Set(CALLER_PRI=${DB(AMPUSER/${FROMEXTEN}/recording/priority)}):Set(CALLER_PRI=0)) [pbx_config]
- 9. ExecIf($[${LEN(${DB(AMPUSER/${ARG2}/recording/priority)})}]?Set(CALLEE_PRI=${DB(AMPUSER/${ARG2}/recording/priority)}):Set(CALLEE_PRI=0)) [pbx_config]
- 10. GotoIf($["${CALLER_PRI}"="${CALLEE_PRI}"]?${REC_POLICY}:${IF($[${CALLER_PRI}>${CALLEE_PRI}]?caller:callee)}) [pbx_config]
- [callee] 11. Gosub(recordcheck,1(${CALLEE},${CALLTYPE},${ARG2})) [pbx_config]
- 12. Return() [pbx_config]
- [caller] 13. Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)}) [pbx_config]
- 14. ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare)) [pbx_config]
- 15. ExecIf($["${RECMODE}"="dontcare"]?Set(RECMODE=${CALLEE})) [pbx_config]
- 16. Gosub(recordcheck,1(${RECMODE},${CALLTYPE},${ARG2})) [pbx_config]
- 17. Return() [pbx_config]
- 'in' => 1. Noop(Inbound Recording Check to ${ARG2}) [pbx_config]
- 2. Set(FROMEXTEN=unknown) [pbx_config]
- 3. ExecIf($[${LEN(${CALLERID(num)})}]?Set(FROMEXTEN=${CALLERID(num)})) [pbx_config]
- 4. Gosub(recordcheck,1(${ARG3},in,${ARG2})) [pbx_config]
- 5. Return() [pbx_config]
- 'out' => 1. Noop(Outbound Recording Check from ${FROMEXTEN} to ${ARG2}) [pbx_config]
- 2. Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)}) [pbx_config]
- 3. ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins)) [pbx_config]
- 4. ExecIf($["${ARG3}" = "never" | "${ARG3}" = "force"]?Goto(routewins)) [pbx_config]
- [extenwins] 5. Gosub(recordcheck,1(${RECMODE},out,${ARG2})) [pbx_config]
- 6. Return() [pbx_config]
- [routewins] 7. Gosub(recordcheck,1(${ARG3},out,${ARG2})) [pbx_config]
- 8. Return() [pbx_config]
- 'page' => 1. Noop(Paging Recording Check ${FROMEXTEN} to ${ARG2}) [pbx_config]
- 2. GosubIf($["${REC_POLICY_MODE}"="always"]?recconf,1(${ARG2},${FROMEXTEN},${ARG3})) [pbx_config]
- 3. Return() [pbx_config]
- 'parking' => 1. Noop(User ${ARG2} picked up a parked call) [pbx_config]
- 2. Set(USER=${ARG2}) [pbx_config]
- 3. ExecIf($[!${LEN(${ARG2})}]?Set(USER=unknown)) [pbx_config]
- 4. Set(RECMODE=${DB(AMPUSER/${ARG2}/recording/out/internal)}) [pbx_config]
- 5. ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare)) [pbx_config]
- 6. Gosub(recordcheck,1(${RECMODE},parked,${USER})) [pbx_config]
- 7. Return() [pbx_config]
- 'recconf' => 1. Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3}) [pbx_config]
- 2. Set(__CALLFILENAME=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${DB(RECCONF/${ARG2})}:${ARG1}-${ARG2}-${ARG3}-${TIMESTR}-${UNIQUEID})}) [pbx_config]
- 3. ExecIf($[!${CONFBRIDGE_INFO(parties,${ARG2})}]?Set(DB(RECCONF/${ARG2})=${CALLFILENAME})) [pbx_config]
- 4. Set(CONFBRIDGE(bridge,record_file)=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) [pbx_config]
- 5. ExecIf($["${ARG3}"!="always"]?Return()) [pbx_config]
- 6. Set(__REC_STATUS=RECORDING) [pbx_config]
- 7. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
- 8. Return() [pbx_config]
- 'recordcheck' => 1. Noop(Starting recording check against ${ARG1}) [pbx_config]
- 2. Goto(${ARG1}) [pbx_config]
- [dontcare] 3. Return() [pbx_config]
- [always] 4. Noop(Detected legacy "always" entry. Mapping to "force") [pbx_config]
- [force] 5. Set(__REC_POLICY_MODE=FORCE) [pbx_config]
- 6. GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec) [pbx_config]
- 7. Return() [pbx_config]
- [delayed] 8. Noop(Detected legacy "delayed" entry. Mapping to "yes") [pbx_config]
- [yes] 9. ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return()) [pbx_config]
- 10. Set(__REC_POLICY_MODE=YES) [pbx_config]
- 11. Goto(startrec) [pbx_config]
- [no] 12. Set(__REC_POLICY_MODE=NO) [pbx_config]
- 13. Return() [pbx_config]
- [never] 14. Set(__REC_POLICY_MODE=NEVER) [pbx_config]
- 15. Goto(stoprec) [pbx_config]
- [startrec] 16. Noop(Starting recording: ${ARG2}, ${ARG3}) [pbx_config]
- 17. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
- 18. Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}) [pbx_config]
- 19. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},ai(LOCAL_MIXMON_ID)${MIXMON_BEEP},${MIXMON_POST}) [pbx_config]
- 20. Set(__MIXMON_ID=${LOCAL_MIXMON_ID}) [pbx_config]
- 21. Set(__RECORD_ID=${CHANNEL(name)}) [pbx_config]
- 22. Set(__REC_STATUS=RECORDING) [pbx_config]
- 23. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
- 24. Return() [pbx_config]
- [stoprec] 25. Noop(Stopping recording: ${ARG2}, ${ARG3}) [pbx_config]
- 26. Set(__REC_STATUS=STOPPED) [pbx_config]
- 27. System(/var/lib/asterisk/bin/stoprecording.php "${CHANNEL(name)}") [pbx_config]
- 28. Return() [pbx_config]
- 'recq' => 1. Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3}) [pbx_config]
- 2. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
- 3. Set(MONITOR_FILENAME=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}) [pbx_config]
- 4. MixMonitor(${MONITOR_FILENAME}.${MON_FMT},${MONITOR_OPTIONS}${MIXMON_BEEP},${MIXMON_POST}) [pbx_config]
- 5. Set(__REC_STATUS=RECORDING) [pbx_config]
- 6. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
- 7. Return() [pbx_config]
- 's' => 1. GotoIf($[${LEN(${FROMEXTEN})}]?initialized) [pbx_config]
- 2. Set(__REC_STATUS=INITIALIZED) [pbx_config]
- 3. Set(NOW=${EPOCH}) [pbx_config]
- 4. Set(__DAY=${STRFTIME(${NOW},,%d)}) [pbx_config]
- 5. Set(__MONTH=${STRFTIME(${NOW},,%m)}) [pbx_config]
- 6. Set(__YEAR=${STRFTIME(${NOW},,%Y)}) [pbx_config]
- 7. Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)}) [pbx_config]
- 8. Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})}) [pbx_config]
- 9. Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})}) [pbx_config]
- [initialized] 10. Noop(Recordings initialized) [pbx_config]
- 11. ExecIf($[!${LEN(${ARG3})}]?Set(ARG3=dontcare)) [pbx_config]
- 12. Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE}) [pbx_config]
- 13. ExecIf($["${BLINDTRANSFER}${ATTENDEDTRANSFER}" != ""]?Set(REC_STATUS=NO)) [pbx_config]
- [next] 14. GotoIf($[${LEN(${ARG1})}]?checkaction) [pbx_config]
- [recorderror] 15. Playback(something-terribly-wrong,error) [pbx_config]
- 16. Hangup() [pbx_config]
- [checkaction] 17. GotoIf($[${DIALPLAN_EXISTS(sub-record-check,${ARG1})}]?sub-record-check,${ARG1},1) [pbx_config]
- 18. Noop(Generic ${ARG1} Recording Check - ${FROMEXTEN} ${ARG2}) [pbx_config]
- 19. Gosub(recordcheck,1(${ARG3},${ARG1},${ARG2})) [pbx_config]
- 20. Return() [pbx_config]
- Include => 'sub-record-check-custom' [pbx_config]
- [ Context 'sub-record-cancel' created by 'pbx_config' ]
- 's' => 1. Return() [pbx_config]
- Include => 'sub-record-cancel-custom' [pbx_config]
- -= 446 extensions (2108 priorities) in 101 contexts. =-
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement