Advertisement
Guest User

Untitled

a guest
Mar 6th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 128.99 KB | None | 0 0
  1. # asterisk -rvvvv -x 'dialplan show'|tee /tmp/d
  2. Asterisk 1.8.11-cert7, Copyright (C) 1999 - 2012 Digium, Inc. and others.
  3. Created by Mark Spencer <markster@digium.com>
  4. Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
  5. This is free software, with components licensed under the GNU General Public
  6. License version 2 and other licenses; you are welcome to redistribute it under
  7. certain conditions. Type 'core show license' for details.
  8. =========================================================================
  9. == Parsing '/etc/asterisk/asterisk.conf': == Found
  10. == Parsing '/etc/asterisk/extconfig.conf': == Found
  11. [ Context 'app-recordings' created by 'pbx_config' ]
  12. '*77' => 1. Macro(user-callerid,) [pbx_config]
  13. 2. Wait(2) [pbx_config]
  14. 3. Macro(systemrecording,dorecord) [pbx_config]
  15. '*99' => 1. Macro(user-callerid,) [pbx_config]
  16. 2. Wait(2) [pbx_config]
  17. 3. Macro(systemrecording,docheck) [pbx_config]
  18. Include => 'app-recordings-custom' [pbx_config]
  19.  
  20. [ Context 'macro-systemrecording' created by 'pbx_config' ]
  21. '*' => 1. Goto(dorecord,1) [pbx_config]
  22. '1' => 1. Goto(docheck,dc_start) [pbx_config]
  23. 'confmenu' => 1. Background(to-listen-to-it&press-1&to-rerecord-it&press-star&astcc-followed-by-pound,m,${CHANNEL(language)},macro-systemrecording) [pbx_config]
  24. 2. Read(RECRESULT,,1,,,4) [pbx_config]
  25. 3. GotoIf($["x${RECRESULT}"="x*"]?dorecord,1) [pbx_config]
  26. 4. GotoIf($["x${RECRESULT}"="x1"]?docheck,2) [pbx_config]
  27. 5. Goto(1) [pbx_config]
  28. 'docheck' => 1. Playback(beep) [pbx_config]
  29. [dc_start] 2. Background(${RECFILE},m,${CHANNEL(language)},macro-systemrecording) [pbx_config]
  30. 3. Wait(1) [pbx_config]
  31. 4. Goto(confmenu,1) [pbx_config]
  32. 'dorecord' => 1. GotoIf($["${ARG2}" = ""]?skipremove) [pbx_config]
  33. 2. System(rm ${ASTVARLIBDIR}/sounds/${RECFILE}.*) [pbx_config]
  34. [skipremove] 3. Record(${RECFILE}.wav,,,k) [pbx_config]
  35. 4. Wait(1) [pbx_config]
  36. 5. Goto(confmenu,1) [pbx_config]
  37. 'h' => 1. Hangup() [pbx_config]
  38. 'i' => 1. Playback(pm-invalid-option) [pbx_config]
  39. 2. Goto(confmenu,1) [pbx_config]
  40. 's' => 1. Set(RECFILE=${IF($["${ARG2}" = ""]?/var/spool/asterisk/tmp/${AMPUSER}-ivrrecording:${ARG2})}) [pbx_config]
  41. 2. ExecIf($["${ARG3}" != ""]?Authenticate(${ARG3})) [pbx_config]
  42. 3. Goto(${ARG1},1) [pbx_config]
  43. 't' => 1. Playback(goodbye) [pbx_config]
  44. 2. Hangup() [pbx_config]
  45. Include => 'macro-systemrecording-custom' [pbx_config]
  46.  
  47. [ Context 'app-dialvm' created by 'pbx_config' ]
  48. '*98' => 1. Answer() [pbx_config]
  49. [start] 2. Wait(1) [pbx_config]
  50. 3. Noop(app-dialvm: Asking for mailbox) [pbx_config]
  51. 4. Read(MAILBOX,vm-login,,,3,2) [pbx_config]
  52. [check] 5. Noop(app-dialvm: Got Mailbox ${MAILBOX}) [pbx_config]
  53. 6. Macro(get-vmcontext,${MAILBOX}) [pbx_config]
  54. 7. Set(VMBOXEXISTSSTATUS=${IF(${MAILBOX_EXISTS(${MAILBOX}@${VMCONTEXT})}?SUCCESS:FAILED)}) [pbx_config]
  55. 8. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?good:bad) [pbx_config]
  56. 9. Macro(hangupcall,) [pbx_config]
  57. [good] 10. Noop(app-dialvm: Good mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
  58. 11. VoiceMailMain(${MAILBOX}@${VMCONTEXT}) [pbx_config]
  59. 12. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  60. 13. Macro(hangupcall,) [pbx_config]
  61. [bad] 14. Noop(app-dialvm: BAD mailbox ${MAILBOX}@${VMCONTEXT}) [pbx_config]
  62. 15. Wait(1) [pbx_config]
  63. 16. Noop(app-dialvm: Asking for password so people can't probe for existence of a mailbox) [pbx_config]
  64. 17. Read(FAKEPW,vm-password,,,3,2) [pbx_config]
  65. 18. Noop(app-dialvm: Asking for mailbox again) [pbx_config]
  66. 19. Read(MAILBOX,vm-incorrect-mailbox,,,3,2) [pbx_config]
  67. 20. Goto(check) [pbx_config]
  68. 21. Macro(hangupcall,) [pbx_config]
  69. [playret] 22. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
  70. 23. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  71. '_*98.' => 1. Answer() [pbx_config]
  72. 2. Wait(1) [pbx_config]
  73. 3. Macro(get-vmcontext,${EXTEN:3}) [pbx_config]
  74. 4. VoiceMailMain(${EXTEN:3}@${VMCONTEXT}) [pbx_config]
  75. 5. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1) [pbx_config]
  76. 6. Macro(hangupcall,) [pbx_config]
  77. Include => 'app-dialvm-custom' [pbx_config]
  78.  
  79. [ Context 'app-vmmain' created by 'pbx_config' ]
  80. '*97' => 1. Answer() [pbx_config]
  81. 2. Wait(1) [pbx_config]
  82. 3. Macro(user-callerid,) [pbx_config]
  83. 4. Macro(get-vmcontext,${AMPUSER}) [pbx_config]
  84. [check] 5. Set(VMBOXEXISTSSTATUS=${IF(${MAILBOX_EXISTS(${AMPUSER}@${VMCONTEXT})}?SUCCESS:FAILED)}) [pbx_config]
  85. 6. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?mbexist) [pbx_config]
  86. 7. VoiceMailMain() [pbx_config]
  87. 8. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  88. 9. Macro(hangupcall,) [pbx_config]
  89. [mbexist] 106. VoiceMailMain(${AMPUSER}@${VMCONTEXT}) [pbx_config]
  90. 107. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  91. 108. Macro(hangupcall,) [pbx_config]
  92. [playret] 109. Playback(beep&you-will-be-transfered-menu&silence/1) [pbx_config]
  93. 110. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  94. Include => 'app-vmmain-custom' [pbx_config]
  95.  
  96. [ Context 'app-calltrace' created by 'pbx_config' ]
  97. '*69' => 1. Goto(app-calltrace-perform,s,1) [pbx_config]
  98. Include => 'app-calltrace-custom' [pbx_config]
  99.  
  100. [ Context 'app-calltrace-perform' created by 'pbx_config' ]
  101. '1' => 1. Goto(from-internal,${lastcaller},1) [pbx_config]
  102. 'i' => 1. Playback(vm-goodbye) [pbx_config]
  103. 2. Macro(hangupcall,) [pbx_config]
  104. 's' => 1. Answer() [pbx_config]
  105. 2. Wait(1) [pbx_config]
  106. 3. Macro(user-callerid,) [pbx_config]
  107. 4. Playback(info-about-last-call&telephone-number) [pbx_config]
  108. 5. Set(lastcaller=${DB(CALLTRACE/${AMPUSER})}) [pbx_config]
  109. 6. GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}" = "unknown" ] ]?noinfo) [pbx_config]
  110. 7. SayDigits(${lastcaller}) [pbx_config]
  111. 8. Set(TIMEOUT(digit)=3) [pbx_config]
  112. 9. Set(TIMEOUT(response)=7) [pbx_config]
  113. 10. Background(to-call-this-number&press-1) [pbx_config]
  114. 11. Goto(fin) [pbx_config]
  115. [noinfo] 12. Playback(from-unknown-caller) [pbx_config]
  116. 13. Macro(hangupcall,) [pbx_config]
  117. [fin] 14. Noop(Waiting for input) [pbx_config]
  118. 15. WaitExten(60,) [pbx_config]
  119. 16. Playback(sorry-youre-having-problems&goodbye) [pbx_config]
  120. 't' => 1. Playback(vm-goodbye) [pbx_config]
  121. 2. Macro(hangupcall,) [pbx_config]
  122. Include => 'app-calltrace-perform-custom' [pbx_config]
  123.  
  124. [ Context 'app-echo-test' created by 'pbx_config' ]
  125. '*43' => 1. Answer() [pbx_config]
  126. 2. Wait(1) [pbx_config]
  127. 3. Playback(demo-echotest) [pbx_config]
  128. 4. Echo() [pbx_config]
  129. 5. Playback(demo-echodone) [pbx_config]
  130. 6. Hangup() [pbx_config]
  131. Include => 'app-echo-test-custom' [pbx_config]
  132.  
  133. [ Context 'app-speakextennum' created by 'pbx_config' ]
  134. '*65' => 1. Answer() [pbx_config]
  135. 2. Wait(1) [pbx_config]
  136. 3. Macro(user-callerid,) [pbx_config]
  137. 4. Playback(your) [pbx_config]
  138. 5. Playback(extension) [pbx_config]
  139. 6. Playback(number) [pbx_config]
  140. 7. Playback(is) [pbx_config]
  141. 8. SayDigits(${AMPUSER}) [pbx_config]
  142. 9. Wait(2) [pbx_config]
  143. 10. Hangup() [pbx_config]
  144. Include => 'app-speakextennum-custom' [pbx_config]
  145.  
  146. [ Context 'app-speakingclock' created by 'pbx_config' ]
  147. '*60' => 1. Answer() [pbx_config]
  148. 2. Wait(1) [pbx_config]
  149. 3. Set(NumLoops=0) [pbx_config]
  150. [start] 4. Set(FutureTime=$[${EPOCH} + 11]) [pbx_config]
  151. 5. GosubIf($["${TIMEFORMAT}"="kM"]?sub-hr24format,s,1():sub-hr12format,s,1()) [pbx_config]
  152. [waitloop] 6. Set(TimeLeft=$[${FutureTime} - ${EPOCH}]) [pbx_config]
  153. 7. GotoIf($[${TimeLeft} < 1]?playbeep) [pbx_config]
  154. 8. Wait(1) [pbx_config]
  155. 9. Goto(waitloop) [pbx_config]
  156. [playbeep] 10. Playback(beep) [pbx_config]
  157. 11. Wait(5) [pbx_config]
  158. 12. Set(NumLoops=$[${NumLoops} + 1]) [pbx_config]
  159. 13. GotoIf($[${NumLoops} < 5]?start) [pbx_config]
  160. 14. Playback(goodbye) [pbx_config]
  161. 15. Hangup() [pbx_config]
  162. Include => 'app-speakingclock-custom' [pbx_config]
  163.  
  164. [ Context 'sub-hr24format' created by 'pbx_config' ]
  165. 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
  166. 2. SayUnixTime(${FutureTime},,kMS) [pbx_config]
  167. 3. Return() [pbx_config]
  168. 'i' => 1. Playback(at-tone-time-exactly) [pbx_config]
  169. 2. SayUnixTime(${FutureTime},,kM 'and' S 'seconds') [pbx_config]
  170. 3. Return() [pbx_config]
  171. 's' => 1. Goto(${CHANNEL(language)},1) [pbx_config]
  172. Include => 'sub-hr24format-custom' [pbx_config]
  173.  
  174. [ Context 'sub-hr12format' created by 'pbx_config' ]
  175. 'de' => 1. Playback(at-tone-time-exactly) [pbx_config]
  176. 2. SayUnixTime(${FutureTime},,IMSp) [pbx_config]
  177. 3. Return() [pbx_config]
  178. 'i' => 1. Playback(at-tone-time-exactly) [pbx_config]
  179. 2. SayUnixTime(${FutureTime},,IM 'and' S 'seconds' p) [pbx_config]
  180. 3. Return() [pbx_config]
  181. 's' => 1. Goto(${CHANNEL(language)},1) [pbx_config]
  182. Include => 'sub-hr12format-custom' [pbx_config]
  183.  
  184. [ Context 'ext-featurecodes' created by 'pbx_config' ]
  185. '*43' => 1. Goto(from-internal,*43,1) [pbx_config]
  186. '*60' => 1. Goto(from-internal,*60,1) [pbx_config]
  187. '*98' => 1. Goto(from-internal,*98,1) [pbx_config]
  188. '555' => 1. Goto(from-internal,555,1) [pbx_config]
  189. '7777' => 1. Goto(from-internal,7777,1) [pbx_config]
  190. '888' => 1. Goto(from-internal,888,1) [pbx_config]
  191. Include => 'ext-featurecodes-custom' [pbx_config]
  192.  
  193. [ Context 'app-userlogonoff' created by 'pbx_config' ]
  194. '*11' => 1. Macro(user-logon,) [pbx_config]
  195. [hook_on_1] 2. Hangup() [pbx_config]
  196. '*12' => 1. Macro(user-logoff,) [pbx_config]
  197. [hook_off] 2. Hangup() [pbx_config]
  198. '_*11.' => 1. Macro(user-logon,${EXTEN:3},) [pbx_config]
  199. [hook_on_2] 2. Hangup() [pbx_config]
  200. Include => 'app-userlogonoff-custom' [pbx_config]
  201.  
  202. [ Context 'ext-local-confirm' created by 'pbx_config' ]
  203. '_LC-.' => 1. ExecIf($["${ALERT_INFO}"!=""]?SIPAddHeader(Alert-Info: ${ALERT_INFO})) [pbx_config]
  204. 2. Dial(${DB(DEVICE/${EXTEN:3}/dial)},${RT},${DIAL_OPTIONS}M(auto-confirm^${RG_IDX})) [pbx_config]
  205. Include => 'ext-local-confirm-custom' [pbx_config]
  206.  
  207. [ Context 'findmefollow-ringallv2' created by 'pbx_config' ]
  208. '_FMGL-.' => 1. NoCDR() [pbx_config]
  209. 2. Set(ENDLOOP=$[${EPOCH} + ${FMPRERING} + 2]) [pbx_config]
  210. [start] 3. GotoIf($["${SHARED(FM_DND,${FMUNIQUE})}" = "DND"]?dodnd) [pbx_config]
  211. 4. Wait(1) [pbx_config]
  212. 5. GotoIf($[${EPOCH} < ${ENDLOOP}]?start) [pbx_config]
  213. 6. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
  214. [dodial] 7. Macro(dial,${FMGRPTIME},${DIAL_OPTIONS},${EXTEN:5}) [pbx_config]
  215. 8. Hangup() [pbx_config]
  216. [dodnd] 19. Set(SHARED(FM_DND,${FMUNIQUE})=) [pbx_config]
  217. 20. GotoIf($["${FMPRIME}" = "FALSE"]?dodial) [pbx_config]
  218. 21. Hangup() [pbx_config]
  219. '_FMPR-.' => 1. NoCDR() [pbx_config]
  220. 2. Set(RingGroupMethod=) [pbx_config]
  221. 3. Set(USE_CONFIRMATION=) [pbx_config]
  222. 4. Set(RINGGROUP_INDEX=) [pbx_config]
  223. 5. Macro(simple-dial,${EXTEN:5},${FMREALPRERING}) [pbx_config]
  224. 6. ExecIf($["${DIALSTATUS}" = "BUSY"]?Set(SHARED(FM_DND,${FMUNIQUE})=DND)) [pbx_config]
  225. 7. Hangup() [pbx_config]
  226. Include => 'findmefollow-ringallv2-custom' [pbx_config]
  227.  
  228. [ Context 'app-pickup' created by 'pbx_config' ]
  229. '_**.' => 1. Macro(user-callerid,) [pbx_config]
  230. 2. Set(PICKUP_EXTEN=${AMPUSER}) [pbx_config]
  231. 3. Pickup(${EXTEN:2}&${EXTEN:2}@PICKUPMARK) [pbx_config]
  232. 4. Hangup() [pbx_config]
  233. Include => 'app-pickup-custom' [pbx_config]
  234.  
  235. [ Context 'app-zapbarge' created by 'pbx_config' ]
  236. '888' => 1. Macro(user-callerid,) [pbx_config]
  237. 2. Set(GROUP()=${CALLERID(number)}) [pbx_config]
  238. 3. Answer() [pbx_config]
  239. 4. Wait(1) [pbx_config]
  240. 5. DAHDIBarge() [pbx_config]
  241. 6. Hangup() [pbx_config]
  242. Include => 'app-zapbarge-custom' [pbx_config]
  243.  
  244. [ Context 'app-chanspy' created by 'pbx_config' ]
  245. '555' => 1. Macro(user-callerid,) [pbx_config]
  246. 2. Answer() [pbx_config]
  247. 3. Wait(1) [pbx_config]
  248. 4. ChanSpy() [pbx_config]
  249. 5. Hangup() [pbx_config]
  250. Include => 'app-chanspy-custom' [pbx_config]
  251.  
  252. [ Context 'ext-test' created by 'pbx_config' ]
  253. '7777' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
  254. 'h' => 1. Macro(hangupcall,) [pbx_config]
  255. Include => 'ext-test-custom' [pbx_config]
  256.  
  257. [ Context 'ext-did' created by 'pbx_config' ]
  258. 'foo' => 1. Noop(bar) [pbx_config]
  259. Include => 'ext-did-custom' [pbx_config]
  260. Include => 'ext-did-0001' [pbx_config]
  261. Include => 'ext-did-0002' [pbx_config]
  262.  
  263. [ Context 'ext-did-catchall' created by 'pbx_config' ]
  264. 'h' => 1. Hangup() [pbx_config]
  265. 's' => 1. Noop(No DID or CID Match) [pbx_config]
  266. [a2] 2. Answer() [pbx_config]
  267. 3. Wait(2) [pbx_config]
  268. 4. Playback(ss-noservice) [pbx_config]
  269. 5. SayAlpha(${FROM_DID}) [pbx_config]
  270. 6. Hangup() [pbx_config]
  271. '_.' => 1. Set(__FROM_DID=${EXTEN}) [pbx_config]
  272. 2. Noop(Received an unknown call with DID set to ${EXTEN}) [pbx_config]
  273. 3. Goto(s,a2) [pbx_config]
  274. Include => 'ext-did-catchall-custom' [pbx_config]
  275.  
  276. [ Context 'ext-local' created by 'pbx_config' ]
  277. '1200' => hint: SIP/1200 [pbx_config]
  278. 1. Set(__RINGTIMER=${IF($[${DB(AMPUSER/1200/ringtimer)} > 0]?${DB(AMPUSER/1200/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  279. 2. Macro(exten-vm,novm,1200,0,0,0) [pbx_config]
  280. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  281. 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  282. '1222' => hint: SIP/1222 [pbx_config]
  283. 1. Set(__RINGTIMER=${IF($[${DB(AMPUSER/1222/ringtimer)} > 0]?${DB(AMPUSER/1222/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  284. 2. Macro(exten-vm,novm,1222,0,0,0) [pbx_config]
  285. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  286. 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  287. '1234' => hint: SIP/1234 [pbx_config]
  288. 1. Set(__RINGTIMER=${IF($[${DB(AMPUSER/1234/ringtimer)} > 0]?${DB(AMPUSER/1234/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  289. 2. Macro(exten-vm,novm,1234,0,0,0) [pbx_config]
  290. [dest] 3. Set(__PICKUPMARK=) [pbx_config]
  291. 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  292. 'h' => 1. Macro(hangupcall,) [pbx_config]
  293. 'vmret' => 1. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
  294. 2. Hangup() [pbx_config]
  295. [playret] 3. Playback(exited-vm-will-be-transfered&silence/1) [pbx_config]
  296. 4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
  297. Include => 'ext-local-custom' [pbx_config]
  298.  
  299. [ Context 'from-did-direct-ivr' created by 'pbx_config' ]
  300. '1200' => 1. Macro(blkvm-clr,) [pbx_config]
  301. 2. Set(__NODEST=) [pbx_config]
  302. 3. Goto(from-did-direct,1200,1) [pbx_config]
  303. '1222' => 1. Macro(blkvm-clr,) [pbx_config]
  304. 2. Set(__NODEST=) [pbx_config]
  305. 3. Goto(from-did-direct,1222,1) [pbx_config]
  306. '1234' => 1. Macro(blkvm-clr,) [pbx_config]
  307. 2. Set(__NODEST=) [pbx_config]
  308. 3. Goto(from-did-direct,1234,1) [pbx_config]
  309. Include => 'from-did-direct-ivr-custom' [pbx_config]
  310.  
  311. [ Context 'ext-trunk' created by 'pbx_config' ]
  312. '1' => 1. Set(TDIAL_STRING=ZAP/g0) [pbx_config]
  313. 2. Set(DIAL_TRUNK=1) [pbx_config]
  314. 3. Goto(ext-trunk,tdial,1) [pbx_config]
  315. '2' => 1. Set(TDIAL_STRING=DAHDI/g0) [pbx_config]
  316. 2. Set(DIAL_TRUNK=2) [pbx_config]
  317. 3. Goto(ext-trunk,tdial,1) [pbx_config]
  318. 'tdial' => 1. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
  319. 2. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax) [pbx_config]
  320. 3. GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}}]?hangit) [pbx_config]
  321. [nomax] 4. ExecIf($["${CALLINGPRES_SV}" != ""]?Set(CALLERPRES()=${CALLINGPRES_SV})) [pbx_config]
  322. 5. Set(DIAL_NUMBER=${FROM_DID}) [pbx_config]
  323. 6. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  324. 7. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
  325. 8. Dial(${TDIAL_STRING}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) [pbx_config]
  326. 9. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
  327. 10. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  328. [hangit] 11. Hangup() [pbx_config]
  329. Include => 'ext-trunk-custom' [pbx_config]
  330.  
  331. [ Context 'sub-flp-2' created by 'pbx_config' ]
  332. 's' => 1. ExecIf($[${REGEX("^4[0-9][0-9][0-9][0-9][0-9][0-9][0-9#\\*\\+]+$" ${DIAL_NUMBER})} = 1]?Return()) [pbx_config]
  333. 2. Return() [pbx_config]
  334. [match] 3. Set(DIAL_NUMBER=${TARGET_FLP_2}) [pbx_config]
  335. 4. Return() [pbx_config]
  336. Include => 'sub-flp-2-custom' [pbx_config]
  337.  
  338. [ Context 'sub-record-cancel' created by 'pbx_config' ]
  339. 's' => 1. ExecIf($["${REC_STATUS}"!="RECORDING"]?Return()) [pbx_config]
  340. 2. StopMixMonitor() [pbx_config]
  341. 3. Set(__REC_STATUS=) [pbx_config]
  342. 4. Set(MON_BASE=${IF($[${LEN(${MIXMON_DIR})}]?${MIXMON_DIR}:${ASTSPOOLDIR}/monitor/)}${YEAR}/${MONTH}/${DAY}/) [pbx_config]
  343. 5. Set(__MON_FMT=${IF($[${LEN(${MIXMON_FORMAT})}]?${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})}:wav)}) [pbx_config]
  344. 6. ExecIf($[${LEN(${CALLFILENAME})} & ${STAT(f,${MON_BASE}${CALLFILENAME}.${MON_FMT})}]?System(rm -f ${MON_BASE}${CALLFILENAME}.${MON_FMT})) [pbx_config]
  345. 7. Set(__CALLFILENAME=) [pbx_config]
  346. 8. Set(CDR(recordingfile)=) [pbx_config]
  347. 9. Return() [pbx_config]
  348. Include => 'sub-record-cancel-custom' [pbx_config]
  349.  
  350. [ Context 'sub-record-check' created by 'pbx_config' ]
  351. 'conf' => 1. Gosub(recconf,1(${EXTEN},${ARG2},${ARG2})) [pbx_config]
  352. 2. Return() [pbx_config]
  353. 'exten' => 1. GotoIf($["${REC_POLICY_MODE}"!=""]?callee) [pbx_config]
  354. 2. Set(__REC_POLICY_MODE=${IF($[${LEN(${FROM_DID})}]?${DB(AMPUSER/${ARG2}/recording/in/external)}:${DB(AMPUSER/${ARG2}/recording/in/internal)})}) [pbx_config]
  355. 3. GotoIf($["${REC_POLICY_MODE}"="dontcare"]?caller) [pbx_config]
  356. 4. GotoIf($["${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)}"="dontcare" | "${FROM_DID}"!=""]?callee) [pbx_config]
  357. 5. ExecIf($[${LEN(${DB(AMPUSER/${FROMEXTEN}/recording/priority)})}]?Set(CALLER_PRI=${DB(AMPUSER/${FROMEXTEN}/recording/priority)}):Set(CALLER_PRI=0)) [pbx_config]
  358. 6. ExecIf($[${LEN(${DB(AMPUSER/${ARG2}/recording/priority)})}]?Set(CALLEE_PRI=${DB(AMPUSER/${ARG2}/recording/priority)}):Set(CALLEE_PRI=0)) [pbx_config]
  359. 7. GotoIf($["${CALLER_PRI}"="${CALLEE_PRI}"]?${REC_POLICY}:${IF($[${CALLER_PRI}>${CALLEE_PRI}]?caller:callee)}) [pbx_config]
  360. [callee] 8. GosubIf($["${REC_POLICY_MODE}"="always"]?record,1(${EXTEN},${ARG2},${FROMEXTEN})) [pbx_config]
  361. 9. Return() [pbx_config]
  362. [caller] 10. Set(REC_POLICY_MODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)}) [pbx_config]
  363. 11. GosubIf($["${REC_POLICY_MODE}"="always"]?record,1(${EXTEN},${ARG2},${FROMEXTEN})) [pbx_config]
  364. 12. Return() [pbx_config]
  365. 'force' => 1. GosubIf($["${REC_POLICY_MODE}"="always"]?record,1(${EXTEN},${REC_POLICY_MODE},${FROMEXTEN})) [pbx_config]
  366. 2. Return() [pbx_config]
  367. 'out' => 1. ExecIf($["${REC_POLICY_MODE}"=""]?Set(__REC_POLICY_MODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)})) [pbx_config]
  368. 2. GosubIf($["${REC_POLICY_MODE}"="always"]?record,1(exten,${ARG2},${FROMEXTEN})) [pbx_config]
  369. 3. Return() [pbx_config]
  370. 'page' => 1. GosubIf($["${REC_POLICY_MODE}"="always"]?recconf,1(${EXTEN},${ARG2},${FROMEXTEN})) [pbx_config]
  371. 2. Return() [pbx_config]
  372. 'q' => 1. GosubIf($["${REC_POLICY_MODE}"="always"]?recq,1(${EXTEN},${ARG2},${FROMEXTEN})) [pbx_config]
  373. 2. Return() [pbx_config]
  374. 'recconf' => 1. Set(__CALLFILENAME=${IF($[${MEETME_INFO(parties,${ARG2})}]?${DB(RECCONF/${ARG2})}:${ARG1}-${ARG2}-${ARG3}-${TIMESTR}-${UNIQUEID})}) [pbx_config]
  375. 2. ExecIf($[!${MEETME_INFO(parties,${ARG2})}]?Set(DB(RECCONF/${ARG2})=${CALLFILENAME})) [pbx_config]
  376. 3. Set(MEETME_RECORDINGFILE=${IF($[${LEN(${MIXMON_DIR})}]?${MIXMON_DIR}:${ASTSPOOLDIR}/monitor/)}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}) [pbx_config]
  377. 4. Set(MEETME_RECORDINGFORMAT=${MIXMON_FORMAT}) [pbx_config]
  378. 5. ExecIf($["${REC_POLICY_MODE}"!="always"]?Return()) [pbx_config]
  379. 6. Set(__REC_STATUS=RECORDING) [pbx_config]
  380. 7. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  381. 8. Return() [pbx_config]
  382. 'record' => 1. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  383. 2. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST}) [pbx_config]
  384. 3. Set(__REC_STATUS=RECORDING) [pbx_config]
  385. 4. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  386. 5. Return() [pbx_config]
  387. 'recq' => 1. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  388. 2. Set(MONITOR_FILENAME=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}) [pbx_config]
  389. 3. Set(__REC_STATUS=RECORDING) [pbx_config]
  390. 4. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  391. 5. Return() [pbx_config]
  392. 'rg' => 1. GosubIf($["${REC_POLICY_MODE}"="always"]?record,1(${EXTEN},${REC_POLICY_MODE},${FROMEXTEN})) [pbx_config]
  393. 2. Return() [pbx_config]
  394. 's' => 1. GotoIf($["${BLINDTRANSFER}" = ""]?check) [pbx_config]
  395. 2. ResetCDR() [pbx_config]
  396. 3. GotoIf($["${REC_STATUS}" != "RECORDING"]?check) [pbx_config]
  397. 4. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  398. 5. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},a,${MIXMON_POST}) [pbx_config]
  399. [check] 6. Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})}) [pbx_config]
  400. 7. GotoIf($["${REC_STATUS}"!="RECORDING"]?next) [pbx_config]
  401. 8. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  402. 9. Return() [pbx_config]
  403. [next] 10. ExecIf($[!${LEN(${ARG1})}]?Return()) [pbx_config]
  404. 11. GotoIf($["${REC_STATUS}"!=""]?${ARG1},1) [pbx_config]
  405. 12. Set(__REC_STATUS=INITIALIZED) [pbx_config]
  406. 13. ExecIf($["${REC_POLICY_MODE}"="" & "${ARG3}"!=""]?Set(__REC_POLICY_MODE=${ARG3})) [pbx_config]
  407. 14. Set(NOW=${EPOCH}) [pbx_config]
  408. 15. Set(__DAY=${STRFTIME(${NOW},,%d)}) [pbx_config]
  409. 16. Set(__MONTH=${STRFTIME(${NOW},,%m)}) [pbx_config]
  410. 17. Set(__YEAR=${STRFTIME(${NOW},,%Y)}) [pbx_config]
  411. 18. Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)}) [pbx_config]
  412. 19. Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})}) [pbx_config]
  413. 20. Set(__CALLFILENAME=${ARG1}-${ARG2}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}) [pbx_config]
  414. 21. Goto(${ARG1},1) [pbx_config]
  415. Include => 'sub-record-check-custom' [pbx_config]
  416.  
  417. [ Context 'macro-one-touch-record' created by 'pbx_config' ]
  418. 's' => 1. ExecIf($["${PICKUP_EXTEN}"!=""]?Set(THISEXTEN=${CUT(CALLFILENAME,-,2)})) [pbx_config]
  419. 2. ExecIf($["${THISEXTEN}"=""]?Set(THISEXTEN=${IF($["${REALCALLERIDNUM}"=""]?${CUT(CALLFILENAME,-,2)}:${FROMEXTEN})})) [pbx_config]
  420. 3. ExecIf($["${CUT(CALLFILENAME,-,1)}"="exten" & "${DB(AMPUSER/${THISEXTEN}/recording/ondemand)}"!="enabled"]?MacroExit()) [pbx_config]
  421. 4. GotoIf($["${MASTER_CHANNEL(ONETOUCH_REC)}"="RECORDING"]?stoprec) [pbx_config]
  422. 5. GotoIf($["${MASTER_CHANNEL(REC_POLICY_MODE)}"="never"]?stopped) [pbx_config]
  423. 6. GotoIf($["${MASTER_CHANNEL(ONETOUCH_REC)}"="" & "${MASTER_CHANNEL(REC_STATUS)}"="RECORDING"]?recording) [pbx_config]
  424. 7. Set(MASTER_CHANNEL(ONETOUCH_REC)=RECORDING) [pbx_config]
  425. 8. Set(MASTER_CHANNEL(REC_STATUS)=RECORDING) [pbx_config]
  426. [mixmon] 9. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) [pbx_config]
  427. 10. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},a,${MIXMON_POST}) [pbx_config]
  428. 11. Set(MON_FMT=${IF($[${LEN(${MIXMON_FORMAT})}]?${MIXMON_FORMAT}:wav)}) [pbx_config]
  429. 12. Set(MASTER_CHANNEL(CDR(recordingfile))=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  430. 13. Set(MASTER_CHANNEL(ONETOUCH_RECFILE)=${CALLFILENAME}.${MON_FMT}) [pbx_config]
  431. [recording] 14. Playback(beep) [pbx_config]
  432. 15. MacroExit() [pbx_config]
  433. [stoprec] 16. StopMixMonitor() [pbx_config]
  434. 17. Set(MASTER_CHANNEL(ONETOUCH_REC)=PAUSED) [pbx_config]
  435. 18. Set(MASTER_CHANNEL(REC_STATUS)=PAUSED) [pbx_config]
  436. 19. ExecIf($["${THISEXTEN}"=""]?Set(THISEXTEN=${IF($["${REALCALLERIDNUM}"=""]?${DIALEDPEERNUMBER}:${FROMEXTEN})})) [pbx_config]
  437. [stopped] 20. Playback(beep&beep) [pbx_config]
  438. 21. MacroExit() [pbx_config]
  439. Include => 'macro-one-touch-record-custom' [pbx_config]
  440.  
  441. [ Context 'macro-prepend-cid' created by 'pbx_config' ]
  442. 's' => 1. GotoIf($["${RGPREFIX}" = ""]?REPCID) [pbx_config]
  443. 2. GotoIf($["${RGPREFIX}" != "${CALLERID(name):0:${LEN(${RGPREFIX})}}"]?REPCID) [pbx_config]
  444. 3. Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}}) [pbx_config]
  445. 4. Set(_RGPREFIX=) [pbx_config]
  446. [REPCID] 5. Set(_RGPREFIX=${ARG1}) [pbx_config]
  447. 6. Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)}) [pbx_config]
  448. Include => 'macro-prepend-cid-custom' [pbx_config]
  449.  
  450. [ Context 'outbound-allroutes' created by 'pbx_config' ]
  451. 'foo' => 1. Noop(bar) [pbx_config]
  452. Include => 'outbound-allroutes-custom' [pbx_config]
  453.  
  454. [ Context 'app-blackhole' created by 'pbx_config' ]
  455. 'busy' => 1. Noop(Blackhole Dest: Busy) [pbx_config]
  456. 2. Busy(20) [pbx_config]
  457. 3. Hangup() [pbx_config]
  458. 'congestion' => 1. Noop(Blackhole Dest: Congestion) [pbx_config]
  459. 2. Answer() [pbx_config]
  460. 3. Playtones(congestion) [pbx_config]
  461. 4. Congestion(20) [pbx_config]
  462. 5. Hangup() [pbx_config]
  463. 'hangup' => 1. Noop(Blackhole Dest: Hangup) [pbx_config]
  464. 2. Hangup() [pbx_config]
  465. 'musiconhold' => 1. Noop(Blackhole Dest: Put caller on hold forever) [pbx_config]
  466. 2. Answer() [pbx_config]
  467. 3. MusicOnHold() [pbx_config]
  468. 'ring' => 1. Noop(Blackhole Dest: Ring) [pbx_config]
  469. 2. Answer() [pbx_config]
  470. 3. Playtones(ring) [pbx_config]
  471. 4. Wait(300) [pbx_config]
  472. 5. Hangup() [pbx_config]
  473. 'zapateller' => 1. Noop(Blackhole Dest: Play SIT Tone) [pbx_config]
  474. 2. Answer() [pbx_config]
  475. 3. Zapateller() [pbx_config]
  476. Include => 'app-blackhole-custom' [pbx_config]
  477.  
  478. [ Context 'bad-number' created by 'pbx_config' ]
  479. '_X.' => 1. ResetCDR() [pbx_config]
  480. 2. NoCDR() [pbx_config]
  481. 3. Progress() [pbx_config]
  482. 4. Wait(1) [pbx_config]
  483. 5. Progress() [pbx_config]
  484. 6. Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer) [pbx_config]
  485. 7. Wait(1) [pbx_config]
  486. 8. Congestion(20) [pbx_config]
  487. 9. Hangup() [pbx_config]
  488. Include => 'bad-number-custom' [pbx_config]
  489.  
  490. [ Context 'macro-confirm' created by 'pbx_config' ]
  491. '1' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  492. 2. Noop(Deleting: RG/${ARG3}/${UNIQCHAN} ${DB_DELETE(RG/${ARG3}/${UNIQCHAN})}) [pbx_config]
  493. 3. Macro(blkvm-clr,) [pbx_config]
  494. 4. Set(SHARED(ANSWER_STATUS,${FORCE_CONFIRM})=) [pbx_config]
  495. [skip] 5. Set(__MACRO_RESULT=) [pbx_config]
  496. 6. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  497. [exitopt1] 7. MacroExit() [pbx_config]
  498. '2' => 1. Goto(noanswer,1) [pbx_config]
  499. '3' => 1. SayDigits(${CALLCONFIRMCID}) [pbx_config]
  500. 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1:s,start) [pbx_config]
  501. 'h' => 1. Macro(hangupcall,) [pbx_config]
  502. 'noanswer' => 1. Set(__MACRO_RESULT=ABORT) [pbx_config]
  503. [exitnoanswer] 2. MacroExit() [pbx_config]
  504. 's' => 1. Set(LOOPCOUNT=0) [pbx_config]
  505. 2. Set(__MACRO_RESULT=ABORT) [pbx_config]
  506. 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]
  507. [start] 4. Background(${MSG1},m,${CHANNEL(language)},macro-confirm) [pbx_config]
  508. 5. Read(INPUT,,1,,,4) [pbx_config]
  509. 6. GotoIf($[${LEN(${INPUT})} > 0]?${INPUT},1:t,1) [pbx_config]
  510. 't' => 1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  511. 2. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
  512. 3. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
  513. 'toolate' => 1. Set(MSG2=${IF($["foo${ARG2}" != "foo"]?${ARG2}:"incoming-call-no-longer-avail")}) [pbx_config]
  514. 2. Playback(${MSG2}) [pbx_config]
  515. 3. Set(__MACRO_RESULT=ABORT) [pbx_config]
  516. [exittoolate] 4. MacroExit() [pbx_config]
  517. '_X' => 1. Background(invalid,m,${CHANNEL(language)},macro-confirm) [pbx_config]
  518. 2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" | "${SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  519. 3. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ]) [pbx_config]
  520. 4. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_config]
  521. Include => 'macro-confirm-custom' [pbx_config]
  522.  
  523. [ Context 'macro-auto-confirm' created by 'pbx_config' ]
  524. 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
  525. 2. Macro(blkvm-clr,) [pbx_config]
  526. 3. Noop(Deleting: RG/${ARG1}/${UNIQCHAN} ${DB_DELETE(RG/${ARG1}/${UNIQCHAN})}) [pbx_config]
  527. 4. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}]" != ""?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
  528. 5. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}]" != ""?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  529. Include => 'macro-auto-confirm-custom' [pbx_config]
  530.  
  531. [ Context 'macro-auto-blkvm' created by 'pbx_config' ]
  532. 's' => 1. Set(__MACRO_RESULT=) [pbx_config]
  533. 2. Macro(blkvm-clr,) [pbx_config]
  534. 3. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER})) [pbx_config]
  535. 4. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  536. Include => 'macro-auto-blkvm-custom' [pbx_config]
  537.  
  538. [ Context 'sub-pincheck' created by 'pbx_config' ]
  539. 's' => 1. Authenticate(${ARG3},) [pbx_config]
  540. 2. ResetCDR() [pbx_config]
  541. 3. Return() [pbx_config]
  542. Include => 'sub-pincheck-custom' [pbx_config]
  543.  
  544. [ Context 'macro-dialout-trunk' created by 'pbx_config' ]
  545. '17' => 1. Goto(s-BUSY,1) [pbx_config]
  546. '18' => 1. Goto(s-NOANSWER,1) [pbx_config]
  547. '22' => 1. Goto(s-CHANGED,1) [pbx_config]
  548. '23' => 1. Goto(s-CHANGED,1) [pbx_config]
  549. '28' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
  550. 'bypass' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) [pbx_config]
  551. 'continue' => 1. GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) [pbx_config]
  552. 2. AGI(${OUTFAIL_${ARG1}}) [pbx_config]
  553. [noreport] 3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
  554. 4. Set(CALLERID(number)=${AMPUSER}) [pbx_config]
  555. 'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) [pbx_config]
  556. 'h' => 1. Macro(hangupcall,) [pbx_config]
  557. 's' => 1. Set(DIAL_TRUNK=${ARG1}) [pbx_config]
  558. 2. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
  559. 3. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) [pbx_config]
  560. 4. Set(DIAL_NUMBER=${ARG2}) [pbx_config]
  561. 5. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
  562. 6. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
  563. 7. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) [pbx_config]
  564. 8. GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) [pbx_config]
  565. [nomax] 9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx_config]
  566. 10. Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) [pbx_config]
  567. 11. Macro(outbound-callerid,${DIAL_TRUNK}) [pbx_config]
  568. [skipoutcid] 12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  569. 13. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
  570. 14. Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) [pbx_config]
  571. 15. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) [pbx_config]
  572. 16. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm))) [pbx_config]
  573. [gocall] 17. Macro(dialout-trunk-predial-hook,) [pbx_config]
  574. 18. GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) [pbx_config]
  575. 19. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
  576. 20. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)})) [pbx_config]
  577. 21. GotoIf($["${custom}" = "AMP"]?customtrunk) [pbx_config]
  578. 22. Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) [pbx_config]
  579. 23. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  580. 24. Goto(s-${DIALSTATUS},1) [pbx_config]
  581. [customtrunk] 25. Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) [pbx_config]
  582. 26. Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) [pbx_config]
  583. 27. Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) [pbx_config]
  584. 28. GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) [pbx_config]
  585. [outnum] 29. Set(the_num=${OUTNUM}) [pbx_config]
  586. [skipoutnum] 30. Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS}) [pbx_config]
  587. 31. Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  588. 32. Goto(s-${DIALSTATUS},1) [pbx_config]
  589. [chanfull] 33. Noop(max channels used up) [pbx_config]
  590. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  591. 2. Macro(hangupcall,) [pbx_config]
  592. 's-BUSY' => 1. Noop(Dial failed due to trunk reporting BUSY - giving up) [pbx_config]
  593. 2. Playtones(busy) [pbx_config]
  594. 3. Busy(20) [pbx_config]
  595. 's-CHANGED' => 1. Noop(Dial failed due to trunk reporting Number Changed - giving up) [pbx_config]
  596. 2. Playtones(busy) [pbx_config]
  597. 3. Busy(20) [pbx_config]
  598. 's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomplete - giving up) [pbx_config]
  599. 2. Progress() [pbx_config]
  600. 3. Playback(ss-noservice,noanswer) [pbx_config]
  601. 4. Busy(20) [pbx_config]
  602. 's-NOANSWER' => 1. Noop(Dial failed due to trunk reporting NOANSWER - giving up) [pbx_config]
  603. 2. Progress() [pbx_config]
  604. 3. Playback(number-not-answering,noanswer) [pbx_config]
  605. 4. Congestion(20) [pbx_config]
  606. '_s-.' => 1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) [pbx_config]
  607. 2. Goto(${RC},1) [pbx_config]
  608. '_X.' => 1. Goto(continue,1) [pbx_config]
  609. '_X' => 1. Goto(continue,1) [pbx_config]
  610. Include => 'macro-dialout-trunk-custom' [pbx_config]
  611.  
  612. [ Context 'macro-dialout-dundi' created by 'pbx_config' ]
  613. '17' => 1. Goto(s-BUSY,1) [pbx_config]
  614. '18' => 1. Goto(s-NOANSWER,1) [pbx_config]
  615. '22' => 1. Goto(s-CHANGED,1) [pbx_config]
  616. '23' => 1. Goto(s-CHANGED,1) [pbx_config]
  617. '28' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
  618. 'bypass' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-dundi-predial-hook) [pbx_config]
  619. 'continue' => 1. GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) [pbx_config]
  620. 2. AGI(${OUTFAIL_${ARG1}}) [pbx_config]
  621. [noreport] 3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
  622. 4. Set(CALLERID(number)=${AMPUSER}) [pbx_config]
  623. 'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) [pbx_config]
  624. 'h' => 1. Macro(hangupcall,) [pbx_config]
  625. 's' => 1. Set(DIAL_TRUNK=${ARG1}) [pbx_config]
  626. 2. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
  627. 3. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) [pbx_config]
  628. 4. Set(DIAL_NUMBER=${ARG2}) [pbx_config]
  629. 5. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
  630. 6. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) [pbx_config]
  631. 7. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) [pbx_config]
  632. 8. GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) [pbx_config]
  633. [nomax] 9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx_config]
  634. 10. Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) [pbx_config]
  635. 11. Macro(outbound-callerid,${DIAL_TRUNK}) [pbx_config]
  636. [skipoutcid] 12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  637. 13. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx_config]
  638. 14. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) [pbx_config]
  639. 15. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm))) [pbx_config]
  640. [gocall] 16. Macro(dialout-dundi-predial-hook,) [pbx_config]
  641. 17. GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) [pbx_config]
  642. 18. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
  643. 19. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)})) [pbx_config]
  644. 20. Macro(dundi-${DIAL_TRUNK},${OUTNUM}) [pbx_config]
  645. 21. Goto(s-${DIALSTATUS},1) [pbx_config]
  646. [chanfull] 22. Noop(max channels used up) [pbx_config]
  647. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  648. 2. Macro(hangupcall,) [pbx_config]
  649. 's-BUSY' => 1. Noop(Dial failed due to trunk reporting BUSY - giving up) [pbx_config]
  650. 2. Playtones(busy) [pbx_config]
  651. 3. Busy(20) [pbx_config]
  652. 's-CHANGED' => 1. Noop(Dial failed due to trunk reporting Number Changed - giving up) [pbx_config]
  653. 2. Playtones(busy) [pbx_config]
  654. 3. Busy(20) [pbx_config]
  655. 's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomplete - giving up) [pbx_config]
  656. 2. Progress() [pbx_config]
  657. 3. Playback(ss-noservice,noanswer) [pbx_config]
  658. 4. Busy(20) [pbx_config]
  659. 's-NOANSWER' => 1. Noop(Dial failed due to trunk reporting NOANSWER - giving up) [pbx_config]
  660. 2. Progress() [pbx_config]
  661. 3. Playback(number-not-answering,noanswer) [pbx_config]
  662. 4. Congestion(20) [pbx_config]
  663. '_s-.' => 1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) [pbx_config]
  664. 2. Goto(${RC},1) [pbx_config]
  665. '_X.' => 1. Goto(continue,1) [pbx_config]
  666. '_X' => 1. Goto(continue,1) [pbx_config]
  667. Include => 'macro-dialout-dundi-custom' [pbx_config]
  668.  
  669. [ Context 'macro-user-callerid' created by 'pbx_config' ]
  670. 'h' => 1. Macro(hangupcall,) [pbx_config]
  671. 's' => 1. Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
  672. 2. GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPUSERCIDNAME})}]?report) [pbx_config]
  673. 3. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
  674. 4. Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)}) [pbx_config]
  675. 5. Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}) [pbx_config]
  676. 6. GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?report) [pbx_config]
  677. 7. Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})}) [pbx_config]
  678. 8. Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>) [pbx_config]
  679. 9. GotoIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})} & "${DB(AMPUSER/${AMPUSER}/concurrency_limit)}">"0" & "${GROUP_COUNT(${AMPUSER}@concurrency_limit)}">="${DB(AMPUSER/${AMPUSER}/concurrency_limit)}"]?limit) [pbx_config]
  680. 10. ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER})) [pbx_config]
  681. [report] 11. GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?continue) [pbx_config]
  682. [report2] 12. Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])}) [pbx_config]
  683. 13. GotoIf($[ ${TTL} > 0 ]?continue) [pbx_config]
  684. 14. Wait(${RINGTIMER}) [pbx_config]
  685. 15. Answer() [pbx_config]
  686. 16. Wait(1) [pbx_config]
  687. 17. Playback(im-sorry&an-error-has-occured&with&call-forwarding) [pbx_config]
  688. 18. Macro(hangupcall,) [pbx_config]
  689. [limit] 19. Answer() [pbx_config]
  690. 20. Wait(1) [pbx_config]
  691. 21. Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye) [pbx_config]
  692. 22. Macro(hangupcall,) [pbx_config]
  693. 23. Congestion(20) [pbx_config]
  694. [continue] 24. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_config]
  695. 25. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  696. 26. Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))}) [pbx_config]
  697. Include => 'macro-user-callerid-custom' [pbx_config]
  698.  
  699. [ Context 'macro-dialout-enum' created by 'pbx_config' ]
  700. '17' => 1. Goto(s-BUSY,1) [pbx_config]
  701. '18' => 1. Goto(s-NOANSWER,1) [pbx_config]
  702. '22' => 1. Goto(s-CHANGED,1) [pbx_config]
  703. '23' => 1. Goto(s-CHANGED,1) [pbx_config]
  704. '28' => 1. Goto(s-INVALIDNMBR,1) [pbx_config]
  705. 'bypass' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) [pbx_config]
  706. 'continue' => 1. GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) [pbx_config]
  707. 2. AGI(${OUTFAIL_${ARG1}}) [pbx_config]
  708. [noreport] 3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
  709. 4. Set(CALLERID(number)=${AMPUSER}) [pbx_config]
  710. 'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) [pbx_config]
  711. 'h' => 1. Macro(hangupcall,) [pbx_config]
  712. 's' => 1. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
  713. 2. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) [pbx_config]
  714. 3. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
  715. 4. Set(OUTBOUND_GROUP=OUT_${ARG1}) [pbx_config]
  716. 5. GotoIf($["${OUTMAXCHANS_${ARG1}}foo" = "foo"]?nomax) [pbx_config]
  717. 6. GotoIf($[ ${GROUP_COUNT(OUT_${ARG1})} >= ${OUTMAXCHANS_${ARG1}} ]?nochans) [pbx_config]
  718. [nomax] 7. Set(DIAL_NUMBER=${ARG2}) [pbx_config]
  719. 8. Set(DIAL_TRUNK=${ARG1}) [pbx_config]
  720. 9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx_config]
  721. 10. Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) [pbx_config]
  722. 11. Macro(outbound-callerid,${DIAL_TRUNK}) [pbx_config]
  723. [skipoutcid] 12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1()) [pbx_config]
  724. 13. AGI(enumlookup.agi) [pbx_config]
  725. 14. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
  726. 15. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)})) [pbx_config]
  727. [dialloop] 16. GotoIf($["foo${DIALARR}"="foo"]?s-${DIALSTATUS},1) [pbx_config]
  728. 17. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) [pbx_config]
  729. 18. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=M(confirm)${DIAL_TRUNK_OPTIONS})) [pbx_config]
  730. 19. Set(TRYDIAL=${CUT(DIALARR,%,1)}) [pbx_config]
  731. 20. Set(DIALARR=${CUT(DIALARR,%,2-)}) [pbx_config]
  732. 21. Dial(${TRYDIAL},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  733. 22. GotoIf($[ $[ "${DIALSTATUS}" = "CHANUNAVAIL" ] | $[ "${DIALSTATUS}" = "CONGESTION" ] ]?dialloop:s-${DIALSTATUS},1) [pbx_config]
  734. [nochans] 23. Noop(max channels used up) [pbx_config]
  735. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  736. 2. Macro(hangupcall,) [pbx_config]
  737. 's-BUSY' => 1. Noop(Dial failed due to trunk reporting BUSY - giving up) [pbx_config]
  738. 2. Playtones(busy) [pbx_config]
  739. 3. Busy(20) [pbx_config]
  740. 's-CHANGED' => 1. Noop(Dial failed due to trunk reporting Number Changed - giving up) [pbx_config]
  741. 2. Playtones(busy) [pbx_config]
  742. 3. Busy(20) [pbx_config]
  743. 's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomplete - giving up) [pbx_config]
  744. 2. Progress() [pbx_config]
  745. 3. Playback(ss-noservice,noanswer) [pbx_config]
  746. 4. Busy(20) [pbx_config]
  747. 's-NOANSWER' => 1. Noop(Dial failed due to trunk reporting NOANSWER - giving up) [pbx_config]
  748. 2. Progress() [pbx_config]
  749. 3. Playback(number-not-answering,noanswer) [pbx_config]
  750. 4. Congestion(20) [pbx_config]
  751. '_s-.' => 1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) [pbx_config]
  752. 2. Goto(${RC},1) [pbx_config]
  753. '_X.' => 1. Goto(continue,1) [pbx_config]
  754. '_X' => 1. Goto(continue,1) [pbx_config]
  755. Include => 'macro-dialout-enum-custom' [pbx_config]
  756.  
  757. [ Context 'macro-outbound-callerid' created by 'pbx_config' ]
  758. 's' => 1. ExecIf($["${CALLINGPRES_SV}" != ""]?Set(CALLERPRES()=${CALLINGPRES_SV})) [pbx_config]
  759. 2. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)})) [pbx_config]
  760. [start] 3. GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid) [pbx_config]
  761. 4. Set(USEROUTCID=${REALCALLERIDNUM}) [pbx_config]
  762. 5. GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass) [pbx_config]
  763. [normcid] 6. Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)}) [pbx_config]
  764. [bypass] 7. Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)}) [pbx_config]
  765. 8. Set(TRUNKOUTCID=${OUTCID_${ARG1}}) [pbx_config]
  766. 9. GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:1:2}" = ""]?trunkcid) [pbx_config]
  767. 10. Set(CALLERID(all)=${EMERGENCYCID}) [pbx_config]
  768. [exit] 11. MacroExit() [pbx_config]
  769. [trunkcid] 12. ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=${TRUNKOUTCID})) [pbx_config]
  770. [usercid] 13. ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=${USEROUTCID})) [pbx_config]
  771. 14. ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORCEDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}})}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})})) [pbx_config]
  772. [hidecid] 15. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES()=prohib_passed_screen)) [pbx_config]
  773. Include => 'macro-outbound-callerid-custom' [pbx_config]
  774.  
  775. [ Context 'from-zaptel' created by 'pbx_config' ]
  776. 'foo' => 1. Noop(bar) [pbx_config]
  777. Include => 'from-zaptel-custom' [pbx_config]
  778. Include => 'from-dahdi' [pbx_config]
  779.  
  780. [ Context 'from-dahdi' created by 'pbx_config' ]
  781. 's' => 1. Noop(Entering from-dahdi with DID == ${DID}) [pbx_config]
  782. 2. Ringing() [pbx_config]
  783. 3. Set(DID=${IF($["${DID}"= ""]?s:${DID})}) [pbx_config]
  784. 4. Noop(DID is now ${DID}) [pbx_config]
  785. 5. GotoIf($["${CHANNEL:0:5}"="DAHDI"]?dahdiok:checkzap) [pbx_config]
  786. [checkzap] 6. GotoIf($["${CHANNEL:0:3}"="Zap"]?zapok:neither) [pbx_config]
  787. [neither] 7. Goto(from-pstn,${DID},1) [pbx_config]
  788. 8. Macro(Hangupcall,dummy) [pbx_config]
  789. [dahdiok] 9. Noop(Is a DAHDi Channel) [pbx_config]
  790. 10. Set(CHAN=${CHANNEL:6}) [pbx_config]
  791. 11. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
  792. 12. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
  793. 13. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
  794. 14. Goto(from-pstn,${DID},1) [pbx_config]
  795. [zapok] 15. Noop(Is a Zaptel Channel) [pbx_config]
  796. 16. Set(CHAN=${CHANNEL:4}) [pbx_config]
  797. 17. Set(CHAN=${CUT(CHAN,-,1)}) [pbx_config]
  798. 18. Macro(from-dahdi-${CHAN},${DID},1) [pbx_config]
  799. 19. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config]
  800. 20. Goto(from-pstn,${DID},1) [pbx_config]
  801. '_X.' => 1. Set(DID=${EXTEN}) [pbx_config]
  802. 2. Goto(s,1) [pbx_config]
  803. Include => 'from-dahdi-custom' [pbx_config]
  804.  
  805. [ Context 'vm-callme' created by 'pbx_config' ]
  806. '#' => 1. Playback(vm-goodbye) [pbx_config]
  807. 2. Hangup() [pbx_config]
  808. '*' => 1. Macro(get-vmcontext,${MBOX}) [pbx_config]
  809. 2. VoiceMailMain(${MBOX}@${VMCONTEXT},s) [pbx_config]
  810. '5' => 1. Goto(s,repeat) [pbx_config]
  811. 'h' => 1. Hangup() [pbx_config]
  812. 'i' => 1. Playback(pm-invalid-option) [pbx_config]
  813. 2. Goto(s,repeat) [pbx_config]
  814. 's' => 1. Answer() [pbx_config]
  815. 2. Wait(1) [pbx_config]
  816. [repeat] 3. Background(${MSG}&silence/2&vm-repeat&vm-starmain) [pbx_config]
  817. 4. WaitExten(15,) [pbx_config]
  818. 't' => 1. Playback(vm-goodbye) [pbx_config]
  819. 2. Hangup() [pbx_config]
  820. Include => 'vm-callme-custom' [pbx_config]
  821.  
  822. [ Context 'macro-dial-confirm' created by 'pbx_config' ]
  823. 's' => 1. Set(DB(RG/${ARG4}/${CHANNEL})=RINGING) [pbx_config]
  824. 2. Set(__UNIQCHAN=${CHANNEL}) [pbx_config]
  825. 3. Set(USE_CONFIRMATION=TRUE) [pbx_config]
  826. 4. Set(RINGGROUP_INDEX=${ARG4}) [pbx_config]
  827. 5. Set(FORCE_CONFIRM=) [pbx_config]
  828. 6. Set(ARG4=) [pbx_config]
  829. 7. Macro(dial,${ARG1},${ARG2},${ARG3}) [pbx_config]
  830. 8. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
  831. 9. Set(USE_CONFIRMATION=) [pbx_config]
  832. 10. Set(RINGGROUP_INDEX=) [pbx_config]
  833. Include => 'macro-dial-confirm-custom' [pbx_config]
  834.  
  835. [ Context 'macro-setmusic' created by 'pbx_config' ]
  836. 's' => 1. Set(CHANNEL(musicclass)=${ARG1}) [pbx_config]
  837. Include => 'macro-setmusic-custom' [pbx_config]
  838.  
  839. [ Context 'macro-block-cf' created by 'pbx_config' ]
  840. 's-ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  841. 2. Macro(hangupcall,) [pbx_config]
  842. '_X.' => 1. Hangup() [pbx_config]
  843. Include => 'macro-block-cf-custom' [pbx_config]
  844.  
  845. [ Context 'macro-vm' created by 'pbx_config' ]
  846. 'a' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  847. 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/ext)}" = "0"]?adef,1) [pbx_config]
  848. 3. Set(VMX_ADEST_EXT=${DB_RESULT}) [pbx_config]
  849. 4. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/context)}" = "1"]?acontext) [pbx_config]
  850. 5. Set(DB_RESULT=${VMX_CONTEXT}) [pbx_config]
  851. [acontext] 6. Set(VMX_ADEST_CONTEXT=${DB_RESULT}) [pbx_config]
  852. 7. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/*/pri)}" = "1"]?apri) [pbx_config]
  853. 8. Set(DB_RESULT=${VMX_PRI}) [pbx_config]
  854. [apri] 9. Set(VMX_ADEST_PRI=${DB_RESULT}) [pbx_config]
  855. 10. Goto(${VMX_ADEST_CONTEXT},${VMX_ADEST_EXT},${VMX_ADEST_PRI}) [pbx_config]
  856. 'adef' => 1. VoiceMailMain(${MEXTEN}@${VMCONTEXT}) [pbx_config]
  857. 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  858. 3. Hangup() [pbx_config]
  859. 'dovm' => 1. Noop(VMX Timeout - go to voicemail) [pbx_config]
  860. 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VMX_OPTS}${VMGAIN}) [pbx_config]
  861. 3. Goto(exit-${VMSTATUS},1) [pbx_config]
  862. 'exit-FAILED' => 1. Playback(im-sorry&an-error-has-occured) [pbx_config]
  863. 2. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  864. 3. Hangup() [pbx_config]
  865. 'exit-RETURN' => 1. Noop(Returning From Voicemail because macro) [pbx_config]
  866. 'exit-SUCCESS' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  867. 2. Playback(goodbye) [pbx_config]
  868. 3. Hangup() [pbx_config]
  869. 'exit-USEREXIT' => 1. GotoIf($["${RETVM}" = "RETURN"]?exit-RETURN,1) [pbx_config]
  870. 2. Playback(goodbye) [pbx_config]
  871. 3. Hangup() [pbx_config]
  872. 'o' => 1. Playback(one-moment-please) [pbx_config]
  873. 2. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/ext)}" = "0"]?doopdef) [pbx_config]
  874. 3. Set(VMX_OPDEST_EXT=${DB_RESULT}) [pbx_config]
  875. 4. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/context)}" = "1"]?opcontext) [pbx_config]
  876. 5. Set(DB_RESULT=${VMX_CONTEXT}) [pbx_config]
  877. [opcontext] 6. Set(VMX_OPDEST_CONTEXT=${DB_RESULT}) [pbx_config]
  878. 7. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/0/pri)}" = "1"]?oppri) [pbx_config]
  879. 8. Set(DB_RESULT=${VMX_PRI}) [pbx_config]
  880. [oppri] 9. Set(VMX_OPDEST_PRI=${DB_RESULT}) [pbx_config]
  881. 10. Goto(${VMX_OPDEST_CONTEXT},${VMX_OPDEST_EXT},${VMX_OPDEST_PRI}) [pbx_config]
  882. [doopdef] 11. GotoIf($["x${OPERATOR_XTN}"="x"]?nooper:from-internal,${OPERATOR_XTN},1) [pbx_config]
  883. [nooper] 12. GotoIf($["x${FROM_DID}"="x"]?nodid) [pbx_config]
  884. 13. Dial(Local/${FROM_DID}@from-pstn,) [pbx_config]
  885. 14. Macro(hangup,) [pbx_config]
  886. [nodid] 15. Dial(Local/s@from-pstn,) [pbx_config]
  887. 16. Macro(hangup,) [pbx_config]
  888. 's' => 1. Macro(user-callerid,SKIPTTL) [pbx_config]
  889. 2. Set(VMGAIN=${IF($["foo${VM_GAIN}"!="foo"]?"g(${VM_GAIN})":"")}) [pbx_config]
  890. 3. Macro(blkvm-check,) [pbx_config]
  891. 4. GotoIf($["${GOSUB_RETVAL}" != "TRUE"]?vmx,1) [pbx_config]
  892. 5. Hangup() [pbx_config]
  893. 's-BUSY' => 1. Noop(BUSY voicemail) [pbx_config]
  894. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  895. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}b${VMGAIN}) [pbx_config]
  896. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  897. 's-DIRECTDIAL' => 1. Noop(DIRECTDIAL voicemail) [pbx_config]
  898. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  899. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}${VM_DDTYPE}${VMGAIN}) [pbx_config]
  900. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  901. 's-NOMESSAGE' => 1. Noop(NOMESSAGE (beeb only) voicemail) [pbx_config]
  902. 2. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  903. 3. VoiceMail(${MEXTEN}@${VMCONTEXT},s${VM_OPTS}${VMGAIN}) [pbx_config]
  904. 4. Goto(exit-${VMSTATUS},1) [pbx_config]
  905. 't' => 1. Hangup() [pbx_config]
  906. 'vmx' => 1. Set(MEXTEN=${ARG1}) [pbx_config]
  907. 2. Set(MMODE=${ARG2}) [pbx_config]
  908. 3. Set(RETVM=${ARG3}) [pbx_config]
  909. 4. Set(MODE=${IF($["${MMODE}"="BUSY"]?busy:unavail)}) [pbx_config]
  910. 5. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?chknomsg) [pbx_config]
  911. 6. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}" = "0"]?chknomsg) [pbx_config]
  912. 7. Set(VM_OPTS=${DB_RESULT}) [pbx_config]
  913. [chknomsg] 8. GotoIf($["${MMODE}"="NOMESSAGE"]?s-${MMODE},1) [pbx_config]
  914. 9. GotoIf($["${MMODE}" != "DIRECTDIAL"]?notdirect) [pbx_config]
  915. 10. Set(MODE=${IF($["${REGEX("[b]" ${VM_DDTYPE})}" = "1"]?busy:${MODE})}) [pbx_config]
  916. [notdirect] 11. Noop(Checking if ext ${MEXTEN} is enabled: ${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}) [pbx_config]
  917. 12. GotoIf($["${DB(AMPUSER/${MEXTEN}/vmx/${MODE}/state)}" != "enabled"]?s-${MMODE},1) [pbx_config]
  918. 13. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  919. 14. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.wav)} = 1) || (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/temp.WAV)} = 1)]?tmpgreet) [pbx_config]
  920. 15. GotoIf($[(${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.wav)} = 0) && (${STAT(f,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE}.WAV)} = 0)]?nofile) [pbx_config]
  921. 16. Set(LOOPCOUNT=0) [pbx_config]
  922. 17. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/repeat)}" = "0"]?vmxtime) [pbx_config]
  923. 18. Set(VMX_REPEAT=${DB_RESULT}) [pbx_config]
  924. [vmxtime] 19. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timeout)}" = "0"]?vmxloops) [pbx_config]
  925. 20. Set(VMX_TIMEOUT=${DB_RESULT}) [pbx_config]
  926. [vmxloops] 21. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loops)}" = "0"]?vmxanswer) [pbx_config]
  927. 22. Set(VMX_LOOPS=${DB_RESULT}) [pbx_config]
  928. [vmxanswer] 23. Answer() [pbx_config]
  929. [loopstart] 24. Read(ACTION,${ASTSPOOLDIR}/voicemail/${VMCONTEXT}/${MEXTEN}/${MODE},1,skip,${VMX_REPEAT},${VMX_TIMEOUT}) [pbx_config]
  930. 25. GotoIf($["${EXISTS(${ACTION})}" = "1"]?checkopt) [pbx_config]
  931. [noopt] 26. Noop(Timeout: going to timeout dest) [pbx_config]
  932. 27. Set(VMX_OPTS=${VMX_OPTS_TIMEOUT}) [pbx_config]
  933. 28. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/timeout)}" = "0"]?chktime) [pbx_config]
  934. 29. Set(VMX_OPTS=${DB_RESULT}) [pbx_config]
  935. [chktime] 30. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/ext)}" = "0"]?dotime) [pbx_config]
  936. 31. Set(VMX_TIMEDEST_EXT=${DB_RESULT}) [pbx_config]
  937. 32. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/context)}" = "0"]?timepri) [pbx_config]
  938. 33. Set(VMX_TIMEDEST_CONTEXT=${DB_RESULT}) [pbx_config]
  939. [timepri] 34. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/timedest/pri)}" = "0"]?dotime) [pbx_config]
  940. 35. Set(VMX_TIMEDEST_PRI=${DB_RESULT}) [pbx_config]
  941. [dotime] 36. Goto(${VMX_TIMEDEST_CONTEXT},${VMX_TIMEDEST_EXT},${VMX_TIMEDEST_PRI}) [pbx_config]
  942. [checkopt] 37. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/ext)}" = "1"]?doopt) [pbx_config]
  943. 38. GotoIf($["${ACTION}" = "0"]?o,1) [pbx_config]
  944. 39. GotoIf($["${ACTION}" = "*"]?adef,1) [pbx_config]
  945. 40. Set(LOOPCOUNT=$[${LOOPCOUNT} + 1]) [pbx_config]
  946. 41. GotoIf($[${LOOPCOUNT} > ${VMX_LOOPS}]?toomany) [pbx_config]
  947. 42. Playback(pm-invalid-option&please-try-again) [pbx_config]
  948. 43. Goto(loopstart) [pbx_config]
  949. [toomany] 44. Noop(Too Many invalid entries, got to invalid dest) [pbx_config]
  950. 45. Set(VMX_OPTS=${VMX_OPTS_LOOPS}) [pbx_config]
  951. 46. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/loops)}" = "0"]?chkloop) [pbx_config]
  952. 47. Set(VMX_OPTS=${DB_RESULT}) [pbx_config]
  953. [chkloop] 48. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/ext)}" = "0"]?doloop) [pbx_config]
  954. 49. Set(VMX_LOOPDEST_EXT=${DB_RESULT}) [pbx_config]
  955. 50. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/context)}" = "0"]?looppri) [pbx_config]
  956. 51. Set(VMX_LOOPDEST_CONTEXT=${DB_RESULT}) [pbx_config]
  957. [looppri] 52. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/loopdest/pri)}" = "0"]?doloop) [pbx_config]
  958. 53. Set(VMX_LOOPDEST_PRI=${DB_RESULT}) [pbx_config]
  959. [doloop] 54. Goto(${VMX_LOOPDEST_CONTEXT},${VMX_LOOPDEST_EXT},${VMX_LOOPDEST_PRI}) [pbx_config]
  960. [doopt] 55. Noop(Got a valid option: ${DB_RESULT}) [pbx_config]
  961. 56. Set(VMX_EXT=${DB_RESULT}) [pbx_config]
  962. 57. GotoIf($["${VMX_EXT}" != "dovm"]?getdest) [pbx_config]
  963. [vmxopts] 58. Set(VMX_OPTS=${VMX_OPTS_DOVM}) [pbx_config]
  964. 59. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/vmxopts/dovm)}" = "0"]?vmxdovm) [pbx_config]
  965. 60. Set(VMX_OPTS=${DB_RESULT}) [pbx_config]
  966. [vmxdovm] 61. Goto(dovm,1) [pbx_config]
  967. [getdest] 62. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/context)}" = "0"]?vmxpri) [pbx_config]
  968. 63. Set(VMX_CONTEXT=${DB_RESULT}) [pbx_config]
  969. [vmxpri] 64. GotoIf($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${MODE}/${ACTION}/pri)}" = "0"]?vmxgoto) [pbx_config]
  970. 65. Set(VMX_PRI=${DB_RESULT}) [pbx_config]
  971. [vmxgoto] 66. Goto(${VMX_CONTEXT},${VMX_EXT},${VMX_PRI}) [pbx_config]
  972. [nofile] 67. Noop(File for mode: ${MODE} does not exist, SYSTEMSTATUS: ${SYSTEMSTATUS}, going to normal voicemail) [pbx_config]
  973. 68. Goto(s-${MMODE},1) [pbx_config]
  974. [tmpgreet] 69. Noop(Temporary Greeting Detected, going to normal voicemail) [pbx_config]
  975. 70. Goto(s-${MMODE},1) [pbx_config]
  976. '_s-.' => 1. Macro(get-vmcontext,${MEXTEN}) [pbx_config]
  977. 2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) [pbx_config]
  978. 3. Goto(exit-${VMSTATUS},1) [pbx_config]
  979. Include => 'macro-vm-custom' [pbx_config]
  980.  
  981. [ Context 'macro-exten-vm' created by 'pbx_config' ]
  982. 'docfb' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&${ARG4})]?StackPop()) [pbx_config]
  983. 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&${ARG4})]?from-internal,${DB(CFB/${EXTTOCALL})},1) [pbx_config]
  984. 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
  985. 4. Dial(Local/${DB(CFB/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
  986. 5. Return() [pbx_config]
  987. 'docfu' => 1. ExecIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&${ARG3})]?StackPop()) [pbx_config]
  988. 2. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="-1"|("${ARG1}"="novm"&${ARG3})]?from-internal,${DB(CFU/${EXTTOCALL})},1) [pbx_config]
  989. 3. Set(RTCF=${IF($["${DB(AMPUSER/${EXTTOCALL}/cfringtimer)}"="0"]?${RT}:${DB(AMPUSER/${EXTTOCALL}/cfringtimer)})}) [pbx_config]
  990. 4. Dial(Local/${DB(CFU/${EXTTOCALL})}@from-internal/n,${RTCF},${DIAL_OPTIONS}) [pbx_config]
  991. 5. Return() [pbx_config]
  992. 'exit' => 1. Playback(beep&line-busy-transfer-menu&silence/1) [pbx_config]
  993. 2. MacroExit() [pbx_config]
  994. 's' => 1. Macro(user-callerid,) [pbx_config]
  995. 2. Set(RingGroupMethod=none) [pbx_config]
  996. 3. Set(__EXTTOCALL=${ARG2}) [pbx_config]
  997. 4. Set(__PICKUPMARK=${ARG2}) [pbx_config]
  998. 5. Set(RT=${IF($["${ARG1}"!="novm" | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | ${ARG3} | ${ARG4} | ${ARG5}]?${RINGTIMER}:)}) [pbx_config]
  999. 6. ExecIf($[$["${REDIRECTING(reason)}" = "send_to_vm" | "${SIP_HEADER(X-Digium-Call-Feature)}" = "feature_send_to_vm"] & "${ARG1}" != "novm"]?Macro(vm,${ARG1},DIRECTDIAL,${IVR_RETVM})) [pbx_config]
  1000. 7. ExecIf($[$["${REDIRECTING(reason)}" = "send_to_vm" | "${SIP_HEADER(X-Digium-Call-Feature)}" = "feature_send_to_vm"] & "${ARG1}" != "novm"]?MacroExit()) [pbx_config]
  1001. [checkrecord] 8. Gosub(sub-record-check,s,1(exten,${EXTTOCALL},)) [pbx_config]
  1002. [macrodial] 9. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
  1003. 10. Set(SV_DIALSTATUS=${DIALSTATUS}) [pbx_config]
  1004. [calldocfu] 11. GosubIf($[("${SV_DIALSTATUS}"="NOANSWER"|"${SV_DIALSTATUS}"="CHANUNAVAIL") & "${DB(CFU/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfu,1()) [pbx_config]
  1005. [calldocfb] 12. GosubIf($["${SV_DIALSTATUS}"="BUSY" & "${DB(CFB/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfb,1()) [pbx_config]
  1006. 13. Set(DIALSTATUS=${SV_DIALSTATUS}) [pbx_config]
  1007. 14. ExecIf($[("${DIALSTATUS}"="NOANSWER"&${ARG3})|("${DIALSTATUS}"="BUSY"&${ARG4})|("${DIALSTATUS}"="CHANUNAVAIL"&${ARG5})]?MacroExit()) [pbx_config]
  1008. 15. GotoIf($["${ARG1}"="novm"]?s-${DIALSTATUS},1) [pbx_config]
  1009. 16. Macro(vm,${ARG1},${DIALSTATUS},${IVR_RETVM}) [pbx_config]
  1010. 's-BUSY' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
  1011. 2. Playtones(busy) [pbx_config]
  1012. 3. Busy(20) [pbx_config]
  1013. '_s-!' => 1. GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1) [pbx_config]
  1014. 2. Playtones(congestion) [pbx_config]
  1015. 3. Congestion(10) [pbx_config]
  1016. Include => 'macro-exten-vm-custom' [pbx_config]
  1017.  
  1018. [ Context 'macro-simple-dial' created by 'pbx_config' ]
  1019. 'docfb' => 1. GotoIf($["${DB(AMPUSER/${CFBEXT}/device)}" = "" ]?chlocal) [pbx_config]
  1020. 2. Dial(Local/${CFBEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
  1021. 3. Return() [pbx_config]
  1022. [chlocal] 4. Dial(Local/${CFBEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
  1023. 5. Return() [pbx_config]
  1024. 'docfu' => 1. GotoIf($["${DB(AMPUSER/${CFUEXT}/device)}" = "" ]?chlocal) [pbx_config]
  1025. 2. Dial(Local/${CFUEXT}@ext-local,${RT},${DIAL_OPTIONS}) [pbx_config]
  1026. 3. Return() [pbx_config]
  1027. [chlocal] 4. Dial(Local/${CFUEXT}@from-internal/n,${RT},${DIAL_OPTIONS}) [pbx_config]
  1028. 5. Return() [pbx_config]
  1029. 's' => 1. Set(__EXTTOCALL=${ARG1}) [pbx_config]
  1030. 2. Set(RT=${ARG2}) [pbx_config]
  1031. 3. Set(CFUEXT=${DB(CFU/${EXTTOCALL})}) [pbx_config]
  1032. 4. Set(CFBEXT=${DB(CFB/${EXTTOCALL})}) [pbx_config]
  1033. 5. Set(CWI_TMP=${CWIGNORE}) [pbx_config]
  1034. [macrodial] 6. Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL}) [pbx_config]
  1035. 7. Set(__CWIGNORE=${CWI_TMP}) [pbx_config]
  1036. 8. Set(PR_DIALSTATUS=${DIALSTATUS}) [pbx_config]
  1037. [calldocfu] 9. GosubIf($["${PR_DIALSTATUS}"="NOANSWER" & "${CFUEXT}"!=""]?docfu,1()) [pbx_config]
  1038. [calldocfb] 10. GosubIf($["${PR_DIALSTATUS}"="BUSY" & "${CFBEXT}"!=""]?docfb,1()) [pbx_config]
  1039. 11. Set(DIALSTATUS=${PR_DIALSTATUS}) [pbx_config]
  1040. 12. Goto(s-${DIALSTATUS},1) [pbx_config]
  1041. '_s-.' => 1. Noop(Extension is reporting ${EXTEN}) [pbx_config]
  1042. Include => 'macro-simple-dial-custom' [pbx_config]
  1043.  
  1044. [ Context 'macro-blkvm-setifempty' created by 'pbx_config' ]
  1045. 's' => 1. GotoIf($[!${EXISTS(${BLKVM_CHANNEL})}]?init) [pbx_config]
  1046. 2. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
  1047. 3. MacroExit() [pbx_config]
  1048. [init] 4. Set(__BLKVM_CHANNEL=${CHANNEL}) [pbx_config]
  1049. 5. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
  1050. 6. Set(GOSUB_RETVAL=TRUE) [pbx_config]
  1051. 7. MacroExit() [pbx_config]
  1052. Include => 'macro-blkvm-setifempty-custom' [pbx_config]
  1053.  
  1054. [ Context 'macro-blkvm-set' created by 'pbx_config' ]
  1055. 's' => 1. ExecIf($[!${EXISTS(${BLKVM_CHANNEL})} | "{ARG1}" = "reset"]?Set(__BLKVM_CHANNEL=${CHANNEL})) [pbx_config]
  1056. 2. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=TRUE) [pbx_config]
  1057. 3. Set(GOSUB_RETVAL=TRUE) [pbx_config]
  1058. 4. MacroExit() [pbx_config]
  1059. Include => 'macro-blkvm-set-custom' [pbx_config]
  1060.  
  1061. [ Context 'macro-blkvm-clr' created by 'pbx_config' ]
  1062. 's' => 1. Set(SHARED(BLKVM,${BLKVM_CHANNEL})=) [pbx_config]
  1063. 2. Set(GOSUB_RETVAL=) [pbx_config]
  1064. 3. MacroExit() [pbx_config]
  1065. Include => 'macro-blkvm-clr-custom' [pbx_config]
  1066.  
  1067. [ Context 'macro-blkvm-check' created by 'pbx_config' ]
  1068. 's' => 1. Set(GOSUB_RETVAL=${SHARED(BLKVM,${BLKVM_CHANNEL})}) [pbx_config]
  1069. 2. ExecIf($["${GOSUB_RETVAL}"="" & "${CC_RECALL}"="1"]?Set(GOSUB_RETVAL=TRUE)) [pbx_config]
  1070. 3. MacroExit() [pbx_config]
  1071. Include => 'macro-blkvm-check-custom' [pbx_config]
  1072.  
  1073. [ Context 'macro-hangupcall' created by 'pbx_config' ]
  1074. 's' => 1. GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?theend) [pbx_config]
  1075. [delrgi] 2. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
  1076. [theend] 3. ExecIf($["${ONETOUCH_RECFILE}"!="" & "${CDR(recordingfile)}"=""]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE})) [pbx_config]
  1077. 4. Hangup() [pbx_config]
  1078. 5. MacroExit() [pbx_config]
  1079. Include => 'macro-hangupcall-custom' [pbx_config]
  1080.  
  1081. [ Context 'macro-dial-one' created by 'pbx_config' ]
  1082. 'cf' => 1. Set(CFAMPUSER=${IF($["${AMPUSER}"=""]?${CALLERID(number)}:${AMPUSER})}) [pbx_config]
  1083. 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]
  1084. 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]
  1085. 4. Set(DEXTEN=${IF($["${CFIGNORE}"=""]?"${DB(CF/${DEXTEN})}#":"")}) [pbx_config]
  1086. 5. ExecIf($["${DEXTEN}"!=""]?Return()) [pbx_config]
  1087. 6. Set(DIALSTATUS=NOANSWER) [pbx_config]
  1088. 7. Return() [pbx_config]
  1089. 'ctclear' => 1. Noop(Deleting: CALLTRACE/${DEXTEN} ${DB_DELETE(CALLTRACE/${DEXTEN})}) [pbx_config]
  1090. 2. Return() [pbx_config]
  1091. 'ctset' => 1. Set(DB(CALLTRACE/${DEXTEN})=${CALLERID(number)}) [pbx_config]
  1092. 2. Return() [pbx_config]
  1093. '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]
  1094. 2. Set(USEGOTO=${IF($["${ARG1}"=""]?1:0)}) [pbx_config]
  1095. 3. Return() [pbx_config]
  1096. 'dstring' => 1. Set(DSTRING=) [pbx_config]
  1097. 2. Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)}) [pbx_config]
  1098. 3. ExecIf($["${DEVICES}"=""]?Return()) [pbx_config]
  1099. 4. ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1})) [pbx_config]
  1100. 5. Set(LOOPCNT=${FIELDQTY(DEVICES,&)}) [pbx_config]
  1101. 6. Set(ITER=1) [pbx_config]
  1102. [begin] 7. Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)}) [pbx_config]
  1103. 8. GosubIf($["${ASTCHANDAHDI}" = "1"]?zap2dahdi,1()) [pbx_config]
  1104. 9. Set(DSTRING=${DSTRING}${THISDIAL}&) [pbx_config]
  1105. 10. Set(ITER=$[${ITER}+1]) [pbx_config]
  1106. 11. GotoIf($[${ITER}<=${LOOPCNT}]?begin) [pbx_config]
  1107. 12. Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]}) [pbx_config]
  1108. 13. Return() [pbx_config]
  1109. 'h' => 1. Macro(hangupcall,) [pbx_config]
  1110. 'qwait' => 1. ExecIf($["${SAVEDCIDNAME}" = ""]?Set(__SAVEDCIDNAME=${CALLERID(name)})) [pbx_config]
  1111. 2. Set(ELAPSED=${MATH($[${EPOCH}+30-${QUEUEWAIT}]/60,int)}) [pbx_config]
  1112. 3. Set(CALLERID(name)=M${ELAPSED}:${SAVEDCIDNAME}) [pbx_config]
  1113. 4. Return() [pbx_config]
  1114. 's' => 1. Set(DEXTEN=${ARG3}) [pbx_config]
  1115. 2. Set(DIALSTATUS_CW=) [pbx_config]
  1116. 3. GosubIf($["${FROM_DID}"!="" & "${SCREEN}"="" & "${DB(AMPUSER/${DEXTEN}/screen)}"!=""]?screen,1()) [pbx_config]
  1117. 4. GosubIf($["${DB(CF/${DEXTEN})}"!=""]?cf,1()) [pbx_config]
  1118. 5. GotoIf($["${DEXTEN:-1}"="#" | "${DB(DND/${DEXTEN})}"=""]?skip1) [pbx_config]
  1119. 6. Set(DEXTEN=) [pbx_config]
  1120. 7. Set(DIALSTATUS=BUSY) [pbx_config]
  1121. [skip1] 8. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
  1122. 9. GotoIf($["${DEXTEN:-1}"="#"]?continue) [pbx_config]
  1123. 10. Set(EXTHASCW=${IF($["${CWIGNORE}"!=""]?"":${DB(CW/${DEXTEN})})}) [pbx_config]
  1124. 11. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!="" | "${DB(CFU/${DEXTEN})}"!=""]?next1:cwinusebusy) [pbx_config]
  1125. [next1] 12. GotoIf($["${DB(CFU/${DEXTEN})}"!="" & ("${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN")]?docfu:skip3) [pbx_config]
  1126. [docfu] 13. Set(DEXTEN=) [pbx_config]
  1127. 14. Set(DIALSTATUS=NOANSWER) [pbx_config]
  1128. 15. Goto(nodial) [pbx_config]
  1129. [skip3] 16. GotoIf($["${EXTHASCW}"="" | "${DB(CFB/${DEXTEN})}"!=""]?next2:continue) [pbx_config]
  1130. [next2] 17. GotoIf($["${EXTENSION_STATE(${DEXTEN})}"="NOT_INUSE" | "${EXTENSION_STATE(${DEXTEN})}"="UNAVAILABLE" | "${EXTENSION_STATE(${DEXTEN})}"="UNKNOWN"]?continue) [pbx_config]
  1131. 18. ExecIf($["${DB(CFB/${DEXTEN})}"!="" & "${CFIGNORE}"=""]?Set(DIALSTATUS=BUSY)) [pbx_config]
  1132. 19. GotoIf($["${EXTHASCW}"!="" | "${DEXTEN:-1}"="#"]?cwinusebusy) [pbx_config]
  1133. 20. Set(DEXTEN=) [pbx_config]
  1134. 21. Set(DIALSTATUS=BUSY) [pbx_config]
  1135. 22. Goto(nodial) [pbx_config]
  1136. [cwinusebusy] 23. GotoIf($["${EXTHASCW}"!="" & "${CWINUSEBUSY}"="true"]?next3:continue) [pbx_config]
  1137. [next3] 24. ExecIf($["${EXTENSION_STATE(${DEXTEN})}"!="UNAVAILABLE" & "${EXTENSION_STATE(${DEXTEN})}"!="NOT_INUSE" & "${EXTENSION_STATE(${DEXTEN})}"!="UNKNOWN"]?Set(DIALSTATUS_CW=BUSY)) [pbx_config]
  1138. [continue] 25. GotoIf($["${DEXTEN}"=""]?nodial) [pbx_config]
  1139. 26. GosubIf($["${DEXTEN:-1}"!="#"]?dstring,1():dlocal,1()) [pbx_config]
  1140. 27. GotoIf($[${LEN(${DSTRING})}=0]?nodial) [pbx_config]
  1141. 28. GotoIf($["${DEXTEN:-1}"="#"]?skiptrace) [pbx_config]
  1142. 29. GosubIf($[${REGEX("^[\+]?[0-9]+$" ${CALLERID(number)})} = 1]?ctset,1():ctclear,1()) [pbx_config]
  1143. [skiptrace] 30. Set(D_OPTIONS=${IF($["${NODEST}"!="" & ${REGEX("(M[(]auto-blkvm[)])" ${ARG2})} != 1]?${ARG2}M(auto-blkvm):${ARG2})}) [pbx_config]
  1144. 31. ExecIf($["${ALERT_INFO}"!=""]?SIPAddHeader(Alert-Info: ${ALERT_INFO})) [pbx_config]
  1145. 32. ExecIf($["${SIPADDHEADER}"!=""]?SIPAddHeader(${SIPADDHEADER})) [pbx_config]
  1146. 33. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  1147. 34. GosubIf($["${QUEUEWAIT}"!=""]?qwait,1()) [pbx_config]
  1148. 35. Set(__CWIGNORE=${CWIGNORE}) [pbx_config]
  1149. 36. Set(__KEEPCID=TRUE) [pbx_config]
  1150. 37. GotoIf($["${USEGOTO}"="1"]?usegoto,1) [pbx_config]
  1151. 38. GotoIf($["${DB(AMPUSER/${EXTTOCALL}/cidname)}" = "" || "${DB(AMPUSER/${AMPUSER}/cidname)}" = ""]?godial) [pbx_config]
  1152. 39. Set(CONNECTEDLINE(name,i)=${DB(AMPUSER/${EXTTOCALL}/cidname)}) [pbx_config]
  1153. 40. Set(CONNECTEDLINE(num)=${EXTTOCALL}) [pbx_config]
  1154. 41. Set(D_OPTIONS=${D_OPTIONS}I) [pbx_config]
  1155. [godial] 42. Dial(${DSTRING},${ARG1},${D_OPTIONS}) [pbx_config]
  1156. 43. ExecIf($["${DIALSTATUS_CW}"!=""]?Set(DIALSTATUS=${DIALSTATUS_CW})) [pbx_config]
  1157. 44. GosubIf($[("${SCREEN}"!=""&("${DIALSTATUS}"="TORTURE"|"${DIALSTATUS}"="DONTCALL"))|"${DIALSTATUS}"="ANSWER"]?s-${DIALSTATUS},1()) [pbx_config]
  1158. 45. MacroExit() [pbx_config]
  1159. [nodial] 46. ExecIf($["${DIALSTATUS}" = ""]?Set(DIALSTATUS=NOANSWER)) [pbx_config]
  1160. 47. Noop(Returned from dial-one with nothing to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
  1161. 48. MacroExit() [pbx_config]
  1162. 's-BUSY' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  1163. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  1164. 3. Return() [pbx_config]
  1165. 's-CHANUNAVAIL' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  1166. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  1167. 3. Return() [pbx_config]
  1168. 's-DONTCALL' => 1. Answer() [pbx_config]
  1169. 2. Wait(1) [pbx_config]
  1170. 3. Zapateller() [pbx_config]
  1171. 4. Playback(ss-noservice) [pbx_config]
  1172. 5. Macro(hangupcall,) [pbx_config]
  1173. 's-NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  1174. 2. ExecIf($["${IVR_RETVM}"!="RETURN" | "${IVR_CONTEXT}"=""]?Hangup()) [pbx_config]
  1175. 3. Return() [pbx_config]
  1176. 's-TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
  1177. 2. Macro(hangupcall,) [pbx_config]
  1178. 'screen' => 1. GotoIf($["${DB(AMPUSER/${DEXTEN}/screen)}"!="nomemory" | "${CALLERID(number)}"=""]?memory) [pbx_config]
  1179. 2. ExecIf($[${REGEX("^[0-9a-zA-Z ]+$" ${CALLERID(number)})} = 1]?System(rm -f ${ASTVARLIBDIR}/sounds/priv-callerintros/${CALLERID(number)}.*)) [pbx_config]
  1180. [memory] 3. Set(__SCREEN=${DB(AMPUSER/${DEXTEN}/screen)}) [pbx_config]
  1181. 4. Set(__SCREEN_EXTEN=${DEXTEN}) [pbx_config]
  1182. 5. Set(ARG2=${ARG2}p) [pbx_config]
  1183. 6. Return() [pbx_config]
  1184. 'usegoto' => 1. Set(USEGOTO=) [pbx_config]
  1185. 2. Goto(from-internal,${DSTRING},1) [pbx_config]
  1186. 'zap2dahdi' => 1. ExecIf($["${THISDIAL}" = ""]?Return()) [pbx_config]
  1187. 2. Set(NEWDIAL=) [pbx_config]
  1188. 3. Set(LOOPCNT2=${FIELDQTY(THISDIAL,&)}) [pbx_config]
  1189. 4. Set(ITER2=1) [pbx_config]
  1190. [begin2] 5. Set(THISPART2=${CUT(THISDIAL,&,${ITER2})}) [pbx_config]
  1191. 6. ExecIf($["${THISPART2:0:3}" = "ZAP"]?Set(THISPART2=DAHDI${THISPART2:3})) [pbx_config]
  1192. 7. Set(NEWDIAL=${NEWDIAL}${THISPART2}&) [pbx_config]
  1193. 8. Set(ITER2=$[${ITER2} + 1]) [pbx_config]
  1194. 9. GotoIf($[${ITER2} <= ${LOOPCNT2}]?begin2) [pbx_config]
  1195. 10. Set(THISDIAL=${NEWDIAL:0:$[${LEN(${NEWDIAL})}-1]}) [pbx_config]
  1196. 11. Return() [pbx_config]
  1197. Include => 'macro-dial-one-custom' [pbx_config]
  1198.  
  1199. [ Context 'from-internal-additional' created by 'pbx_config' ]
  1200. 'h' => 1. Hangup() [pbx_config]
  1201. Include => 'from-internal-additional-custom' [pbx_config]
  1202. Include => 'app-recordings' [pbx_config]
  1203. Include => 'app-dialvm' [pbx_config]
  1204. Include => 'app-vmmain' [pbx_config]
  1205. Include => 'app-calltrace' [pbx_config]
  1206. Include => 'app-echo-test' [pbx_config]
  1207. Include => 'app-speakextennum' [pbx_config]
  1208. Include => 'app-speakingclock' [pbx_config]
  1209. Include => 'app-userlogonoff' [pbx_config]
  1210. Include => 'ext-local-confirm' [pbx_config]
  1211. Include => 'findmefollow-ringallv2' [pbx_config]
  1212. Include => 'app-pickup' [pbx_config]
  1213. Include => 'app-zapbarge' [pbx_config]
  1214. Include => 'app-chanspy' [pbx_config]
  1215. Include => 'ext-test' [pbx_config]
  1216. Include => 'ext-local' [pbx_config]
  1217. Include => 'outbound-allroutes' [pbx_config]
  1218.  
  1219. [ Context 'from-internal-noxfer-additional' created by 'pbx_config' ]
  1220. 'h' => 1. Hangup() [pbx_config]
  1221. Include => 'from-internal-noxfer-additional-custom' [pbx_config]
  1222.  
  1223. [ Context 'from-pstn' created by 'pbx_config' ]
  1224. 's' => 1. Answer() [pbx_config]
  1225. 2. Playback(cc_welcome) [pbx_config]
  1226. 3. Hangup() [pbx_config]
  1227. Include => 'from-pstn-custom' [pbx_config]
  1228. Include => 'ext-did' [pbx_config]
  1229. Include => 'ext-did-post-custom' [pbx_config]
  1230. Include => 'from-did-direct' [pbx_config]
  1231. Include => 'ext-did-catchall' [pbx_config]
  1232.  
  1233. [ Context 'from-internal' created by 'DIGIUM_PHONE_USERS' ]
  1234. 'auto_hint_1200' => hint: SIP/1200,CustomPresence:1200 [DIGIUM_PHONE_USERS]
  1235. 'auto_hint_1222' => hint: SIP/1222,CustomPresence:1222 [DIGIUM_PHONE_USERS]
  1236. 'auto_hint_1234' => hint: SIP/1234,CustomPresence:1234 [DIGIUM_PHONE_USERS]
  1237. '_X.' => 1. Dial(dahdi/g0/${EXTEN}) [pbx_config]
  1238. 2. Hangup() [pbx_config]
  1239. Include => 'from-internal-noxfer' [pbx_config]
  1240. Include => 'from-internal-xfer' [pbx_config]
  1241. Include => 'bad-number' [pbx_config]
  1242.  
  1243. [ Context 'from-digital' created by 'pbx_config' ]
  1244. Include => 'from-pstn' [pbx_config]
  1245.  
  1246. [ Context 'from-analog' created by 'pbx_config' ]
  1247. Include => 'from-dahdi' [pbx_config]
  1248.  
  1249. [ Context 'from-trunk' created by 'pbx_config' ]
  1250. Include => 'from-pstn' [pbx_config]
  1251.  
  1252. [ Context 'from-pstn-e164-us' created by 'pbx_config' ]
  1253. 's' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  1254. 's' (CID match '_+X.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  1255. 's' (CID match '_011X.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1256. 's' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1257. 's' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1258. '_+1NXXNXXXXXX' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  1259. '_+1NXXNXXXXXX' (CID match '_+X.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  1260. '_+1NXXNXXXXXX' (CID match '_011X.') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  1261. '_+1NXXNXXXXXX' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  1262. '_+1NXXNXXXXXX' => 1. Goto(from-pstn,${EXTEN:2},1) [pbx_config]
  1263. '_[0-9+].' (CID match '_+1NXXNXXXXXX') => 1. Set(CALLERID(number)=${CALLERID(number):2}) [pbx_config]
  1264. '_[0-9+].' (CID match '_+X.') => 1. Set(CALLERID(number)=011${CALLERID(number):1}) [pbx_config]
  1265. '_[0-9+].' (CID match '_011X.') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1266. '_[0-9+].' (CID match '_NXXNXXXXXX') => 2. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1267. '_[0-9+].' => 1. Goto(from-pstn,${EXTEN},1) [pbx_config]
  1268.  
  1269. [ Context 'from-pstn-toheader' created by 'pbx_config' ]
  1270. '_.' => 1. Goto(from-pstn,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1) [pbx_config]
  1271.  
  1272. [ Context 'from-sip-external' created by 'pbx_config' ]
  1273. 'h' => 1. Hangup() [pbx_config]
  1274. 'i' => 1. Hangup() [pbx_config]
  1275. 's' => 1. GotoIf($["${ALLOW_SIP_ANON}"="yes"]?checklang:noanonymous) [pbx_config]
  1276. [checklang] 2. GotoIf($["${SIPLANG}"!=""]?setlanguage:from-trunk,${DID},1) [pbx_config]
  1277. [setlanguage] 3. Set(CHANNEL(language)=${SIPLANG}) [pbx_config]
  1278. 4. Goto(from-trunk,${DID},1) [pbx_config]
  1279. [noanonymous] 5. Set(TIMEOUT(absolute)=15) [pbx_config]
  1280. 6. Answer() [pbx_config]
  1281. 7. Wait(2) [pbx_config]
  1282. 8. Playback(ss-noservice) [pbx_config]
  1283. 9. Playtones(congestion) [pbx_config]
  1284. 10. Congestion(5) [pbx_config]
  1285. 't' => 1. Hangup() [pbx_config]
  1286. '_.' => 1. NoOp(Received incoming SIP connection from unknown peer to ${EXTEN}) [pbx_config]
  1287. 2. Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})}) [pbx_config]
  1288. 3. Goto(s,1) [pbx_config]
  1289.  
  1290. [ Context 'from-internal-noxfer' created by 'pbx_config' ]
  1291. Include => 'from-internal-noxfer-custom' [pbx_config]
  1292. Include => 'from-internal-noxfer-additional' [pbx_config]
  1293.  
  1294. [ Context 'from-internal-xfer' created by 'pbx_config' ]
  1295. 'h' => 1. Macro(hangupcall) [pbx_config]
  1296. 's' => 1. Macro(hangupcall) [pbx_config]
  1297. Include => 'from-internal-custom' [pbx_config]
  1298. Include => 'from-internal-additional' [pbx_config]
  1299.  
  1300. [ Context 'from-did-direct' created by 'pbx_config' ]
  1301. Include => 'ext-findmefollow' [pbx_config]
  1302. Include => 'ext-local' [pbx_config]
  1303.  
  1304. [ Context 'macro-dial' created by 'pbx_config' ]
  1305. 'ANSWER' => 1. Noop(Call successfully answered - Hanging up now) [pbx_config]
  1306. 2. Macro(hangupcall,) [pbx_config]
  1307. 'DONTCALL' => 1. Answer() [pbx_config]
  1308. 2. Wait(1) [pbx_config]
  1309. 3. Zapateller() [pbx_config]
  1310. 4. Playback(ss-noservice) [pbx_config]
  1311. 5. Macro(hangupcall) [pbx_config]
  1312. 'NOANSWER' => 1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  1313. 2. GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" = ""]?bye) [pbx_config]
  1314. 3. Return() [pbx_config]
  1315. [bye] 4. Macro(hangupcall) [pbx_config]
  1316. 'TORTURE' => 1. Goto(app-blackhole,musiconhold,1) [pbx_config]
  1317. 2. Macro(hangupcall) [pbx_config]
  1318. 'h' => 1. Macro(hangupcall) [pbx_config]
  1319. 's' => 1. GotoIf($["${MOHCLASS}" = ""]?dial) [pbx_config]
  1320. 2. SetMusicOnHold(${MOHCLASS}) [pbx_config]
  1321. [dial] 3. AGI(dialparties.agi) [pbx_config]
  1322. 4. NoOp(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
  1323. [normdial] 7. Dial(${ds}) [pbx_config]
  1324. 8. Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})}) [pbx_config]
  1325. 9. GosubIf($[("${SCREEN}" != "" & ("${DIALSTATUS}" = "TORTURE" | "${DIALSTATUS}" = "DONTCALL")) | "${DIALSTATUS}" = "ANSWER"]?${DIALSTATUS},1) [pbx_config]
  1326. [huntdial] 20. NoOp(Returned from dialparties with hunt groups to dial ) [pbx_config]
  1327. 21. Set(HuntLoop=0) [pbx_config]
  1328. [a22] 22. GotoIf($[${HuntMembers} >= 1]?a30) [pbx_config]
  1329. 23. NoOp(Returning there are no members left in the hunt group to ring) [pbx_config]
  1330. [a30] 26. Set(HuntMember=HuntMember${HuntLoop}) [pbx_config]
  1331. 27. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGroupMethod}" = "hunt" ] | $["${RingGroupMethod}" = "firstavailable"] | $["${RingGroupMethod}" = "firstnotonphone"]]]?a32:a35) [pbx_config]
  1332. [a32] 28. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])}) [pbx_config]
  1333. 29. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
  1334. 30. Goto(s,a42) [pbx_config]
  1335. [a35] 31. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupMethod}" = "memoryhunt" ]]?a36:a50) [pbx_config]
  1336. [a36] 32. Set(CTLoop=0) [pbx_config]
  1337. [a37] 33. GotoIf($[${CTLoop} > ${HuntLoop}]?a42) [pbx_config]
  1338. 34. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])}) [pbx_config]
  1339. 35. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_config]
  1340. 36. Set(CTLoop=$[1 + ${CTLoop}]) [pbx_config]
  1341. 37. Goto(s,a37) [pbx_config]
  1342. [a42] 38. Dial(${${HuntMember}}${ds}) [pbx_config]
  1343. 39. GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1) [pbx_config]
  1344. 40. Set(HuntLoop=$[1 + ${HuntLoop}]) [pbx_config]
  1345. 41. GotoIf($[$[$["foo${RingGroupMethod}" != "foofirstavailable"] & $["foo${RingGroupMethod}" != "foofirstnotonphone"]] | $["foo${DialStatus}" = "fooBUSY"]]?a46) [pbx_config]
  1346. 42. Set(HuntMembers=0) [pbx_config]
  1347. [a46] 43. Set(HuntMembers=$[${HuntMembers} - 1]) [pbx_config]
  1348. 44. Goto(s,a22) [pbx_config]
  1349. [a50] 45. DBdel(CALLTRACE/${CT_EXTEN}) [pbx_config]
  1350. 46. Goto(s,a42) [pbx_config]
  1351.  
  1352. [ Context 'macro-get-vmcontext' created by 'pbx_config' ]
  1353. 's' => 1. Set(VMCONTEXT=${DB(AMPUSER/${ARG1}/voicemail)}) [pbx_config]
  1354. 2. GotoIf($["foo${VMCONTEXT}" = "foo"]?200:300) [pbx_config]
  1355. 200. Set(VMCONTEXT=default) [pbx_config]
  1356. 300. NoOp() [pbx_config]
  1357.  
  1358. [ Context 'macro-outisbusy' created by 'pbx_config' ]
  1359. 's' => 1. Progress() [pbx_config]
  1360. 2. Playback(all-circuits-busy-now,noanswer) [pbx_config]
  1361. 3. Playback(pls-try-call-later,noanswer) [pbx_config]
  1362. 4. Macro(hangupcall) [pbx_config]
  1363.  
  1364. [ Context 'macro-dialout-trunk-predial-hook' created by 'pbx_config' ]
  1365. 's' => 1. MacroExit() [pbx_config]
  1366.  
  1367. [ Context 'macro-user-logon' created by 'pbx_config' ]
  1368. 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
  1369. 2. Answer() [pbx_config]
  1370. 3. Wait(1) [pbx_config]
  1371. 4. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
  1372. 5. Set(AMPUSER=${ARG1}) [pbx_config]
  1373. 6. GotoIf($["${AMPUSER}" != ""]?gotpass) [pbx_config]
  1374. [playagain] 7. Read(AMPUSER,please-enter-your-extension-then-press-pound,,,4) [pbx_config]
  1375. 8. GotoIf($["${AMPUSER}" = ""]?s-MAXATTEMPTS,1) [pbx_config]
  1376. [gotpass] 9. GotoIf($["${DB_EXISTS(AMPUSER/${AMPUSER}/password)}" = "0"]?s-NOUSER,1) [pbx_config]
  1377. 10. Set(AMPUSERPASS=${DB_RESULT}) [pbx_config]
  1378. 11. GotoIf($[${LEN(${AMPUSERPASS})} = 0]?s-NOPASSWORD,1) [pbx_config]
  1379. 12. Set(DEVICEUSER=${DB(DEVICE/${CALLERID(number)}/user)}) [pbx_config]
  1380. 13. GotoIf($["${DEVICEUSER}" = "${AMPUSER}"]?s-ALREADYLOGGEDON,1) [pbx_config]
  1381. 14. Authenticate(${AMPUSERPASS}) [pbx_config]
  1382. 15. AGI(user_login_out.agi,login,${CALLERID(number)},${AMPUSER}) [pbx_config]
  1383. 16. Playback(agent-loginok) [pbx_config]
  1384. 's-ALREADYLOGGEDON' => 1. NoOp(This device has already been logged into by this user) [pbx_config]
  1385. 2. Playback(vm-goodbye) [pbx_config]
  1386. 3. Hangup() [pbx_config]
  1387. 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged into) [pbx_config]
  1388. 2. Playback(ha/phone) [pbx_config]
  1389. 3. SayDigits(${CALLERID(number)}) [pbx_config]
  1390. 4. Playback(is-curntly-unavail&vm-goodbye) [pbx_config]
  1391. 5. Hangup() [pbx_config]
  1392. 's-MAXATTEMPTS' => 1. NoOp(Too many login attempts) [pbx_config]
  1393. 2. Playback(vm-goodbye) [pbx_config]
  1394. 3. Hangup() [pbx_config]
  1395. 's-NOPASSWORD' => 1. NoOp(This extension does not exist or no password is set) [pbx_config]
  1396. 2. Playback(pbx-invalid) [pbx_config]
  1397. 3. Goto(s,playagain) [pbx_config]
  1398. 's-NOUSER' => 1. NoOp(Invalid extension ${AMPUSER} entered) [pbx_config]
  1399. 2. Playback(pbx-invalid) [pbx_config]
  1400. 3. Goto(s,playagain) [pbx_config]
  1401.  
  1402. [ Context 'macro-user-logoff' created by 'pbx_config' ]
  1403. 's' => 1. Set(DEVICETYPE=${DB(DEVICE/${CALLERID(number)}/type)}) [pbx_config]
  1404. 2. GotoIf($["${DEVICETYPE}" = "fixed"]?s-FIXED,1) [pbx_config]
  1405. 3. AGI(user_login_out.agi,logout,${CALLERID(number)}) [pbx_config]
  1406. [done] 4. Playback(agent-loggedoff) [pbx_config]
  1407. 's-FIXED' => 1. NoOp(Device is FIXED and cannot be logged out of) [pbx_config]
  1408. 2. Playback(an-error-has-occured&vm-goodbye) [pbx_config]
  1409. 3. Hangup() [pbx_config]
  1410.  
  1411. [ Context 'macro-privacy-mgr' created by 'pbx_config' ]
  1412. 'h' => 1. Hangup() [pbx_config]
  1413. 's' => 1. Set(KEEPCID=${CALLERID(num)}) [pbx_config]
  1414. 2. GotoIf($["foo${CALLERID(num):0:1}"="foo+"]?CIDTEST2:CIDTEST1) [pbx_config]
  1415. [CIDTEST1] 3. Set(TESTCID=${MATH(1+${CALLERID(num)})}) [pbx_config]
  1416. 4. Goto(TESTRESULT) [pbx_config]
  1417. [CIDTEST2] 5. Set(TESTCID=${MATH(1+${CALLERID(num):1})}) [pbx_config]
  1418. [TESTRESULT] 6. GotoIf($["foo${TESTCID}"="foo"]?CLEARCID:PRIVMGR) [pbx_config]
  1419. [CLEARCID] 7. Set(CALLERID(num)=) [pbx_config]
  1420. [PRIVMGR] 8. PrivacyManager(${ARG1},${ARG2}) [pbx_config]
  1421. 9. GotoIf($["${PRIVACYMGRSTATUS}"="FAILED"]?fail) [pbx_config]
  1422. 10. GosubIf($["${CALLED_BLACKLIST}" = "1"]?app-blacklist-check,s,1) [pbx_config]
  1423. 11. SetCallerPres(allowed_passed_screen) [pbx_config]
  1424. [fail] 109. Noop(STATUS: ${PRIVACYMGRSTATUS} CID: ${CALLERID(num)} ${CALLERID(name)} CALLPRES: ${CALLLINGPRES}) [pbx_config]
  1425. 110. Playback(sorry-youre-having-problems) [pbx_config]
  1426. 111. Playback(goodbye) [pbx_config]
  1427. 112. Playtones(congestion) [pbx_config]
  1428. 113. Congestion(5) [pbx_config]
  1429.  
  1430. [ Context 'default' created by 'pbx_config' ]
  1431. 's' => 1. Playback(vm-goodbye) [pbx_config]
  1432. 2. Noop(ERROR: FreePBX Does not use the [default] context, confguration error) [pbx_config]
  1433. 3. Macro(hangupcall) [pbx_config]
  1434. Include => 'ext-local' [pbx_config]
  1435.  
  1436. [ Context 'macro-fixcid' created by 'pbx_config' ]
  1437. 's' => 1. Set(CALLERID(name)=${CALLERID(name)}) [pbx_config]
  1438.  
  1439. [ Context 'macro-saytext' created by 'pbx_config' ]
  1440. 's' => 1. Noop(Trying custom SayText playback for "${ARG1}") [pbx_config]
  1441. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  1442. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  1443. [tts] 4. Macro(tts-saytext,${ARG1},${ARG2},${ARG3}) [pbx_config]
  1444. 5. Noop(No text-to-speech handler for SayText, cannot say "${ARG1}") [pbx_config]
  1445. 6. Goto(done) [pbx_config]
  1446. 105. Noop(tts handled saytext) [pbx_config]
  1447.  
  1448. [ Context 'macro-sayname' created by 'pbx_config' ]
  1449. 's' => 1. Noop(Trying custom SayName playback for "${ARG1}") [pbx_config]
  1450. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  1451. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  1452. [tts] 4. Macro(tts-sayalpha,${ARG1},${ARG2},${ARG3}) [pbx_config]
  1453. 5. SayAlpha(${ARG1}) [pbx_config]
  1454. 6. Goto(done) [pbx_config]
  1455. 105. Noop(tts handled sayname) [pbx_config]
  1456.  
  1457. [ Context 'macro-saynumber' created by 'pbx_config' ]
  1458. 's' => 1. Noop(Trying custom SayNumber playback for "${ARG1}") [pbx_config]
  1459. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  1460. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  1461. [tts] 4. Macro(tts-saynumber,${ARG1},${ARG2},${ARG3}) [pbx_config]
  1462. 5. SayNumber(${ARG1}) [pbx_config]
  1463. 6. Goto(done) [pbx_config]
  1464. 105. Noop(tts handled saynumber) [pbx_config]
  1465.  
  1466. [ Context 'macro-saydigits' created by 'pbx_config' ]
  1467. 's' => 1. Noop(Trying custom SayDigits playback for "${ARG1}") [pbx_config]
  1468. 2. Playback(tts/custom-${MD5(${ARG1})}) [pbx_config]
  1469. 3. GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) [pbx_config]
  1470. [tts] 4. Macro(tts-saydigits,${ARG1},${ARG2},${ARG3}) [pbx_config]
  1471. 5. SayDigits(${ARG1}) [pbx_config]
  1472. 6. Goto(done) [pbx_config]
  1473.  
  1474. [ Context 'app_queue_gosub_virtual_context' created by 'app_queue' ]
  1475. 's' => 1. NoOp() [app_queue]
  1476.  
  1477. [ Context 'app_dial_gosub_virtual_context' created by 'app_dial' ]
  1478. 's' => 1. NoOp() [app_dial]
  1479.  
  1480. [ Context 'parkedcalls' created by 'features' ]
  1481. '700' => 1. Park() [features]
  1482.  
  1483. [ Context 'dpma_message_context' created by 'digium_phone_module' ]
  1484. 'proxy' => 1. Verbose(No Valid DPMA License found. Module is loaded but disabled. Please reload module once valid license is installed.) [digium_phone_module]
  1485.  
  1486. [ Context 'ael-default' created by 'pbx_ael' ]
  1487. Include => 'ael-demo' [pbx_ael]
  1488.  
  1489. [ Context 'ael-demo' created by 'pbx_ael' ]
  1490. '#' => 1. Playback(demo-thanks) [pbx_ael]
  1491. 2. Hangup() [pbx_ael]
  1492. '1000' => 1. Goto(ael-default,s,1) [pbx_ael]
  1493. '2' => 1. Background(demo-moreinfo) [pbx_ael]
  1494. 2. Goto(s,instructions) [pbx_ael]
  1495. '3' => 1. Set(LANGUAGE()=fr) [pbx_ael]
  1496. 2. Goto(s,restart) [pbx_ael]
  1497. '500' => 1. Playback(demo-abouttotry) [pbx_ael]
  1498. 2. Dial(IAX2/guest@misery.digium.com/s@default) [pbx_ael]
  1499. 3. Playback(demo-nogo) [pbx_ael]
  1500. 4. Goto(s,instructions) [pbx_ael]
  1501. '600' => 1. Playback(demo-echotest) [pbx_ael]
  1502. 2. Echo() [pbx_ael]
  1503. 3. Playback(demo-echodone) [pbx_ael]
  1504. 4. Goto(s,instructions) [pbx_ael]
  1505. '8500' => 1. VoicemailMain() [pbx_ael]
  1506. 2. Goto(s,instructions) [pbx_ael]
  1507. 'i' => 1. Playback(invalid) [pbx_ael]
  1508. 's' => 1. Wait(1) [pbx_ael]
  1509. 2. Answer() [pbx_ael]
  1510. 3. Set(TIMEOUT(digit)=5) [pbx_ael]
  1511. 4. Set(TIMEOUT(response)=10) [pbx_ael]
  1512. [restart] 5. Background(demo-congrats) [pbx_ael]
  1513. [instructions] 6. MSet(x=$[0]) [pbx_ael]
  1514. 7. GotoIf($[ ${x} < 3]?8:12) [pbx_ael]
  1515. 8. Background(demo-instruct) [pbx_ael]
  1516. 9. WaitExten() [pbx_ael]
  1517. 10. MSet(x=$[${x} + 1]) [pbx_ael]
  1518. 11. Goto(7) [pbx_ael]
  1519. 12. NoOp(Finish for_ael-demo_12) [pbx_ael]
  1520. 't' => 1. Goto(#,1) [pbx_ael]
  1521. '_1234' => 1. Gosub(ael-std-exten-ael,~~s~~,1(${EXTEN}, "IAX2")) [pbx_ael]
  1522.  
  1523. [ Context 'ael-std-exten-ael' created by 'pbx_ael' ]
  1524. 'a' => 1. VoiceMailMain(${ext}) [pbx_ael]
  1525. 2. Return() [pbx_ael]
  1526. 'sw_10_' => 10. Goto(sw_10_.,10) [pbx_ael]
  1527. 'sw_10_BUSY' => 10. Voicemail(${ext},b) [pbx_ael]
  1528. 11. Goto(~~s~~,7) [pbx_ael]
  1529. '~~s~~' => 1. MSet(LOCAL(ext)=${ARG1}) [pbx_ael]
  1530. 2. MSet(LOCAL(dev)=${ARG2}) [pbx_ael]
  1531. 3. MSet(LOCAL(~~EXTEN~~)=${EXTEN}) [pbx_ael]
  1532. 4. MSet(LOCAL(~~EXTEN~~)=${~~EXTEN~~}) [pbx_ael]
  1533. 5. Dial(${dev}/${ext},20) [pbx_ael]
  1534. 6. Goto(sw_10_${DIALSTATUS},10) [pbx_ael]
  1535. 7. NoOp(Finish switch_ael-std-exten-ael_10) [pbx_ael]
  1536. 8. Return() [pbx_ael]
  1537. '_sw_10_.' => 10. Voicemail(${ext},u) [pbx_ael]
  1538. 11. Goto(~~s~~,7) [pbx_ael]
  1539.  
  1540. [ Context 'ael-local' created by 'pbx_ael' ]
  1541. Include => 'ael-default' [pbx_ael]
  1542. Include => 'ael-trunklocal' [pbx_ael]
  1543. Include => 'ael-iaxtel700' [pbx_ael]
  1544. Include => 'ael-trunktollfree' [pbx_ael]
  1545. Include => 'ael-iaxprovider' [pbx_ael]
  1546. Ignore pattern => '9' [pbx_ael]
  1547.  
  1548. [ Context 'ael-longdistance' created by 'pbx_ael' ]
  1549. Include => 'ael-local' [pbx_ael]
  1550. Include => 'ael-trunkld' [pbx_ael]
  1551. Ignore pattern => '9' [pbx_ael]
  1552.  
  1553. [ Context 'ael-international' created by 'pbx_ael' ]
  1554. Include => 'ael-longdistance' [pbx_ael]
  1555. Include => 'ael-trunkint' [pbx_ael]
  1556. Ignore pattern => '9' [pbx_ael]
  1557.  
  1558. [ Context 'ael-trunktollfree' created by 'pbx_ael' ]
  1559. '_91800NXXXXXX' => 1. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1560. '_91866NXXXXXX' => 1. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1561. '_91877NXXXXXX' => 1. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1562. '_91888NXXXXXX' => 1. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1563.  
  1564. [ Context 'ael-trunklocal' created by 'pbx_ael' ]
  1565. '_9NXXXXXX' => 1. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1566.  
  1567. [ Context 'ael-trunkld' created by 'pbx_ael' ]
  1568. '_91NXXNXXXXXX' => 1. Gosub(ael-dundi-e164,~~s~~,1(${EXTEN:1})) [pbx_ael]
  1569. 2. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1570. Include => 'ael-dundi-e164-lookup' [pbx_ael]
  1571.  
  1572. [ Context 'ael-trunkint' created by 'pbx_ael' ]
  1573. '_9011.' => 1. Gosub(ael-dundi-e164,~~s~~,1(${EXTEN:4})) [pbx_ael]
  1574. 2. Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}}) [pbx_ael]
  1575. Include => 'ael-dundi-e164-lookup' [pbx_ael]
  1576.  
  1577. [ Context 'ael-iaxprovider' created by 'pbx_ael' ]
  1578.  
  1579. [ Context 'ael-iaxtel700' created by 'pbx_ael' ]
  1580. '_91700XXXXXXX' => 1. Dial(IAX2/${IAXINFO-AEL}@iaxtel.com/${EXTEN:1}@iaxtel) [pbx_ael]
  1581.  
  1582. [ Context 'ael-dundi-e164' created by 'pbx_ael' ]
  1583. '~~s~~' => 1. MSet(LOCAL(exten)=${ARG1}) [pbx_ael]
  1584. 2. Goto(${exten},1) [pbx_ael]
  1585. 3. Return() [pbx_ael]
  1586.  
  1587. [ Context 'ael-dundi-e164-lookup' created by 'pbx_ael' ]
  1588. Include => 'ael-dundi-e164-local' [pbx_ael]
  1589. Include => 'ael-dundi-e164-switch' [pbx_ael]
  1590.  
  1591. [ Context 'ael-dundi-e164-switch' created by 'pbx_ael' ]
  1592. Alt. Switch => 'DUNDi/e164' [pbx_ael]
  1593.  
  1594. [ Context 'ael-dundi-e164-local' created by 'pbx_ael' ]
  1595. Include => 'ael-dundi-e164-canonical' [pbx_ael]
  1596. Include => 'ael-dundi-e164-customers' [pbx_ael]
  1597. Include => 'ael-dundi-e164-via-pstn' [pbx_ael]
  1598.  
  1599. [ Context 'ael-dundi-e164-via-pstn' created by 'pbx_ael' ]
  1600.  
  1601. [ Context 'ael-dundi-e164-customers' created by 'pbx_ael' ]
  1602.  
  1603. [ Context 'ael-dundi-e164-canonical' created by 'pbx_ael' ]
  1604.  
  1605. -= 296 extensions (1268 priorities) in 105 contexts. =-
  1606. Executing last minute cleanups
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement