Advertisement
Guest User

Untitled

a guest
Apr 19th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 204.99 KB | None | 0 0
  1. [ Context '__func_periodic_hook_context__' created by 'func_periodic_hook' ]
  2. 'beep' (CID match '') => 1. Answer() [func_periodic_hook]
  3. 2. Playback(beep) [func_periodic_hook]
  4. 'hook' (CID match '') => 1. Set(EncodedChannel=${CUT(HOOK_CHANNEL,-,1-2)}) [func_periodic_hook]
  5. 2. Set(GROUP_NAME=${EncodedChannel}${HOOK_ID}) [func_periodic_hook]
  6. 3. Set(GROUP(periodic-hook)=${GROUP_NAME}) [func_periodic_hook]
  7. 4. ExecIf($[${GROUP_COUNT(${GROUP_NAME}@periodic-hook)} > 1]?Hangup()) [func_periodic_hook]
  8. 5. Set(ChannelToSpy=${URIDECODE(${EncodedChannel})}) [func_periodic_hook]
  9. 6. ChanSpy(${ChannelToSpy},qEB) [func_periodic_hook]
  10.  
  11. [ Context 'macro-saydigits' created by 'pbx_config' ]
  12. 's' => 1. Noop(Trying custom SayDigits playback for "${ARG1}") [pbx_config]
  13. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  14. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  15. [tts] 4. Macro(tts-saydigits,${ARG1},${ARG2},${ARG3}) [pbx_config]
  16. 5. SayDigits(${ARG1}) [pbx_config]
  17. 6. Goto(done) [pbx_config]
  18.  
  19. [ Context 'macro-saynumber' created by 'pbx_config' ]
  20. 's' => 1. Noop(Trying custom SayNumber playback for "${ARG1}") [pbx_config]
  21. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  22. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  23. [tts] 4. Macro(tts-saynumber,${ARG1},${ARG2},${ARG3}) [pbx_config]
  24. 5. SayNumber(${ARG1}) [pbx_config]
  25. 6. Goto(done) [pbx_config]
  26. 105. Noop(tts handled saynumber) [pbx_config]
  27.  
  28. [ Context 'macro-sayname' created by 'pbx_config' ]
  29. 's' => 1. Noop(Trying custom SayName playback for "${ARG1}") [pbx_config]
  30. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  31. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  32. [tts] 4. Macro(tts-sayalpha,${ARG1},${ARG2},${ARG3}) [pbx_config]
  33. 5. SayAlpha(${ARG1}) [pbx_config]
  34. 6. Goto(done) [pbx_config]
  35. 105. Noop(tts handled sayname) [pbx_config]
  36.  
  37. [ Context 'macro-saytext' created by 'pbx_config' ]
  38. 's' => 1. Noop(Trying custom SayText playback for "${ARG1}") [pbx_config]
  39. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  40. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  41. [tts] 4. Macro(tts-saytext,${ARG1},${ARG2},${ARG3}) [pbx_config]
  42. 5. Noop(No text-to-speech handler for SayText, cannot say "${ARG1}") [pbx_config]
  43. 6. Goto(done) [pbx_config]
  44. 105. Noop(tts handled saytext) [pbx_config]
  45.  
  46. [ Context 'macro-fixcid' created by 'pbx_config' ]
  47. 's' => 1. Set(CALLERID(name)=${CALLERID(name)}) [pbx_config]
  48.  
  49. [ Context 'default' created by 'pbx_config' ]
  50. 's' => 1. Playback(vm-goodbye) [pbx_config]
  51. 2. Noop(ERROR: FreePBX Does not use the [default] context, confguration error) [pbx_config]
  52. 3. Macro(hangupcall) [pbx_config]
  53. Include => 'ext-local' [pbx_config]
  54.  
  55. [ Context 'macro-user-logoff' created by 'pbx_config' ]
  56. 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
  57. 2. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
  58. 3. AGI(user_login_out.agi,logout,${CALLERID(number)}) [pbx_config]
  59. [done] 4. Playback(agent-loggedoff) [pbx_config]
  60. 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged out of) [pbx_config]
  61. 2. Playback(an-error-has-occured&vm-goodbye) [pbx_config]
  62. 3. Hangup() [pbx_config]
  63.  
  64. [ Context 'macro-user-logon' created by 'pbx_config' ]
  65. 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
  66. 2. Answer() [pbx_config]
  67. 3. Wait(1) [pbx_config]
  68. 4. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
  69. 5. Set(AMPUSER=${ARG1}) [pbx_config]
  70. 6. GotoIf($["${AMPUSER}" != ""]?gotpass) [pbx_config]
  71. [playagain] 7. Read(AMPUSER,please-enter-your-extension-then-press-pound,,,4) [pbx_config]
  72. 8. GotoIf($["${AMPUSER}" = ""]?s-MAXATTEMPTS,1) [pbx_config]
  73. [gotpass] 9. GotoIf($["${DB_EXISTS(AMPUSER/${AMPUSER}/password)}" = "0"]?s-NOUSER,1) [pbx_config]
  74. 10. Set(AMPUSERPASS=${DB_RESULT}) [pbx_config]
  75. 11. GotoIf($[${LEN(${AMPUSERPASS})} = 0]?s-NOPASSWORD,1) [pbx_config]
  76. 12. Set(DEVICEUSER=${DB(DEVICE/${CALLERID(number)}/user)}) [pbx_config]
  77. 13. GotoIf($["${DEVICEUSER}" = "${AMPUSER}"]?s-ALREADYLOGGEDON,1) [pbx_config]
  78. 14. Authenticate(${AMPUSERPASS}) [pbx_config]
  79. 15. AGI(user_login_out.agi,login,${CALLERID(number)},${AMPUSER}) [pbx_config]
  80. 16. Playback(agent-loginok) [pbx_config]
  81. 's-ALREADYLOGGEDON' => 1. NoOp(This device has already been logged into by this user) [pbx_config]
  82. 2. Playback(vm-goodbye) [pbx_config]
  83. 3. Hangup() [pbx_config]
  84. 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged into) [pbx_config]
  85. 2. Playback(ha/phone) [pbx_config]
  86. 3. SayDigits(${CALLERID(number)}) [pbx_config]
  87. 4. Playback(is-curntly-unavail&vm-goodbye) [pbx_config]
  88. 5. Hangup() [pbx_config]
  89. 's-MAXATTEMPTS' => 1. NoOp(Too many login attempts) [pbx_config]
  90. 2. Playback(vm-goodbye) [pbx_config]
  91. 3. Hangup() [pbx_config]
  92. 's-NOPASSWORD' => 1. NoOp(This extension does not exist or no password is set) [pbx_config]
  93. 2. Playback(pbx-invalid) [pbx_config]
  94. 3. Goto(s,playagain) [pbx_config]
  95. 's-NOUSER' => 1. NoOp(Invalid extension ${AMPUSER} entered) [pbx_config]
  96. 2. Playback(pbx-invalid) [pbx_config]
  97. 3. Goto(s,playagain) [pbx_config]
  98.  
  99. [ Context 'macro-dialout-dundi-predial-hook' created by 'pbx_config' ]
  100. 's' => 1. MacroExit() [pbx_config]
  101.  
  102. [ Context 'macro-dial-ringall-predial-hook' created by 'pbx_config' ]
  103. 's' => 1. MacroExit() [pbx_config]
  104.  
  105. [ Context 'macro-dial-hunt-predial-hook' created by 'pbx_config' ]
  106. 's' => 1. MacroExit() [pbx_config]
  107.  
  108. [ Context 'macro-dialout-one-predial-hook' created by 'pbx_config' ]
  109. 's' => 1. MacroExit() [pbx_config]
  110.  
  111. [ Context 'macro-dialout-trunk-predial-hook' created by 'pbx_config' ]
  112. 's' => 1. MacroExit() [pbx_config]
  113.  
  114. [ Context 'macro-get-vmcontext' created by 'pbx_config' ]
  115. 's' => 1. Set(VMCONTEXT=${DB(AMPUSER/${ARG1}/voicemail)}) [pbx_config]
  116. 2. GotoIf($["foo${VMCONTEXT}" = "foo"]?200:300) [pbx_config]
  117. 200. Set(VMCONTEXT=default) [pbx_config]
  118. 300. NoOp() [pbx_config]
  119.  
  120. [ Context 'from-did-direct' created by 'pbx_config' ]
  121. Include => 'ext-findmefollow' [pbx_config]
  122. Include => 'ext-local' [pbx_config]
  123.  
  124. [ Context 'from-internal-xfer' created by 'pbx_config' ]
  125. 'h' => 1. Macro(hangupcall) [pbx_config]
  126. Include => 'from-internal-custom' [pbx_config]
  127. Include => 'from-internal-additional' [pbx_config]
  128.  
  129. [ Context 'from-internal-noxfer' created by 'pbx_config' ]
  130. 'h' => 1. Macro(hangupcall) [pbx_config]
  131. Include => 'from-internal-noxfer-custom' [pbx_config]
  132. Include => 'from-internal-noxfer-additional' [pbx_config]
  133.  
  134. [ Context 'from-internal' created by 'pbx_config' ]
  135. 'h' => 1. Macro(hangupcall) [pbx_config]
  136. Include => 'from-internal-noxfer' [pbx_config]
  137. Include => 'from-internal-xfer' [pbx_config]
  138. Include => 'bad-number' [pbx_config]
  139.  
  140. [ Context 'from-sip-external' created by 'pbx_config' ]
  141. 'h' => 1. Hangup() [pbx_config]
  142. 'i' => 1. Hangup() [pbx_config]
  143. 's' => 1. GotoIf($["${ALLOW_SIP_ANON}"="yes"]?checklang:noanonymous) [pbx_config]
  144. [checklang] 2. GotoIf($["${SIPLANG}"!=""]?setlanguage:from-trunk,${DID},1) [pbx_config]
  145. [setlanguage] 3. Set(CHANNEL(language)=${SIPLANG}) [pbx_config]
  146. 4. Goto(from-trunk,${DID},1) [pbx_config]
  147. [noanonymous] 5. Set(TIMEOUT(absolute)=15) [pbx_config]
  148. 6. Log(WARNING,"Rejecting unknown SIP connection from ${CHANNEL(recvip)}") [pbx_config]
  149. 7. Answer() [pbx_config]
  150. 8. Wait(2) [pbx_config]
  151. 9. Playback(ss-noservice) [pbx_config]
  152. 10. Playtones(congestion) [pbx_config]
  153. 11. Congestion(5) [pbx_config]
  154. 't' => 1. Hangup() [pbx_config]
  155. '_.' => 1. NoOp(Received incoming SIP connection from unknown peer to ${EXTEN}) [pbx_config]
  156. 2. Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})}) [pbx_config]
  157. 3. Goto(s,1) [pbx_config]
  158.  
  159. [ Context 'from-pstn-toheader' created by 'pbx_config' ]
  160. '_.' => 1. Goto(from-pstn,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1) [pbx_config]
  161.  
  162. [ Context 'from-pstn-e164-us' created by 'pbx_config' ]
  163. 's' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  164. 's' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  165. 's' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  166. 's' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  167. 's' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
  168. '_+1NXXNXXXXXX' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  169. '_+1NXXNXXXXXX' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  170. '_+1NXXNXXXXXX' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  171. '_+1NXXNXXXXXX' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  172. '_+1NXXNXXXXXX' => 1. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  173. '_[0-9+].' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  174. '_[0-9+].' (CID match '_+NX.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  175. '_[0-9+].' (CID match '_011NX.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  176. '_[0-9+].' (CID match '_1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):1}) [pbx_config]
  177. '_[0-9+].' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  178. '_[0-9+].' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
  179.  
  180. [ Context 'from-pstn' created by 'pbx_config' ]
  181. Include => 'from-pstn-custom' [pbx_config]
  182. Include => 'ext-did' [pbx_config]
  183. Include => 'ext-did-post-custom' [pbx_config]
  184. Include => 'from-did-direct' [pbx_config]
  185. Include => 'ext-did-catchall' [pbx_config]
  186.  
  187. [ Context 'from-trunk' created by 'pbx_config' ]
  188. Include => 'from-pstn' [pbx_config]
  189.  
  190. [ Context 'from-analog' created by 'pbx_config' ]
  191. Include => 'from-dahdi' [pbx_config]
  192.  
  193. [ Context 'from-digital' created by 'pbx_config' ]
  194. Include => 'from-pstn' [pbx_config]
  195.  
  196. [ Context 'from-internal-noxfer-additional' created by 'pbx_config' ]
  197. 'h' => 1. Hangup() [pbx_config]
  198. Include => 'from-internal-noxfer-additional-custom' [pbx_config]
  199.  
  200. [ Context 'from-internal-additional' created by 'pbx_config' ]
  201. 'h' => 1. Hangup() [pbx_config]
  202. Include => 'from-internal-additional-custom' [pbx_config]
  203. Include => 'app-fmf-toggle' [pbx_config]
  204. Include => 'ext-findmefollow' [pbx_config]
  205. Include => 'fmgrps' [pbx_config]
  206. Include => 'app-calltrace' [pbx_config]
  207. Include => 'app-echo-test' [pbx_config]
  208. Include => 'app-speakextennum' [pbx_config]
  209. Include => 'app-speakingclock' [pbx_config]
  210. Include => 'app-recordings' [pbx_config]
  211. Include => 'ext-group' [pbx_config]
  212. Include => 'grps' [pbx_config]
  213. Include => 'app-dialvm' [pbx_config]
  214. Include => 'app-vmmain' [pbx_config]
  215. Include => 'app-userlogonoff' [pbx_config]
  216. Include => 'ext-local-confirm' [pbx_config]
  217. Include => 'findmefollow-ringallv2' [pbx_config]
  218. Include => 'app-pickup' [pbx_config]
  219. Include => 'app-chanspy' [pbx_config]
  220. Include => 'ext-test' [pbx_config]
  221. Include => 'ext-local' [pbx_config]
  222. Include => 'outbound-allroutes' [pbx_config]
  223.  
  224. [ Context 'macro-parked-call' created by 'pbx_config' ]
  225. 's' => 1. Gosub(sub-record-check,s,1(parking,${AMPUSER},${AMPUSER})) [pbx_config]
  226. Include => 'macro-parked-call-custom' [pbx_config]
  227.  
  228. [ Context 'func-apply-sipheaders' created by 'pbx_config' ]
  229. 's' => 1. Noop(Applying SIP Headers to channel) [pbx_config]
  230. 2. Set(SIPHEADERKEYS=${HASHKEYS(SIPHEADERS)}) [pbx_config]
  231. 3. While($["${SET(sipkey=${SHIFT(SIPHEADERKEYS)})}" != ""]) [pbx_config]
  232. 4. Set(sipheader=${HASH(SIPHEADERS,${sipkey})}) [pbx_config]
  233. 5. SIPAddHeader(${sipkey}: ${sipheader}) [pbx_config]
  234. 6. Set(PJSIP_HEADER(add,${sipkey})=${sipheader}) [pbx_config]
  235. 7. EndWhile() [pbx_config]
  236. 8. Return() [pbx_config]
  237. Include => 'func-apply-sipheaders-custom' [pbx_config]
  238.  
  239. [ Context 'func-set-sipheader' created by 'pbx_config' ]
  240. 's' => 1. Noop(Sip Add Header function called. Adding ${ARG1} = ${ARG2}) [pbx_config]
  241. 2. Set(HASH(_SIPHEADERS,${ARG1})=${ARG2}) [pbx_config]
  242. 3. Return() [pbx_config]
  243. Include => 'func-set-sipheader-custom' [pbx_config]
  244.  
  245. [ Context 'macro-dial-one' created by 'pbx_config' ]
  246. 'cf' => 1. Set(CFAMPUSER=${IF($["${AMPUSER}"=""]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
  247. 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]
  248. 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]
  249. 4. Set(DEXTEN=${IF($["${CFIGNORE}"=""]?"${DB(CF/${DEXTEN})}#": )}) [pbx_config]
  250. 5. ExecIf($["${DEXTEN}"!=""]?Return()) [pbx_config]
  251. 6. Set(DIALSTATUS=NOANSWER) [pbx_config]
  252. 7. Return() [pbx_config]
  253. 'ctclear' => 1. Noop(Deleting: CALLTRACE/${DEXTEN} ${DB_DELETE(CALLTRACE/${DEXTEN})}) [pbx_config]
  254. 2. Return() [pbx_config]
  255. 'ctset' => 1. Set(DB(CALLTRACE/${DEXTEN})=${CALLERID(number)}) [pbx_config]
  256. 2. Return() [pbx_config]
  257. '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]
  258. 2. Set(USEGOTO=${IF($["${ARG1}"=""]?1:0)}) [pbx_config]
  259. 3. Return() [pbx_config]
  260. 'dstring' => 1. Set(DSTRING=) [pbx_config]
  261. 2. Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)}) [pbx_config]
  262. 3. ExecIf($["${DEVICES}"=""]?Return()) [pbx_config]
  263. 4. ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1})) [pbx_config]
  264. 5. Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) [pbx_config]
  265. 6. Set(ITER=1) [pbx_config]
  266. [begin] 7. Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)}) [pbx_config]
  267. 8. GosubIf($["${ASTCHANDAHDI}" = "1"]?zap2dahdi,1()) [pbx_config]
  268. 9. GotoIf($["${THISDIAL:0:5}"!="PJSIP"]?docheck) [pbx_config]
  269. 10. Noop(Debug: Found PJSIP Destination ${THISDIAL}, updating with PJSIP_DIAL_CONTACTS) [pbx_config]
  270. 11. Set(THISDIAL=${PJSIP_DIAL_CONTACTS(${THISDIAL:6})}) [pbx_config]
  271. [docheck] 12. GotoIf($["${THISDIAL}"=""]?skipset) [pbx_config]
  272. [doset] 13. Set(DSTRING=${DSTRING}${THISDIAL}&) [pbx_config]
  273. [skipset] 14. Set(ITER=$[${ITER}+1]) [pbx_config]
  274. 15. GotoIf($[${ITER}<=${LOOPCNT}]?begin) [pbx_config]
  275. 16. ExecIf($["${DSTRING:-1}"!="&"]?Return()) [pbx_config]
  276. 17. Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]}) [pbx_config]
  277. 18. Return() [pbx_config]
  278. 'h' => 1. Macro(hangupcall,) [pbx_config]
  279. 'qwait' => 1. ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)})) [pbx_config]
  280. 2. Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)}) [pbx_config]
  281. 3. Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME}) [pbx_config]
  282. 4. Return() [pbx_config]
  283. 's' => 1. Set(DEXTEN=${ARG3}) [pbx_config]
  284. 2. Set(DIALSTATUS_CW=) [pbx_config]
  285. 3. GosubIf($["${FROM_DID}"!="" & "${SCREEN}"="" & "${DB(AMPUSER/${DEXTEN}/screen)}"!=""]?screen,1()) [pbx_config]
  286. 4. GosubIf($["${DB(CF/${DEXTEN})}"!=""]?cf,1()) [pbx_config]
  287. 5. GotoIf($["${DEXTEN:-1}"="#" | "${DB(DND/${DEXTEN})}"=""]?skip1) [pbx_config]
  288. 6. Set(DEXTEN=) [pbx_config]
  289. 7. Set(DIALSTATUS=BUSY) [pbx_config]
  290. [skip1] 8. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
  291. 9. GotoIf($["${DEXTEN:-1}"="#"]?continue) [pbx_config]
  292. 10. Set(EXTHASCW=${IF($["${CWIGNORE}"!=""]? :${DB(CW/${DEXTEN})})}) [pbx_config]
  293. 11. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!="" | "${DB(CFU/${DEXTEN})}"!=""]?next1:cwinusebusy) [pbx_config]
  294. [next1] 12. GotoIf($["${DB(CFU/${DEXTEN})}"!="" & ("${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN")]?docfu:skip3) [pbx_config]
  295. [docfu] 13. Set(DEXTEN=) [pbx_config]
  296. 14. Set(DIALSTATUS=NOANSWER) [pbx_config]
  297. 15. Goto(nodial) [pbx_config]
  298. [skip3] 16. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!=""]?next2:continue) [pbx_config]
  299. [next2] 17. GotoIf($["${EXTENSION_STATE(${DEXTEN})}"="NOT_INUSE" | "${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN"]?continue) [pbx_config]
  300. 18. ExecIf($["${DB(CFB/${DEXTEN})}"!="" & "${CFIGNORE}"=""]?Set(DIALSTATUS=BUSY)) [pbx_config]
  301. 19. GotoIf($["${EXTHASCW}"!="" | "${DEXTEN:-1}"="#"]?cwinusebusy) [pbx_config]
  302. 20. Set(DEXTEN=) [pbx_config]
  303. 21. Set(DIALSTATUS=BUSY) [pbx_config]
  304. 22. Goto(nodial) [pbx_config]
  305. [cwinusebusy] 23. GotoIf($["${EXTHASCW}"!="" & "${CWINUSEBUSY}"="true"]?next3:continue) [pbx_config]
  306. [next3] 24. ExecIf($["${EXTENSION_STATE(${DEXTEN})}"!="UNAVAILABLE" & "${EXTENSION_STATE(${DEXTEN})}"!="NOT_INUSE" & "${EXTENSION_STATE(${DEXTEN})}"!="UNKNOWN"]?Set(DIALSTATUS_CW=BUSY)) [pbx_config]
  307. [continue] 25. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
  308. 26. GosubIf($["${DEXTEN:-1}"!="#"]?dstring,1():dlocal,1()) [pbx_config]
  309. 27. GotoIf($[${LEN(${DSTRING})}=0]?nodial) [pbx_config]
  310. 28. GotoIf($["${DEXTEN:-1}"="#"]?skiptrace) [pbx_config]
  311. 29. GosubIf($[${REGEX("^[\+]?[0-9]+$" ${CALLERID(number)})} = 1]?ctset,1():ctclear,1()) [pbx_config]
  312. [skiptrace] 30. Set(D_OPTIONS=${IF($["${NODEST}"!="" & ${REGEX("(M[(]auto-blkvm[)])" ${ARG2})} != 1]?${ARG2}M(auto-blkvm):${ARG2})}) [pbx_config]
  313. 31. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) [pbx_config]
  314. 32. ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${LEN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) [pbx_config]
  315. 33. ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
  316. 34. ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
  317. 35. GosubIf($["${ALERT_INFO}"!="" & "${ALERT_INFO}"!=" "]?func-set-sipheader,s,1(Alert-Info,${ALERT_INFO})) [pbx_config]
  318. 36. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  319. 37. GosubIf($["${QUEUEWAIT}"!=""]?qwait,1()) [pbx_config]
  320. 38. Set(__CWIGNORE=${CWIGNORE}) [pbx_config]
  321. 39. Set(__KEEPCID=TRUE) [pbx_config]
  322. 40. GotoIf($["${USEGOTO}"="1"]?usegoto,1) [pbx_config]
  323. 41. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cidname)}" = "" || "${DB(AMPUSER/${AMPUSER}/cidname)}" = ""]?godial) [pbx_config]
  324. 42. Gosub(sub-presencestate-display,s,1(${EXTTOCALL})) [pbx_config]
  325. 43. Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  326. 44. Set(CONNECTEDLINE(num)=${EXTTOCALL}) [pbx_config]
  327. 45. Set(D_OPTIONS=${D_OPTIONS}I) [pbx_config]
  328. [godial] 46. Macro(dialout-one-predial-hook,) [pbx_config]
  329. 47. Dial(${DSTRING},${ARG1},${D_OPTIONS}b(func-apply-sipheaders^s^1)) [pbx_config]
  330. 48. ExecIf($["${DIALSTATUS}"="ANSWER" & "${CALLER_DEST}"!=""]?MacroExit()) [pbx_config]
  331. 49. ExecIf($["${DIALSTATUS_CW}"!=""]?Set(DIALSTATUS=${DIALSTATUS_CW})) [pbx_config]
  332. 50. GosubIf($[("${SCREEN}"!=""&("${DIALSTATUS}"="TORTURE"|"${DIALSTATUS}"="DONTCALL"))|"${DIALSTATUS}"="ANSWER"]?s-${DIALSTATUS},1()) [pbx_config]
  333. 51. MacroExit() [pbx_config]
  334. [nodial] 52. ExecIf($["${DIALSTATUS}" = ""]?Set(DIALSTATUS=NOANSWER)) [pbx_config]
  335. 53. Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
  336. 54. MacroExit() [pbx_config]
  337. 's-BUSY' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  338. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  339. 3. Return() [pbx_config]
  340. 's-CHANUNAVAIL' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  341. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  342. 3. Return() [pbx_config]
  343. 's-DONTCALL' => 1. Answer() [pbx_config]
  344. 2. Wait(1) [pbx_config]
  345. 3. Zapateller() [pbx_config]
  346. 4. Playback(ss-noservice) [pbx_config]
  347. 5. Macro(hangupcall,) [pbx_config]
  348. 's-NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  349. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  350. 3. Return() [pbx_config]
  351. 's-TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
  352. 2. Macro(hangupcall,) [pbx_config]
  353. 'screen' => 1. GotoIf($["${DB(AMPUSER/${DEXTEN}/screen)}"!="nomemory" | "${CALLERID(number)}"=""]?memory) [pbx_config]
  354. 2. ExecIf($[${REGEX("^[0-9a-zA-Z ]+$" ${CALLERID(number)})} = 1]?System(rm -f ${ASTVARLIBDIR}/sounds/priv-callerintros/${CALLERID(number)}.*)) [pbx_config]
  355. [memory] 3. Set(__SCREEN=${DB(AMPUSER/${DEXTEN}/screen)}) [pbx_config]
  356. 4. Set(__SCREEN_EXTEN=${DEXTEN}) [pbx_config]
  357. 5. Set(ARG2=${ARG2}p) [pbx_config]
  358. 6. Return() [pbx_config]
  359. 'usegoto' => 1. Set(USEGOTO=) [pbx_config]
  360. 2. Goto(from-internal,${DSTRING},1) [pbx_config]
  361. 'zap2dahdi' => 1. ExecIf($["${THISDIAL}" = ""]?Return()) [pbx_config]
  362. 2. Set(NEWDIAL=) [pbx_config]
  363. 3. Set(LOOPCNT2=${FIELDQTY(THISDIAL,&)}) [pbx_config]
  364. 4. Set(ITER2=1) [pbx_config]
  365. [begin2] 5. Set(THISPART2=${CUT(THISDIAL,&,${ITER2})}) [pbx_config]
  366. 6. ExecIf($["${THISPART2:0:3}" = "ZAP"]?Set(THISPART2=DAHDI${THISPART2:3})) [pbx_config]
  367. 7. Set(NEWDIAL=${NEWDIAL}${THISPART2}&) [pbx_config]
  368. 8. Set(ITER2=$[${ITER2} + 1]) [pbx_config]
  369. 9. GotoIf($[${ITER2} <= ${LOOPCNT2}]?begin2) [pbx_config]
  370. 10. Set(THISDIAL=${NEWDIAL:0:$[${LEN(${NEWDIAL})}-1]}) [pbx_config]
  371. 11. Return() [pbx_config]
  372. Include => 'macro-dial-one-custom' [pbx_config]
  373.  
  374. [ Context 'macro-hangupcall' created by 'pbx_config' ]
  375. 's' => 1. GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?theend) [pbx_config]
  376. [delrgi] 2. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
  377. [theend] 3. ExecIf($["${ONETOUCH_RECFILE}"!="" & "${CDR(recordingfile)}"=""]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE})) [pbx_config]
  378. 4. Hangup() [pbx_config]
  379. 5. MacroExit() [pbx_config]
  380. Include => 'macro-hangupcall-custom' [pbx_config]
  381.  
  382. [ Context 'macro-blkvm-check' created by 'pbx_config' ]
  383. 's' => 1. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
  384. 2. ExecIf($["${GOSUB_RETVAL}"="" & "${CC_RECALL}"="1"]?Set(GOSUB_RETVAL=TRUE)) [pbx_config]
  385. 3. MacroExit() [pbx_config]
  386. Include => 'macro-blkvm-check-custom' [pbx_config]
  387.  
  388. [ Context 'macro-blkvm-clr' created by 'pbx_config' ]
  389. 's' => 1. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=) [pbx_config]
  390. 2. Set(GOSUB_RETVAL=) [pbx_config]
  391. 3. MacroExit() [pbx_config]
  392. Include => 'macro-blkvm-clr-custom' [pbx_config]
  393.  
  394. [ Context 'macro-blkvm-set' created by 'pbx_config' ]
  395. 's' => 1. ExecIf($[!${EXISTS(${BLKVM_CHANNEL})} | "{ARG1}" = "reset"]?Set(__BLKVM_CHANNEL=${CHANNEL})) [pbx_config]
  396. 2. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
  397. 3. Set(GOSUB_RETVAL=TRUE) [pbx_config]
  398. 4. MacroExit() [pbx_config]
  399. Include => 'macro-blkvm-set-custom' [pbx_config]
  400.  
  401. [ Context 'macro-blkvm-setifempty' created by 'pbx_config' ]
  402. 's' => 1. GotoIf($[!${EXISTS(${BLKVM_CHANNEL})}]?init) [pbx_config]
  403. 2. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
  404. 3. MacroExit() [pbx_config]
  405. [init] 4. Set(__BLKVM_CHANNEL=${CHANNEL}) [pbx_config]
  406. 5. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
  407. 6. Set(GOSUB_RETVAL=TRUE) [pbx_config]
  408. 7. MacroExit() [pbx_config]
  409. Include => 'macro-blkvm-setifempty-custom' [pbx_config]
  410.  
  411. [ Context 'originate-skipvm' created by 'pbx_config' ]
  412. '_.X' => 1. Macro(blkvm-set,) [pbx_config]
  413. 2. Goto(from-internal,${EXTEN},1) [pbx_config]
  414. Include => 'originate-skipvm-custom' [pbx_config]
  415.  
  416. [ Context 'macro-simple-dial' created by 'pbx_config' ]
  417. 'docfb' => 1. GotoIf($["${DB(AMPUSER/${CFBEXT}/device)}" = "" ]?chlocal) [pbx_config]
  418. 2. Dial(Local/${CFBEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
  419. 3. Return() [pbx_config]
  420. [chlocal] 4. Dial(Local/${CFBEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
  421. 5. Return() [pbx_config]
  422. 'docfu' => 1. GotoIf($["${DB(AMPUSER/${CFUEXT}/device)}" = "" ]?chlocal) [pbx_config]
  423. 2. Dial(Local/${CFUEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
  424. 3. Return() [pbx_config]
  425. [chlocal] 4. Dial(Local/${CFUEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
  426. 5. Return() [pbx_config]
  427. 's' => 1. Set(__EXTTOCALL=${ARG1}) [pbx_config]
  428. 2. Set(RT=${ARG2}) [pbx_config]
  429. 3. Set(CFUEXT=${DB(CFU/${EXTTOCALL})}) [pbx_config]
  430. 4. Set(CFBEXT=${DB(CFB/${EXTTOCALL})}) [pbx_config]
  431. 5. Set(CWI_TMP=${CWIGNORE}) [pbx_config]
  432. [macrodial] 6. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
  433. 7. Set(__CWIGNORE=${CWI_TMP}) [pbx_config]
  434. 8. Set(PR_DIALSTATUS=${DIALSTATUS}) [pbx_config]
  435. [calldocfu] 9. GosubIf($["${PR_DIALSTATUS}"="NOANSWER" & "${CFUEXT}"!=""]?docfu,1()) [pbx_config]
  436. [calldocfb] 10. GosubIf($["${PR_DIALSTATUS}"="BUSY" & "${CFBEXT}"!=""]?docfb,1()) [pbx_config]
  437. 11. Set(DIALSTATUS=${PR_DIALSTATUS}) [pbx_config]
  438. 12. Goto(s-${DIALSTATUS},1) [pbx_config]
  439. '_s-.' => 1. Noop(Extension is reporting ${EXTEN}) [pbx_config]
  440. Include => 'macro-simple-dial-custom' [pbx_config]
  441.  
  442. [ Context 'macro-exten-vm' created by 'pbx_config' ]
  443. 'clrheader' => 1. ExecIf($[${LEN(${SIPURI})}&"${SIPURI}"="${SIP_URI_OPTIONS}"]?Set(SIP_URI_OPTIONS=)) [pbx_config]
  444. 2. ExecIf($[${LEN(${ALERTINFO})}]?SIPRemoveHeader(${ALERTINFO})) [pbx_config]
  445. 3. ExecIf($[${LEN(${CALLINFO})}]?SIPRemoveHeader(${CALLINFO})) [pbx_config]
  446. 4. Return() [pbx_config]
  447. 'docfb' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG4}"="1")]?StackPop()) [pbx_config]
  448. 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG4}"="1")]?from-internal,${DB(CFB/${EXTTOCALL})},1) [pbx_config]
  449. 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
  450. 4. Dial(Local/${DB(CFB/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
  451. 5. Return() [pbx_config]
  452. 'docfu' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG3}"="1")]?StackPop()) [pbx_config]
  453. 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&"${ARG3}"="1")]?from-internal,${DB(CFU/${EXTTOCALL})},1) [pbx_config]
  454. 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
  455. 4. Dial(Local/${DB(CFU/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
  456. 5. Return() [pbx_config]
  457. 'exit' => 1. Playback(beep&line-busy-transfer-menu&silence/1) [pbx_config]
  458. 2. MacroExit() [pbx_config]
  459. 's' => 1. Macro(user-callerid,) [pbx_config]
  460. 2. Set(RingGroupMethod=none) [pbx_config]
  461. 3. Set(__EXTTOCALL=${ARG2}) [pbx_config]
  462. 4. Set(__PICKUPMARK=${ARG2}) [pbx_config]
  463. 5. Set(RT=${IF($["${ARG1}"!="novm" | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | "${ARG3}"="1" | "${ARG4}"="1" | "${ARG5}"="1"]?${RINGTIMER}:)}) [pbx_config]
  464. [checkrecord] 6. Gosub(sub-record-check,s,1(exten,${EXTTOCALL},dontcare)) [pbx_config]
  465. 7. GotoIf($["${AMPUSER}"=""|${LEN(${FROM_DID})}|"${DB(AMPUSER/${EXTTOCALL}/answermode)}"!="intercom"|${LEN(${BLINDTRANSFER})}|"${EXTENSION_STATE(${EXTTOCALL})}"!="NOT_INUSE"|"${CC_RECALL}"!=""]?macrodial) [pbx_config]
  466. 8. Set(INTERCOM_EXT_DOPTIONS=${DIAL_OPTIONS}) [pbx_config]
  467. 9. Set(INTERCOM_RETURN=TRUE) [pbx_config]
  468. 10. Gosub(ext-intercom,*80${EXTTOCALL},1()) [pbx_config]
  469. 11. Set(INTERCOM_RETURN=) [pbx_config]
  470. 12. Set(INTERCOM_EXT_DOPTIONS=) [pbx_config]
  471. [macrodial] 13. GosubIf($["${INTERCOM_CALL}"="TRUE" & ${LEN(${BLINDTRANSFER})}]?clrheader,1()) [pbx_config]
  472. 14. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
  473. 15. Set(SV_DIALSTATUS=${DIALSTATUS}) [pbx_config]
  474. [calldocfu] 16. GosubIf($[("${SV_DIALSTATUS}"="NOANSWER"|"${SV_DIALSTATUS}"="CHANUNAVAIL") & "${DB(CFU/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfu,1()) [pbx_config]
  475. [calldocfb] 17. GosubIf($["${SV_DIALSTATUS}"="BUSY" & "${DB(CFB/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfb,1()) [pbx_config]
  476. 18. Set(DIALSTATUS=${SV_DIALSTATUS}) [pbx_config]
  477. 19. ExecIf($[("${DIALSTATUS}"="NOANSWER"&"${ARG3}"="1")|("${DIALSTATUS}"="BUSY"&"${ARG4}"="1")|("${DIALSTATUS}"="CHANUNAVAIL"&"${ARG5}"="1")]?MacroExit()) [pbx_config]
  478. 20. GotoIf($["${ARG1}"="novm"]?s-${DIALSTATUS},1) [pbx_config]
  479. 21. Macro(vm,${ARG1},${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  480. 's-BUSY' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
  481. 2. Playtones(busy) [pbx_config]
  482. 3. Busy(20) [pbx_config]
  483. '_s-!' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
  484. 2. Playtones(congestion) [pbx_config]
  485. 3. Congestion(10) [pbx_config]
  486. Include => 'macro-exten-vm-custom' [pbx_config]
  487.  
  488. [ Context 'macro-vm' created by 'pbx_config' ]
  489. 'a' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  490. 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/novmstar)}" = "1"]?s,1) [pbx_config]
  491. 3. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/ext)}" = "0"]?adef,1) [pbx_config]
  492. 4. Set(VMX_ADEST_EXT=${DB_RESULT}) [pbx_config]
  493. [acontext] 5. Set(VMX_ADEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
  494. [apri] 6. Set(VMX_ADEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
  495. 7. Goto(${VMX_ADEST_CONTEXT},${VMX_ADEST_EXT},${VMX_ADEST_PRI}) [pbx_config]
  496. 'adef' => 1. VoiceMailMain(${MEXTEN}@${VMCONTEXT}) [pbx_config]
  497. 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  498. 3. Hangup() [pbx_config]
  499. 'dovm' => 1. Noop(VMX Timeout - go to voicemail) [pbx_config]
  500. 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VMX_OPTS}${VMGAIN}) [pbx_config]
  501. 3. Goto(exit-${VMSTATUS},1) [pbx_config]
  502. 'exit-FAILED' => 1. Playback(im-sorry&an-error-has-occured) [pbx_config]
  503. 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  504. 3. Hangup() [pbx_config]
  505. 'exit-RETURN' => 1. Noop(Returning From Voicemail because macro) [pbx_config]
  506. 'exit-SUCCESS' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  507. 2. Playback(goodbye) [pbx_config]
  508. 3. Hangup() [pbx_config]
  509. 'exit-USEREXIT' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  510. 2. Playback(goodbye) [pbx_config]
  511. 3. Hangup() [pbx_config]
  512. 'o' => 1. Playback(one-moment-please) [pbx_config]
  513. 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/ext)}" = "0"]?doopdef) [pbx_config]
  514. 3. Set(VMX_OPDEST_EXT=${DB_RESULT}) [pbx_config]
  515. [opcontext] 4. Set(VMX_OPDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
  516. [oppri] 5. Set(VMX_OPDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
  517. 6. Goto(${VMX_OPDEST_CONTEXT},${VMX_OPDEST_EXT},${VMX_OPDEST_PRI}) [pbx_config]
  518. [doopdef] 7. GotoIf($["x${OPERATOR_XTN}"="x"]?nooper:from-internal,${OPERATOR_XTN},1) [pbx_config]
  519. [nooper] 8. GotoIf($["x${FROM_DID}"="x"]?nodid) [pbx_config]
  520. 9. Dial(Local/${FROM_DID}@from-pstn,) [pbx_config]
  521. 10. Macro(hangup,) [pbx_config]
  522. [nodid] 11. Dial(Local/s@from-pstn,) [pbx_config]
  523. 12. Macro(hangup,) [pbx_config]
  524. 's' => 1. Macro(user-callerid,SKIPTTL) [pbx_config]
  525. 2. Set(VMGAIN=${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})": )}) [pbx_config]
  526. 3. Macro(blkvm-check,) [pbx_config]
  527. 4. GotoIf($["${GOSUB_RETVAL}" != "TRUE"]?vmx,1) [pbx_config]
  528. 5. Hangup() [pbx_config]
  529. 's-BUSY' => 1. Noop(BUSY voicemail) [pbx_config]
  530. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  531. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}) [pbx_config]
  532. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  533. 's-DIRECTDIAL' => 1. Noop(DIRECTDIAL voicemail) [pbx_config]
  534. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  535. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN}) [pbx_config]
  536. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  537. 's-INSTRUCT' => 1. Noop(NOMESSAGE (beeb only) voicemail) [pbx_config]
  538. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  539. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}${VMGAIN}) [pbx_config]
  540. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  541. 's-NOMESSAGE' => 1. Noop(NOMESSAGE (beep only) voicemail) [pbx_config]
  542. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  543. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},s${VM_OPTS}${VMGAIN}) [pbx_config]
  544. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  545. 't' => 1. Hangup() [pbx_config]
  546. 'vmx' => 1. Set(MEXTEN=${ARG1}) [pbx_config]
  547. 2. Set(MMODE=${ARG2}) [pbx_config]
  548. 3. Set(RETVM=${ARG3}) [pbx_config]
  549. 4. Set(MODE=${IF($["${MMODE}"="BUSY"]?busy:unavail)}) [pbx_config]
  550. 5. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  551. 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]
  552. 7. Noop(MODE IS: ${MODE}) [pbx_config]
  553. 8. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?chknomsg) [pbx_config]
  554. 9. Set(VM_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}" = "1"]?${DB_RESULT}:${VM_OPTS})}) [pbx_config]
  555. [chknomsg] 10. GotoIf($["${MMODE}"="NOMESSAGE"]?s-${MMODE},1) [pbx_config]
  556. 11. GotoIf($["${MMODE}" != "DIRECTDIAL"]?notdirect) [pbx_config]
  557. 12. Set(MODE=${IF($["${REGEX("[b]" ${VM_DDTYPE})}" = "1"]?busy:${MODE})}) [pbx_config]
  558. [notdirect] 13. Noop(Checking if ext ${MEXTEN} is enabled: ${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}) [pbx_config]
  559. 14. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?s-${MMODE},1) [pbx_config]
  560. 15. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.wav)} = 1) || (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.WAV)} = 1)]?tmpgreet) [pbx_config]
  561. 16. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.wav)} = 0) && (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.WAV)} = 0)]?nofile) [pbx_config]
  562. 17. Set(VMX_TIMEOUT=) [pbx_config]
  563. 18. Set(VMX_REPEAT=) [pbx_config]
  564. 19. Set(VMX_LOOPS=) [pbx_config]
  565. 20. Set(LOOPCOUNT=0) [pbx_config]
  566. 21. Set(VMX_REPEAT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/repeat)}" = "1"]?${DB_RESULT}:${VMX_REPEAT})}) [pbx_config]
  567. [vmxtime] 22. Set(VMX_TIMEOUT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timeout)}" = "1"]?${DB_RESULT}:${VMX_TIMEOUT})}) [pbx_config]
  568. [vmxloops] 23. Set(VMX_LOOPS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loops)}" = "1"]?${DB_RESULT}:${VMX_LOOPS})}) [pbx_config]
  569. [vmxanswer] 24. Answer() [pbx_config]
  570. [loopstart] 25. Read(ACTION,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE},1,skip,${VMX_REPEAT},${VMX_TIMEOUT}) [pbx_config]
  571. 26. GotoIf($["${EXISTS(${ACTION})}" = "1"]?checkopt) [pbx_config]
  572. [noopt] 27. Noop(Timeout: going to timeout dest) [pbx_config]
  573. 28. Set(VMX_OPTS=${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}) [pbx_config]
  574. [chktime] 29. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/ext)}" = "0"]?dotime) [pbx_config]
  575. 30. Set(VMX_TIMEDEST_EXT=${DB_RESULT}) [pbx_config]
  576. 31. Set(VMX_TIMEDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/context)}" = "1"]?${DB_RESULT}:${VMX_TIMEDEST_CONTEXT})}) [pbx_config]
  577. [timepri] 32. Set(VMX_TIMEDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/pri)}" = "1"]?${DB_RESULT}:${VMX_TIMEDEST_PRI})}) [pbx_config]
  578. [dotime] 33. Goto(${VMX_TIMEDEST_CONTEXT},${VMX_TIMEDEST_EXT},${VMX_TIMEDEST_PRI}) [pbx_config]
  579. [checkopt] 34. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/ext)}" = "1"]?doopt) [pbx_config]
  580. 35. GotoIf($["${ACTION}" = "0"]?o,1) [pbx_config]
  581. 36. GotoIf($["${ACTION}" = "*"]?adef,1) [pbx_config]
  582. 37. Set(LOOPCOUNT=$[${LOOPCOUNT} + 1]) [pbx_config]
  583. 38. GotoIf($["${LOOPCOUNT}" > "${VMX_LOOPS}"]?toomany) [pbx_config]
  584. 39. Playback(pm-invalid-option&please-try-again) [pbx_config]
  585. 40. Goto(loopstart) [pbx_config]
  586. [toomany] 41. Noop(Too Many invalid entries, got to invalid dest) [pbx_config]
  587. 42. Set(VMX_OPTS=${VMX_OPTS_LOOP}) [pbx_config]
  588. 43. Set(VMX_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/loops)}" = "1"]?${DB_RESULT}:${VMX_OPTS})}) [pbx_config]
  589. [chkloop] 44. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/ext)}" = "0"]?doloop) [pbx_config]
  590. 45. Set(VMX_LOOPDEST_EXT=${DB_RESULT}) [pbx_config]
  591. 46. Set(VMX_LOOPDEST_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/context)}" = "1"]?${DB_RESULT}:${VMX_LOOPDEST_CONTEXT})}) [pbx_config]
  592. [looppri] 47. Set(VMX_LOOPDEST_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/pri)}" = "1"]?${DB_RESULT}:${VMX_LOOPDEST_PRI})}) [pbx_config]
  593. [doloop] 48. Goto(${VMX_LOOPDEST_CONTEXT},${VMX_LOOPDEST_EXT},${VMX_LOOPDEST_PRI}) [pbx_config]
  594. [doopt] 49. Noop(Got a valid option: ${DB_RESULT}) [pbx_config]
  595. 50. Set(VMX_EXT=${DB_RESULT}) [pbx_config]
  596. 51. GotoIf($["${VMX_EXT}" != "dovm"]?getdest) [pbx_config]
  597. [vmxopts] 52. Set(VMX_OPTS=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/dovm)}" = "1"]?${DB_RESULT}:${VMX_OPTS_DOVM})}) [pbx_config]
  598. [vmxdovm] 53. Goto(dovm,1) [pbx_config]
  599. [getdest] 54. Set(VMX_CONTEXT=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/context)}" = "1"]?${DB_RESULT}:${VMX_CONTEXT})}) [pbx_config]
  600. [vmxpri] 55. Set(VMX_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
  601. [vmxgoto] 56. Goto(${VMX_CONTEXT},${VMX_EXT},${VMX_PRI}) [pbx_config]
  602. [nofile] 57. Noop(File for mode: ${MODE} does not exist, SYSTEMSTATUS: ${SYSTEMSTATUS}, going to normal voicemail) [pbx_config]
  603. 58. Goto(s-${MMODE},1) [pbx_config]
  604. [tmpgreet] 59. Noop(Temporary Greeting Detected, going to normal voicemail) [pbx_config]
  605. 60. Goto(s-${MMODE},1) [pbx_config]
  606. '_s-.' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  607. 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) [pbx_config]
  608. 3. Goto(exit-${VMSTATUS},1) [pbx_config]
  609. Include => 'macro-vm-custom' [pbx_config]
  610.  
  611. [ Context 'macro-block-cf' created by 'pbx_config' ]
  612. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  613. 2. Macro(hangupcall,) [pbx_config]
  614. '_X.' => 1. Hangup() [pbx_config]
  615. Include => 'macro-block-cf-custom' [pbx_config]
  616.  
  617. [ Context 'macro-setmusic' created by 'pbx_config' ]
  618. 's' => 1. Set(CHANNEL(musicclass)=${ARG1}) [pbx_config]
  619. Include => 'macro-setmusic-custom' [pbx_config]
  620.  
  621. [ Context 'macro-dial-confirm' created by 'pbx_config' ]
  622. 's' => 1. Set(DB(RG/${ARG4}/${CHANNEL})=RINGING) [pbx_config]
  623. 2. Set(__UNIQCHAN=${CHANNEL}) [pbx_config]
  624. 3. Set(USE_CONFIRMATION=TRUE) [pbx_config]
  625. 4. Set(RINGGROUP_INDEX=${ARG4}) [pbx_config]
  626. 5. Set(FORCE_CONFIRM=) [pbx_config]
  627. 6. Set(ARG4=) [pbx_config]
  628. 7. Macro(dial,${ARG1},${ARG2},${ARG3}) [pbx_config]
  629. 8. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
  630. 9. Set(USE_CONFIRMATION=) [pbx_config]
  631. 10. Set(RINGGROUP_INDEX=) [pbx_config]
  632. Include => 'macro-dial-confirm-custom' [pbx_config]
  633.  
  634. [ Context 'from-dahdi' created by 'pbx_config' ]
  635. 's' => 1. Noop(Entering from-dahdi with DID == ${DID}) [pbx_config]
  636. 2. Ringing() [pbx_config]
  637. 3. Set(DID=${IF($["${DID}"= ""]?s:${DID})}) [pbx_config]
  638. 4. Noop(DID is now ${DID}) [pbx_config]
  639. 5. GotoIf($["${CHANNEL:0:5}"="DAHDI"]?dahdiok:checkzap) [pbx_config]
  640. [checkzap] 6. GotoIf($["${CHANNEL:0:3}"="Zap"]?zapok:neither) [pbx_config]
  641. [neither] 7. Goto(from-pstn,${DID},1) [pbx_config]
  642. 8. Macro(Hangupcall,dummy) [pbx_config]
  643. [dahdiok] 9. Noop(Is a DAHDi Channel) [pbx_config]
  644. 10. Set(CHAN=${CHANNEL:6}) [pbx_config]
  645. 11. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
  646. 12. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
  647. 13. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
  648. 14. Goto(from-pstn,${DID},1) [pbx_config]
  649. [zapok] 15. Noop(Is a Zaptel Channel) [pbx_config]
  650. 16. Set(CHAN=${CHANNEL:4}) [pbx_config]
  651. 17. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
  652. 18. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
  653. 19. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
  654. 20. Goto(from-pstn,${DID},1) [pbx_config]
  655. '_X.' => 1. Set(DID=${EXTEN}) [pbx_config]
  656. 2. Goto(s,1) [pbx_config]
  657. Include => 'from-dahdi-custom' [pbx_config]
  658.  
  659. [ Context 'from-zaptel' created by 'pbx_config' ]
  660. 'foo' => 1. Noop(bar) [pbx_config]
  661. Include => 'from-zaptel-custom' [pbx_config]
  662. Include => 'from-dahdi' [pbx_config]
  663.  
  664. [ Context 'macro-outbound-callerid' created by 'pbx_config' ]
  665. 's' => 1. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
  666. 2. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV})) [pbx_config]
  667. 3. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
  668. [start] 4. GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid) [pbx_config]
  669. 5. Set(USEROUTCID=${REALCALLERIDNUM}) [pbx_config]
  670. 6. GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass) [pbx_config]
  671. [normcid] 7. Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)}) [pbx_config]
  672. [bypass] 8. Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)}) [pbx_config]
  673. 9. Set(TRUNKOUTCID=${OUTCID_${ARG1}}) [pbx_config]
  674. 10. GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:1:2}" = ""]?trunkcid) [pbx_config]
  675. 11. Set(CALLERID(all)=${EMERGENCYCID}) [pbx_config]
  676. 12. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
  677. 13. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
  678. [exit] 14. MacroExit() [pbx_config]
  679. [trunkcid] 15. ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=${TRUNKOUTCID})) [pbx_config]
  680. [usercid] 16. ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=${USEROUTCID})) [pbx_config]
  681. 17. ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORCEDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}})}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})})) [pbx_config]
  682. [hidecid] 18. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(name-pres)=prohib_passed_screen)) [pbx_config]
  683. 19. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(num-pres)=prohib_passed_screen)) [pbx_config]
  684. 20. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
  685. 21. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
  686. Include => 'macro-outbound-callerid-custom' [pbx_config]
  687.  
  688. [ Context 'macro-user-callerid' created by 'pbx_config' ]
  689. 'en' => 1. Playback(im-sorry&an-error-has-occured&with&call-forwarding) [pbx_config]
  690. 2. Return() [pbx_config]
  691. [hook_1] 3. Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye) [pbx_config]
  692. 4. Return() [pbx_config]
  693. 'h' => 1. Macro(hangupcall,) [pbx_config]
  694. 'ja' => 1. Playback(im-sorry&call-forwarding&jp-no&an-error-has-occured) [pbx_config]
  695. 2. Return() [pbx_config]
  696. [hook_1] 3. Playback(beep&im-sorry&simul-call-limit-reached) [pbx_config]
  697. 4. Return() [pbx_config]
  698. 'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(macro-user-callerid,${CHANNEL(language)})}]?macro-user-callerid,${CHANNEL(language)},${ARG1}():macro-user-callerid,en,${ARG1}()) [pbx_config]
  699. 2. Return() [pbx_config]
  700. 's' => 1. Set(TOUCH_MONITOR=${UNIQUEID}) [pbx_config]
  701. 2. Set(AMPUSER=${IF($["${AMPUSER}" = ""]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
  702. 3. GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPUSERCIDNAME})}]?report) [pbx_config]
  703. 4. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
  704. 5. Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)}) [pbx_config]
  705. 6. GotoIf($["${AMPUSER}" = "none"]?limit) [pbx_config]
  706. 7. Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}) [pbx_config]
  707. 8. GotoIf($["${AMPUSERCIDNAME:1:2}" = ""]?report) [pbx_config]
  708. 9. Set(AMPUSERCID=${IF($["${ARG2}" != "EXTERNAL" & "${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})}) [pbx_config]
  709. 10. Set(__DIAL_OPTIONS=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/dialopts)}" = "1"]?${DB_RESULT}:${DIAL_OPTIONS})}) [pbx_config]
  710. 11. Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>) [pbx_config]
  711. 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]
  712. 13. ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER})) [pbx_config]
  713. 14. ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})) [pbx_config]
  714. [report] 15. GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?continue) [pbx_config]
  715. [report2] 16. Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])}) [pbx_config]
  716. 17. GotoIf($[ ${TTL} > 0 ]?continue) [pbx_config]
  717. 18. Wait(${RINGTIMER}) [pbx_config]
  718. 19. Answer() [pbx_config]
  719. 20. Wait(1) [pbx_config]
  720. 21. Gosub(macro-user-callerid,lang-playback,1(hook_0)) [pbx_config]
  721. 22. Macro(hangupcall,) [pbx_config]
  722. [limit] 23. Answer() [pbx_config]
  723. 24. Wait(1) [pbx_config]
  724. 25. Gosub(macro-user-callerid,lang-playback,1(hook_1)) [pbx_config]
  725. 26. Macro(hangupcall,) [pbx_config]
  726. 27. Congestion(20) [pbx_config]
  727. [continue] 28. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
  728. 29. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  729. 30. Set(CDR(cnum)=${CALLERID(num)}) [pbx_config]
  730. 31. Set(CDR(cnam)=${CALLERID(name)}) [pbx_config]
  731. 32. Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))}) [pbx_config]
  732. Include => 'macro-user-callerid-custom' [pbx_config]
  733.  
  734. [ Context 'macro-privacy-mgr' created by 'pbx_config' ]
  735. 'h' => 1. Hangup() [pbx_config]
  736. 's' => 1. Set(KEEPCID=${CALLERID(num)}) [pbx_config]
  737. 2. Set(TESTCID=${IF($["${CALLERID(num):0:1}"="+"]?${MATH(1+${CALLERID(num):1})}:${MATH(1+${CALLERID(num)})})}) [pbx_config]
  738. 3. ExecIf($[${LEN(${TESTCID})}=0]?Set(CALLERID(num)=)) [pbx_config]
  739. 4. PrivacyManager(${ARG1},${ARG2}) [pbx_config]
  740. 5. GotoIf($["${PRIVACYMGRSTATUS}"="FAILED"]?fail) [pbx_config]
  741. 6. GosubIf($["${CALLED_BLACKLIST}"="1"]?app-blacklist-check,s,1()) [pbx_config]
  742. 7. Set(CALLERID(num-pres)=allowed_passed_screen) [pbx_config]
  743. 8. MacroExit() [pbx_config]
  744. [fail] 9. Noop(STATUS: ${PRIVACYMGRSTATUS} CID: ${CALLERID(num)} ${CALLERID(name)} CALLPRES: ${CALLLINGPRES}) [pbx_config]
  745. 10. Playback(sorry-youre-having-problems&goodbye) [pbx_config]
  746. 11. Playtones(congestion) [pbx_config]
  747. 12. Congestion(20) [pbx_config]
  748. Include => 'macro-privacy-mgr-custom' [pbx_config]
  749.  
  750. [ Context 'macro-dialout-trunk' created by 'pbx_config' ]
  751. '1' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
  752. '17' => 1. Goto(s-BUSY,1) [pbx_config]
  753. '18' => 1. Goto(s-NOANSWER,1) [pbx_config]
  754. '22' => 1. Goto(s-CHANGED,1) [pbx_config]
  755. '23' => 1. Goto(s-CHANGED,1) [pbx_config]
  756. '28' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
  757. 'bypass' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) [pbx_config]
  758. 'continue' => 1. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
  759. 2. ExecIf($["${AMPUSER}"!="" ]?Set(CALLERID(number)=${AMPUSER})) [pbx_config]
  760. 'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) [pbx_config]
  761. 'h' => 1. Macro(hangupcall,) [pbx_config]
  762. 's' => 1. Set(DIAL_TRUNK=${ARG1}) [pbx_config]
  763. 2. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
  764. 3. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) [pbx_config]
  765. 4. Set(DIAL_NUMBER=${ARG2}) [pbx_config]
  766. 5. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
  767. 6. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
  768. 7. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) [pbx_config]
  769. 8. GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) [pbx_config]
  770. [nomax] 9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx_config]
  771. 10. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
  772. 11. Macro(outbound-callerid,${DIAL_TRUNK}) [pbx_config]
  773. [skipoutcid] 12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  774. 13. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
  775. 14. Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) [pbx_config]
  776. 15. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) [pbx_config]
  777. 16. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm))) [pbx_config]
  778. [gocall] 17. Macro(dialout-trunk-predial-hook,) [pbx_config]
  779. 18. GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) [pbx_config]
  780. 19. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
  781. 20. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"!="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)})) [pbx_config]
  782. 21. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:(Hidden)${CALLERID(number)})) [pbx_config]
  783. 22. GotoIf($["${custom}" = "AMP"]?customtrunk) [pbx_config]
  784. 23. Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  785. 24. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  786. 25. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1) [pbx_config]
  787. [customtrunk] 26. Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) [pbx_config]
  788. 27. Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) [pbx_config]
  789. 28. Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) [pbx_config]
  790. 29. GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) [pbx_config]
  791. [outnum] 30. Set(the_num=${OUTNUM}) [pbx_config]
  792. [skipoutnum] 31. Dial(${pre_num:4}${the_num}${post_num},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  793. 32. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  794. 33. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1) [pbx_config]
  795. [chanfull] 34. Noop(max channels used up) [pbx_config]
  796. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  797. 2. Macro(hangupcall,) [pbx_config]
  798. 's-BUSY' => 1. Noop(Dial failed due to trunk reporting BUSY - giving up) [pbx_config]
  799. 2. Playtones(busy) [pbx_config]
  800. 3. Busy(20) [pbx_config]
  801. 's-CHANGED' => 1. Noop(Dial failed due to trunk reporting Number Changed - giving up) [pbx_config]
  802. 2. Playtones(busy) [pbx_config]
  803. 3. Busy(20) [pbx_config]
  804. 's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomplete - giving up) [pbx_config]
  805. 2. Progress() [pbx_config]
  806. 3. Playback(ss-noservice,noanswer) [pbx_config]
  807. 4. Busy(20) [pbx_config]
  808. 's-NOANSWER' => 1. Noop(Dial failed due to trunk reporting NOANSWER - giving up) [pbx_config]
  809. 2. Progress() [pbx_config]
  810. 3. Playback(number-not-answering,noanswer) [pbx_config]
  811. 4. Congestion(20) [pbx_config]
  812. '_s-.' => 1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) [pbx_config]
  813. 2. Goto(${RC},1) [pbx_config]
  814. '_X.' => 1. Goto(continue,1) [pbx_config]
  815. '_X' => 1. Goto(continue,1) [pbx_config]
  816. Include => 'macro-dialout-trunk-custom' [pbx_config]
  817.  
  818. [ Context 'sub-pincheck' created by 'pbx_config' ]
  819. 's' => 1. Authenticate(${ARG3},) [pbx_config]
  820. 2. ResetCDR() [pbx_config]
  821. 3. Return() [pbx_config]
  822. Include => 'sub-pincheck-custom' [pbx_config]
  823.  
  824. [ Context 'macro-auto-blkvm' created by 'pbx_config' ]
  825. 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
  826. 2. Set(CFIGNORE=) [pbx_config]
  827. 3. Set(MASTER_CHANNEL(CFIGNORE)=) [pbx_config]
  828. 4. Set(FORWARD_CONTEXT=from-internal) [pbx_config]
  829. 5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_config]
  830. 6. Macro(blkvm-clr,) [pbx_config]
  831. 7. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
  832. 8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  833. Include => 'macro-auto-blkvm-custom' [pbx_config]
  834.  
  835. [ Context 'macro-auto-confirm' created by 'pbx_config' ]
  836. 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
  837. 2. Set(CFIGNORE=) [pbx_config]
  838. 3. Set(MASTER_CHANNEL(CFIGNORE)=) [pbx_config]
  839. 4. Set(FORWARD_CONTEXT=from-internal) [pbx_config]
  840. 5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_config]
  841. 6. Macro(blkvm-clr,) [pbx_config]
  842. 7. Noop(Deleting: RG/${ARG1}/${UNIQCHAN} ${DB_DELETE(RG/${ARG1}/${UNIQCHAN})}) [pbx_config]
  843. 8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
  844. 9. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  845. Include => 'macro-auto-confirm-custom' [pbx_config]
  846.  
  847. [ Context 'macro-confirm' created by 'pbx_config' ]
  848. '1' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  849. 2. Noop(Deleting: RG/${ARG3}/${UNIQCHAN} ${DB_DELETE(RG/${ARG3}/${UNIQCHAN})}) [pbx_config]
  850. 3. Macro(blkvm-clr,) [pbx_config]
  851. 4. Set(SHARED(ANSWER_STATUS,${FORCE_CONFIRM})=) [pbx_config]
  852. [skip] 5. Set(__MACRO_RESULT=) [pbx_config]
  853. 6. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  854. [exitopt1] 7. MacroExit() [pbx_config]
  855. '2' => 1. Goto(noanswer,1) [pbx_config]
  856. '3' => 1. SayDigits(${CALLCONFIRMCID}) [pbx_config]
  857. 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1:s,start) [pbx_config]
  858. 'h' => 1. Macro(hangupcall,) [pbx_config]
  859. 'noanswer' => 1. Set(__MACRO_RESULT=ABORT) [pbx_config]
  860. [exitnoanswer] 2. MacroExit() [pbx_config]
  861. 's' => 1. Set(LOOPCOUNT=0) [pbx_config]
  862. 2. Set(__MACRO_RESULT=ABORT) [pbx_config]
  863. 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]
  864. [start] 4. Background(${MSG1},m,${CHANNEL(language)},macro-confirm) [pbx_config]
  865. 5. Read(INPUT,,1,,,4) [pbx_config]
  866. 6. GotoIf($[${LEN(${INPUT})} > 0]?${INPUT},1:t,1) [pbx_config]
  867. 't' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  868. 2. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
  869. 3. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
  870. 'toolate' => 1. Set(MSG2=${IF($["foo${ARG2}" != "foo"]?${ARG2}:"incoming-call-no-longer-avail")}) [pbx_config]
  871. 2. Playback(${MSG2}) [pbx_config]
  872. 3. Set(__MACRO_RESULT=ABORT) [pbx_config]
  873. [exittoolate] 4. MacroExit() [pbx_config]
  874. '_X' => 1. Background(invalid,m,${CHANNEL(language)},macro-confirm) [pbx_config]
  875. 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" | "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  876. 3. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
  877. 4. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
  878. Include => 'macro-confirm-custom' [pbx_config]
  879.  
  880. [ Context 'sub-presencestate-display' created by 'pbx_config' ]
  881. 's' => 1. Goto(state-${TOLOWER(${PRESENCE_STATE(CustomPresence:${ARG1},value)})},1) [pbx_config]
  882. 'state-' => 1. Set(PRESENCESTATE_DISPLAY=) [pbx_config]
  883. 2. Return() [pbx_config]
  884. 'state-available' => 1. Set(PRESENCESTATE_DISPLAY=(Available)) [pbx_config]
  885. 2. Return() [pbx_config]
  886. 'state-away' => 1. Set(PRESENCESTATE_DISPLAY=(Away)) [pbx_config]
  887. 2. Return() [pbx_config]
  888. 'state-chat' => 1. Set(PRESENCESTATE_DISPLAY=(Chatty)) [pbx_config]
  889. 2. Return() [pbx_config]
  890. 'state-dnd' => 1. Set(PRESENCESTATE_DISPLAY=(DND)) [pbx_config]
  891. 2. Return() [pbx_config]
  892. 'state-unavailable' => 1. Set(PRESENCESTATE_DISPLAY=(Unavailable)) [pbx_config]
  893. 2. Return() [pbx_config]
  894. 'state-xa' => 1. Set(PRESENCESTATE_DISPLAY=(Extended Away)) [pbx_config]
  895. 2. Return() [pbx_config]
  896. '_state-.' => 1. Set(PRESENCESTATE_DISPLAY=) [pbx_config]
  897. 2. Return() [pbx_config]
  898. Include => 'sub-presencestate-display-custom' [pbx_config]
  899.  
  900. [ Context 'bad-number' created by 'pbx_config' ]
  901. '_X.' => 1. ResetCDR() [pbx_config]
  902. 2. NoCDR() [pbx_config]
  903. 3. Progress() [pbx_config]
  904. 4. Wait(1) [pbx_config]
  905. 5. Progress() [pbx_config]
  906. 6. Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer) [pbx_config]
  907. 7. Wait(1) [pbx_config]
  908. 8. Congestion(20) [pbx_config]
  909. 9. Hangup() [pbx_config]
  910. Include => 'bad-number-custom' [pbx_config]
  911.  
  912. [ Context 'app-blackhole' created by 'pbx_config' ]
  913. 'busy' => 1. Noop(Blackhole Dest: Busy) [pbx_config]
  914. 2. Progress() [pbx_config]
  915. 3. Busy(20) [pbx_config]
  916. 4. Hangup() [pbx_config]
  917. 'congestion' => 1. Noop(Blackhole Dest: Congestion) [pbx_config]
  918. 2. Progress() [pbx_config]
  919. 3. Playtones(congestion) [pbx_config]
  920. 4. Congestion(20) [pbx_config]
  921. 5. Hangup() [pbx_config]
  922. 'hangup' => 1. Noop(Blackhole Dest: Hangup) [pbx_config]
  923. 2. Hangup() [pbx_config]
  924. 'musiconhold' => 1. Noop(Blackhole Dest: Put caller on hold forever) [pbx_config]
  925. 2. Answer() [pbx_config]
  926. 3. MusicOnHold() [pbx_config]
  927. 'no-service' => 1. Noop(Blackhole Dest: No service) [pbx_config]
  928. 2. Answer() [pbx_config]
  929. 3. Wait(1) [pbx_config]
  930. 4. Zapateller() [pbx_config]
  931. 5. Playback(ss-noservice) [pbx_config]
  932. 6. Hangup() [pbx_config]
  933. 'ring' => 1. Noop(Blackhole Dest: Ring) [pbx_config]
  934. 2. Answer() [pbx_config]
  935. 3. Playtones(ring) [pbx_config]
  936. 4. Wait(300) [pbx_config]
  937. 5. Hangup() [pbx_config]
  938. 'zapateller' => 1. Noop(Blackhole Dest: Play SIT Tone) [pbx_config]
  939. 2. Answer() [pbx_config]
  940. 3. Zapateller() [pbx_config]
  941. Include => 'app-blackhole-custom' [pbx_config]
  942.  
  943. [ Context 'outrt-1' created by 'pbx_config' ]
  944. '1911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  945. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  946. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  947. 4. Set(_NODEST=) [pbx_config]
  948. 5. Macro(dialout-trunk,2,${EXTEN:1},,off) [pbx_config]
  949. 6. Macro(outisbusy,) [pbx_config]
  950. '211' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  951. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  952. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  953. 4. Set(_NODEST=) [pbx_config]
  954. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  955. 6. Macro(outisbusy,) [pbx_config]
  956. '311' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  957. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  958. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  959. 4. Set(_NODEST=) [pbx_config]
  960. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  961. 6. Macro(outisbusy,) [pbx_config]
  962. '411' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  963. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  964. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  965. 4. Set(_NODEST=) [pbx_config]
  966. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  967. 6. Macro(outisbusy,) [pbx_config]
  968. '511' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  969. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  970. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  971. 4. Set(_NODEST=) [pbx_config]
  972. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  973. 6. Macro(outisbusy,) [pbx_config]
  974. '611' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  975. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  976. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  977. 4. Set(_NODEST=) [pbx_config]
  978. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  979. 6. Macro(outisbusy,) [pbx_config]
  980. '711' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  981. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  982. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  983. 4. Set(_NODEST=) [pbx_config]
  984. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  985. 6. Macro(outisbusy,) [pbx_config]
  986. '911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  987. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  988. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  989. 4. Set(_NODEST=) [pbx_config]
  990. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  991. 6. Macro(outisbusy,) [pbx_config]
  992. '91911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  993. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  994. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  995. 4. Set(_NODEST=) [pbx_config]
  996. 5. Macro(dialout-trunk,2,${EXTEN:2},,off) [pbx_config]
  997. 6. Macro(outisbusy,) [pbx_config]
  998. '933' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  999. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1000. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1001. 4. Set(_NODEST=) [pbx_config]
  1002. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1003. 6. Macro(outisbusy,) [pbx_config]
  1004. '9911' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1005. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1006. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1007. 4. Set(_NODEST=) [pbx_config]
  1008. 5. Macro(dialout-trunk,2,${EXTEN:1},,off) [pbx_config]
  1009. 6. Macro(outisbusy,) [pbx_config]
  1010. '_1800NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1011. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1012. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1013. 4. Set(_NODEST=) [pbx_config]
  1014. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1015. 6. Macro(outisbusy,) [pbx_config]
  1016. '_1844NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1017. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1018. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1019. 4. Set(_NODEST=) [pbx_config]
  1020. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1021. 6. Macro(outisbusy,) [pbx_config]
  1022. '_1855NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1023. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1024. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1025. 4. Set(_NODEST=) [pbx_config]
  1026. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1027. 6. Macro(outisbusy,) [pbx_config]
  1028. '_1866NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1029. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1030. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1031. 4. Set(_NODEST=) [pbx_config]
  1032. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1033. 6. Macro(outisbusy,) [pbx_config]
  1034. '_1877NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1035. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1036. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1037. 4. Set(_NODEST=) [pbx_config]
  1038. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1039. 6. Macro(outisbusy,) [pbx_config]
  1040. '_1888NXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1041. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1042. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1043. 4. Set(_NODEST=) [pbx_config]
  1044. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1045. 6. Macro(outisbusy,) [pbx_config]
  1046. '_1NXXNXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1047. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1048. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1049. 4. Set(_NODEST=) [pbx_config]
  1050. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1051. 6. Macro(outisbusy,) [pbx_config]
  1052. '_NXXNXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,) [pbx_config]
  1053. 2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
  1054. 3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
  1055. 4. Set(_NODEST=) [pbx_config]
  1056. 5. Macro(dialout-trunk,2,${EXTEN},,off) [pbx_config]
  1057. 6. Macro(outisbusy,) [pbx_config]
  1058. Include => 'outrt-1-custom' [pbx_config]
  1059.  
  1060. [ Context 'outbound-allroutes' created by 'pbx_config' ]
  1061. 'foo' => 1. Noop(bar) [pbx_config]
  1062. Include => 'outbound-allroutes-custom' [pbx_config]
  1063. Include => 'outrt-1' [pbx_config]
  1064.  
  1065. [ Context 'macro-prepend-cid' created by 'pbx_config' ]
  1066. 's' => 1. GotoIf($["${RGPREFIX}" = ""]?REPCID) [pbx_config]
  1067. 2. GotoIf($["${RGPREFIX}" != "${CALLERID(name):0:${LEN(${RGPREFIX})}}"]?REPCID) [pbx_config]
  1068. 3. Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}}) [pbx_config]
  1069. 4. Set(_RGPREFIX=) [pbx_config]
  1070. [REPCID] 5. Set(_RGPREFIX=${ARG1}) [pbx_config]
  1071. 6. Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)}) [pbx_config]
  1072. Include => 'macro-prepend-cid-custom' [pbx_config]
  1073.  
  1074. [ Context 'from-trunk-sip-Teliphone' created by 'pbx_config' ]
  1075. '_.' => 1. Set(GROUP()=OUT_2) [pbx_config]
  1076. 2. Goto(from-trunk,${EXTEN},1) [pbx_config]
  1077. Include => 'from-trunk-sip-Teliphone-custom' [pbx_config]
  1078.  
  1079. [ Context 'ext-trunk' created by 'pbx_config' ]
  1080. '1' => 1. Set(TDIAL_STRING=DAHDI/g0) [pbx_config]
  1081. 2. Set(DIAL_TRUNK=1) [pbx_config]
  1082. 3. Goto(ext-trunk,tdial,1) [pbx_config]
  1083. '2' => 1. Set(TDIAL_STRING=SIP/Teliphone) [pbx_config]
  1084. 2. Set(DIAL_TRUNK=2) [pbx_config]
  1085. 3. Goto(ext-trunk,tdial,1) [pbx_config]
  1086. 'tdial' => 1. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
  1087. 2. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax) [pbx_config]
  1088. 3. GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}}]?hangit) [pbx_config]
  1089. [nomax] 4. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
  1090. 5. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV})) [pbx_config]
  1091. 6. Set(DIAL_NUMBER=${FROM_DID}) [pbx_config]
  1092. 7. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  1093. 8. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
  1094. 9. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
  1095. 10. Dial(${TDIAL_STRING}/${OUTNUM}${TDIAL_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  1096. 11. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
  1097. 12. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  1098. [hangit] 13. Hangup() [pbx_config]
  1099. Include => 'ext-trunk-custom' [pbx_config]
  1100.  
  1101. [ Context 'ext-did-catchall' created by 'pbx_config' ]
  1102. '_.' => 1. Noop(Catch-All DID Match - Found ${EXTEN} - You probably want a DID for this.) [pbx_config]
  1103. 2. Log(WARNING,Friendly Scanner from ${CUT(CUT(SIP_HEADER(Via), ,2),:,1)}) [pbx_config]
  1104. 3. Set(__FROM_DID=${EXTEN}) [pbx_config]
  1105. 4. Goto(ext-did,s,1) [pbx_config]
  1106. Include => 'ext-did-catchall-custom' [pbx_config]
  1107.  
  1108. [ Context 'ext-did-0001' created by 'pbx_config' ]
  1109. 's' => 1. ExecIf($["${FROM_DID}" = ""]?Set(__FROM_DID=${EXTEN})) [pbx_config]
  1110. 2. Gosub(sub-record-check,s,1(in,${EXTEN},dontcare)) [pbx_config]
  1111. 3. Set(CDR(did)=${FROM_DID}) [pbx_config]
  1112. 4. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)})) [pbx_config]
  1113. 5. Set(__MOHCLASS=) [pbx_config]
  1114. 6. Set(__REVERSAL_REJECT=FALSE) [pbx_config]
  1115. 7. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-charge) [pbx_config]
  1116. 8. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupcall) [pbx_config]
  1117. [post-reverse-charge] 9. Noop() [pbx_config]
  1118. 10. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_config]
  1119. 11. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_config]
  1120. 12. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_config]
  1121. 13. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config]
  1122. [did-cid-hook] 14. Noop(CallerID Entry Point) [pbx_config]
  1123. [dest-ext] 15. Goto(from-did-direct,232,1) [pbx_config]
  1124. Include => 'ext-did-0001-custom' [pbx_config]
  1125.  
  1126. [ Context 'ext-did' created by 'pbx_config' ]
  1127. 'foo' => 1. Noop(bar) [pbx_config]
  1128. Include => 'ext-did-custom' [pbx_config]
  1129. Include => 'ext-did-0001' [pbx_config]
  1130. Include => 'ext-did-0002' [pbx_config]
  1131.  
  1132. [ Context 'ext-test' created by 'pbx_config' ]
  1133. '7777' => 1. Macro(user-callerid,) [pbx_config]
  1134. 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1135. 'h' => 1. Macro(hangupcall,) [pbx_config]
  1136. Include => 'ext-test-custom' [pbx_config]
  1137.  
  1138. [ Context 'app-chanspy' created by 'pbx_config' ]
  1139. '555' => 1. Macro(user-callerid,) [pbx_config]
  1140. 2. Answer() [pbx_config]
  1141. 3. Wait(1) [pbx_config]
  1142. 4. ChanSpy() [pbx_config]
  1143. 5. Hangup() [pbx_config]
  1144. Include => 'app-chanspy-custom' [pbx_config]
  1145.  
  1146. [ Context 'app-pickup' created by 'pbx_config' ]
  1147. '***80222' => 1. Macro(user-callerid,) [pbx_config]
  1148. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1149. 3. Pickup(222&222@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1150. 4. Hangup() [pbx_config]
  1151. '***80224' => 1. Macro(user-callerid,) [pbx_config]
  1152. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1153. 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]
  1154. 4. Hangup() [pbx_config]
  1155. '***80226' => 1. Macro(user-callerid,) [pbx_config]
  1156. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1157. 3. Pickup(226&226@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1158. 4. Hangup() [pbx_config]
  1159. '***80228' => 1. Macro(user-callerid,) [pbx_config]
  1160. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1161. 3. Pickup(228&228@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1162. 4. Hangup() [pbx_config]
  1163. '***80229' => 1. Macro(user-callerid,) [pbx_config]
  1164. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1165. 3. Pickup(229&229@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1166. 4. Hangup() [pbx_config]
  1167. '***80230' => 1. Macro(user-callerid,) [pbx_config]
  1168. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1169. 3. Pickup(230&230@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1170. 4. Hangup() [pbx_config]
  1171. '***80232' => 1. Macro(user-callerid,) [pbx_config]
  1172. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1173. 3. Pickup(232&232@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1174. 4. Hangup() [pbx_config]
  1175. '**222' => 1. Macro(user-callerid,) [pbx_config]
  1176. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1177. 3. Pickup(222&222@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1178. 4. Hangup() [pbx_config]
  1179. '**224' => 1. Macro(user-callerid,) [pbx_config]
  1180. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1181. 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]
  1182. 4. Hangup() [pbx_config]
  1183. '**226' => 1. Macro(user-callerid,) [pbx_config]
  1184. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1185. 3. Pickup(226&226@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1186. 4. Hangup() [pbx_config]
  1187. '**228' => 1. Macro(user-callerid,) [pbx_config]
  1188. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1189. 3. Pickup(228&228@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1190. 4. Hangup() [pbx_config]
  1191. '**229' => 1. Macro(user-callerid,) [pbx_config]
  1192. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1193. 3. Pickup(229&229@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1194. 4. Hangup() [pbx_config]
  1195. '**230' => 1. Macro(user-callerid,) [pbx_config]
  1196. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1197. 3. Pickup(230&230@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1198. 4. Hangup() [pbx_config]
  1199. '**232' => 1. Macro(user-callerid,) [pbx_config]
  1200. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1201. 3. Pickup(232&232@PICKUPMARK&600@from-internal&600@from-internal-xfer&600@ext-group) [pbx_config]
  1202. 4. Hangup() [pbx_config]
  1203. '_***80.' => 1. Macro(user-callerid,) [pbx_config]
  1204. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1205. 3. Pickup(${EXTEN:5}&${EXTEN:5}@PICKUPMARK) [pbx_config]
  1206. 4. Hangup() [pbx_config]
  1207. '_**.' => 1. Macro(user-callerid,) [pbx_config]
  1208. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  1209. 3. Pickup(${EXTEN:2}&${EXTEN:2}@PICKUPMARK) [pbx_config]
  1210. 4. Hangup() [pbx_config]
  1211. Include => 'app-pickup-custom' [pbx_config]
  1212.  
  1213. [ Context 'findmefollow-ringallv2' created by 'pbx_config' ]
  1214. '_FMGL-.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1215. 2. Set(ENDLOOP=$[${EPOCH} + ${FMPRERING} + 2]) [pbx_config]
  1216. [start] 3. GotoIf($["${SHARED(FM_DND,${FMUNIQUE})}" = "DND"]?dodnd) [pbx_config]
  1217. 4. Wait(1) [pbx_config]
  1218. 5. GotoIf($[${EPOCH} < ${ENDLOOP}]?start) [pbx_config]
  1219. 6. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
  1220. [dodial] 7. Macro(dial,${FMGRPTIME},${DIAL_OPTIONS},${EXTEN:5}) [pbx_config]
  1221. 8. Hangup() [pbx_config]
  1222. [dodnd] 19. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
  1223. 20. GotoIf($["${FMPRIME}" = "FALSE"]?dodial) [pbx_config]
  1224. 21. Hangup() [pbx_config]
  1225. '_FMPR-.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1226. 2. Set(RingGroupMethod=) [pbx_config]
  1227. 3. Set(USE_CONFIRMATION=) [pbx_config]
  1228. 4. Set(RINGGROUP_INDEX=) [pbx_config]
  1229. 5. Macro(simple-dial,${EXTEN:5},${FMREALPRERING}) [pbx_config]
  1230. 6. ExecIf($["${DIALSTATUS}" = "BUSY"]?Set(SHARED(FM_DND,${FMUNIQUE})=DND)) [pbx_config]
  1231. 7. Hangup() [pbx_config]
  1232. Include => 'findmefollow-ringallv2-custom' [pbx_config]
  1233.  
  1234. [ Context 'ext-local-confirm' created by 'pbx_config' ]
  1235. '_LC-.' => 1. Dial(${DB(DEVICE/${EXTEN:3}/dial)},${RT},${DIAL_OPTIONS}M(auto-confirm^${RG_IDX})b(func-apply-sipheaders^s^1)) [pbx_config]
  1236. Include => 'ext-local-confirm-custom' [pbx_config]
  1237.  
  1238. [ Context 'macro-dial' created by 'pbx_config' ]
  1239. 'ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  1240. 2. Macro(hangupcall,) [pbx_config]
  1241. 'DONTCALL' => 1. Answer() [pbx_config]
  1242. 2. Wait(1) [pbx_config]
  1243. 3. Zapateller() [pbx_config]
  1244. 4. Playback(ss-noservice) [pbx_config]
  1245. 5. Macro(hangupcall,) [pbx_config]
  1246. 'NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  1247. 2. GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" = ""]?bye) [pbx_config]
  1248. 3. Return() [pbx_config]
  1249. [bye] 4. Macro(hangupcall,) [pbx_config]
  1250. 'TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
  1251. 2. Macro(hangupcall,) [pbx_config]
  1252. 'h' => 1. Macro(hangupcall,) [pbx_config]
  1253. 's' => 1. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) [pbx_config]
  1254. 2. ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${LEN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) [pbx_config]
  1255. 3. ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
  1256. 4. ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)) [pbx_config]
  1257. 5. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  1258. [dial] 6. AGI(dialparties.agi) [pbx_config]
  1259. 7. Noop(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
  1260. 8. MacroExit() [pbx_config]
  1261. [normdial] 9. Noop(Returned from dialparties with groups to dial) [pbx_config]
  1262. 10. Set(LOOPCNT=${FIELDQTY(FILTERED_DIAL,-)}) [pbx_config]
  1263. 11. Set(ITER=1) [pbx_config]
  1264. [ndloopbegin] 12. Set(EXTTOCALL=${CUT(FILTERED_DIAL,-,${ITER})}) [pbx_config]
  1265. 13. Noop(Working with ${EXTTOCALL}) [pbx_config]
  1266. 14. Set(ITER=$[${ITER}+1]) [pbx_config]
  1267. 15. GotoIf($[${ITER}<=${LOOPCNT}]?ndloopbegin) [pbx_config]
  1268. 16. Macro(dial-ringall-predial-hook,) [pbx_config]
  1269. 17. Dial(${ds}b(func-apply-sipheaders^s^1),) [pbx_config]
  1270. 18. Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})}) [pbx_config]
  1271. 19. GosubIf($[("${SCREEN}" != "" & ("${DIALSTATUS}" = "TORTURE" | "${DIALSTATUS}" = "DONTCALL")) | "${DIALSTATUS}" = "ANSWER"]?${DIALSTATUS},1()) [pbx_config]
  1272. [groupnoanswer] 20. Noop(Returning since nobody answered) [pbx_config]
  1273. 21. MacroExit() [pbx_config]
  1274. [huntdial] 22. Noop(Returned from dialparties with hunt groups to dial) [pbx_config]
  1275. 23. Set(HuntLoop=0) [pbx_config]
  1276. 24. ExecIf($[${LEN(${HuntMembers})}=0]?Set(HuntMembers=0)) [pbx_config]
  1277. [a22] 25. GotoIf($[${HuntMembers} >= 1]?a30) [pbx_config]
  1278. [huntnoanswer] 26. Noop(Returning as there are no members left in the hunt group to ring) [pbx_config]
  1279. 27. MacroExit() [pbx_config]
  1280. [a30] 28. Set(HuntMember=HuntMember${HuntLoop}) [pbx_config]
  1281. 29. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGroupMethod}" = "hunt" ] | $["${RingGroupMethod}" = "firstavailable"] | $["${RingGroupMethod}" = "firstnotonphone"]]]?a32:a35) [pbx_config]
  1282. [a32] 30. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])}) [pbx_config]
  1283. 31. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
  1284. 32. Goto(s,huntstart) [pbx_config]
  1285. [a35] 33. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupMethod}" = "memoryhunt" ]]?a36:a50) [pbx_config]
  1286. [a36] 34. Set(CTLoop=0) [pbx_config]
  1287. [a37] 35. GotoIf($[${CTLoop} > ${HuntLoop}]?huntstart) [pbx_config]
  1288. 36. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])}) [pbx_config]
  1289. 37. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
  1290. 38. Set(CTLoop=$[1 + ${CTLoop}]) [pbx_config]
  1291. 39. Goto(s,a37) [pbx_config]
  1292. [huntstart] 40. Noop(Hunt Dial Start) [pbx_config]
  1293. 41. Macro(dial-hunt-predial-hook,) [pbx_config]
  1294. 42. Dial(${${HuntMember}}${ds}b(func-apply-sipheaders^s^1),) [pbx_config]
  1295. 43. GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1) [pbx_config]
  1296. 44. Set(HuntLoop=$[1 + ${HuntLoop}]) [pbx_config]
  1297. 45. GotoIf($[$[$["foo${RingGroupMethod}" != "foofirstavailable"] & $["foo${RingGroupMethod}" != "foofirstnotonphone"]] | $["foo${DialStatus}" = "fooBUSY"]]?a46) [pbx_config]
  1298. 46. Set(HuntMembers=0) [pbx_config]
  1299. [a46] 47. Set(HuntMembers=$[${HuntMembers} - 1]) [pbx_config]
  1300. 48. Goto(s,a22) [pbx_config]
  1301. [a50] 49. Noop(Deleting: CALLTRACE/${CT_EXTEN} ${DB_DELETE(CALLTRACE/${CT_EXTEN})}) [pbx_config]
  1302. 50. Goto(s,huntstart) [pbx_config]
  1303. Include => 'macro-dial-custom' [pbx_config]
  1304.  
  1305. [ Context 'app-userlogonoff' created by 'pbx_config' ]
  1306. '*11' => 1. Macro(user-logon,) [pbx_config]
  1307. [hook_on_1] 2. Hangup() [pbx_config]
  1308. '*12' => 1. Macro(user-logoff,) [pbx_config]
  1309. [hook_off] 2. Hangup() [pbx_config]
  1310. '_*11.' => 1. Macro(user-logon,${EXTEN:3},) [pbx_config]
  1311. [hook_on_2] 2. Hangup() [pbx_config]
  1312. Include => 'app-userlogonoff-custom' [pbx_config]
  1313.  
  1314. [ Context 'app-vmmain' created by 'pbx_config' ]
  1315. '*97' => 1. Answer() [pbx_config]
  1316. 2. Wait(1) [pbx_config]
  1317. 3. Macro(user-callerid,) [pbx_config]
  1318. 4. Macro(get-vmcontext,${AMPUSER}) [pbx_config]
  1319. [check] 5. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${AMPUSER}@${VMCONTEXT},exists)}?SUCCESS:FAILED)}) [pbx_config]
  1320. 6. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?mbexist) [pbx_config]
  1321. 7. VoiceMailMain() [pbx_config]
  1322. 8. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  1323. 9. Macro(hangupcall,) [pbx_config]
  1324. [mbexist] 106. GotoIf($["${DB(AMPUSER/${AMPUSER}/novmpw)}"!=""]?novmpw:vmpw) [pbx_config]
  1325. [novmpw] 107. Noop(Verifying channel ${CHANNEL} is actually ${AMPUSER}) [pbx_config]
  1326. 108. GotoIf($["${REGEX("^${DB(DEVICE/${AMPUSER}/dial)}-[0-9a-fx]+$" ${CHANNEL})}"!="1"]?vmpws) [pbx_config]
  1327. 109. VoiceMailMain(${AMPUSER}@${VMCONTEXT},s) [pbx_config]
  1328. 110. Goto(vmend) [pbx_config]
  1329. [vmpws] 111. Noop(Channel ${CHANNEL} is NOT ${AMPUSER} forcing VM Password) [pbx_config]
  1330. [vmpw] 112. VoiceMailMain(${AMPUSER}@${VMCONTEXT}) [pbx_config]
  1331. 113. Goto(vmend) [pbx_config]
  1332. [vmend] 114. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  1333. 115. Macro(hangupcall,) [pbx_config]
  1334. [playret] 116. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
  1335. 117. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  1336. Include => 'app-vmmain-custom' [pbx_config]
  1337.  
  1338. [ Context 'from-did-direct-ivr' created by 'pbx_config' ]
  1339. '*222' => 1. Macro(blkvm-clr,) [pbx_config]
  1340. 2. Set(__NODEST=) [pbx_config]
  1341. 3. Macro(vm,222,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1342. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1343. '*224' => 1. Macro(blkvm-clr,) [pbx_config]
  1344. 2. Set(__NODEST=) [pbx_config]
  1345. 3. Macro(vm,224,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1346. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1347. '*225' => 1. Macro(blkvm-clr,) [pbx_config]
  1348. 2. Set(__NODEST=) [pbx_config]
  1349. 3. Macro(vm,225,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1350. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1351. '*226' => 1. Macro(blkvm-clr,) [pbx_config]
  1352. 2. Set(__NODEST=) [pbx_config]
  1353. 3. Macro(vm,226,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1354. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1355. '*228' => 1. Macro(blkvm-clr,) [pbx_config]
  1356. 2. Set(__NODEST=) [pbx_config]
  1357. 3. Macro(vm,228,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1358. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1359. '*229' => 1. Macro(blkvm-clr,) [pbx_config]
  1360. 2. Set(__NODEST=) [pbx_config]
  1361. 3. Macro(vm,229,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1362. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1363. '*230' => 1. Macro(blkvm-clr,) [pbx_config]
  1364. 2. Set(__NODEST=) [pbx_config]
  1365. 3. Macro(vm,230,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1366. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1367. '*232' => 1. Macro(blkvm-clr,) [pbx_config]
  1368. 2. Set(__NODEST=) [pbx_config]
  1369. 3. Macro(vm,232,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1370. 4. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?ext-local,vmret,playret) [pbx_config]
  1371. '_XXXXXXXXXXXX' => 1. Macro(blkvm-clr,) [pbx_config]
  1372. 2. Set(__NODEST=) [pbx_config]
  1373. 3. Goto(from-did-direct,${EXTEN},1) [pbx_config]
  1374. Include => 'from-did-direct-ivr-custom' [pbx_config]
  1375.  
  1376. [ Context 'ext-local' created by 'pbx_config' ]
  1377. '*222' => 1. Macro(vm,222,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1378. 2. Goto(vmret,1) [pbx_config]
  1379. '*224' => 1. Macro(vm,224,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1380. 2. Goto(vmret,1) [pbx_config]
  1381. '*225' => 1. Macro(vm,225,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1382. 2. Goto(vmret,1) [pbx_config]
  1383. '*226' => 1. Macro(vm,226,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1384. 2. Goto(vmret,1) [pbx_config]
  1385. '*228' => 1. Macro(vm,228,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1386. 2. Goto(vmret,1) [pbx_config]
  1387. '*229' => 1. Macro(vm,229,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1388. 2. Goto(vmret,1) [pbx_config]
  1389. '*230' => 1. Macro(vm,230,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1390. 2. Goto(vmret,1) [pbx_config]
  1391. '*232' => 1. Macro(vm,232,DIRECTDIAL,${IVR_RETVM}) [pbx_config]
  1392. 2. Goto(vmret,1) [pbx_config]
  1393. '222' => hint: PJSIP/001565851953,CustomPresence:222 [pbx_config]
  1394. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/222/ringtimer)}" > "0"]?${DB(AMPUSER/222/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1395. 2. Macro(exten-vm,222,222,0,0,0) [pbx_config]
  1396. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1397. 4. Macro(vm,222,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1398. 5. Goto(vmret,1) [pbx_config]
  1399. '224' => hint: PJSIP/001565461075,CustomPresence:224 [pbx_config]
  1400. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/224/ringtimer)}" > "0"]?${DB(AMPUSER/224/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1401. 2. Macro(exten-vm,224,224,0,0,0) [pbx_config]
  1402. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1403. 4. Macro(vm,224,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1404. 5. Goto(vmret,1) [pbx_config]
  1405. '225' => hint: PJSIP/001565461361,CustomPresence:225 [pbx_config]
  1406. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/225/ringtimer)}" > "0"]?${DB(AMPUSER/225/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1407. 2. Macro(exten-vm,225,225,0,0,0) [pbx_config]
  1408. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1409. 4. Macro(vm,225,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1410. 5. Goto(vmret,1) [pbx_config]
  1411. '226' => hint: PJSIP/001565461091,CustomPresence:226 [pbx_config]
  1412. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/226/ringtimer)}" > "0"]?${DB(AMPUSER/226/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1413. 2. Macro(exten-vm,226,226,0,0,0) [pbx_config]
  1414. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1415. 4. Macro(vm,226,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1416. 5. Goto(vmret,1) [pbx_config]
  1417. '228' => hint: PJSIP/001565461365,CustomPresence:228 [pbx_config]
  1418. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/228/ringtimer)}" > "0"]?${DB(AMPUSER/228/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1419. 2. Macro(exten-vm,228,228,0,0,0) [pbx_config]
  1420. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1421. 4. Macro(vm,228,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1422. 5. Goto(vmret,1) [pbx_config]
  1423. '229' => hint: PJSIP/001565461377,CustomPresence:229 [pbx_config]
  1424. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/229/ringtimer)}" > "0"]?${DB(AMPUSER/229/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1425. 2. Macro(exten-vm,229,229,0,0,0) [pbx_config]
  1426. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1427. 4. Macro(vm,229,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1428. 5. Goto(vmret,1) [pbx_config]
  1429. '230' => hint: PJSIP/001565461367,CustomPresence:230 [pbx_config]
  1430. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/230/ringtimer)}" > "0"]?${DB(AMPUSER/230/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1431. 2. Macro(exten-vm,230,230,0,0,0) [pbx_config]
  1432. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1433. 4. Macro(vm,230,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1434. 5. Goto(vmret,1) [pbx_config]
  1435. '232' => hint: PJSIP/001565352134,CustomPresence:232 [pbx_config]
  1436. 1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/232/ringtimer)}" > "0"]?${DB(AMPUSER/232/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1437. 2. Macro(exten-vm,232,232,0,0,0) [pbx_config]
  1438. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  1439. 4. Macro(vm,232,${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1440. 5. Goto(vmret,1) [pbx_config]
  1441. 'h' => 1. Macro(hangupcall,) [pbx_config]
  1442. 'sess_8hh3st2u5vv4tsqqe9v1021v80222' => hint: PJSIP/001565851953,CustomPresence:222 [pbx_config]
  1443. 'sess_8hh3st2u5vv4tsqqe9v1021v80224' => hint: PJSIP/001565461075,CustomPresence:224 [pbx_config]
  1444. 'sess_8hh3st2u5vv4tsqqe9v1021v80225' => hint: PJSIP/001565461361,CustomPresence:225 [pbx_config]
  1445. 'sess_8hh3st2u5vv4tsqqe9v1021v80226' => hint: PJSIP/001565461091,CustomPresence:226 [pbx_config]
  1446. 'sess_8hh3st2u5vv4tsqqe9v1021v80228' => hint: PJSIP/001565461365,CustomPresence:228 [pbx_config]
  1447. 'sess_8hh3st2u5vv4tsqqe9v1021v80229' => hint: PJSIP/001565461377,CustomPresence:229 [pbx_config]
  1448. 'sess_8hh3st2u5vv4tsqqe9v1021v80230' => hint: PJSIP/001565461367,CustomPresence:230 [pbx_config]
  1449. 'sess_8hh3st2u5vv4tsqqe9v1021v80232' => hint: PJSIP/001565352134,CustomPresence:232 [pbx_config]
  1450. 'sess_i6nt3cg7nm9rq14b1uapuhdg84222' => hint: ccss:PJSIP/001565851953 [pbx_config]
  1451. 'sess_i6nt3cg7nm9rq14b1uapuhdg84224' => hint: ccss:PJSIP/001565461075 [pbx_config]
  1452. 'sess_i6nt3cg7nm9rq14b1uapuhdg84225' => hint: ccss:PJSIP/001565461361 [pbx_config]
  1453. 'sess_i6nt3cg7nm9rq14b1uapuhdg84226' => hint: ccss:PJSIP/001565461091 [pbx_config]
  1454. 'sess_i6nt3cg7nm9rq14b1uapuhdg84228' => hint: ccss:PJSIP/001565461365 [pbx_config]
  1455. 'sess_i6nt3cg7nm9rq14b1uapuhdg84229' => hint: ccss:PJSIP/001565461377 [pbx_config]
  1456. 'sess_i6nt3cg7nm9rq14b1uapuhdg84230' => hint: ccss:PJSIP/001565461367 [pbx_config]
  1457. 'sess_i6nt3cg7nm9rq14b1uapuhdg84232' => hint: ccss:PJSIP/001565352134 [pbx_config]
  1458. 'vmb222' => 1. Macro(vm,222,BUSY,${IVR_RETVM}) [pbx_config]
  1459. 2. Goto(vmret,1) [pbx_config]
  1460. 'vmb224' => 1. Macro(vm,224,BUSY,${IVR_RETVM}) [pbx_config]
  1461. 2. Goto(vmret,1) [pbx_config]
  1462. 'vmb225' => 1. Macro(vm,225,BUSY,${IVR_RETVM}) [pbx_config]
  1463. 2. Goto(vmret,1) [pbx_config]
  1464. 'vmb226' => 1. Macro(vm,226,BUSY,${IVR_RETVM}) [pbx_config]
  1465. 2. Goto(vmret,1) [pbx_config]
  1466. 'vmb228' => 1. Macro(vm,228,BUSY,${IVR_RETVM}) [pbx_config]
  1467. 2. Goto(vmret,1) [pbx_config]
  1468. 'vmb229' => 1. Macro(vm,229,BUSY,${IVR_RETVM}) [pbx_config]
  1469. 2. Goto(vmret,1) [pbx_config]
  1470. 'vmb230' => 1. Macro(vm,230,BUSY,${IVR_RETVM}) [pbx_config]
  1471. 2. Goto(vmret,1) [pbx_config]
  1472. 'vmb232' => 1. Macro(vm,232,BUSY,${IVR_RETVM}) [pbx_config]
  1473. 2. Goto(vmret,1) [pbx_config]
  1474. 'vmi222' => 1. Macro(vm,222,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1475. 2. Goto(vmret,1) [pbx_config]
  1476. 'vmi224' => 1. Macro(vm,224,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1477. 2. Goto(vmret,1) [pbx_config]
  1478. 'vmi225' => 1. Macro(vm,225,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1479. 2. Goto(vmret,1) [pbx_config]
  1480. 'vmi226' => 1. Macro(vm,226,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1481. 2. Goto(vmret,1) [pbx_config]
  1482. 'vmi228' => 1. Macro(vm,228,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1483. 2. Goto(vmret,1) [pbx_config]
  1484. 'vmi229' => 1. Macro(vm,229,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1485. 2. Goto(vmret,1) [pbx_config]
  1486. 'vmi230' => 1. Macro(vm,230,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1487. 2. Goto(vmret,1) [pbx_config]
  1488. 'vmi232' => 1. Macro(vm,232,INSTRUCT,${IVR_RETVM}) [pbx_config]
  1489. 2. Goto(vmret,1) [pbx_config]
  1490. 'vmret' => 1. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  1491. 2. Hangup() [pbx_config]
  1492. [playret] 3. Playback(exited-vm-will-be-transfered&silence/1) [pbx_config]
  1493. 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  1494. 'vms222' => 1. Macro(vm,222,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1495. 2. Goto(vmret,1) [pbx_config]
  1496. 'vms224' => 1. Macro(vm,224,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1497. 2. Goto(vmret,1) [pbx_config]
  1498. 'vms225' => 1. Macro(vm,225,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1499. 2. Goto(vmret,1) [pbx_config]
  1500. 'vms226' => 1. Macro(vm,226,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1501. 2. Goto(vmret,1) [pbx_config]
  1502. 'vms228' => 1. Macro(vm,228,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1503. 2. Goto(vmret,1) [pbx_config]
  1504. 'vms229' => 1. Macro(vm,229,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1505. 2. Goto(vmret,1) [pbx_config]
  1506. 'vms230' => 1. Macro(vm,230,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1507. 2. Goto(vmret,1) [pbx_config]
  1508. 'vms232' => 1. Macro(vm,232,NOMESSAGE,${IVR_RETVM}) [pbx_config]
  1509. 2. Goto(vmret,1) [pbx_config]
  1510. 'vmu222' => 1. Macro(vm,222,NOANSWER,${IVR_RETVM}) [pbx_config]
  1511. 2. Goto(vmret,1) [pbx_config]
  1512. 'vmu224' => 1. Macro(vm,224,NOANSWER,${IVR_RETVM}) [pbx_config]
  1513. 2. Goto(vmret,1) [pbx_config]
  1514. 'vmu225' => 1. Macro(vm,225,NOANSWER,${IVR_RETVM}) [pbx_config]
  1515. 2. Goto(vmret,1) [pbx_config]
  1516. 'vmu226' => 1. Macro(vm,226,NOANSWER,${IVR_RETVM}) [pbx_config]
  1517. 2. Goto(vmret,1) [pbx_config]
  1518. 'vmu228' => 1. Macro(vm,228,NOANSWER,${IVR_RETVM}) [pbx_config]
  1519. 2. Goto(vmret,1) [pbx_config]
  1520. 'vmu229' => 1. Macro(vm,229,NOANSWER,${IVR_RETVM}) [pbx_config]
  1521. 2. Goto(vmret,1) [pbx_config]
  1522. 'vmu230' => 1. Macro(vm,230,NOANSWER,${IVR_RETVM}) [pbx_config]
  1523. 2. Goto(vmret,1) [pbx_config]
  1524. 'vmu232' => 1. Macro(vm,232,NOANSWER,${IVR_RETVM}) [pbx_config]
  1525. 2. Goto(vmret,1) [pbx_config]
  1526. Include => 'ext-local-custom' [pbx_config]
  1527.  
  1528. [ Context 'app-dialvm' created by 'pbx_config' ]
  1529. '*98' => 1. Macro(user-callerid,) [pbx_config]
  1530. 2. Answer() [pbx_config]
  1531. [start] 3. Wait(1) [pbx_config]
  1532. 4. Noop(app-dialvm: Asking for mailbox) [pbx_config]
  1533. 5. Read(MAILBOX,vm-login,,,3,2) [pbx_config]
  1534. [check] 6. Noop(app-dialvm: Got Mailbox ${MAILBOX}) [pbx_config]
  1535. 7. Macro(get-vmcontext,${MAILBOX}) [pbx_config]
  1536. 8. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${MAILBOX}@${VMCONTEXT},exists)}?SUCCESS:FAILED)}) [pbx_config]
  1537. 9. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?good:bad) [pbx_config]
  1538. 10. Macro(hangupcall,) [pbx_config]
  1539. [good] 11. Noop(app-dialvm: Good mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
  1540. 12. VoiceMailMain(${MAILBOX}@${VMCONTEXT}) [pbx_config]
  1541. 13. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  1542. 14. Macro(hangupcall,) [pbx_config]
  1543. [bad] 15. Noop(app-dialvm: BAD mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
  1544. 16. Wait(1) [pbx_config]
  1545. 17. Noop(app-dialvm: Asking for password so people can't probe for existence of a mailbox) [pbx_config]
  1546. 18. Read(FAKEPW,vm-password,,,3,2) [pbx_config]
  1547. 19. Noop(app-dialvm: Asking for mailbox again) [pbx_config]
  1548. 20. Read(MAILBOX,vm-incorrect-mailbox,,,3,2) [pbx_config]
  1549. 21. Goto(check) [pbx_config]
  1550. 22. Macro(hangupcall,) [pbx_config]
  1551. [playret] 23. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
  1552. 24. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  1553. '_*98.' => 1. Answer() [pbx_config]
  1554. 2. Wait(1) [pbx_config]
  1555. 3. Macro(get-vmcontext,${EXTEN:3}) [pbx_config]
  1556. 4. VoiceMailMain(${EXTEN:3}@${VMCONTEXT}) [pbx_config]
  1557. 5. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1) [pbx_config]
  1558. 6. Macro(hangupcall,) [pbx_config]
  1559. Include => 'app-dialvm-custom' [pbx_config]
  1560.  
  1561. [ Context 'vm-callme' created by 'pbx_config' ]
  1562. '#' => 1. Playback(vm-goodbye) [pbx_config]
  1563. 2. Hangup() [pbx_config]
  1564. '*' => 1. Macro(get-vmcontext,${MBOX}) [pbx_config]
  1565. 2. VoiceMailMain(${MBOX}@${VMCONTEXT},s) [pbx_config]
  1566. '5' => 1. Goto(s,repeat) [pbx_config]
  1567. 'h' => 1. Hangup() [pbx_config]
  1568. 'i' => 1. Playback(pm-invalid-option) [pbx_config]
  1569. 2. Goto(s,repeat) [pbx_config]
  1570. 's' => 1. Answer() [pbx_config]
  1571. 2. Wait(1) [pbx_config]
  1572. [repeat] 3. Background(${MSG}&silence/2&vm-repeat&vm-starmain) [pbx_config]
  1573. 4. WaitExten(15,) [pbx_config]
  1574. 't' => 1. Playback(vm-goodbye) [pbx_config]
  1575. 2. Hangup() [pbx_config]
  1576. Include => 'vm-callme-custom' [pbx_config]
  1577.  
  1578. [ Context 'sub-rgsetcid' created by 'pbx_config' ]
  1579. 's' => 1. Goto(s-${DB(RINGGROUP/${NODEST}/changecid)},1) [pbx_config]
  1580. 's-did' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__REALCALLERIDNUM=${FROM_DID})) [pbx_config]
  1581. 2. Return() [pbx_config]
  1582. 's-extern' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST}/fixedcid)})}" == "1" & "${FROM_DID}" != ""]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGROUP/${NODEST}/fixedcid)})) [pbx_config]
  1583. 2. Return() [pbx_config]
  1584. 's-fixed' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST}/fixedcid)})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGROUP/${NODEST}/fixedcid)})) [pbx_config]
  1585. 2. Return() [pbx_config]
  1586. 's-forcedid' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${FROM_DID})) [pbx_config]
  1587. 2. Return() [pbx_config]
  1588. '_s-.' => 1. Noop(Unknown value for RINGGROUP/${NODEST}/changecid of ${DB(RINGGROUP/${NODEST}/changecid)} set to "default") [pbx_config]
  1589. 2. Set(DB(RINGGROUP/${NODEST}/changecid)=default) [pbx_config]
  1590. 3. Return() [pbx_config]
  1591. Include => 'sub-rgsetcid-custom' [pbx_config]
  1592.  
  1593. [ Context 'ext-group' created by 'pbx_config' ]
  1594. '600' => 1. Progress() [pbx_config]
  1595. 2. Macro(user-callerid,) [pbx_config]
  1596. 3. Macro(blkvm-setifempty,) [pbx_config]
  1597. 4. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  1598. 5. Macro(blkvm-set,reset) [pbx_config]
  1599. 6. Set(__NODEST=) [pbx_config]
  1600. [skipov] 7. Set(RRNODEST=${NODEST}) [pbx_config]
  1601. [skipvmblk] 8. Set(__NODEST=${EXTEN}) [pbx_config]
  1602. 9. GosubIf($[${DB_EXISTS(RINGGROUP/600/changecid)} = 1 & "${DB(RINGGROUP/600/changecid)}" != "default" & "${DB(RINGGROUP/600/changecid)}" != ""]?sub-rgsetcid,s,1()) [pbx_config]
  1603. 10. Set(__ALERT_INFO= ) [pbx_config]
  1604. 11. Gosub(sub-record-check,s,1(rg,600,dontcare)) [pbx_config]
  1605. 12. Set(RingGroupMethod=ringall) [pbx_config]
  1606. [DIALGRP] 13. Macro(dial,15,${DIAL_OPTIONS},224-229-222-232-230-228-226) [pbx_config]
  1607. 14. Gosub(sub-record-cancel,s,1()) [pbx_config]
  1608. 15. Set(RingGroupMethod=) [pbx_config]
  1609. 16. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  1610. 17. Set(__NODEST=) [pbx_config]
  1611. 18. Macro(blkvm-clr,) [pbx_config]
  1612. 19. Goto(ext-local,vmu224,1) [pbx_config]
  1613. [nodest] 20. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  1614. '601' => 1. Progress() [pbx_config]
  1615. 2. Macro(user-callerid,) [pbx_config]
  1616. 3. Macro(blkvm-setifempty,) [pbx_config]
  1617. 4. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  1618. 5. Macro(blkvm-set,reset) [pbx_config]
  1619. 6. Set(__NODEST=) [pbx_config]
  1620. [skipov] 7. Set(RRNODEST=${NODEST}) [pbx_config]
  1621. [skipvmblk] 8. Set(__NODEST=${EXTEN}) [pbx_config]
  1622. 9. GosubIf($[${DB_EXISTS(RINGGROUP/601/changecid)} = 1 & "${DB(RINGGROUP/601/changecid)}" != "default" & "${DB(RINGGROUP/601/changecid)}" != ""]?sub-rgsetcid,s,1()) [pbx_config]
  1623. 10. Set(__ALERT_INFO= ) [pbx_config]
  1624. 11. Gosub(sub-record-check,s,1(rg,601,dontcare)) [pbx_config]
  1625. 12. Set(RingGroupMethod=ringall) [pbx_config]
  1626. [DIALGRP] 13. Macro(dial,15,${DIAL_OPTIONS},224) [pbx_config]
  1627. 14. Gosub(sub-record-cancel,s,1()) [pbx_config]
  1628. 15. Set(RingGroupMethod=) [pbx_config]
  1629. 16. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  1630. 17. Set(__NODEST=) [pbx_config]
  1631. 18. Macro(blkvm-clr,) [pbx_config]
  1632. 19. Goto(ivr-1,s,1) [pbx_config]
  1633. [nodest] 20. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  1634. 'h' => 1. Macro(hangupcall,) [pbx_config]
  1635. Include => 'ext-group-custom' [pbx_config]
  1636.  
  1637. [ Context 'macro-systemrecording' created by 'pbx_config' ]
  1638. '*' => 1. Goto(dorecord,1) [pbx_config]
  1639. '1' => 1. Goto(${LISTEN},dc_start) [pbx_config]
  1640. '2' => 1. Goto(doaccept,1) [pbx_config]
  1641. '3' => 1. Goto(switchlang,1) [pbx_config]
  1642. '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]
  1643. 2. Read(RECRESULT,,1,,,4) [pbx_config]
  1644. 3. GotoIf($["x${RECRESULT}"="x*"]?dorecord,1) [pbx_config]
  1645. 4. GotoIf($["x${RECRESULT}"="x1"]?${LISTEN},2) [pbx_config]
  1646. 5. GotoIf($["x${RECRESULT}"="x2"]?doaccept,1) [pbx_config]
  1647. 6. GotoIf($["x${RECRESULT}"="x3"]?switchlang,1) [pbx_config]
  1648. 7. Goto(1) [pbx_config]
  1649. 'doaccept' => 1. Set(EXISTS=${STAT(e,${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav)}) [pbx_config]
  1650. 2. Noop(${EXISTS}) [pbx_config]
  1651. 3. GotoIf($["${EXISTS}" != "1"]?exit) [pbx_config]
  1652. 4. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished) [pbx_config]
  1653. 5. GotoIf($["x${TMPRECFILE}"="x"]?exit) [pbx_config]
  1654. 6. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav ${ASTVARLIBDIR}/sounds/${RECFILE}.wav) [pbx_config]
  1655. 7. Set(TMPRECFILE=${RECFILE}) [pbx_config]
  1656. [exit] 8. Playback(auth-thankyou) [pbx_config]
  1657. 9. Goto(confmenu,1) [pbx_config]
  1658. 'docheck' => 1. Playback(beep) [pbx_config]
  1659. [dc_start] 2. Background(${RECFILE},m,${CHANNEL(language)},macro-systemrecording) [pbx_config]
  1660. 3. Wait(1) [pbx_config]
  1661. 4. Goto(confmenu,1) [pbx_config]
  1662. 'dochecknolanguage' => 1. Playback(beep) [pbx_config]
  1663. [dc_start] 2. Background(${TMPRECFILE},m,,macro-systemrecording) [pbx_config]
  1664. 3. Wait(1) [pbx_config]
  1665. 4. Goto(confmenu,1) [pbx_config]
  1666. 'dorecord' => 1. Set(TMPRECFILE=${RECFILE}-TMP) [pbx_config]
  1667. 2. Background(say-temp-msg-prs-pound,,${CHANNEL(language)}) [pbx_config]
  1668. 3. Record(${TMPRECFILE}.wav,,,k) [pbx_config]
  1669. 4. Set(LISTEN=dochecknolanguage) [pbx_config]
  1670. 5. Goto(confmenu,1) [pbx_config]
  1671. 'h' => 1. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished) [pbx_config]
  1672. 2. GotoIf($["x${TMPRECFILE}"="x"]?exit) [pbx_config]
  1673. 3. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.wav ${ASTVARLIBDIR}/sounds/${CHANNEL(language)}/${RECFILE}.wav) [pbx_config]
  1674. [exit] 4. Hangup() [pbx_config]
  1675. 'i' => 1. Playback(pm-invalid-option) [pbx_config]
  1676. 2. Goto(confmenu,1) [pbx_config]
  1677. 'invalid' => 1. Playback(pm-invalid-option) [pbx_config]
  1678. 2. Hangup() [pbx_config]
  1679. 's' => 1. GotoIf($["${ARG2}" = ""]?invalid) [pbx_config]
  1680. 2. Set(TMPLANG=${CHANNEL(language)}) [pbx_config]
  1681. 3. Set(RECFILE=${TMPLANG}/${ARG2}) [pbx_config]
  1682. 4. Set(LISTEN=docheck) [pbx_config]
  1683. 5. ExecIf($["${ARG3}" != ""]?Authenticate(${ARG3})) [pbx_config]
  1684. 6. Goto(${ARG1},1) [pbx_config]
  1685. 'switchlang' => 1. Playback(language&is-set-to) [pbx_config]
  1686. 2. SayAlpha(${TMPLANG}) [pbx_config]
  1687. 3. Playback(after-the-tone) [pbx_config]
  1688. 4. Background(press-1) [pbx_config]
  1689. 5. SayAlpha(en) [pbx_config]
  1690. 6. Background(press-2) [pbx_config]
  1691. 7. SayAlpha(fr) [pbx_config]
  1692. 8. Playback(beep) [pbx_config]
  1693. 9. Read(LANGRESULT,,1,,,4) [pbx_config]
  1694. 10. ExecIf($["x${LANGRESULT}"="x1"]?Set(TMPLANG=en)) [pbx_config]
  1695. 11. ExecIf($["x${LANGRESULT}"="x2"]?Set(TMPLANG=fr)) [pbx_config]
  1696. 12. Set(RECFILE=${TMPLANG}/${ARG2}) [pbx_config]
  1697. 13. Playback(language&is-set-to) [pbx_config]
  1698. 14. SayAlpha(${TMPLANG}) [pbx_config]
  1699. 15. Goto(confmenu,1) [pbx_config]
  1700. 't' => 1. Playback(goodbye) [pbx_config]
  1701. 2. Hangup() [pbx_config]
  1702. Include => 'macro-systemrecording-custom' [pbx_config]
  1703.  
  1704. [ Context 'systemrecording-gui' created by 'pbx_config' ]
  1705. 'dorecord' => 1. Record(${RECFILE}.wav,,,k) [pbx_config]
  1706. 'h' => 1. System(touch ${RECFILE}.finished) [pbx_config]
  1707. [exit] 2. Hangup() [pbx_config]
  1708. Include => 'systemrecording-gui-custom' [pbx_config]
  1709.  
  1710. [ Context 'app-languages' created by 'pbx_config' ]
  1711. '1' => 1. Noop(Changing Channel to language: en (ENG)) [pbx_config]
  1712. 2. Set(CHANNEL(language)=en) [pbx_config]
  1713. 3. Goto(ivr-2,s,1) [pbx_config]
  1714. Include => 'app-languages-custom' [pbx_config]
  1715.  
  1716. [ Context 'ivr-1' created by 'pbx_config' ]
  1717. '*' => 1. Goto(directory,1,1) [pbx_config]
  1718. '0' => 1. Goto(ext-group,600,1) [pbx_config]
  1719. '1' => 1. Goto(ext-group,600,1) [pbx_config]
  1720. '2' => 1. Goto(from-did-direct,224,1) [pbx_config]
  1721. '3' => 1. Goto(from-did-direct,232,1) [pbx_config]
  1722. '4' => 1. Goto(from-did-direct,222,1) [pbx_config]
  1723. '9' => 1. Goto(app-languages,1,1) [pbx_config]
  1724. 'h' => 1. Hangup() [pbx_config]
  1725. 'hang' => 1. Playback(vm-goodbye) [pbx_config]
  1726. 2. Hangup() [pbx_config]
  1727. 'i' => 1. Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1]) [pbx_config]
  1728. 2. GotoIf($[${INVALID_LOOPCOUNT} > 3]?final) [pbx_config]
  1729. 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
  1730. 4. Goto(s,start) [pbx_config]
  1731. [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
  1732. 6. Goto() [pbx_config]
  1733. 'return' => 1. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
  1734. 2. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}}) [pbx_config]
  1735. 3. Set(IVR_MSG=custom/octantis-music-fr_8k-wav) [pbx_config]
  1736. 4. Goto(s,start) [pbx_config]
  1737. 's' => 1. Set(TIMEOUT_LOOPCOUNT=0) [pbx_config]
  1738. 2. Set(INVALID_LOOPCOUNT=0) [pbx_config]
  1739. 3. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT}) [pbx_config]
  1740. 4. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
  1741. 5. Set(__IVR_RETVM=) [pbx_config]
  1742. 6. GotoIf($["${CHANNEL(state)}" = "Up"]?skip) [pbx_config]
  1743. 7. Answer() [pbx_config]
  1744. 8. Wait(1) [pbx_config]
  1745. [skip] 9. Set(IVR_MSG=custom/octantis-music-fr_8k-wav) [pbx_config]
  1746. [start] 10. Set(TIMEOUT(digit)=3) [pbx_config]
  1747. 11. ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG})) [pbx_config]
  1748. 12. WaitExten(10,) [pbx_config]
  1749. 't' => 1. Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1]) [pbx_config]
  1750. 2. GotoIf($[${TIMEOUT_LOOPCOUNT} > 3]?final) [pbx_config]
  1751. 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
  1752. 4. Goto(s,start) [pbx_config]
  1753. [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
  1754. 6. Goto() [pbx_config]
  1755. Include => 'ivr-1-custom' [pbx_config]
  1756. Include => 'from-did-direct-ivr' [pbx_config]
  1757.  
  1758. [ Context 'ivr-2' created by 'pbx_config' ]
  1759. '*' => 1. Goto(directory,1,1) [pbx_config]
  1760. '0' => 1. Goto(ext-group,600,1) [pbx_config]
  1761. '1' => 1. Goto(ext-group,600,1) [pbx_config]
  1762. '2' => 1. Goto(from-did-direct,224,1) [pbx_config]
  1763. '3' => 1. Goto(from-did-direct,232,1) [pbx_config]
  1764. '4' => 1. Goto(from-did-direct,222,1) [pbx_config]
  1765. 'h' => 1. Hangup() [pbx_config]
  1766. 'hang' => 1. Playback(vm-goodbye) [pbx_config]
  1767. 2. Hangup() [pbx_config]
  1768. 'i' => 1. Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1]) [pbx_config]
  1769. 2. GotoIf($[${INVALID_LOOPCOUNT} > 3]?final) [pbx_config]
  1770. 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
  1771. 4. Goto(s,start) [pbx_config]
  1772. [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
  1773. 6. Goto() [pbx_config]
  1774. 'return' => 1. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
  1775. 2. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}}) [pbx_config]
  1776. 3. Set(IVR_MSG=custom/octantis-music-en_8k-wav) [pbx_config]
  1777. 4. Goto(s,start) [pbx_config]
  1778. 's' => 1. Set(TIMEOUT_LOOPCOUNT=0) [pbx_config]
  1779. 2. Set(INVALID_LOOPCOUNT=0) [pbx_config]
  1780. 3. Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT}) [pbx_config]
  1781. 4. Set(_IVR_CONTEXT=${CONTEXT}) [pbx_config]
  1782. 5. Set(__IVR_RETVM=) [pbx_config]
  1783. 6. GotoIf($["${CHANNEL(state)}" = "Up"]?skip) [pbx_config]
  1784. 7. Answer() [pbx_config]
  1785. 8. Wait(1) [pbx_config]
  1786. [skip] 9. Set(IVR_MSG=custom/octantis-music-en_8k-wav) [pbx_config]
  1787. [start] 10. Set(TIMEOUT(digit)=3) [pbx_config]
  1788. 11. ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG})) [pbx_config]
  1789. 12. WaitExten(10,) [pbx_config]
  1790. 't' => 1. Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1]) [pbx_config]
  1791. 2. GotoIf($[${TIMEOUT_LOOPCOUNT} > 3]?final) [pbx_config]
  1792. 3. Set(IVR_MSG=no-valid-responce-pls-try-again) [pbx_config]
  1793. 4. Goto(s,start) [pbx_config]
  1794. [final] 5. Playback(no-valid-responce-transfering) [pbx_config]
  1795. 6. Goto() [pbx_config]
  1796. Include => 'ivr-2-custom' [pbx_config]
  1797. Include => 'from-did-direct-ivr' [pbx_config]
  1798.  
  1799. [ Context 'sub-hr24format' created by 'pbx_config' ]
  1800. 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1801. 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
  1802. 3. Return() [pbx_config]
  1803. 'en' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1804. 2. SayUnixTime(${FutureTime},,kM 'and' S 'seconds') [pbx_config]
  1805. 3. Return() [pbx_config]
  1806. 'fr' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1807. 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
  1808. 3. Return() [pbx_config]
  1809. 'ja' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1810. 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
  1811. 3. Return() [pbx_config]
  1812. 's' => 1. GotoIf($[${DIALPLAN_EXISTS(sub-hr24format,${CHANNEL(language)},1)}]?${CHANNEL(language)},1:en,1) [pbx_config]
  1813. Include => 'sub-hr24format-custom' [pbx_config]
  1814.  
  1815. [ Context 'app-speakingclock' created by 'pbx_config' ]
  1816. '*60' => 1. Macro(user-callerid,) [pbx_config]
  1817. 2. Answer() [pbx_config]
  1818. 3. Wait(1) [pbx_config]
  1819. 4. Set(NumLoops=0) [pbx_config]
  1820. [start] 5. Set(FutureTime=$[${EPOCH} + 8]) [pbx_config]
  1821. 6. Set(FutureTimeMod=$[${FutureTime} % 10]) [pbx_config]
  1822. 7. Set(FutureTime=$[${FutureTime} - ${FutureTimeMod} + 10]) [pbx_config]
  1823. 8. Gosub(sub-hr12format,s,1()) [pbx_config]
  1824. [waitloop] 9. Set(TimeLeft=$[${FutureTime} - ${EPOCH}]) [pbx_config]
  1825. 10. GotoIf($[${TimeLeft} < 1]?playbeep) [pbx_config]
  1826. 11. Wait(1) [pbx_config]
  1827. 12. Goto(waitloop) [pbx_config]
  1828. [playbeep] 13. Playback(beep) [pbx_config]
  1829. 14. Wait(5) [pbx_config]
  1830. 15. Set(NumLoops=$[${NumLoops} + 1]) [pbx_config]
  1831. 16. GotoIf($[${NumLoops} < 5]?start) [pbx_config]
  1832. 17. Playback(goodbye) [pbx_config]
  1833. 18. Hangup() [pbx_config]
  1834. Include => 'app-speakingclock-custom' [pbx_config]
  1835.  
  1836. [ Context 'sub-hr12format' created by 'pbx_config' ]
  1837. 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1838. 2. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
  1839. 3. Return() [pbx_config]
  1840. 4. Playback(at-tone-time-exactly) [pbx_config]
  1841. 5. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
  1842. 6. Return() [pbx_config]
  1843. 'en' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1844. 2. SayUnixTime(${FutureTime},,IM 'and' S 'seconds' p) [pbx_config]
  1845. 3. Return() [pbx_config]
  1846. 4. Playback(at-tone-time-exactly) [pbx_config]
  1847. 5. SayUnixTime(${FutureTime},,IM 'and' S 'seconds' p) [pbx_config]
  1848. 6. Return() [pbx_config]
  1849. 'fr' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1850. 2. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
  1851. 3. Return() [pbx_config]
  1852. 4. Playback(at-tone-time-exactly) [pbx_config]
  1853. 5. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
  1854. 6. Return() [pbx_config]
  1855. 'ja' => 1. Playback(at-tone-time-exactly) [pbx_config]
  1856. 2. SayUnixTime(${FutureTime},,pIMS) [pbx_config]
  1857. 3. Return() [pbx_config]
  1858. 4. Playback(at-tone-time-exactly) [pbx_config]
  1859. 5. SayUnixTime(${FutureTime},,pIMS) [pbx_config]
  1860. 6. Return() [pbx_config]
  1861. 's' => 1. GotoIf($[${DIALPLAN_EXISTS(sub-hr12format,${CHANNEL(language)},1)}]?sub-hr12format,${CHANNEL(language)},1:sub-hr12format,en,1) [pbx_config]
  1862. 2. GotoIf($[${DIALPLAN_EXISTS(sub-hr12format,${CHANNEL(language)},1)}]?${CHANNEL(language)},1:en,1) [pbx_config]
  1863. Include => 'sub-hr12format-custom' [pbx_config]
  1864.  
  1865. [ Context 'app-speakextennum' created by 'pbx_config' ]
  1866. '*65' => 1. Answer() [pbx_config]
  1867. 2. Wait(1) [pbx_config]
  1868. 3. Macro(user-callerid,) [pbx_config]
  1869. 4. GotoIf($[${DIALPLAN_EXISTS(app-speakextennum,${CHANNEL(language)},1)}]?app-speakextennum,${CHANNEL(language)},1:app-speakextennum,en,1) [pbx_config]
  1870. 'en' => 1. Playback(your) [pbx_config]
  1871. 2. Playback(extension) [pbx_config]
  1872. 3. Playback(number) [pbx_config]
  1873. 4. Playback(is) [pbx_config]
  1874. 5. SayDigits(${AMPUSER}) [pbx_config]
  1875. 6. Wait(2) [pbx_config]
  1876. 7. Hangup() [pbx_config]
  1877. 'fr' => 1. Playback(your) [pbx_config]
  1878. 2. Playback(extension) [pbx_config]
  1879. 3. Playback(is2) [pbx_config]
  1880. 4. SayDigits(${AMPUSER}) [pbx_config]
  1881. 5. Wait(2) [pbx_config]
  1882. 6. Hangup() [pbx_config]
  1883. 'ja' => 1. Playback(your) [pbx_config]
  1884. 2. Playback(extension) [pbx_config]
  1885. 3. Playback(jp-wa) [pbx_config]
  1886. 4. SayDigits(${AMPUSER}) [pbx_config]
  1887. 5. Wait(2) [pbx_config]
  1888. 6. Hangup() [pbx_config]
  1889. Include => 'app-speakextennum-custom' [pbx_config]
  1890.  
  1891. [ Context 'app-echo-test-echo' created by 'pbx_config' ]
  1892. '_[0-9#*]' => 1. Echo() [pbx_config]
  1893. 2. Playback(demo-echodone) [pbx_config]
  1894. 3. Hangup() [pbx_config]
  1895. Include => 'app-echo-test-echo-custom' [pbx_config]
  1896.  
  1897. [ Context 'app-echo-test' created by 'pbx_config' ]
  1898. '*43' => 1. Answer() [pbx_config]
  1899. 2. Macro(user-callerid,) [pbx_config]
  1900. 3. Wait(1) [pbx_config]
  1901. 4. Background(demo-echotest,,,app-echo-test-echo) [pbx_config]
  1902. 5. Goto(app-echo-test-echo,1,1) [pbx_config]
  1903. Include => 'app-echo-test-custom' [pbx_config]
  1904.  
  1905. [ Context 'app-calltrace-perform' created by 'pbx_config' ]
  1906. '1' => 1. Goto(from-internal,${lastcaller},1) [pbx_config]
  1907. 'i' => 1. Playback(vm-goodbye) [pbx_config]
  1908. 2. Macro(hangupcall,) [pbx_config]
  1909. 's' => 1. Answer() [pbx_config]
  1910. 2. Wait(1) [pbx_config]
  1911. 3. Macro(user-callerid,) [pbx_config]
  1912. 4. Playback(info-about-last-call&telephone-number) [pbx_config]
  1913. 5. Set(lastcaller=${DB(CALLTRACE/${AMPUSER})}) [pbx_config]
  1914. 6. GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}" = "unknown" ] ]?noinfo) [pbx_config]
  1915. 7. SayDigits(${lastcaller}) [pbx_config]
  1916. 8. Set(TIMEOUT(digit)=3) [pbx_config]
  1917. 9. Set(TIMEOUT(response)=7) [pbx_config]
  1918. 10. Background(to-call-this-number&press-1) [pbx_config]
  1919. 11. Goto(fin) [pbx_config]
  1920. [noinfo] 12. Playback(from-unknown-caller) [pbx_config]
  1921. 13. Macro(hangupcall,) [pbx_config]
  1922. [fin] 14. Noop(Waiting for input) [pbx_config]
  1923. 15. WaitExten(60,) [pbx_config]
  1924. 16. Playback(sorry-youre-having-problems&goodbye) [pbx_config]
  1925. 't' => 1. Playback(vm-goodbye) [pbx_config]
  1926. 2. Macro(hangupcall,) [pbx_config]
  1927. Include => 'app-calltrace-perform-custom' [pbx_config]
  1928.  
  1929. [ Context 'app-calltrace' created by 'pbx_config' ]
  1930. '*69' => 1. Goto(app-calltrace-perform,s,1) [pbx_config]
  1931. Include => 'app-calltrace-custom' [pbx_config]
  1932.  
  1933. [ Context 'sub-fmsetcid' created by 'pbx_config' ]
  1934. 's' => 1. Goto(s-${DB(AMPUSER/${EXTTOCALL}/followme/changecid)},1) [pbx_config]
  1935. 's-did' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__REALCALLERIDNUM=${FROM_DID})) [pbx_config]
  1936. 2. Return() [pbx_config]
  1937. 's-extern' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})}" == "1" & "${FROM_DID}" != ""]?Set(__TRUNKCIDOVERRIDE=${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})) [pbx_config]
  1938. 2. Return() [pbx_config]
  1939. 's-fixed' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${DB(AMPUSER/${EXTTOCALL}/followme/fixedcid)})) [pbx_config]
  1940. 2. Return() [pbx_config]
  1941. 's-forcedid' => 1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${FROM_DID})) [pbx_config]
  1942. 2. Return() [pbx_config]
  1943. '_s-.' => 1. Noop(Unknown value for AMPUSER/${EXTTOCALL}/followme/changecid of ${DB(AMPUSER/${EXTTOCALL}/followme/changecid)} set to "default") [pbx_config]
  1944. 2. Set(DB(AMPUSER/${EXTTOCALL}/followme/changecid)=default) [pbx_config]
  1945. 3. Return() [pbx_config]
  1946. Include => 'sub-fmsetcid-custom' [pbx_config]
  1947.  
  1948. [ Context 'fmgrps' created by 'pbx_config' ]
  1949. '_RG-222.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1950. 2. Macro(dial,${DB(AMPUSER/222/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^222),${EXTEN:7}) [pbx_config]
  1951. '_RG-224.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1952. 2. Macro(dial,${DB(AMPUSER/224/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^224),${EXTEN:7}) [pbx_config]
  1953. '_RG-225.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1954. 2. Macro(dial,${DB(AMPUSER/225/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^225),${EXTEN:7}) [pbx_config]
  1955. '_RG-226.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1956. 2. Macro(dial,${DB(AMPUSER/226/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^226),${EXTEN:7}) [pbx_config]
  1957. '_RG-228.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1958. 2. Macro(dial,${DB(AMPUSER/228/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^228),${EXTEN:7}) [pbx_config]
  1959. '_RG-229.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1960. 2. Macro(dial,${DB(AMPUSER/229/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^229),${EXTEN:7}) [pbx_config]
  1961. '_RG-230.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1962. 2. Macro(dial,${DB(AMPUSER/230/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^230),${EXTEN:7}) [pbx_config]
  1963. '_RG-232.' => 1. Set(CDR_PROP(disable)=true) [pbx_config]
  1964. 2. Macro(dial,${DB(AMPUSER/232/followme/grptime)},${DIAL_OPTIONS}M(confirm^^^232),${EXTEN:7}) [pbx_config]
  1965. Include => 'fmgrps-custom' [pbx_config]
  1966.  
  1967. [ Context 'ext-findmefollow' created by 'pbx_config' ]
  1968. '*21001565352134' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1969. '*21001565461075' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1970. '*21001565461091' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1971. '*21001565461361' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1972. '*21001565461365' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1973. '*21001565461367' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1974. '*21001565461377' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1975. '*21001565851953' => 1. Goto(app-fmf-toggle,*21,1) [pbx_config]
  1976. '222' => 1. GotoIf($[ "${DB(AMPUSER/222/followme/ddial)}" = "EXTENSION" ]?ext-local,222,1) [pbx_config]
  1977. [FM222] 2. Macro(user-callerid,) [pbx_config]
  1978. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  1979. 4. Set(CONNECTEDLINE(num,i)=222) [pbx_config]
  1980. 5. Gosub(sub-presencestate-display,s,1(222)) [pbx_config]
  1981. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/222/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  1982. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(222@ext-local)}) [pbx_config]
  1983. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  1984. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  1985. 10. Macro(blkvm-setifempty,) [pbx_config]
  1986. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  1987. 12. Macro(blkvm-set,reset) [pbx_config]
  1988. 13. Set(__NODEST=) [pbx_config]
  1989. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  1990. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  1991. 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]
  1992. 17. Set(RecordMethod=Group) [pbx_config]
  1993. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,222,)) [pbx_config]
  1994. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  1995. 20. Set(__ALERT_INFO= ) [pbx_config]
  1996. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  1997. 22. Set(_FMGRP=222) [pbx_config]
  1998. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/222/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  1999. 24. Macro(dial,$[ ${DB(AMPUSER/222/followme/grptime)} + ${DB(AMPUSER/222/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/222/followme/grplist)}) [pbx_config]
  2000. 25. Goto(nextstep) [pbx_config]
  2001. [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]
  2002. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2003. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2004. 29. Set(__NODEST=) [pbx_config]
  2005. 30. Set(__PICKUPMARK=) [pbx_config]
  2006. 31. Macro(blkvm-clr,) [pbx_config]
  2007. 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]
  2008. 33. Goto(ext-local,222,dest) [pbx_config]
  2009. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2010. '224' => 1. GotoIf($[ "${DB(AMPUSER/224/followme/ddial)}" = "EXTENSION" ]?ext-local,224,1) [pbx_config]
  2011. [FM224] 2. Macro(user-callerid,) [pbx_config]
  2012. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2013. 4. Set(CONNECTEDLINE(num,i)=224) [pbx_config]
  2014. 5. Gosub(sub-presencestate-display,s,1(224)) [pbx_config]
  2015. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/224/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2016. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(224@ext-local)}) [pbx_config]
  2017. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2018. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2019. 10. Macro(blkvm-setifempty,) [pbx_config]
  2020. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2021. 12. Macro(blkvm-set,reset) [pbx_config]
  2022. 13. Set(__NODEST=) [pbx_config]
  2023. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2024. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2025. 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]
  2026. 17. Set(RecordMethod=Group) [pbx_config]
  2027. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,224,)) [pbx_config]
  2028. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2029. 20. Set(__ALERT_INFO= ) [pbx_config]
  2030. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2031. 22. Set(_FMGRP=224) [pbx_config]
  2032. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/224/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2033. 24. Macro(dial,$[ ${DB(AMPUSER/224/followme/grptime)} + ${DB(AMPUSER/224/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/224/followme/grplist)}) [pbx_config]
  2034. 25. Goto(nextstep) [pbx_config]
  2035. [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]
  2036. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2037. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2038. 29. Set(__NODEST=) [pbx_config]
  2039. 30. Set(__PICKUPMARK=) [pbx_config]
  2040. 31. Macro(blkvm-clr,) [pbx_config]
  2041. 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]
  2042. 33. Goto(ext-local,224,dest) [pbx_config]
  2043. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2044. '225' => 1. GotoIf($[ "${DB(AMPUSER/225/followme/ddial)}" = "EXTENSION" ]?ext-local,225,1) [pbx_config]
  2045. [FM225] 2. Macro(user-callerid,) [pbx_config]
  2046. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2047. 4. Set(CONNECTEDLINE(num,i)=225) [pbx_config]
  2048. 5. Gosub(sub-presencestate-display,s,1(225)) [pbx_config]
  2049. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/225/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2050. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(225@ext-local)}) [pbx_config]
  2051. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2052. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2053. 10. Macro(blkvm-setifempty,) [pbx_config]
  2054. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2055. 12. Macro(blkvm-set,reset) [pbx_config]
  2056. 13. Set(__NODEST=) [pbx_config]
  2057. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2058. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2059. 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]
  2060. 17. Set(RecordMethod=Group) [pbx_config]
  2061. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,225,)) [pbx_config]
  2062. [skipsimple] 19. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2063. 20. Set(_FMGRP=225) [pbx_config]
  2064. [DIALGRP] 21. GotoIf($[("${DB(AMPUSER/225/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2065. 22. Macro(dial,$[ ${DB(AMPUSER/225/followme/grptime)} + ${DB(AMPUSER/225/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/225/followme/grplist)}) [pbx_config]
  2066. 23. Goto(nextstep) [pbx_config]
  2067. [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]
  2068. [nextstep] 25. Set(RingGroupMethod=) [pbx_config]
  2069. 26. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2070. 27. Set(__NODEST=) [pbx_config]
  2071. 28. Set(__PICKUPMARK=) [pbx_config]
  2072. 29. Macro(blkvm-clr,) [pbx_config]
  2073. 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]
  2074. 31. Goto(ext-local,225,dest) [pbx_config]
  2075. [nodest] 32. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2076. '226' => 1. GotoIf($[ "${DB(AMPUSER/226/followme/ddial)}" = "EXTENSION" ]?ext-local,226,1) [pbx_config]
  2077. [FM226] 2. Macro(user-callerid,) [pbx_config]
  2078. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2079. 4. Set(CONNECTEDLINE(num,i)=226) [pbx_config]
  2080. 5. Gosub(sub-presencestate-display,s,1(226)) [pbx_config]
  2081. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/226/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2082. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(226@ext-local)}) [pbx_config]
  2083. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2084. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2085. 10. Macro(blkvm-setifempty,) [pbx_config]
  2086. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2087. 12. Macro(blkvm-set,reset) [pbx_config]
  2088. 13. Set(__NODEST=) [pbx_config]
  2089. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2090. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2091. 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]
  2092. 17. Set(RecordMethod=Group) [pbx_config]
  2093. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,226,)) [pbx_config]
  2094. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2095. 20. Set(__ALERT_INFO= ) [pbx_config]
  2096. [skipsimple] 21. Set(RingGroupMethod=ringallv2) [pbx_config]
  2097. 22. Set(_FMGRP=226) [pbx_config]
  2098. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/226/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2099. 24. Macro(dial,$[ ${DB(AMPUSER/226/followme/grptime)} + ${DB(AMPUSER/226/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/226/followme/grplist)}) [pbx_config]
  2100. 25. Goto(nextstep) [pbx_config]
  2101. [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]
  2102. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2103. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2104. 29. Set(__NODEST=) [pbx_config]
  2105. 30. Set(__PICKUPMARK=) [pbx_config]
  2106. 31. Macro(blkvm-clr,) [pbx_config]
  2107. 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]
  2108. 33. Goto(ext-local,226,dest) [pbx_config]
  2109. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2110. '228' => 1. GotoIf($[ "${DB(AMPUSER/228/followme/ddial)}" = "EXTENSION" ]?ext-local,228,1) [pbx_config]
  2111. [FM228] 2. Macro(user-callerid,) [pbx_config]
  2112. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2113. 4. Set(CONNECTEDLINE(num,i)=228) [pbx_config]
  2114. 5. Gosub(sub-presencestate-display,s,1(228)) [pbx_config]
  2115. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/228/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2116. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(228@ext-local)}) [pbx_config]
  2117. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2118. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2119. 10. Macro(blkvm-setifempty,) [pbx_config]
  2120. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2121. 12. Macro(blkvm-set,reset) [pbx_config]
  2122. 13. Set(__NODEST=) [pbx_config]
  2123. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2124. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2125. 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]
  2126. 17. Set(RecordMethod=Group) [pbx_config]
  2127. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,228,)) [pbx_config]
  2128. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2129. 20. Set(__ALERT_INFO= ) [pbx_config]
  2130. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2131. 22. Set(_FMGRP=228) [pbx_config]
  2132. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/228/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2133. 24. Macro(dial,$[ ${DB(AMPUSER/228/followme/grptime)} + ${DB(AMPUSER/228/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/228/followme/grplist)}) [pbx_config]
  2134. 25. Goto(nextstep) [pbx_config]
  2135. [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]
  2136. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2137. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2138. 29. Set(__NODEST=) [pbx_config]
  2139. 30. Set(__PICKUPMARK=) [pbx_config]
  2140. 31. Macro(blkvm-clr,) [pbx_config]
  2141. 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]
  2142. 33. Goto(ext-local,228,dest) [pbx_config]
  2143. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2144. '229' => 1. GotoIf($[ "${DB(AMPUSER/229/followme/ddial)}" = "EXTENSION" ]?ext-local,229,1) [pbx_config]
  2145. [FM229] 2. Macro(user-callerid,) [pbx_config]
  2146. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2147. 4. Set(CONNECTEDLINE(num,i)=229) [pbx_config]
  2148. 5. Gosub(sub-presencestate-display,s,1(229)) [pbx_config]
  2149. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/229/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2150. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(229@ext-local)}) [pbx_config]
  2151. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2152. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2153. 10. Macro(blkvm-setifempty,) [pbx_config]
  2154. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2155. 12. Macro(blkvm-set,reset) [pbx_config]
  2156. 13. Set(__NODEST=) [pbx_config]
  2157. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2158. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2159. 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]
  2160. 17. Set(RecordMethod=Group) [pbx_config]
  2161. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,229,)) [pbx_config]
  2162. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2163. 20. Set(__ALERT_INFO= ) [pbx_config]
  2164. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2165. 22. Set(_FMGRP=229) [pbx_config]
  2166. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/229/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2167. 24. Macro(dial,$[ ${DB(AMPUSER/229/followme/grptime)} + ${DB(AMPUSER/229/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/229/followme/grplist)}) [pbx_config]
  2168. 25. Goto(nextstep) [pbx_config]
  2169. [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]
  2170. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2171. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2172. 29. Set(__NODEST=) [pbx_config]
  2173. 30. Set(__PICKUPMARK=) [pbx_config]
  2174. 31. Macro(blkvm-clr,) [pbx_config]
  2175. 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]
  2176. 33. Goto(ext-local,229,dest) [pbx_config]
  2177. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2178. '230' => 1. GotoIf($[ "${DB(AMPUSER/230/followme/ddial)}" = "EXTENSION" ]?ext-local,230,1) [pbx_config]
  2179. [FM230] 2. Macro(user-callerid,) [pbx_config]
  2180. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2181. 4. Set(CONNECTEDLINE(num,i)=230) [pbx_config]
  2182. 5. Gosub(sub-presencestate-display,s,1(230)) [pbx_config]
  2183. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/230/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2184. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(230@ext-local)}) [pbx_config]
  2185. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2186. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2187. 10. Macro(blkvm-setifempty,) [pbx_config]
  2188. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2189. 12. Macro(blkvm-set,reset) [pbx_config]
  2190. 13. Set(__NODEST=) [pbx_config]
  2191. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2192. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2193. 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]
  2194. 17. Set(RecordMethod=Group) [pbx_config]
  2195. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,230,)) [pbx_config]
  2196. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2197. 20. Set(__ALERT_INFO= ) [pbx_config]
  2198. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2199. 22. Set(_FMGRP=230) [pbx_config]
  2200. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/230/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2201. 24. Macro(dial,$[ ${DB(AMPUSER/230/followme/grptime)} + ${DB(AMPUSER/230/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/230/followme/grplist)}) [pbx_config]
  2202. 25. Goto(nextstep) [pbx_config]
  2203. [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]
  2204. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2205. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2206. 29. Set(__NODEST=) [pbx_config]
  2207. 30. Set(__PICKUPMARK=) [pbx_config]
  2208. 31. Macro(blkvm-clr,) [pbx_config]
  2209. 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]
  2210. 33. Goto(ext-local,230,dest) [pbx_config]
  2211. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2212. '232' => 1. GotoIf($[ "${DB(AMPUSER/232/followme/ddial)}" = "EXTENSION" ]?ext-local,232,1) [pbx_config]
  2213. [FM232] 2. Macro(user-callerid,) [pbx_config]
  2214. 3. Set(DIAL_OPTIONS=${DIAL_OPTIONS}I) [pbx_config]
  2215. 4. Set(CONNECTEDLINE(num,i)=232) [pbx_config]
  2216. 5. Gosub(sub-presencestate-display,s,1(232)) [pbx_config]
  2217. 6. Set(CONNECTEDLINE(name)=${DB(AMPUSER/232/cidname)}${PRESENCESTATE_DISPLAY}) [pbx_config]
  2218. 7. Set(FM_DIALSTATUS=${EXTENSION_STATE(232@ext-local)}) [pbx_config]
  2219. 8. Set(__EXTTOCALL=${EXTEN}) [pbx_config]
  2220. 9. Set(__PICKUPMARK=${EXTEN}) [pbx_config]
  2221. 10. Macro(blkvm-setifempty,) [pbx_config]
  2222. 11. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2223. 12. Macro(blkvm-set,reset) [pbx_config]
  2224. 13. Set(__NODEST=) [pbx_config]
  2225. [skipov] 14. Set(RRNODEST=${NODEST}) [pbx_config]
  2226. [skipvmblk] 15. Set(__NODEST=${EXTEN}) [pbx_config]
  2227. 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]
  2228. 17. Set(RecordMethod=Group) [pbx_config]
  2229. [checkrecord] 18. Gosub(sub-record-check,s,1(exten,232,)) [pbx_config]
  2230. 19. GotoIf($["x${ALERT_INFO}"!="x"]?$[${PRIORITY}+2])}) [pbx_config]
  2231. 20. Set(__ALERT_INFO= ) [pbx_config]
  2232. [skipsimple] 21. Set(RingGroupMethod=ringallv2-prim) [pbx_config]
  2233. 22. Set(_FMGRP=232) [pbx_config]
  2234. [DIALGRP] 23. GotoIf($[("${DB(AMPUSER/232/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm) [pbx_config]
  2235. 24. Macro(dial,$[ ${DB(AMPUSER/232/followme/grptime)} + ${DB(AMPUSER/232/followme/prering)} ],${DIAL_OPTIONS},${DB(AMPUSER/232/followme/grplist)}) [pbx_config]
  2236. 25. Goto(nextstep) [pbx_config]
  2237. [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]
  2238. [nextstep] 27. Set(RingGroupMethod=) [pbx_config]
  2239. 28. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2240. 29. Set(__NODEST=) [pbx_config]
  2241. 30. Set(__PICKUPMARK=) [pbx_config]
  2242. 31. Macro(blkvm-clr,) [pbx_config]
  2243. 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]
  2244. 33. Goto(ext-local,232,dest) [pbx_config]
  2245. [nodest] 34. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [pbx_config]
  2246. 'FM222' => 1. Goto(222,FM222) [pbx_config]
  2247. 'FM224' => 1. Goto(224,FM224) [pbx_config]
  2248. 'FM225' => 1. Goto(225,FM225) [pbx_config]
  2249. 'FM226' => 1. Goto(226,FM226) [pbx_config]
  2250. 'FM228' => 1. Goto(228,FM228) [pbx_config]
  2251. 'FM229' => 1. Goto(229,FM229) [pbx_config]
  2252. 'FM230' => 1. Goto(230,FM230) [pbx_config]
  2253. 'FM232' => 1. Goto(232,FM232) [pbx_config]
  2254. '_*21X.' => hint: Custom:FOLLOWME${EXTEN:3} [pbx_config]
  2255. Include => 'ext-findmefollow-custom' [pbx_config]
  2256.  
  2257. [ Context 'app-fmf-toggle' created by 'pbx_config' ]
  2258. '*21' => 1. Goto(app-fmf-toggle,s,start) [pbx_config]
  2259. 's' => 1. Answer() [pbx_config]
  2260. 2. Wait(1) [pbx_config]
  2261. 3. Macro(user-callerid,) [pbx_config]
  2262. 4. GotoIf($["${DB(AMPUSER/${AMPUSER}/followme/ddial)}" = "EXTENSION"]?activate) [pbx_config]
  2263. 5. GotoIf($["${DB(AMPUSER/${AMPUSER}/followme/ddial)}" = "DIRECT"]?deactivate:end) [pbx_config]
  2264. [deactivate] 6. Set(DB(AMPUSER/${AMPUSER}/followme/ddial)=EXTENSION) [pbx_config]
  2265. 7. Set(STATE=NOT_INUSE) [pbx_config]
  2266. 8. Gosub(app-fmf-toggle,sstate,1()) [pbx_config]
  2267. [hook_off] 9. Playback(followme&de-activated) [pbx_config]
  2268. [end] 10. Macro(hangupcall,) [pbx_config]
  2269. [activate] 11. Set(DB(AMPUSER/${AMPUSER}/followme/ddial)=DIRECT) [pbx_config]
  2270. 12. Set(STATE=INUSE) [pbx_config]
  2271. 13. Gosub(app-fmf-toggle,sstate,1()) [pbx_config]
  2272. [hook_on] 14. Playback(followme&activated) [pbx_config]
  2273. 15. Macro(hangupcall,) [pbx_config]
  2274. 'sstate' => 1. Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)}) [pbx_config]
  2275. 2. GotoIf($["${DEVICES}" = "" ]?return) [pbx_config]
  2276. 3. Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) [pbx_config]
  2277. 4. Set(ITER=1) [pbx_config]
  2278. [begin] 5. Set(DEVICE_STATE(Custom:FOLLOWME${CUT(DEVICES,&,${ITER})})=${STATE}) [pbx_config]
  2279. 6. Set(ITER=$[${ITER} + 1]) [pbx_config]
  2280. 7. GotoIf($[${ITER} <= ${LOOPCNT}]?begin) [pbx_config]
  2281. [return] 8. Return() [pbx_config]
  2282. Include => 'app-fmf-toggle-custom' [pbx_config]
  2283.  
  2284. [ Context 'ext-featurecodes' created by 'pbx_config' ]
  2285. '*43' => 1. Goto(from-internal,*43,1) [pbx_config]
  2286. '*60' => 1. Goto(from-internal,*60,1) [pbx_config]
  2287. '*98' => 1. Goto(from-internal,*98,1) [pbx_config]
  2288. '555' => 1. Goto(from-internal,555,1) [pbx_config]
  2289. '7777' => 1. Goto(from-internal,7777,1) [pbx_config]
  2290. '888' => 1. Goto(from-internal,888,1) [pbx_config]
  2291. Include => 'ext-featurecodes-custom' [pbx_config]
  2292.  
  2293. [ Context 'directory' created by 'pbx_config' ]
  2294. '1' => 1. Answer() [pbx_config]
  2295. 2. Wait(1) [pbx_config]
  2296. 3. AGI(directory.agi,dir=1,retivr=true) [pbx_config]
  2297. [dial-1] 4. Ringing() [pbx_config]
  2298. 5. Goto(from-internal,${DIR_DIAL},1) [pbx_config]
  2299. 'h' => 1. Macro(hangupcall,) [pbx_config]
  2300. 'invalid' => 1. Playback(${DIR_INVALID_RECORDING}) [pbx_config]
  2301. 2. Ringing() [pbx_config]
  2302. 3. Goto(${DIR_INVALID_CONTEXT},${DIR_INVALID_EXTEN},${DIR_INVALID_PRI}) [pbx_config]
  2303. 'retivr' => 1. Playback(${DIR_INVALID_RECORDING}) [pbx_config]
  2304. 2. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  2305. Include => 'directory-custom' [pbx_config]
  2306.  
  2307. [ Context 'macro-one-touch-record' created by 'pbx_config' ]
  2308. 's' => 1. Set(ONETOUCH_REC_SCRIPT_STATUS=) [pbx_config]
  2309. 2. System(/var/lib/asterisk/bin/one_touch_record.php "${CHANNEL(name)}") [pbx_config]
  2310. 3. Noop(ONETOUCH_REC_SCRIPT_STATUS: [${ONETOUCH_REC_SCRIPT_STATUS}]) [pbx_config]
  2311. 4. ExecIf($["${REC_STATUS}"="RECORDING"]?Playback(beep)) [pbx_config]
  2312. 5. ExecIf($["${REC_STATUS}"="STOPPED"]?Playback(beep&beep)) [pbx_config]
  2313. 6. ExecIf($["${ONETOUCH_REC_SCRIPT_STATUS:0:6}"="DENIED"]?Playback(access-denied)) [pbx_config]
  2314. 7. MacroExit() [pbx_config]
  2315. Include => 'macro-one-touch-record-custom' [pbx_config]
  2316.  
  2317. [ Context 'sub-record-check' created by 'pbx_config' ]
  2318. 'conf' => 1. Noop(Conference Recording Check ${FROMEXTEN} to ${ARG2}) [pbx_config]
  2319. 2. Gosub(recconf,1(${ARG2},${ARG2},${ARG3})) [pbx_config]
  2320. 3. Return() [pbx_config]
  2321. 'exten' => 1. Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2}) [pbx_config]
  2322. 2. Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?external:internal)}) [pbx_config]
  2323. 3. ExecIf(${LEN(${CALLTYPE_OVERRIDE})}?Set(CALLTYPE=${CALLTYPE_OVERRIDE})) [pbx_config]
  2324. 4. Set(CALLEE=${DB(AMPUSER/${ARG2}/recording/in/${CALLTYPE})}) [pbx_config]
  2325. 5. ExecIf($[!${LEN(${CALLEE})}]?Set(CALLEE=dontcare)) [pbx_config]
  2326. 6. GotoIf($["${CALLTYPE}"="external"]?callee) [pbx_config]
  2327. 7. GotoIf($["${CALLEE}"="dontcare"]?caller) [pbx_config]
  2328. 8. ExecIf($[${LEN(${DB(AMPUSER/${FROMEXTEN}/recording/priority)})}]?Set(CALLER_PRI=${DB(AMPUSER/${FROMEXTEN}/recording/priority)}):Set(CALLER_PRI=0)) [pbx_config]
  2329. 9. ExecIf($[${LEN(${DB(AMPUSER/${ARG2}/recording/priority)})}]?Set(CALLEE_PRI=${DB(AMPUSER/${ARG2}/recording/priority)}):Set(CALLEE_PRI=0)) [pbx_config]
  2330. 10. GotoIf($["${CALLER_PRI}"="${CALLEE_PRI}"]?${REC_POLICY}:${IF($[${CALLER_PRI}>${CALLEE_PRI}]?caller:callee)}) [pbx_config]
  2331. [callee] 11. Gosub(recordcheck,1(${CALLEE},${CALLTYPE},${ARG2})) [pbx_config]
  2332. 12. Return() [pbx_config]
  2333. [caller] 13. Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)}) [pbx_config]
  2334. 14. ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare)) [pbx_config]
  2335. 15. ExecIf($["${RECMODE}"="dontcare"]?Set(RECMODE=${CALLEE})) [pbx_config]
  2336. 16. Gosub(recordcheck,1(${RECMODE},${CALLTYPE},${ARG2})) [pbx_config]
  2337. 17. Return() [pbx_config]
  2338. 'in' => 1. Noop(Inbound Recording Check to ${ARG2}) [pbx_config]
  2339. 2. Set(FROMEXTEN=unknown) [pbx_config]
  2340. 3. ExecIf($[${LEN(${CALLERID(num)})}]?Set(FROMEXTEN=${CALLERID(num)})) [pbx_config]
  2341. 4. Gosub(recordcheck,1(${ARG3},in,${ARG2})) [pbx_config]
  2342. 5. Return() [pbx_config]
  2343. 'out' => 1. Noop(Outbound Recording Check from ${FROMEXTEN} to ${ARG2}) [pbx_config]
  2344. 2. Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)}) [pbx_config]
  2345. 3. ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins)) [pbx_config]
  2346. 4. ExecIf($["${ARG3}" = "never" | "${ARG3}" = "force"]?Goto(routewins)) [pbx_config]
  2347. [extenwins] 5. Gosub(recordcheck,1(${RECMODE},out,${ARG2})) [pbx_config]
  2348. 6. Return() [pbx_config]
  2349. [routewins] 7. Gosub(recordcheck,1(${ARG3},out,${ARG2})) [pbx_config]
  2350. 8. Return() [pbx_config]
  2351. 'page' => 1. Noop(Paging Recording Check ${FROMEXTEN} to ${ARG2}) [pbx_config]
  2352. 2. GosubIf($["${REC_POLICY_MODE}"="always"]?recconf,1(${ARG2},${FROMEXTEN},${ARG3})) [pbx_config]
  2353. 3. Return() [pbx_config]
  2354. 'parking' => 1. Noop(User ${ARG2} picked up a parked call) [pbx_config]
  2355. 2. Set(USER=${ARG2}) [pbx_config]
  2356. 3. ExecIf($[!${LEN(${ARG2})}]?Set(USER=unknown)) [pbx_config]
  2357. 4. Set(RECMODE=${DB(AMPUSER/${ARG2}/recording/out/internal)}) [pbx_config]
  2358. 5. ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare)) [pbx_config]
  2359. 6. Gosub(recordcheck,1(${RECMODE},parked,${USER})) [pbx_config]
  2360. 7. Return() [pbx_config]
  2361. 'recconf' => 1. Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3}) [pbx_config]
  2362. 2. Set(__CALLFILENAME=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${DB(RECCONF/${ARG2})}:${ARG1}-${ARG2}-${ARG3}-${TIMESTR}-${UNIQUEID})}) [pbx_config]
  2363. 3. ExecIf($[!${CONFBRIDGE_INFO(parties,${ARG2})}]?Set(DB(RECCONF/${ARG2})=${CALLFILENAME})) [pbx_config]
  2364. 4. Set(CONFBRIDGE(bridge,record_file)=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) [pbx_config]
  2365. 5. ExecIf($["${ARG3}"!="always"]?Return()) [pbx_config]
  2366. 6. Set(__REC_STATUS=RECORDING) [pbx_config]
  2367. 7. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  2368. 8. Return() [pbx_config]
  2369. 'recordcheck' => 1. Noop(Starting recording check against ${ARG1}) [pbx_config]
  2370. 2. Goto(${ARG1}) [pbx_config]
  2371. [dontcare] 3. Return() [pbx_config]
  2372. [always] 4. Noop(Detected legacy "always" entry. Mapping to "force") [pbx_config]
  2373. [force] 5. Set(__REC_POLICY_MODE=FORCE) [pbx_config]
  2374. 6. GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec) [pbx_config]
  2375. 7. Return() [pbx_config]
  2376. [delayed] 8. Noop(Detected legacy "delayed" entry. Mapping to "yes") [pbx_config]
  2377. [yes] 9. ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return()) [pbx_config]
  2378. 10. Set(__REC_POLICY_MODE=YES) [pbx_config]
  2379. 11. Goto(startrec) [pbx_config]
  2380. [no] 12. Set(__REC_POLICY_MODE=NO) [pbx_config]
  2381. 13. Return() [pbx_config]
  2382. [never] 14. Set(__REC_POLICY_MODE=NEVER) [pbx_config]
  2383. 15. Goto(stoprec) [pbx_config]
  2384. [startrec] 16. Noop(Starting recording: ${ARG2}, ${ARG3}) [pbx_config]
  2385. 17. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  2386. 18. Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}) [pbx_config]
  2387. 19. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},ai(LOCAL_MIXMON_ID)${MIXMON_BEEP},${MIXMON_POST}) [pbx_config]
  2388. 20. Set(__MIXMON_ID=${LOCAL_MIXMON_ID}) [pbx_config]
  2389. 21. Set(__RECORD_ID=${CHANNEL(name)}) [pbx_config]
  2390. 22. Set(__REC_STATUS=RECORDING) [pbx_config]
  2391. 23. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  2392. 24. Return() [pbx_config]
  2393. [stoprec] 25. Noop(Stopping recording: ${ARG2}, ${ARG3}) [pbx_config]
  2394. 26. Set(__REC_STATUS=STOPPED) [pbx_config]
  2395. 27. System(/var/lib/asterisk/bin/stoprecording.php "${CHANNEL(name)}") [pbx_config]
  2396. 28. Return() [pbx_config]
  2397. 'recq' => 1. Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3}) [pbx_config]
  2398. 2. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  2399. 3. Set(MONITOR_FILENAME=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}) [pbx_config]
  2400. 4. MixMonitor(${MONITOR_FILENAME}.${MON_FMT},${MONITOR_OPTIONS}${MIXMON_BEEP},${MIXMON_POST}) [pbx_config]
  2401. 5. Set(__REC_STATUS=RECORDING) [pbx_config]
  2402. 6. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  2403. 7. Return() [pbx_config]
  2404. 's' => 1. GotoIf($[${LEN(${FROMEXTEN})}]?initialized) [pbx_config]
  2405. 2. Set(__REC_STATUS=INITIALIZED) [pbx_config]
  2406. 3. Set(NOW=${EPOCH}) [pbx_config]
  2407. 4. Set(__DAY=${STRFTIME(${NOW},,%d)}) [pbx_config]
  2408. 5. Set(__MONTH=${STRFTIME(${NOW},,%m)}) [pbx_config]
  2409. 6. Set(__YEAR=${STRFTIME(${NOW},,%Y)}) [pbx_config]
  2410. 7. Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)}) [pbx_config]
  2411. 8. Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})}) [pbx_config]
  2412. 9. Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})}) [pbx_config]
  2413. [initialized] 10. Noop(Recordings initialized) [pbx_config]
  2414. 11. ExecIf($[!${LEN(${ARG3})}]?Set(ARG3=dontcare)) [pbx_config]
  2415. 12. Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE}) [pbx_config]
  2416. 13. ExecIf($["${BLINDTRANSFER}${ATTENDEDTRANSFER}" != ""]?Set(REC_STATUS=NO)) [pbx_config]
  2417. [next] 14. GotoIf($[${LEN(${ARG1})}]?checkaction) [pbx_config]
  2418. [recorderror] 15. Playback(something-terribly-wrong,error) [pbx_config]
  2419. 16. Hangup() [pbx_config]
  2420. [checkaction] 17. GotoIf($[${DIALPLAN_EXISTS(sub-record-check,${ARG1})}]?sub-record-check,${ARG1},1) [pbx_config]
  2421. 18. Noop(Generic ${ARG1} Recording Check - ${FROMEXTEN} ${ARG2}) [pbx_config]
  2422. 19. Gosub(recordcheck,1(${ARG3},${ARG1},${ARG2})) [pbx_config]
  2423. 20. Return() [pbx_config]
  2424. Include => 'sub-record-check-custom' [pbx_config]
  2425.  
  2426. [ Context 'sub-record-cancel' created by 'pbx_config' ]
  2427. 's' => 1. Return() [pbx_config]
  2428. Include => 'sub-record-cancel-custom' [pbx_config]
  2429.  
  2430. -= 446 extensions (2108 priorities) in 101 contexts. =-
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement