3

From Dellsmsh, 1 Year ago, written in Plain Text, viewed 36 times.
URL https://pastebin.freepbx.org/view/ad1b9789 Embed
Download Paste or View Raw
  1. ]
  2.      [vmxpri]       55. Set(VMX_PRI=${IF($["${DB_EXISTS(AMPUSER/${MEXTEN}/vmx/${   MODE}/${ACTION}/pri)}" = "1"]?${DB_RESULT}:${VMX_PRI})}) [pbx_config]
  3.      [vmxgoto]      56. Goto(${VMX_CONTEXT},${VMX_EXT},${VMX_PRI}) [pbx_config]
  4.      [nofile]       57. Noop(File for mode: ${MODE} does not exist, SYSTEMSTATUS   : ${SYSTEMSTATUS}, going to normal voicemail) [pbx_config]
  5.                     58. Goto(s-${MMODE},1)                        [pbx_config]
  6.      [tmpgreet]     59. Noop(Temporary Greeting Detected, going to normal voicem   ail) [pbx_config]
  7.                     60. Goto(s-${MMODE},1)                        [pbx_config]
  8.   '_s-.' =>         1. Macro(get-vmcontext,${MEXTEN})             [pbx_config]
  9.                     2. VoiceMail(${MEXTEN}@${VMCONTEXT},${VM_OPTS}u${VMGAIN}) [p   bx_config]
  10.                     3. Goto(exit-${VMSTATUS},1)                   [pbx_config]
  11.   Include =>        'macro-vm-custom'                             [pbx_config]
  12.  
  13. [ Context 'macro-block-cf' created by 'pbx_config' ]
  14.   's-ANSWER' =>     1. Noop(Call successfully answered - Hanging up now) [pbx_co   nfig]
  15.                     2. Macro(hangupcall,)                         [pbx_config]
  16.   '_X.' =>          1. Hangup()                                   [pbx_config]
  17.   Include =>        'macro-block-cf-custom'                       [pbx_config]
  18.  
  19. [ Context 'macro-setmusic' created by 'pbx_config' ]
  20.   's' =>            1. Set(CHANNEL(musicclass)=${ARG1})           [pbx_config]
  21.   Include =>        'macro-setmusic-custom'                       [pbx_config]
  22.  
  23. [ Context 'macro-dial-confirm' created by 'pbx_config' ]
  24.   's' =>            1. Set(DB(RG/${ARG4}/${CHANNEL})=RINGING)     [pbx_config]
  25.                     2. Set(__UNIQCHAN=${CHANNEL})                 [pbx_config]
  26.                     3. Set(USE_CONFIRMATION=TRUE)                 [pbx_config]
  27.                     4. Set(RINGGROUP_INDEX=${ARG4})               [pbx_config]
  28.                     5. Set(FORCE_CONFIRM=)                        [pbx_config]
  29.                     6. Set(ARG4=)                                 [pbx_config]
  30.                     7. Macro(dial,${ARG1},${ARG2},${ARG3})        [pbx_config]
  31.                     8. Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELE   TE(RG/${RINGGROUP_INDEX}/${CHANNEL})}) [pbx_config]
  32.                     9. Set(USE_CONFIRMATION=)                     [pbx_config]
  33.                     10. Set(RINGGROUP_INDEX=)                     [pbx_config]
  34.   Include =>        'macro-dial-confirm-custom'                   [pbx_config]
  35.  
  36. [ Context 'from-dahdi' created by 'pbx_config' ]
  37.   's' =>            1. Noop(Entering from-dahdi with DID == ${DID}) [pbx_config]
  38.                     2. Ringing()                                  [pbx_config]
  39.                     3. Set(DID=${IF($["${DID}"= ""]?s:${DID})})   [pbx_config]
  40.                     4. Noop(DID is now ${DID})                    [pbx_config]
  41.                     5. GotoIf($["${CHANNEL:0:5}"="DAHDI"]?dahdiok:checkzap) [pbx   _config]
  42.      [checkzap]     6. GotoIf($["${CHANNEL:0:3}"="Zap"]?zapok:neither) [pbx_conf   ig]
  43.      [neither]      7. Goto(from-pstn,${DID},1)                   [pbx_config]
  44.                     8. Macro(Hangupcall,dummy)                    [pbx_config]
  45.      [dahdiok]      9. Noop(Is a DAHDi Channel)                   [pbx_config]
  46.                     10. Set(CHAN=${CHANNEL:6})                    [pbx_config]
  47.                     11. Set(CHAN=${CUT(CHAN,-,1)})                [pbx_config]
  48.                     12. Macro(from-dahdi-${CHAN},${DID},1)        [pbx_config]
  49.                     13. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config   ]
  50.                     14. Goto(from-pstn,${DID},1)                  [pbx_config]
  51.      [zapok]        15. Noop(Is a Zaptel Channel)                 [pbx_config]
  52.                     16. Set(CHAN=${CHANNEL:4})                    [pbx_config]
  53.                     17. Set(CHAN=${CUT(CHAN,-,1)})                [pbx_config]
  54.                     18. Macro(from-dahdi-${CHAN},${DID},1)        [pbx_config]
  55.                     19. Noop(Returned from Macro from-dahdi-${CHAN}) [pbx_config   ]
  56.                     20. Goto(from-pstn,${DID},1)                  [pbx_config]
  57.   '_X.' =>          1. Set(DID=${EXTEN})                          [pbx_config]
  58.                     2. Goto(s,1)                                  [pbx_config]
  59.   Include =>        'from-dahdi-custom'                           [pbx_config]
  60.  
  61. [ Context 'from-zaptel' created by 'pbx_config' ]
  62.   'foo' =>          1. Noop(bar)                                  [pbx_config]
  63.   Include =>        'from-zaptel-custom'                          [pbx_config]
  64.   Include =>        'from-dahdi'                                  [pbx_config]
  65.  
  66. [ Context 'macro-outbound-callerid' created by 'pbx_config' ]
  67.   's' =>            1. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(na   me-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
  68.                     2. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num   -pres)=${CALLINGNUMPRES_SV})) [pbx_config]
  69.                     3. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDN   UM=${CALLERID(number)})) [pbx_config]
  70.      [start]        4. GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" !   = "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid) [pbx_config]
  71.                     5. Set(USEROUTCID=${REALCALLERIDNUM})         [pbx_config]
  72.                     6. GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" =    "foo"]?bypass) [pbx_config]
  73.      [normcid]      7. Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)}) [pb   x_config]
  74.      [bypass]       8. Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency   _cid)}) [pbx_config]
  75.                     9. Set(TRUNKOUTCID=${OUTCID_${ARG1}})         [pbx_config]
  76.                     10. GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:   1:2}" = ""]?trunkcid) [pbx_config]
  77.                     11. Set(CALLERID(all)=${EMERGENCYCID})        [pbx_config]
  78.                     12. Set(CDR(outbound_cnum)=${CALLERID(num)})  [pbx_config]
  79.                     13. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
  80.      [exit]         14. MacroExit()                               [pbx_config]
  81.      [trunkcid]     15. ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=   ${TRUNKOUTCID})) [pbx_config]
  82.      [usercid]      16. ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=$   {USEROUTCID})) [pbx_config]
  83.                     17. ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORC   EDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}}   )}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})})) [pbx_config]
  84.      [hidecid]      18. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(na   me-pres)=prohib_passed_screen)) [pbx_config]
  85.                     19. ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(nu   m-pres)=prohib_passed_screen)) [pbx_config]
  86.                     20. Set(CDR(outbound_cnum)=${CALLERID(num)})  [pbx_config]
  87.                     21. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
  88.   Include =>        'macro-outbound-callerid-custom'              [pbx_config]
  89.  
  90. [ Context 'macro-user-callerid' created by 'pbx_config' ]
  91.   'en' =>           1. Playback(im-sorry&an-error-has-occurred&with&call-forward   ing) [pbx_config]
  92.                     2. Return()                                   [pbx_config]
  93.      [hook_1]       3. Playback(beep&im-sorry&your&simul-call-limit-reached&good   bye) [pbx_config]
  94.                     4. Return()                                   [pbx_config]
  95.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  96.   'ja' =>           1. Playback(im-sorry&call-forwarding&jp-no&an-error-has-occu   red) [pbx_config]
  97.                     2. Return()                                   [pbx_config]
  98.      [hook_1]       3. Playback(beep&im-sorry&simul-call-limit-reached) [pbx_con   fig]
  99.                     4. Return()                                   [pbx_config]
  100.   'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(macro-user-callerid,${CHANNE   L(language)})}]?macro-user-callerid,${CHANNEL(language)},${ARG1}():macro-user-ca   llerid,en,${ARG1}()) [pbx_config]
  101.                     2. Return()                                   [pbx_config]
  102.   's' =>            1. Set(TOUCH_MONITOR=${UNIQUEID})             [pbx_config]
  103.                     2. Set(AMPUSER=${IF($["${AMPUSER}" = ""]?${CALLERID(number)}   :${AMPUSER})}) [pbx_config]
  104.                     3. GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPU   SERCIDNAME})}]?report) [pbx_config]
  105.                     4. ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDN   UM=${CALLERID(number)})) [pbx_config]
  106.                     5. Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)}) [pbx_c   onfig]
  107.                     6. GotoIf($["${AMPUSER}" = "none"]?limit)     [pbx_config]
  108.                     7. Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)}) [pb   x_config]
  109.                     8. GotoIf($["${AMPUSERCIDNAME:1:2}" = ""]?report) [pbx_confi   g]
  110.                     9. Set(AMPUSERCID=${IF($["${ARG2}" != "EXTERNAL" & "${DB_EXI   STS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})}) [pbx_config]
  111.                     10. Set(__DIAL_OPTIONS=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER   }/dialopts)}" = "1"]?${DB_RESULT}:${DIAL_OPTIONS})}) [pbx_config]
  112.                     11. Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>) [   pbx_config]
  113.                     12. GotoIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})} & ${DB_E   XISTS(AMPUSER/${AMPUSER}/concurrency_limit)} & ${DB(AMPUSER/${AMPUSER}/concurren   cy_limit)}>0 & ${GROUP_COUNT(${AMPUSER}@concurrency_limit)}>=${DB(AMPUSER/${AMPU   SER}/concurrency_limit)}]?limit) [pbx_config]
  114.                     13. ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GRO   UP(concurrency_limit)=${AMPUSER})) [pbx_config]
  115.      [report]       14. GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?   continue) [pbx_config]
  116.      [report2]      15. Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ]   )}) [pbx_config]
  117.                     16. GotoIf($[ ${TTL} > 0 ]?continue)          [pbx_config]
  118.                     17. Wait(${RINGTIMER})                        [pbx_config]
  119.                     18. Answer()                                  [pbx_config]
  120.                     19. Wait(1)                                   [pbx_config]
  121.                     20. Gosub(macro-user-callerid,lang-playback,1(hook_0)) [pbx_   config]
  122.                     21. Macro(hangupcall,)                        [pbx_config]
  123.      [limit]        22. Answer()                                  [pbx_config]
  124.                     23. Wait(1)                                   [pbx_config]
  125.                     24. Gosub(macro-user-callerid,lang-playback,1(hook_1)) [pbx_   config]
  126.                     25. Macro(hangupcall,)                        [pbx_config]
  127.                     26. Congestion(20)                            [pbx_config]
  128.      [continue]     27. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_conf   ig]
  129.                     28. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  130.                     29. GotoIf($["${CALLERID(name)}" = ""]?cnum)  [pbx_config]
  131.                     30. Set(CDR(cnam)=${CALLERID(name)})          [pbx_config]
  132.      [cnum]         31. Set(CDR(cnum)=${CALLERID(num)})           [pbx_config]
  133.                     32. Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language)   )}) [pbx_config]
  134.   Include =>        'macro-user-callerid-custom'                  [pbx_config]
  135.  
  136. [ Context 'macro-privacy-mgr' created by 'pbx_config' ]
  137.   'h' =>            1. Hangup()                                   [pbx_config]
  138.   's' =>            1. Set(KEEPCID=${CALLERID(num)})              [pbx_config]
  139.                     2. Set(TESTCID=${IF($["${CALLERID(num):0:1}"="+"]?${MATH(1+$   {CALLERID(num):1})}:${MATH(1+${CALLERID(num)})})}) [pbx_config]
  140.                     3. ExecIf($[${LEN(${TESTCID})}=0]?Set(CALLERID(num)=)) [pbx_   config]
  141.                     4. PrivacyManager(${ARG1},${ARG2})            [pbx_config]
  142.                     5. GotoIf($["${PRIVACYMGRSTATUS}"="FAILED"]?fail) [pbx_confi   g]
  143.                     6. GosubIf($["${CALLED_BLACKLIST}"="1"]?app-blacklist-check,   s,1()) [pbx_config]
  144.                     7. Set(CALLERID(num-pres)=allowed_passed_screen) [pbx_config   ]
  145.                     8. MacroExit()                                [pbx_config]
  146.      [fail]         9. Noop(STATUS: ${PRIVACYMGRSTATUS} CID: ${CALLERID(num)} ${   CALLERID(name)} CALLPRES: ${CALLLINGPRES}) [pbx_config]
  147.                     10. Playback(sorry-youre-having-problems&goodbye) [pbx_confi   g]
  148.                     11. Playtones(congestion)                     [pbx_config]
  149.                     12. Congestion(20)                            [pbx_config]
  150.   Include =>        'macro-privacy-mgr-custom'                    [pbx_config]
  151.  
  152. [ Context 'macro-dialout-trunk' created by 'pbx_config' ]
  153.   '1' =>            1. Goto(s-INVALIDNMBR,1)                      [pbx_config]
  154.   '17' =>           1. Goto(s-BUSY,1)                             [pbx_config]
  155.   '18' =>           1. Goto(s-NOANSWER,1)                         [pbx_config]
  156.   '22' =>           1. Goto(s-CHANGED,1)                          [pbx_config]
  157.   '23' =>           1. Goto(s-CHANGED,1)                          [pbx_config]
  158.   '28' =>           1. Goto(s-INVALIDNMBR,1)                      [pbx_config]
  159.   'bypass' =>       1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialou   t-trunk-predial-hook) [pbx_config]
  160.   'continue' =>     1. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE:    ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
  161.                     2. ExecIf($["${AMPUSER}"!="" ]?Set(CALLERID(number)=${AMPUSE   R})) [pbx_config]
  162.   'disabletrunk' => 1. Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling throu   gh to next trunk) [pbx_config]
  163.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  164.   's' =>            1. Set(DIAL_TRUNK=${ARG1})                    [pbx_config]
  165.                     2. GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}   /pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1()) [pbx_config]
  166.                     3. GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disablet   runk,1) [pbx_config]
  167.                     4. Set(DIAL_NUMBER=${ARG2})                   [pbx_config]
  168.                     5. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS})    [pbx_config]
  169.                     6. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK})      [pbx_config]
  170.                     7. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax   ) [pbx_config]
  171.                     8. GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCH   ANS_${DIAL_TRUNK}} ]?chanfull) [pbx_config]
  172.      [nomax]        9. GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) [pbx   _config]
  173.                     10. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_   TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
  174.                     11. Macro(outbound-callerid,${DIAL_TRUNK})    [pbx_config]
  175.      [skipoutcid]   12. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp   -${DIAL_TRUNK},s,1()) [pbx_config]
  176.                     13. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pb   x_config]
  177.                     14. Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) [pbx_config]
  178.                     15. ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" &    "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRU   NK_OPTIONS})) [pbx_config]
  179.                     16. ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS   =${DIAL_TRUNK_OPTIONS}M(confirm))) [pbx_config]
  180.      [gocall]       17. Macro(dialout-trunk-predial-hook,)        [pbx_config]
  181.                     18. GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) [pb   x_config]
  182.                     19. ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(   CONNECTEDLINE(num,i)=${DIAL_NUMBER})) [pbx_config]
  183.                     20. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] &    $["${CALLERID(name)}"!="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(numbe   r)})) [pbx_config]
  184.                     21. ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] &    $["${CALLERID(name)}"="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:(Hidden)${CALLERI   D(number)})) [pbx_config]
  185.                     22. GotoIf($["${custom}" = "AMP"]?customtrunk) [pbx_config]
  186.                     23. Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_S   UFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  187.                     24. Noop(Dial failed for some reason with DIALSTATUS = ${DIA   LSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  188.                     25. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1)    [pbx_config]
  189.      [customtrunk]  26. Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) [pbx_config]
  190.                     27. Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) [pbx_config]
  191.                     28. Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) [pbx_config]
  192.                     29. GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) [pb   x_config]
  193.      [outnum]       30. Set(the_num=${OUTNUM})                    [pbx_config]
  194.      [skipoutnum]   31. Dial(${pre_num:4}${the_num}${post_num},${TRUNK_RING_TIME   R},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  195.                     32. Noop(Dial failed for some reason with DIALSTATUS = ${DIA   LSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) [pbx_config]
  196.                     33. GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1)    [pbx_config]
  197.      [chanfull]     34. Noop(max channels used up)                [pbx_config]
  198.   's-ANSWER' =>     1. Noop(Call successfully answered - Hanging up now) [pbx_co   nfig]
  199.                     2. Macro(hangupcall,)                         [pbx_config]
  200.   's-BUSY' =>       1. Noop(Dial failed due to trunk reporting BUSY - giving up)    [pbx_config]
  201.                     2. Playtones(busy)                            [pbx_config]
  202.                     3. Busy(20)                                   [pbx_config]
  203.   's-CHANGED' =>    1. Noop(Dial failed due to trunk reporting Number Changed -    giving up) [pbx_config]
  204.                     2. Playtones(busy)                            [pbx_config]
  205.                     3. Busy(20)                                   [pbx_config]
  206.   's-INVALIDNMBR' => 1. Noop(Dial failed due to trunk reporting Address Incomple   te - giving up) [pbx_config]
  207.                     2. Progress()                                 [pbx_config]
  208.                     3. Playback(ss-noservice,noanswer)            [pbx_config]
  209.                     4. Busy(20)                                   [pbx_config]
  210.   's-NOANSWER' =>   1. Noop(Dial failed due to trunk reporting NOANSWER - giving    up) [pbx_config]
  211.                     2. Progress()                                 [pbx_config]
  212.                     3. Playback(number-not-answering,noanswer)    [pbx_config]
  213.                     4. Congestion(20)                             [pbx_config]
  214.   '_s-.' =>         1. Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE}   )}) [pbx_config]
  215.                     2. Goto(${RC},1)                              [pbx_config]
  216.   '_X.' =>          1. Goto(continue,1)                           [pbx_config]
  217.   '_X' =>           1. Goto(continue,1)                           [pbx_config]
  218.   Include =>        'macro-dialout-trunk-custom'                  [pbx_config]
  219.  
  220. [ Context 'sub-pincheck' created by 'pbx_config' ]
  221.   's' =>            1. Authenticate(${ARG3},)                     [pbx_config]
  222.                     2. ResetCDR()                                 [pbx_config]
  223.                     3. Return()                                   [pbx_config]
  224.   Include =>        'sub-pincheck-custom'                         [pbx_config]
  225.  
  226. [ Context 'macro-auto-blkvm' created by 'pbx_config' ]
  227.   's' =>            1. Set(__MACRO_RESULT=)                       [pbx_config]
  228.                     2. Set(CFIGNORE=)                             [pbx_config]
  229.                     3. Set(MASTER_CHANNEL(CFIGNORE)=)             [pbx_config]
  230.                     4. Set(FORWARD_CONTEXT=from-internal)         [pbx_config]
  231.                     5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_c   onfig]
  232.                     6. Macro(blkvm-clr,)                          [pbx_config]
  233.                     7. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB   (AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${D   IALEDPEERNUMBER})) [pbx_config]
  234.                     8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB   (AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${   DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  235.   Include =>        'macro-auto-blkvm-custom'                     [pbx_config]
  236.  
  237. [ Context 'macro-auto-confirm' created by 'pbx_config' ]
  238.   's' =>            1. Set(__MACRO_RESULT=)                       [pbx_config]
  239.                     2. Set(CFIGNORE=)                             [pbx_config]
  240.                     3. Set(MASTER_CHANNEL(CFIGNORE)=)             [pbx_config]
  241.                     4. Set(FORWARD_CONTEXT=from-internal)         [pbx_config]
  242.                     5. Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal) [pbx_c   onfig]
  243.                     6. Macro(blkvm-clr,)                          [pbx_config]
  244.                     7. Noop(Deleting: RG/${ARG1}/${UNIQCHAN} ${DB_DELETE(RG/${AR   G1}/${UNIQCHAN})}) [pbx_config]
  245.                     8. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB   (AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${D   IALEDPEERNUMBER})) [pbx_config]
  246.                     9. ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB   (AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${   DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)})) [pbx_config]
  247.   Include =>        'macro-auto-confirm-custom'                   [pbx_config]
  248.  
  249. [ Context 'macro-confirm' created by 'pbx_config' ]
  250.   '1' =>            1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${   SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  251.                     2. Noop(Deleting: RG/${ARG3}/${UNIQCHAN} ${DB_DELETE(RG/${AR   G3}/${UNIQCHAN})}) [pbx_config]
  252.                     3. Macro(blkvm-clr,)                          [pbx_config]
  253.                     4. Set(SHARED(ANSWER_STATUS,${FORCE_CONFIRM})=) [pbx_config]
  254.      [skip]         5. Set(__MACRO_RESULT=)                       [pbx_config]
  255.                     6. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")   ]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  256.      [exitopt1]     7. MacroExit()                                [pbx_config]
  257.   '2' =>            1. Goto(noanswer,1)                           [pbx_config]
  258.   '3' =>            1. SayDigits(${CALLCONFIRMCID})               [pbx_config]
  259.                     2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${   SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1:s,start) [pbx_config]
  260.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  261.   'noanswer' =>     1. Set(__MACRO_RESULT=ABORT)                  [pbx_config]
  262.      [exitnoanswer] 2. MacroExit()                                [pbx_config]
  263.   's' =>            1. Set(LOOPCOUNT=0)                           [pbx_config]
  264.                     2. Set(__MACRO_RESULT=ABORT)                  [pbx_config]
  265.                     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]
  266.      [start]        4. Background(${MSG1},m,${CHANNEL(language)},macro-confirm)    [pbx_config]
  267.                     5. Read(INPUT,,1,,,4)                         [pbx_config]
  268.                     6. GotoIf($[${LEN(${INPUT})} > 0]?${INPUT},1:t,1) [pbx_confi   g]
  269.   't' =>            1. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" & "${   SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  270.                     2. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ])       [pbx_config]
  271.                     3. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_con   fig]
  272.   'toolate' =>      1. Set(MSG2=${IF($["foo${ARG2}" != "foo"]?${ARG2}:"incoming-   call-no-longer-avail")}) [pbx_config]
  273.                     2. Playback(${MSG2})                          [pbx_config]
  274.                     3. Set(__MACRO_RESULT=ABORT)                  [pbx_config]
  275.      [exittoolate]  4. MacroExit()                                [pbx_config]
  276.   '_X' =>           1. Background(invalid,m,${CHANNEL(language)},macro-confirm)    [pbx_config]
  277.                     2. GotoIf($["${DB_EXISTS(RG/${ARG3}/${UNIQCHAN})}"="0" | "${   SHARED(ANSWER_STATUS,${FORCE_CONFIRM})}"=""]?toolate,1) [pbx_config]
  278.                     3. Set(LOOPCOUNT=$[ ${LOOPCOUNT} + 1 ])       [pbx_config]
  279.                     4. GotoIf($[ ${LOOPCOUNT} < 5 ]?s,start:noanswer,1) [pbx_con   fig]
  280.   Include =>        'macro-confirm-custom'                        [pbx_config]
  281.  
  282. [ Context 'sub-presencestate-display' created by 'pbx_config' ]
  283.   's' =>            1. Goto(state-${TOLOWER(${PRESENCE_STATE(CustomPresence:${AR   G1},value)})},1) [pbx_config]
  284.   'state-' =>       1. Set(PRESENCESTATE_DISPLAY=)                [pbx_config]
  285.                     2. Return()                                   [pbx_config]
  286.   'state-available' => 1. Set(PRESENCESTATE_DISPLAY=(Available))     [pbx_config   ]
  287.                     2. Return()                                   [pbx_config]
  288.   'state-away' =>   1. Set(PRESENCESTATE_DISPLAY=(Away))          [pbx_config]
  289.                     2. Return()                                   [pbx_config]
  290.   'state-chat' =>   1. Set(PRESENCESTATE_DISPLAY=(Chatty))        [pbx_config]
  291.                     2. Return()                                   [pbx_config]
  292.   'state-dnd' =>    1. Set(PRESENCESTATE_DISPLAY=(DND))           [pbx_config]
  293.                     2. Return()                                   [pbx_config]
  294.   'state-unavailable' => 1. Set(PRESENCESTATE_DISPLAY=(Unavailable))   [pbx_conf   ig]
  295.                     2. Return()                                   [pbx_config]
  296.   'state-xa' =>     1. Set(PRESENCESTATE_DISPLAY=(Extended Away)) [pbx_config]
  297.                     2. Return()                                   [pbx_config]
  298.   '_state-.' =>     1. Set(PRESENCESTATE_DISPLAY=)                [pbx_config]
  299.                     2. Return()                                   [pbx_config]
  300.   Include =>        'sub-presencestate-display-custom'            [pbx_config]
  301.  
  302. [ Context 'bad-number' created by 'pbx_config' ]
  303.   's' =>            1. Goto(11,1)                                 [pbx_config]
  304.   '_X.' =>          1. ResetCDR()                                 [pbx_config]
  305.                     2. NoCDR()                                    [pbx_config]
  306.                     3. Progress()                                 [pbx_config]
  307.                     4. Wait(1)                                    [pbx_config]
  308.                     5. Playback(silence/1&cannot-complete-as-dialed&check-number   -dial-again,noanswer) [pbx_config]
  309.                     6. Wait(1)                                    [pbx_config]
  310.                     7. Congestion(20)                             [pbx_config]
  311.                     8. Hangup()                                   [pbx_config]
  312.   Include =>        'bad-number-custom'                           [pbx_config]
  313.  
  314. [ Context 'app-blackhole' created by 'pbx_config' ]
  315.   'busy' =>         1. Noop(Blackhole Dest: Busy)                 [pbx_config]
  316.                     2. Progress()                                 [pbx_config]
  317.                     3. Busy(20)                                   [pbx_config]
  318.                     4. Hangup()                                   [pbx_config]
  319.   'congestion' =>   1. Noop(Blackhole Dest: Congestion)           [pbx_config]
  320.                     2. Progress()                                 [pbx_config]
  321.                     3. Playtones(congestion)                      [pbx_config]
  322.                     4. Congestion(20)                             [pbx_config]
  323.                     5. Hangup()                                   [pbx_config]
  324.   'hangup' =>       1. Noop(Blackhole Dest: Hangup)               [pbx_config]
  325.                     2. Hangup()                                   [pbx_config]
  326.   'musiconhold' =>  1. Noop(Blackhole Dest: Put caller on hold forever) [pbx_con   fig]
  327.                     2. Answer()                                   [pbx_config]
  328.                     3. MusicOnHold()                              [pbx_config]
  329.   'no-service' =>   1. Noop(Blackhole Dest: No service)           [pbx_config]
  330.                     2. Answer()                                   [pbx_config]
  331.                     3. Wait(1)                                    [pbx_config]
  332.                     4. Zapateller()                               [pbx_config]
  333.                     5. Playback(ss-noservice)                     [pbx_config]
  334.                     6. Hangup()                                   [pbx_config]
  335.   'ring' =>         1. Noop(Blackhole Dest: Ring)                 [pbx_config]
  336.                     2. Answer()                                   [pbx_config]
  337.                     3. Playtones(ring)                            [pbx_config]
  338.                     4. Wait(300)                                  [pbx_config]
  339.                     5. Hangup()                                   [pbx_config]
  340.   'zapateller' =>   1. Noop(Blackhole Dest: Play SIT Tone)        [pbx_config]
  341.                     2. Answer()                                   [pbx_config]
  342.                     3. Zapateller()                               [pbx_config]
  343.   Include =>        'app-blackhole-custom'                        [pbx_config]
  344.  
  345. [ Context 'outrt-12' created by 'pbx_config' ]
  346.   '_1NXXNXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
  347.                     2. Gosub(sub-record-check,s,1(out,${EXTEN},delayed)) [pbx_co   nfig]
  348.                     3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS}   )}) [pbx_config]
  349.                     4. ExecIf($["${KEEPCID}"!="TRUE" & ${LEN(${DB(AMPUSER/${AMPU   SER}/outboundcid)})}=0 & ${LEN(${TRUNKCIDOVERRIDE})}=0]?Set(TRUNKCIDOVERRIDE=405   2907322)) [pbx_config]
  350.                     5. Set(_NODEST=)                              [pbx_config]
  351.                     6. Macro(dialout-trunk,1,${EXTEN},,off)       [pbx_config]
  352.                     7. Macro(outisbusy,)                          [pbx_config]
  353.   '_NXXNXXXXXX' =>  1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
  354.                     2. Gosub(sub-record-check,s,1(out,${EXTEN},delayed)) [pbx_co   nfig]
  355.                     3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS}   )}) [pbx_config]
  356.                     4. ExecIf($["${KEEPCID}"!="TRUE" & ${LEN(${DB(AMPUSER/${AMPU   SER}/outboundcid)})}=0 & ${LEN(${TRUNKCIDOVERRIDE})}=0]?Set(TRUNKCIDOVERRIDE=405   2907322)) [pbx_config]
  357.                     5. Set(_NODEST=)                              [pbx_config]
  358.                     6. Macro(dialout-trunk,1,${EXTEN},,off)       [pbx_config]
  359.                     7. Macro(outisbusy,)                          [pbx_config]
  360.   '_NXXXXXX' =>     1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
  361.                     2. Gosub(sub-record-check,s,1(out,${EXTEN},delayed)) [pbx_co   nfig]
  362.                     3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS}   )}) [pbx_config]
  363.                     4. ExecIf($["${KEEPCID}"!="TRUE" & ${LEN(${DB(AMPUSER/${AMPU   SER}/outboundcid)})}=0 & ${LEN(${TRUNKCIDOVERRIDE})}=0]?Set(TRUNKCIDOVERRIDE=405   2907322)) [pbx_config]
  364.                     5. Set(_NODEST=)                              [pbx_config]
  365.                     6. Macro(dialout-trunk,1,${EXTEN},,off)       [pbx_config]
  366.                     7. Macro(outisbusy,)                          [pbx_config]
  367.   '_NXX' =>         1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
  368.                     2. Gosub(sub-record-check,s,1(out,${EXTEN},delayed)) [pbx_co   nfig]
  369.                     3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS}   )}) [pbx_config]
  370.                     4. ExecIf($["${KEEPCID}"!="TRUE" & ${LEN(${DB(AMPUSER/${AMPU   SER}/outboundcid)})}=0 & ${LEN(${TRUNKCIDOVERRIDE})}=0]?Set(TRUNKCIDOVERRIDE=405   2907322)) [pbx_config]
  371.                     5. Set(_NODEST=)                              [pbx_config]
  372.                     6. Macro(dialout-trunk,1,${EXTEN},,off)       [pbx_config]
  373.                     7. Macro(outisbusy,)                          [pbx_config]
  374.   Include =>        'outrt-12-custom'                             [pbx_config]
  375.  
  376. [ Context 'outbound-allroutes' created by 'pbx_config' ]
  377.   'foo' =>          1. Noop(bar)                                  [pbx_config]
  378.   Include =>        'outbound-allroutes-custom'                   [pbx_config]
  379.   Include =>        'outrt-12'                                    [pbx_config]
  380.  
  381. [ Context 'macro-prepend-cid' created by 'pbx_config' ]
  382.   's' =>            1. GotoIf($["${RGPREFIX}" = ""]?REPCID)       [pbx_config]
  383.                     2. GotoIf($["${RGPREFIX}" != "${CALLERID(name):0:${LEN(${RGP   REFIX})}}"]?REPCID) [pbx_config]
  384.                     3. Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}})    [pbx_config]
  385.                     4. Set(_RGPREFIX=)                            [pbx_config]
  386.      [REPCID]       5. Set(_RGPREFIX=${ARG1})                     [pbx_config]
  387.                     6. Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)}) [pbx_con   fig]
  388.   Include =>        'macro-prepend-cid-custom'                    [pbx_config]
  389.  
  390. [ Context 'ext-trunk' created by 'pbx_config' ]
  391.   '1' =>            1. Set(TDIAL_STRING=SIP/cox)                  [pbx_config]
  392.                     2. Set(DIAL_TRUNK=1)                          [pbx_config]
  393.                     3. Goto(ext-trunk,tdial,1)                    [pbx_config]
  394.   'tdial' =>        1. Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK})      [pbx_config]
  395.                     2. GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax) [pbx   _config]
  396.                     3. GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHA   NS_${DIAL_TRUNK}}]?hangit) [pbx_config]
  397.      [nomax]        4. ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(na   me-pres)=${CALLINGNAMEPRES_SV})) [pbx_config]
  398.                     5. ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num   -pres)=${CALLINGNUMPRES_SV})) [pbx_config]
  399.                     6. Set(DIAL_NUMBER=${FROM_DID})               [pbx_config]
  400.                     7. GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-   ${DIAL_TRUNK},s,1()) [pbx_config]
  401.                     8. Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) [pbx   _config]
  402.                     9. Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_T   RUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})}) [pbx_config]
  403.                     10. Dial(${TDIAL_STRING}/${OUTNUM}${TDIAL_SUFFIX},${TRUNK_RI   NG_TIMER},${DIAL_TRUNK_OPTIONS}) [pbx_config]
  404.                     11. Set(CALLERID(number)=${CALLERID(number):0:40}) [pbx_conf   ig]
  405.                     12. Set(CALLERID(name)=${CALLERID(name):0:40}) [pbx_config]
  406.      [hangit]       13. Hangup()                                  [pbx_config]
  407.   Include =>        'ext-trunk-custom'                            [pbx_config]
  408.  
  409. [ Context 'from-trunk-sip-cox' created by 'pbx_config' ]
  410.   '_.' =>           1. Set(GROUP()=OUT_1)                         [pbx_config]
  411.                     2. Goto(from-trunk,${EXTEN},1)                [pbx_config]
  412.   Include =>        'from-trunk-sip-cox-custom'                   [pbx_config]
  413.  
  414. [ Context 'ext-did-0002' created by 'pbx_config' ]
  415.   '4052907322' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  416.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},delayed)) [pbx_con   fig]
  417.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  418.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  419.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  420.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  421.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  422.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  423.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  424.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  425.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  426.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  427.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  428.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  429.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  430.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  431.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  432.                     18. Macro(prepend-cid,CAP: )                  [pbx_config]
  433.      [dest-ext]     19. Goto(app-announcement-5,s,1)              [pbx_config]
  434.   '4056015013' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  435.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},never)) [pbx_confi   g]
  436.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  437.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  438.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  439.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  440.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  441.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  442.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  443.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  444.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  445.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  446.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  447.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  448.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  449.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  450.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  451.                     18. Macro(prepend-cid, CIS:)                  [pbx_config]
  452.      [dest-ext]     19. Goto(app-blackhole,hangup,1)              [pbx_config]
  453.   '4056028732' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  454.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},delayed)) [pbx_con   fig]
  455.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  456.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  457.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  458.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  459.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  460.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  461.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  462.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  463.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  464.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  465.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  466.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  467.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  468.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  469.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  470.                     18. Macro(prepend-cid,RDL:)                   [pbx_config]
  471.      [dest-ext]     19. Goto(app-announcement-17,s,1)             [pbx_config]
  472.   '4056028734' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  473.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},delayed)) [pbx_con   fig]
  474.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  475.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  476.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  477.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  478.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  479.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  480.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  481.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  482.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  483.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  484.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  485.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  486.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  487.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  488.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  489.                     18. Macro(prepend-cid,OPS:)                   [pbx_config]
  490.      [dest-ext]     19. Goto(app-announcement-16,s,1)             [pbx_config]
  491.   '4056028748' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  492.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},delayed)) [pbx_con   fig]
  493.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  494.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  495.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  496.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  497.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  498.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  499.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  500.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  501.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  502.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  503.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  504.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  505.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  506.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  507.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  508.                     18. Macro(prepend-cid,Color Code:)            [pbx_config]
  509.      [dest-ext]     19. Goto(app-announcement-11,s,1)             [pbx_config]
  510.   '4056051313' =>   1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  511.                     2. Gosub(sub-record-check,s,1(in,${EXTEN},no)) [pbx_config]
  512.                     3. Gosub(app-blacklist-check,s,1())           [pbx_config]
  513.                     4. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  514.                     5. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  515.                     6. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  516.                     7. Set(CHANNEL(musicclass)=Opus)              [pbx_config]
  517.                     8. Set(__MOHCLASS=Opus)                       [pbx_config]
  518.                     9. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  519.                     10. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-char   ge) [pbx_config]
  520.                     11. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupca   ll) [pbx_config]
  521.      [post-reverse-charge] 12. Noop()                                    [pbx_co   nfig]
  522.                     13. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  523.                     14. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  524.                     15. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  525.                     16. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  526.      [did-cid-hook] 17. Noop(CallerID Entry Point)                [pbx_config]
  527.      [dest-ext]     18. Goto(app-blackhole,hangup,1)              [pbx_config]
  528.   Include =>        'ext-did-0002-custom'                         [pbx_config]
  529.  
  530. [ Context 'ext-did-catchall' created by 'pbx_config' ]
  531.   '_.' =>           1. Noop(Catch-All DID Match - Found ${EXTEN} - You probably    want a DID for this.) [pbx_config]
  532.                     2. Log(WARNING,Friendly Scanner from ${CUT(CUT(SIP_HEADER(Vi   a), ,2),:,1)}) [pbx_config]
  533.                     3. Set(__FROM_DID=${EXTEN})                   [pbx_config]
  534.                     4. Goto(ext-did,s,1)                          [pbx_config]
  535.   Include =>        'ext-did-catchall-custom'                     [pbx_config]
  536.  
  537. [ Context 'ext-did-0001' created by 'pbx_config' ]
  538.   's' =>            1. Set(__DIRECTION=INBOUND)                   [pbx_config]
  539.                     2. Gosub(app-blacklist-check,s,1())           [pbx_config]
  540.                     3. ExecIf($["${FROM_DID}" = ""]?Set(__FROM_DID=${EXTEN})) [p   bx_config]
  541.                     4. Set(CDR(did)=${FROM_DID})                  [pbx_config]
  542.                     5. ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=   ${CALLERID(num)})) [pbx_config]
  543.                     6. Set(__MOHCLASS=)                           [pbx_config]
  544.                     7. Set(__REVERSAL_REJECT=FALSE)               [pbx_config]
  545.                     8. GotoIf($["${REVERSAL_REJECT}"!="TRUE"]?post-reverse-charg   e) [pbx_config]
  546.                     9. GotoIf($["${CHANNEL(reversecharge)}"="1"]?macro-hangupcal   l) [pbx_config]
  547.      [post-reverse-charge] 10. Noop()                                    [pbx_co   nfig]
  548.                     11. Set(__CALLINGNAMEPRES_SV=${CALLERID(name-pres)}) [pbx_co   nfig]
  549.                     12. Set(__CALLINGNUMPRES_SV=${CALLERID(num-pres)}) [pbx_conf   ig]
  550.                     13. Set(CALLERID(name-pres)=allowed_not_screened) [pbx_confi   g]
  551.                     14. Set(CALLERID(num-pres)=allowed_not_screened) [pbx_config   ]
  552.      [did-cid-hook] 15. Noop(CallerID Entry Point)                [pbx_config]
  553.      [dest-ext]     16. Goto(ivr-4,s,1)                           [pbx_config]
  554.   Include =>        'ext-did-0001-custom'                         [pbx_config]
  555.  
  556. [ Context 'ext-did' created by 'pbx_config' ]
  557.   'foo' =>          1. Noop(bar)                                  [pbx_config]
  558.   Include =>        'ext-did-custom'                              [pbx_config]
  559.   Include =>        'ext-did-0001'                                [pbx_config]
  560.   Include =>        'ext-did-0002'                                [pbx_config]
  561.  
  562. [ Context 'ext-test' created by 'pbx_config' ]
  563.   '7777' =>         1. Macro(user-callerid,)                      [pbx_config]
  564.                     2. Goto(from-pstn,${EXTEN},1)                 [pbx_config]
  565.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  566.   Include =>        'ext-test-custom'                             [pbx_config]
  567.  
  568. [ Context 'app-chanspy' created by 'pbx_config' ]
  569.   '555' =>          1. Macro(user-callerid,)                      [pbx_config]
  570.                     2. Answer()                                   [pbx_config]
  571.                     3. Wait(1)                                    [pbx_config]
  572.                     4. ChanSpy()                                  [pbx_config]
  573.                     5. Hangup()                                   [pbx_config]
  574.   Include =>        'app-chanspy-custom'                          [pbx_config]
  575.  
  576. [ Context 'app-zapbarge' created by 'pbx_config' ]
  577.   '888' =>          1. Macro(user-callerid,)                      [pbx_config]
  578.                     2. Set(GROUP()=${CALLERID(number)})           [pbx_config]
  579.                     3. Answer()                                   [pbx_config]
  580.                     4. Wait(1)                                    [pbx_config]
  581.                     5. DAHDIBarge()                               [pbx_config]
  582.                     6. Hangup()                                   [pbx_config]
  583.   Include =>        'app-zapbarge-custom'                         [pbx_config]
  584.  
  585. [ Context 'app-pickup' created by 'pbx_config' ]
  586.   '***80100' =>     1. Macro(user-callerid,)                      [pbx_config]
  587.                     2. Set(PICKUP_EXTEN=${AMPUSER})               [pbx_config]
  588.                     3. Pickup(100&100@PICKUPMARK&400@from-internal&400@from-inte   rnal-xfer&400@ext-group) [pbx_config]
  589.                     4. Hangup()                                   [pbx_config]
  590.   '**100' =>        1. Macro(user-callerid,)                      [pbx_config]
  591.                     2. Set(PICKUP_EXTEN=${AMPUSER})               [pbx_config]
  592.                     3. Pickup(100&100@PICKUPMARK&400@from-internal&400@from-inte   rnal-xfer&400@ext-group) [pbx_config]
  593.                     4. Hangup()                                   [pbx_config]
  594.   '_***80.' =>      1. Macro(user-callerid,)                      [pbx_config]
  595.                     2. Set(PICKUP_EXTEN=${AMPUSER})               [pbx_config]
  596.                     3. Pickup(${EXTEN:5}&${EXTEN:5}@PICKUPMARK)   [pbx_config]
  597.                     4. Hangup()                                   [pbx_config]
  598.   '_**.' =>         1. Macro(user-callerid,)                      [pbx_config]
  599.                     2. Set(PICKUP_EXTEN=${AMPUSER})               [pbx_config]
  600.                     3. Pickup(${EXTEN:2}&${EXTEN:2}@PICKUPMARK)   [pbx_config]
  601.                     4. Hangup()                                   [pbx_config]
  602.   Include =>        'app-pickup-custom'                           [pbx_config]
  603.  
  604. [ Context 'findmefollow-ringallv2' created by 'pbx_config' ]
  605.   '_FMGL-.' =>      1. NoCDR()                                    [pbx_config]
  606.                     2. Set(ENDLOOP=$[${EPOCH} + ${FMPRERING} + 2]) [pbx_config]
  607.      [start]        3. GotoIf($["${SHARED(FM_DND,${FMUNIQUE})}" = "DND"]?dodnd)    [pbx_config]
  608.                     4. Wait(1)                                    [pbx_config]
  609.                     5. GotoIf($[${EPOCH} < ${ENDLOOP}]?start)     [pbx_config]
  610.                     6. Set(SHARED(FM_DND,${FMUNIQUE})=)           [pbx_config]
  611.      [dodial]       7. Macro(dial,${FMGRPTIME},${DIAL_OPTIONS},${EXTEN:5}) [pbx_   config]
  612.                     8. Hangup()                                   [pbx_config]
  613.      [dodnd]        19. Set(SHARED(FM_DND,${FMUNIQUE})=)          [pbx_config]
  614.                     20. GotoIf($["${FMPRIME}" = "FALSE"]?dodial)  [pbx_config]
  615.                     21. Hangup()                                  [pbx_config]
  616.   '_FMPR-.' =>      1. NoCDR()                                    [pbx_config]
  617.                     2. Set(RingGroupMethod=)                      [pbx_config]
  618.                     3. Set(USE_CONFIRMATION=)                     [pbx_config]
  619.                     4. Set(RINGGROUP_INDEX=)                      [pbx_config]
  620.                     5. Macro(simple-dial,${EXTEN:5},${FMREALPRERING}) [pbx_confi   g]
  621.                     6. ExecIf($["${DIALSTATUS}" = "BUSY"]?Set(SHARED(FM_DND,${FM   UNIQUE})=DND)) [pbx_config]
  622.                     7. Hangup()                                   [pbx_config]
  623.   Include =>        'findmefollow-ringallv2-custom'               [pbx_config]
  624.  
  625. [ Context 'ext-local-confirm' created by 'pbx_config' ]
  626.   '_LC-.' =>        1. ExecIf($["${DIRECTION}" = "INBOUND"]?Set(DIAL_OPTIONS=${S   TRREPLACE(DIAL_OPTIONS,T)}I)) [pbx_config]
  627.                     2. Set(THISDIAL=${DB(DEVICE/${EXTEN:3}/dial)}) [pbx_config]
  628.                     3. GotoIf($["${THISDIAL:0:5}"!="PJSIP"]?dial) [pbx_config]
  629.                     4. Noop(Debug: Found PJSIP Destination ${THISDIAL}, updating    with PJSIP_DIAL_CONTACTS) [pbx_config]
  630.                     5. Set(THISDIAL=${PJSIP_DIAL_CONTACTS(${EXTEN:3})}) [pbx_con   fig]
  631.      [dial]         6. Dial(${THISDIAL},${RT},${DIAL_OPTIONS}M(auto-confirm^${RG   _IDX})b(func-apply-sipheaders^s^1)) [pbx_config]
  632.   Include =>        'ext-local-confirm-custom'                    [pbx_config]
  633.  
  634. [ Context 'macro-dial' created by 'pbx_config' ]
  635.   'ANSWER' =>       1. Noop(Call successfully answered - Hanging up now) [pbx_co   nfig]
  636.                     2. Macro(hangupcall,)                         [pbx_config]
  637.   'DONTCALL' =>     1. Answer()                                   [pbx_config]
  638.                     2. Wait(1)                                    [pbx_config]
  639.                     3. Zapateller()                               [pbx_config]
  640.                     4. Playback(ss-noservice)                     [pbx_config]
  641.                     5. Macro(hangupcall,)                         [pbx_config]
  642.   'NOANSWER' =>     1. Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM}) [pbx_config]
  643.                     2. GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" =    ""]?bye) [pbx_config]
  644.                     3. Return()                                   [pbx_config]
  645.      [bye]          4. Macro(hangupcall,)                         [pbx_config]
  646.   'TORTURE' =>      1. Goto(app-blackhole,musiconhold,1)          [pbx_config]
  647.                     2. Macro(hangupcall,)                         [pbx_config]
  648.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  649.   's' =>            1. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer:    ${ATTENDEDTRANSFER}, User: ${AMPUSER}, Alert Info: ${ALERT_INFO}) [pbx_config]
  650.                     2. ExecIf($["${ALERT_INFO}"="" & ${LEN(${AMPUSER})}!=0 & ${L   EN(${BLINDTRANSFER})}=0 & ${LEN(${ATTENDEDTRANSFER})}=0]?Set(ALERT_INFO=)) [pbx_   config]
  651.                     3. ExecIf($[${LEN(${BLINDTRANSFER})}!=0]?Set(ALERT_INFO=)) [   pbx_config]
  652.                     4. ExecIf($[${LEN(${ATTENDEDTRANSFER})}!=0]?Set(ALERT_INFO=)   ) [pbx_config]
  653.                     5. ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")   ]?Set(CHANNEL(musicclass)=${MOHCLASS})) [pbx_config]
  654.      [dial]         6. AGI(dialparties.agi)                       [pbx_config]
  655.                     7. Noop(Returned from dialparties with no extensions to call    and DIALSTATUS: ${DIALSTATUS}) [pbx_config]
  656.                     8. MacroExit()                                [pbx_config]
  657.      [normdial]     9. Noop(Returned from dialparties with groups to dial) [pbx_   config]
  658.                     10. Set(LOOPCNT=${FIELDQTY(FILTERED_DIAL,-)}) [pbx_config]
  659.                     11. Set(ITER=1)                               [pbx_config]
  660.      [ndloopbegin]  12. Set(EXTTOCALL=${CUT(FILTERED_DIAL,-,${ITER})}) [pbx_conf   ig]
  661.                     13. Noop(Working with ${EXTTOCALL})           [pbx_config]
  662.                     14. ExecIf($["${RVOL}"!=""]?Set(HASH(__SIPHEADERS,Alert-Info   )=${IF($["${ALERT_INFO}"!=""]?${ALERT_INFO}:Normal)};volume=${RVOL})) [pbx_confi   g]
  663.                     15. ExecIf($["${RVOL}"="" & "${DB(AMPUSER/${EXTTOCALL}/rvolu   me)}" != ""]?Set(HASH(__SIPHEADERS,Alert-Info)=${IF($["${ALERT_INFO}"!=""]?${ALE   RT_INFO}:Normal)};volume=${DB(AMPUSER/${EXTTOCALL}/rvolume)})) [pbx_config]
  664.                     16. Set(ITER=$[${ITER}+1])                    [pbx_config]
  665.                     17. GotoIf($[${ITER}<=${LOOPCNT}]?ndloopbegin) [pbx_config]
  666.                     18. Macro(dial-ringall-predial-hook,)         [pbx_config]
  667.      [nddialapp]    19. Dial(${ds}b(func-apply-sipheaders^s^1),)  [pbx_config]
  668.                     20. Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTA   TUS_CW}:${DIALSTATUS})}) [pbx_config]
  669.                     21. GosubIf($[("${SCREEN}" != "" & ("${DIALSTATUS}" = "TORTU   RE" | "${DIALSTATUS}" = "DONTCALL"))  | "${DIALSTATUS}" = "ANSWER"]?${DIALSTATUS   },1()) [pbx_config]
  670.      [groupnoanswer] 22. Noop(Returning since nobody answered)     [pbx_config]
  671.                     23. MacroExit()                               [pbx_config]
  672.      [huntdial]     24. Noop(Returned from dialparties with ${HuntMembers} hunt    members to dial) [pbx_config]
  673.                     25. Set(HuntLoop=0)                           [pbx_config]
  674.                     26. ExecIf($[${LEN(${HuntMembers})}=0]?Set(HuntMembers=0)) [   pbx_config]
  675.      [a22]          27. GotoIf($[${HuntMembers} >= 1]?a30)        [pbx_config]
  676.      [huntnoanswer] 28. Noop(Returning as there are no members left in the hunt    group to ring) [pbx_config]
  677.                     29. MacroExit()                               [pbx_config]
  678.      [a30]          30. Set(HuntMember=HuntMember${HuntLoop})     [pbx_config]
  679.                     31. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGrou   pMethod}" = "hunt" ] | $["${RingGroupMethod}" = "firstavailable"] | $["${RingGro   upMethod}" = "firstnotonphone"]]]?a32:a35) [pbx_config]
  680.      [a32]          32. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])})    [pbx_config]
  681.                     33. Set(EXTTOCALL=${CT_EXTEN})                [pbx_config]
  682.                     34. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_co   nfig]
  683.                     35. Goto(s,huntstart)                         [pbx_config]
  684.      [a35]          36. GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupM   ethod}" = "memoryhunt" ]]?a36:a50) [pbx_config]
  685.      [a36]          37. Set(CTLoop=0)                             [pbx_config]
  686.      [a37]          38. GotoIf($[${CTLoop} > ${HuntLoop}]?huntstart) [pbx_config   ]
  687.                     39. Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])}) [p   bx_config]
  688.                     40. Set(EXTTOCALL=${CT_EXTEN})                [pbx_config]
  689.                     41. Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT}) [pbx_co   nfig]
  690.                     42. Set(CTLoop=$[1 + ${CTLoop}])              [pbx_config]
  691.                     43. Goto(s,a37)                               [pbx_config]
  692.      [huntstart]    44. Noop(Hunt Dial Start)                     [pbx_config]
  693.                     45. ExecIf($["${RVOL}"!=""]?Set(HASH(__SIPHEADERS,Alert-Info   )=${IF($["${ALERT_INFO}"!=""]?${ALERT_INFO}:Normal)};volume=${RVOL})) [pbx_confi   g]
  694.                     46. ExecIf($["${RVOL}"="" & "${DB(AMPUSER/${EXTTOCALL}/rvolu   me)}" != ""]?Set(HASH(__SIPHEADERS,Alert-Info)=${IF($["${ALERT_INFO}"!=""]?${ALE   RT_INFO}:Normal)};volume=${DB(AMPUSER/${EXTTOCALL}/rvolume)})) [pbx_config]
  695.                     47. Macro(dial-hunt-predial-hook,)            [pbx_config]
  696.      [hsdialapp]    48. Dial(${${HuntMember}}${ds}b(func-apply-sipheaders^s^1),)    [pbx_config]
  697.                     49. GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1) [pbx_conf   ig]
  698.                     50. Set(HuntLoop=$[1 + ${HuntLoop}])          [pbx_config]
  699.                     51. GotoIf($[$["${RingGroupMethod}" = "firstavailable"] | $[   "${RingGroupMethod}" = "firstnotonphone"]] & $[$["${DIALSTATUS}" != "CHANUNAVAIL   "] & $["${DIALSTATUS}" != "CONGESTION"]]?huntreset:a46) [pbx_config]
  700.      [huntreset]    52. Set(HuntMembers=1)                        [pbx_config]
  701.      [a46]          53. Set(HuntMembers=$[${HuntMembers} - 1])    [pbx_config]
  702.                     54. Goto(s,a22)                               [pbx_config]
  703.      [a50]          55. Noop(Deleting: CALLTRACE/${CT_EXTEN} ${DB_DELETE(CALLTRA   CE/${CT_EXTEN})}) [pbx_config]
  704.                     56. Goto(s,huntstart)                         [pbx_config]
  705.   Include =>        'macro-dial-custom'                           [pbx_config]
  706.  
  707. [ Context 'app-userlogonoff' created by 'pbx_config' ]
  708.   '*11' =>          1. Macro(user-logon,)                         [pbx_config]
  709.      [hook_on_1]    2. Hangup()                                   [pbx_config]
  710.   '*12' =>          1. Macro(user-logoff,)                        [pbx_config]
  711.      [hook_off]     2. Hangup()                                   [pbx_config]
  712.   '_*11.' =>        1. Macro(user-logon,${EXTEN:3},)              [pbx_config]
  713.      [hook_on_2]    2. Hangup()                                   [pbx_config]
  714.   Include =>        'app-userlogonoff-custom'                     [pbx_config]
  715.  
  716. [ Context 'app-blacklist-last' created by 'pbx_config' ]
  717.   '1' =>            1. Set(DB(blacklist/${lastcaller})=1)         [pbx_config]
  718.                     2. Playback(num-was-successfully)             [pbx_config]
  719.                     3. Playback(added)                            [pbx_config]
  720.                     4. Wait(1)                                    [pbx_config]
  721.                     5. Hangup()                                   [pbx_config]
  722.   'en' =>           1. Playback(if-correct-press&digits/1)        [pbx_config]
  723.                     2. Return()                                   [pbx_config]
  724.   'ja' =>           1. Playback(if-correct-press&digits/1&pleasepress) [pbx_conf   ig]
  725.                     2. Return()                                   [pbx_config]
  726.   's' =>            1. Answer()                                   [pbx_config]
  727.                     2. Macro(user-callerid,)                      [pbx_config]
  728.                     3. Wait(1)                                    [pbx_config]
  729.                     4. Set(lastcaller=${DB(CALLTRACE/${AMPUSER})}) [pbx_config]
  730.                     5. GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}"    = "unknown" ] ]?noinfo) [pbx_config]
  731.                     6. Playback(privacy-to-blacklist-last-caller&telephone-numbe   r) [pbx_config]
  732.                     7. SayDigits(${lastcaller})                   [pbx_config]
  733.                     8. Set(TIMEOUT(digit)=3)                      [pbx_config]
  734.                     9. Set(TIMEOUT(response)=7)                   [pbx_config]
  735.                     10. GosubIf($[${DIALPLAN_EXISTS(app-blacklist-last,${CHANNEL   (language)})}]?app-blacklist-last,${CHANNEL(language)},1():app-blacklist-last,en   ,1()) [pbx_config]
  736.                     11. Goto(end)                                 [pbx_config]
  737.      [noinfo]       12. Playback(unidentified-no-callback)        [pbx_config]
  738.                     13. Hangup()                                  [pbx_config]
  739.                     14. Noop(Waiting for input)                   [pbx_config]
  740.      [end]          15. WaitExten(60,)                            [pbx_config]
  741.                     16. Playback(sorry-youre-having-problems&goodbye) [pbx_confi   g]
  742.   Include =>        'app-blacklist-last-custom'                   [pbx_config]
  743.  
  744. [ Context 'app-blacklist-remove' created by 'pbx_config' ]
  745.   '1' =>            1. Noop(Deleting: blacklist/${blacknr} ${DB_DELETE(blacklist   /${blacknr})}) [pbx_config]
  746.                     2. Playback(num-was-successfully&removed)     [pbx_config]
  747.                     3. Wait(1)                                    [pbx_config]
  748.                     4. Hangup()                                   [pbx_config]
  749.   'en' =>           1. Playback(if-correct-press&digits/1)        [pbx_config]
  750.                     2. Return()                                   [pbx_config]
  751.   'ja' =>           1. Playback(if-correct-press&digits/1&pleasepress) [pbx_conf   ig]
  752.                     2. Return()                                   [pbx_config]
  753.   's' =>            1. Answer()                                   [pbx_config]
  754.                     2. Macro(user-callerid,)                      [pbx_config]
  755.                     3. Wait(1)                                    [pbx_config]
  756.                     4. Playback(entr-num-rmv-blklist)             [pbx_config]
  757.                     5. Set(TIMEOUT(digit)=5)                      [pbx_config]
  758.                     6. Set(TIMEOUT(response)=60)                  [pbx_config]
  759.                     7. Read(blacknr,vm-then-pound,,,,)            [pbx_config]
  760.                     8. SayDigits(${blacknr})                      [pbx_config]
  761.                     9. GosubIf($[${DIALPLAN_EXISTS(app-blacklist-remove,${CHANNE   L(language)})}]?app-blacklist-remove,${CHANNEL(language)},1():app-blacklist-remo   ve,en,1()) [pbx_config]
  762.                     10. Noop(Waiting for input)                   [pbx_config]
  763.      [end]          11. WaitExten(60,)                            [pbx_config]
  764.                     12. Playback(sorry-youre-having-problems&goodbye) [pbx_confi   g]
  765.   Include =>        'app-blacklist-remove-custom'                 [pbx_config]
  766.  
  767. [ Context 'app-blacklist-add-invalid' created by 'pbx_config' ]
  768.   's' =>            1. Set(NumLoops=$[${NumLoops} + 1])           [pbx_config]
  769.                     2. Playback(pm-invalid-option)                [pbx_config]
  770.                     3. GotoIf($[${NumLoops} < 3]?app-blacklist-add,s,start) [pbx   _config]
  771.                     4. Playback(goodbye)                          [pbx_config]
  772.                     5. Hangup()                                   [pbx_config]
  773.   Include =>        'app-blacklist-add-invalid-custom'            [pbx_config]
  774.  
  775. [ Context 'app-blacklist-add' created by 'pbx_config' ]
  776.   '1' =>            1. GotoIf($[ "${blacknr}" != ""]?:app-blacklist-add-invalid,   s,1) [pbx_config]
  777.                     2. Set(DB(blacklist/${blacknr})=1)            [pbx_config]
  778.                     3. Playback(num-was-successfully&added)       [pbx_config]
  779.                     4. Wait(1)                                    [pbx_config]
  780.                     5. Hangup()                                   [pbx_config]
  781.   'en' =>           1. Playback(if-correct-press&digits/1)        [pbx_config]
  782.                     2. Return()                                   [pbx_config]
  783.   'ja' =>           1. Playback(if-correct-press&digits/1&pleasepress) [pbx_conf   ig]
  784.                     2. Return()                                   [pbx_config]
  785.   's' =>            1. Answer()                                   [pbx_config]
  786.                     2. Macro(user-callerid,)                      [pbx_config]
  787.                     3. Wait(1)                                    [pbx_config]
  788.                     4. Set(NumLoops=0)                            [pbx_config]
  789.      [start]        5. Playback(enter-num-blacklist)              [pbx_config]
  790.                     6. Set(TIMEOUT(digit)=5)                      [pbx_config]
  791.                     7. Set(TIMEOUT(response)=60)                  [pbx_config]
  792.                     8. Read(blacknr,vm-then-pound,,,,)            [pbx_config]
  793.                     9. SayDigits(${blacknr})                      [pbx_config]
  794.                     10. GosubIf($[${DIALPLAN_EXISTS(app-blacklist-add,${CHANNEL(   language)})}]?app-blacklist-add,${CHANNEL(language)},1():app-blacklist-add,en,1(   )) [pbx_config]
  795.                     11. Noop(Waiting for input)                   [pbx_config]
  796.      [end]          12. WaitExten(10,)                            [pbx_config]
  797.                     13. Playback(sorry-youre-having-problems&goodbye) [pbx_confi   g]
  798.                     14. Wait(1)                                   [pbx_config]
  799.                     15. Hangup()                                  [pbx_config]
  800.   Include =>        'app-blacklist-add-custom'                    [pbx_config]
  801.  
  802. [ Context 'app-blacklist-check' created by 'pbx_config' ]
  803.   's' =>            1. GotoIf($["${BLACKLIST()}"="1"]?blacklisted) [pbx_config]
  804.                     2. Set(CALLED_BLACKLIST=1)                    [pbx_config]
  805.                     3. Return()                                   [pbx_config]
  806.      [blacklisted]  4. Answer()                                   [pbx_config]
  807.                     5. Set(BLDEST=${DB(blacklist/dest)})          [pbx_config]
  808.                     6. GotoIf(${LEN(${BLDEST})}?${BLDEST}:app-blackhole,zapatell   er,1) [pbx_config]
  809.   Include =>        'app-blacklist-check-custom'                  [pbx_config]
  810.  
  811. [ Context 'app-blacklist' created by 'pbx_config' ]
  812.   '*30' =>          1. Goto(app-blacklist-add,s,1)                [pbx_config]
  813.   '*31' =>          1. Goto(app-blacklist-remove,s,1)             [pbx_config]
  814.   '*32' =>          1. Goto(app-blacklist-last,s,1)               [pbx_config]
  815.   's' =>            1. Macro(user-callerid,)                      [pbx_config]
  816.   Include =>        'app-blacklist-custom'                        [pbx_config]
  817.  
  818. [ Context 'app-vmmain' created by 'pbx_config' ]
  819.   '*97' =>          1. Macro(user-callerid,)                      [pbx_config]
  820.                     2. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  821.                     3. Set(CONNECTEDLINE(name,i)=My Voicemail)    [pbx_config]
  822.                     4. Set(CONNECTEDLINE(num,i)=${AMPUSER})       [pbx_config]
  823.                     5. Answer()                                   [pbx_config]
  824.                     6. Wait(1)                                    [pbx_config]
  825.                     7. Macro(get-vmcontext,${AMPUSER})            [pbx_config]
  826.      [check]        8. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${AMPUSER}@${VMCONTE   XT},exists)}?SUCCESS:FAILED)}) [pbx_config]
  827.                     9. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?mbexist) [pb   x_config]
  828.                     10. VoiceMailMain()                           [pbx_config]
  829.                     11. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?playret) [pbx_config]
  830.                     12. Macro(hangupcall,)                        [pbx_config]
  831.      [mbexist]      109. GotoIf($["${DB(AMPUSER/${AMPUSER}/novmpw)}"!=""]?novmpw   :vmpw) [pbx_config]
  832.      [novmpw]       110. Noop(Verifying channel ${CHANNEL} is actually ${AMPUSER   }) [pbx_config]
  833.                     111. Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)}) [pbx_conf   ig]
  834.                     112. ExecIf($["${DEVICES}" = ""]?Set(DEVICES=${AMPUSER})) [p   bx_config]
  835.                     113. ExecIf($["${DEVICES:0:1}" = "&"]?Set(DEVICES=${DEVICES:   1})) [pbx_config]
  836.                     114. While($["${SET(DEV=${SHIFT(DEVICES,&)})}" != ""]) [pbx_   config]
  837.                     115. GotoIf($["${DB(DEVICE/${DEV}/dial)}" = "${CUT(CHANNEL,-   ,1)}"]?vmpwskip) [pbx_config]
  838.                     116. EndWhile()                               [pbx_config]
  839.                     117. Noop(Channel ${CHANNEL} is NOT ${AMPUSER} forcing VM Pa   ssword) [pbx_config]
  840.      [vmpw]         118. VoiceMailMain(${AMPUSER}@${VMCONTEXT})   [pbx_config]
  841.                     119. Goto(vmend)                              [pbx_config]
  842.      [vmpwskip]     120. VoiceMailMain(${AMPUSER}@${VMCONTEXT},s) [pbx_config]
  843.      [vmend]        121. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !   = ""]?playret) [pbx_config]
  844.                     122. Macro(hangupcall,)                       [pbx_config]
  845.      [playret]      123. Playback(beep&you-will-be-transfered-menu&silence/1) [p   bx_config]
  846.                     124. Goto(${IVR_CONTEXT},return,1)            [pbx_config]
  847.   Include =>        'app-vmmain-custom'                           [pbx_config]
  848.  
  849. [ Context 'from-did-direct-ivr' created by 'pbx_config' ]
  850.   '*103' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  851.                     2. Set(CONNECTEDLINE(name,i)=103 Voicemail)   [pbx_config]
  852.                     3. Set(CONNECTEDLINE(num,i)=103)              [pbx_config]
  853.                     4. Macro(blkvm-clr,)                          [pbx_config]
  854.                     5. Set(__NODEST=)                             [pbx_config]
  855.                     6. Macro(vm,103,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  856.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  857.   '*150' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  858.                     2. Set(CONNECTEDLINE(name,i)=150 Voicemail)   [pbx_config]
  859.                     3. Set(CONNECTEDLINE(num,i)=150)              [pbx_config]
  860.                     4. Macro(blkvm-clr,)                          [pbx_config]
  861.                     5. Set(__NODEST=)                             [pbx_config]
  862.                     6. Macro(vm,150,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  863.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  864.   '*170' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  865.                     2. Set(CONNECTEDLINE(name,i)=170 Voicemail)   [pbx_config]
  866.                     3. Set(CONNECTEDLINE(num,i)=170)              [pbx_config]
  867.                     4. Macro(blkvm-clr,)                          [pbx_config]
  868.                     5. Set(__NODEST=)                             [pbx_config]
  869.                     6. Macro(vm,170,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  870.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  871.   '*200' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  872.                     2. Set(CONNECTEDLINE(name,i)=200 Voicemail)   [pbx_config]
  873.                     3. Set(CONNECTEDLINE(num,i)=200)              [pbx_config]
  874.                     4. Macro(blkvm-clr,)                          [pbx_config]
  875.                     5. Set(__NODEST=)                             [pbx_config]
  876.                     6. Macro(vm,200,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  877.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  878.   '*201' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  879.                     2. Set(CONNECTEDLINE(name,i)=201 Voicemail)   [pbx_config]
  880.                     3. Set(CONNECTEDLINE(num,i)=201)              [pbx_config]
  881.                     4. Macro(blkvm-clr,)                          [pbx_config]
  882.                     5. Set(__NODEST=)                             [pbx_config]
  883.                     6. Macro(vm,201,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  884.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  885.   '*202' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  886.                     2. Set(CONNECTEDLINE(name,i)=202 Voicemail)   [pbx_config]
  887.                     3. Set(CONNECTEDLINE(num,i)=202)              [pbx_config]
  888.                     4. Macro(blkvm-clr,)                          [pbx_config]
  889.                     5. Set(__NODEST=)                             [pbx_config]
  890.                     6. Macro(vm,202,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  891.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  892.   '*203' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  893.                     2. Set(CONNECTEDLINE(name,i)=203 Voicemail)   [pbx_config]
  894.                     3. Set(CONNECTEDLINE(num,i)=203)              [pbx_config]
  895.                     4. Macro(blkvm-clr,)                          [pbx_config]
  896.                     5. Set(__NODEST=)                             [pbx_config]
  897.                     6. Macro(vm,203,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  898.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  899.   '*204' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  900.                     2. Set(CONNECTEDLINE(name,i)=204 Voicemail)   [pbx_config]
  901.                     3. Set(CONNECTEDLINE(num,i)=204)              [pbx_config]
  902.                     4. Macro(blkvm-clr,)                          [pbx_config]
  903.                     5. Set(__NODEST=)                             [pbx_config]
  904.                     6. Macro(vm,204,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  905.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  906.   '*4000' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  907.                     2. Set(CONNECTEDLINE(name,i)=4000 Voicemail)  [pbx_config]
  908.                     3. Set(CONNECTEDLINE(num,i)=4000)             [pbx_config]
  909.                     4. Macro(blkvm-clr,)                          [pbx_config]
  910.                     5. Set(__NODEST=)                             [pbx_config]
  911.                     6. Macro(vm,4000,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  912.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  913.   '*4001' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  914.                     2. Set(CONNECTEDLINE(name,i)=4001 Voicemail)  [pbx_config]
  915.                     3. Set(CONNECTEDLINE(num,i)=4001)             [pbx_config]
  916.                     4. Macro(blkvm-clr,)                          [pbx_config]
  917.                     5. Set(__NODEST=)                             [pbx_config]
  918.                     6. Macro(vm,4001,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  919.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  920.   '*4002' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  921.                     2. Set(CONNECTEDLINE(name,i)=4002 Voicemail)  [pbx_config]
  922.                     3. Set(CONNECTEDLINE(num,i)=4002)             [pbx_config]
  923.                     4. Macro(blkvm-clr,)                          [pbx_config]
  924.                     5. Set(__NODEST=)                             [pbx_config]
  925.                     6. Macro(vm,4002,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  926.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  927.   '*4003' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  928.                     2. Set(CONNECTEDLINE(name,i)=4003 Voicemail)  [pbx_config]
  929.                     3. Set(CONNECTEDLINE(num,i)=4003)             [pbx_config]
  930.                     4. Macro(blkvm-clr,)                          [pbx_config]
  931.                     5. Set(__NODEST=)                             [pbx_config]
  932.                     6. Macro(vm,4003,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  933.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  934.   '*4004' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  935.                     2. Set(CONNECTEDLINE(name,i)=4004 Voicemail)  [pbx_config]
  936.                     3. Set(CONNECTEDLINE(num,i)=4004)             [pbx_config]
  937.                     4. Macro(blkvm-clr,)                          [pbx_config]
  938.                     5. Set(__NODEST=)                             [pbx_config]
  939.                     6. Macro(vm,4004,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  940.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  941.   '*4005' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  942.                     2. Set(CONNECTEDLINE(name,i)=4005 Voicemail)  [pbx_config]
  943.                     3. Set(CONNECTEDLINE(num,i)=4005)             [pbx_config]
  944.                     4. Macro(blkvm-clr,)                          [pbx_config]
  945.                     5. Set(__NODEST=)                             [pbx_config]
  946.                     6. Macro(vm,4005,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  947.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  948.   '*4006' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  949.                     2. Set(CONNECTEDLINE(name,i)=4006 Voicemail)  [pbx_config]
  950.                     3. Set(CONNECTEDLINE(num,i)=4006)             [pbx_config]
  951.                     4. Macro(blkvm-clr,)                          [pbx_config]
  952.                     5. Set(__NODEST=)                             [pbx_config]
  953.                     6. Macro(vm,4006,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  954.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  955.   '*4007' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  956.                     2. Set(CONNECTEDLINE(name,i)=4007 Voicemail)  [pbx_config]
  957.                     3. Set(CONNECTEDLINE(num,i)=4007)             [pbx_config]
  958.                     4. Macro(blkvm-clr,)                          [pbx_config]
  959.                     5. Set(__NODEST=)                             [pbx_config]
  960.                     6. Macro(vm,4007,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  961.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  962.   '*4008' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  963.                     2. Set(CONNECTEDLINE(name,i)=4008 Voicemail)  [pbx_config]
  964.                     3. Set(CONNECTEDLINE(num,i)=4008)             [pbx_config]
  965.                     4. Macro(blkvm-clr,)                          [pbx_config]
  966.                     5. Set(__NODEST=)                             [pbx_config]
  967.                     6. Macro(vm,4008,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  968.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  969.   '*4009' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  970.                     2. Set(CONNECTEDLINE(name,i)=4009 Voicemail)  [pbx_config]
  971.                     3. Set(CONNECTEDLINE(num,i)=4009)             [pbx_config]
  972.                     4. Macro(blkvm-clr,)                          [pbx_config]
  973.                     5. Set(__NODEST=)                             [pbx_config]
  974.                     6. Macro(vm,4009,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  975.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  976.   '*4010' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  977.                     2. Set(CONNECTEDLINE(name,i)=4010 Voicemail)  [pbx_config]
  978.                     3. Set(CONNECTEDLINE(num,i)=4010)             [pbx_config]
  979.                     4. Macro(blkvm-clr,)                          [pbx_config]
  980.                     5. Set(__NODEST=)                             [pbx_config]
  981.                     6. Macro(vm,4010,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  982.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  983.   '*4070' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  984.                     2. Set(CONNECTEDLINE(name,i)=4070 Voicemail)  [pbx_config]
  985.                     3. Set(CONNECTEDLINE(num,i)=4070)             [pbx_config]
  986.                     4. Macro(blkvm-clr,)                          [pbx_config]
  987.                     5. Set(__NODEST=)                             [pbx_config]
  988.                     6. Macro(vm,4070,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  989.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  990.   '*9000' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  991.                     2. Set(CONNECTEDLINE(name,i)=9000 Voicemail)  [pbx_config]
  992.                     3. Set(CONNECTEDLINE(num,i)=9000)             [pbx_config]
  993.                     4. Macro(blkvm-clr,)                          [pbx_config]
  994.                     5. Set(__NODEST=)                             [pbx_config]
  995.                     6. Macro(vm,9000,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  996.                     7. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?ext-local,vmret,playret) [pbx_config]
  997.   '_X.' =>          1. GotoIf($[${DIALPLAN_EXISTS(from-did-direct,${EXTEN},1)} =    0]?i,1) [pbx_config]
  998.                     2. Macro(blkvm-clr,)                          [pbx_config]
  999.                     3. Set(__NODEST=)                             [pbx_config]
  1000.                     4. Goto(from-did-direct,${EXTEN},1)           [pbx_config]
  1001.   Include =>        'from-did-direct-ivr-custom'                  [pbx_config]
  1002.  
  1003. [ Context 'ext-local' created by 'pbx_config' ]
  1004.   '*103' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1005.                     2. Set(CONNECTEDLINE(name,i)=103 Voicemail)   [pbx_config]
  1006.                     3. Set(CONNECTEDLINE(num,i)=103)              [pbx_config]
  1007.                     4. Macro(vm,103,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1008.                     5. Goto(vmret,1)                              [pbx_config]
  1009.   '*150' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1010.                     2. Set(CONNECTEDLINE(name,i)=150 Voicemail)   [pbx_config]
  1011.                     3. Set(CONNECTEDLINE(num,i)=150)              [pbx_config]
  1012.                     4. Macro(vm,150,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1013.                     5. Goto(vmret,1)                              [pbx_config]
  1014.   '*170' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1015.                     2. Set(CONNECTEDLINE(name,i)=170 Voicemail)   [pbx_config]
  1016.                     3. Set(CONNECTEDLINE(num,i)=170)              [pbx_config]
  1017.                     4. Macro(vm,170,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1018.                     5. Goto(vmret,1)                              [pbx_config]
  1019.   '*200' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1020.                     2. Set(CONNECTEDLINE(name,i)=200 Voicemail)   [pbx_config]
  1021.                     3. Set(CONNECTEDLINE(num,i)=200)              [pbx_config]
  1022.                     4. Macro(vm,200,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1023.                     5. Goto(vmret,1)                              [pbx_config]
  1024.   '*201' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1025.                     2. Set(CONNECTEDLINE(name,i)=201 Voicemail)   [pbx_config]
  1026.                     3. Set(CONNECTEDLINE(num,i)=201)              [pbx_config]
  1027.                     4. Macro(vm,201,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1028.                     5. Goto(vmret,1)                              [pbx_config]
  1029.   '*202' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1030.                     2. Set(CONNECTEDLINE(name,i)=202 Voicemail)   [pbx_config]
  1031.                     3. Set(CONNECTEDLINE(num,i)=202)              [pbx_config]
  1032.                     4. Macro(vm,202,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1033.                     5. Goto(vmret,1)                              [pbx_config]
  1034.   '*203' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1035.                     2. Set(CONNECTEDLINE(name,i)=203 Voicemail)   [pbx_config]
  1036.                     3. Set(CONNECTEDLINE(num,i)=203)              [pbx_config]
  1037.                     4. Macro(vm,203,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1038.                     5. Goto(vmret,1)                              [pbx_config]
  1039.   '*204' =>         1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1040.                     2. Set(CONNECTEDLINE(name,i)=204 Voicemail)   [pbx_config]
  1041.                     3. Set(CONNECTEDLINE(num,i)=204)              [pbx_config]
  1042.                     4. Macro(vm,204,DIRECTDIAL,${IVR_RETVM})      [pbx_config]
  1043.                     5. Goto(vmret,1)                              [pbx_config]
  1044.   '*4000' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1045.                     2. Set(CONNECTEDLINE(name,i)=4000 Voicemail)  [pbx_config]
  1046.                     3. Set(CONNECTEDLINE(num,i)=4000)             [pbx_config]
  1047.                     4. Macro(vm,4000,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1048.                     5. Goto(vmret,1)                              [pbx_config]
  1049.   '*4001' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1050.                     2. Set(CONNECTEDLINE(name,i)=4001 Voicemail)  [pbx_config]
  1051.                     3. Set(CONNECTEDLINE(num,i)=4001)             [pbx_config]
  1052.                     4. Macro(vm,4001,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1053.                     5. Goto(vmret,1)                              [pbx_config]
  1054.   '*4002' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1055.                     2. Set(CONNECTEDLINE(name,i)=4002 Voicemail)  [pbx_config]
  1056.                     3. Set(CONNECTEDLINE(num,i)=4002)             [pbx_config]
  1057.                     4. Macro(vm,4002,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1058.                     5. Goto(vmret,1)                              [pbx_config]
  1059.   '*4003' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1060.                     2. Set(CONNECTEDLINE(name,i)=4003 Voicemail)  [pbx_config]
  1061.                     3. Set(CONNECTEDLINE(num,i)=4003)             [pbx_config]
  1062.                     4. Macro(vm,4003,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1063.                     5. Goto(vmret,1)                              [pbx_config]
  1064.   '*4004' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1065.                     2. Set(CONNECTEDLINE(name,i)=4004 Voicemail)  [pbx_config]
  1066.                     3. Set(CONNECTEDLINE(num,i)=4004)             [pbx_config]
  1067.                     4. Macro(vm,4004,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1068.                     5. Goto(vmret,1)                              [pbx_config]
  1069.   '*4005' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1070.                     2. Set(CONNECTEDLINE(name,i)=4005 Voicemail)  [pbx_config]
  1071.                     3. Set(CONNECTEDLINE(num,i)=4005)             [pbx_config]
  1072.                     4. Macro(vm,4005,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1073.                     5. Goto(vmret,1)                              [pbx_config]
  1074.   '*4006' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1075.                     2. Set(CONNECTEDLINE(name,i)=4006 Voicemail)  [pbx_config]
  1076.                     3. Set(CONNECTEDLINE(num,i)=4006)             [pbx_config]
  1077.                     4. Macro(vm,4006,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1078.                     5. Goto(vmret,1)                              [pbx_config]
  1079.   '*4007' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1080.                     2. Set(CONNECTEDLINE(name,i)=4007 Voicemail)  [pbx_config]
  1081.                     3. Set(CONNECTEDLINE(num,i)=4007)             [pbx_config]
  1082.                     4. Macro(vm,4007,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1083.                     5. Goto(vmret,1)                              [pbx_config]
  1084.   '*4008' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1085.                     2. Set(CONNECTEDLINE(name,i)=4008 Voicemail)  [pbx_config]
  1086.                     3. Set(CONNECTEDLINE(num,i)=4008)             [pbx_config]
  1087.                     4. Macro(vm,4008,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1088.                     5. Goto(vmret,1)                              [pbx_config]
  1089.   '*4009' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1090.                     2. Set(CONNECTEDLINE(name,i)=4009 Voicemail)  [pbx_config]
  1091.                     3. Set(CONNECTEDLINE(num,i)=4009)             [pbx_config]
  1092.                     4. Macro(vm,4009,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1093.                     5. Goto(vmret,1)                              [pbx_config]
  1094.   '*4010' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1095.                     2. Set(CONNECTEDLINE(name,i)=4010 Voicemail)  [pbx_config]
  1096.                     3. Set(CONNECTEDLINE(num,i)=4010)             [pbx_config]
  1097.                     4. Macro(vm,4010,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1098.                     5. Goto(vmret,1)                              [pbx_config]
  1099.   '*4070' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1100.                     2. Set(CONNECTEDLINE(name,i)=4070 Voicemail)  [pbx_config]
  1101.                     3. Set(CONNECTEDLINE(num,i)=4070)             [pbx_config]
  1102.                     4. Macro(vm,4070,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1103.                     5. Goto(vmret,1)                              [pbx_config]
  1104.   '*9000' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1105.                     2. Set(CONNECTEDLINE(name,i)=9000 Voicemail)  [pbx_config]
  1106.                     3. Set(CONNECTEDLINE(num,i)=9000)             [pbx_config]
  1107.                     4. Macro(vm,9000,DIRECTDIAL,${IVR_RETVM})     [pbx_config]
  1108.                     5. Goto(vmret,1)                              [pbx_config]
  1109.   '100' =>          hint: SIP/100&Custom:DND100,CustomPresence:100 [pbx_config]
  1110.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/100/ringtimer)}" > "   0"]?${DB(AMPUSER/100/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1111.                     2. Macro(exten-vm,novm,100,0,0,0)             [pbx_config]
  1112.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1113.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1114.   '10000' =>        hint: &Custom:DND10000,CustomPresence:10000   [pbx_config]
  1115.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/10000/ringtimer)}" >    "0"]?${DB(AMPUSER/10000/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1116.                     2. Macro(exten-vm,novm,10000,0,0,0)           [pbx_config]
  1117.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1118.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1119.   '101' =>          hint: SIP/101&Custom:DND101,CustomPresence:101 [pbx_config]
  1120.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/101/ringtimer)}" > "   0"]?${DB(AMPUSER/101/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1121.                     2. Macro(exten-vm,novm,101,0,0,0)             [pbx_config]
  1122.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1123.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1124.   '102' =>          hint: SIP/102&Custom:DND102,CustomPresence:102 [pbx_config]
  1125.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/102/ringtimer)}" > "   0"]?${DB(AMPUSER/102/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1126.                     2. Macro(exten-vm,novm,102,0,0,0)             [pbx_config]
  1127.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1128.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1129.   '103' =>          hint: SIP/103&Custom:DND103,CustomPresence:103 [pbx_config]
  1130.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/103/ringtimer)}" > "   0"]?${DB(AMPUSER/103/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1131.                     2. Macro(exten-vm,103,103,0,0,0)              [pbx_config]
  1132.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1133.                     4. Macro(vm,103,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1134.                     5. Goto(vmret,1)                              [pbx_config]
  1135.   '104' =>          hint: SIP/104&Custom:DND104,CustomPresence:104 [pbx_config]
  1136.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/104/ringtimer)}" > "   0"]?${DB(AMPUSER/104/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1137.                     2. Macro(exten-vm,novm,104,1,1,1)             [pbx_config]
  1138.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1139.                     4. GotoIf($["${DIALSTATUS}"="NOANSWER"]?ext-local,vmu201,1)    [pbx_config]
  1140.                     5. GotoIf($["${DIALSTATUS}"="BUSY"]?ext-local,vmu201,1) [pbx   _config]
  1141.                     6. GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?ext-local,vmu201,   1) [pbx_config]
  1142.                     7. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1143.   '105' =>          hint: SIP/105&Custom:DND105,CustomPresence:105 [pbx_config]
  1144.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/105/ringtimer)}" > "   0"]?${DB(AMPUSER/105/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1145.                     2. Macro(exten-vm,novm,105,0,0,0)             [pbx_config]
  1146.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1147.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1148.   '106' =>          hint: SIP/106&Custom:DND106,CustomPresence:106 [pbx_config]
  1149.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/106/ringtimer)}" > "   0"]?${DB(AMPUSER/106/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1150.                     2. Macro(exten-vm,novm,106,0,0,0)             [pbx_config]
  1151.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1152.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1153.   '107' =>          hint: SIP/107&Custom:DND107,CustomPresence:107 [pbx_config]
  1154.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/107/ringtimer)}" > "   0"]?${DB(AMPUSER/107/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1155.                     2. Macro(exten-vm,novm,107,0,0,0)             [pbx_config]
  1156.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1157.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1158.   '108' =>          hint: SIP/108&Custom:DND108,CustomPresence:108 [pbx_config]
  1159.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/108/ringtimer)}" > "   0"]?${DB(AMPUSER/108/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1160.                     2. Macro(exten-vm,novm,108,0,0,0)             [pbx_config]
  1161.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1162.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1163.   '109' =>          hint: SIP/109&Custom:DND109,CustomPresence:109 [pbx_config]
  1164.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/109/ringtimer)}" > "   0"]?${DB(AMPUSER/109/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1165.                     2. Macro(exten-vm,novm,109,0,0,0)             [pbx_config]
  1166.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1167.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1168.   '110' =>          hint: SIP/110&Custom:DND110,CustomPresence:110 [pbx_config]
  1169.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/110/ringtimer)}" > "   0"]?${DB(AMPUSER/110/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1170.                     2. Macro(exten-vm,novm,110,0,0,0)             [pbx_config]
  1171.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1172.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1173.   '111' =>          hint: SIP/111&Custom:DND111,CustomPresence:111 [pbx_config]
  1174.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/111/ringtimer)}" > "   0"]?${DB(AMPUSER/111/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1175.                     2. Macro(exten-vm,novm,111,0,0,0)             [pbx_config]
  1176.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1177.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1178.   '112' =>          hint: SIP/112&Custom:DND112,CustomPresence:112 [pbx_config]
  1179.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/112/ringtimer)}" > "   0"]?${DB(AMPUSER/112/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1180.                     2. Macro(exten-vm,novm,112,0,0,0)             [pbx_config]
  1181.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1182.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1183.   '120' =>          hint: SIP/120&Custom:DND120,CustomPresence:120 [pbx_config]
  1184.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/120/ringtimer)}" > "   0"]?${DB(AMPUSER/120/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1185.                     2. Macro(exten-vm,novm,120,0,0,0)             [pbx_config]
  1186.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1187.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1188.   '121' =>          hint: SIP/121&Custom:DND121,CustomPresence:121 [pbx_config]
  1189.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/121/ringtimer)}" > "   0"]?${DB(AMPUSER/121/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1190.                     2. Macro(exten-vm,novm,121,0,0,0)             [pbx_config]
  1191.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1192.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1193.   '124' =>          hint: SIP/124&Custom:DND124,CustomPresence:124 [pbx_config]
  1194.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/124/ringtimer)}" > "   0"]?${DB(AMPUSER/124/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1195.                     2. Macro(exten-vm,novm,124,0,0,0)             [pbx_config]
  1196.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1197.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1198.   '129' =>          hint: SIP/129&Custom:DND129,CustomPresence:129 [pbx_config]
  1199.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/129/ringtimer)}" > "   0"]?${DB(AMPUSER/129/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1200.                     2. Macro(exten-vm,novm,129,0,0,0)             [pbx_config]
  1201.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1202.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1203.   '150' =>          hint: SIP/150&Custom:DND150,CustomPresence:150 [pbx_config]
  1204.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/150/ringtimer)}" > "   0"]?${DB(AMPUSER/150/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1205.                     2. Macro(exten-vm,150,150,1,1,1)              [pbx_config]
  1206.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1207.                     4. GotoIf($["${DIALSTATUS}"="NOANSWER"]?ext-findmefollow,FM1   50,1) [pbx_config]
  1208.                     5. GotoIf($["${DIALSTATUS}"="BUSY"]?ext-findmefollow,FM150,1   ) [pbx_config]
  1209.                     6. GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?ext-findmefollow,   FM150,1) [pbx_config]
  1210.                     7. Macro(vm,150,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1211.                     8. Goto(vmret,1)                              [pbx_config]
  1212.   '160' =>          hint: SIP/160&Custom:DND160,CustomPresence:160 [pbx_config]
  1213.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/160/ringtimer)}" > "   0"]?${DB(AMPUSER/160/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1214.                     2. Macro(exten-vm,novm,160,0,0,0)             [pbx_config]
  1215.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1216.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1217.   '170' =>          hint: SIP/170&Custom:DND170,CustomPresence:170 [pbx_config]
  1218.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/170/ringtimer)}" > "   0"]?${DB(AMPUSER/170/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1219.                     2. Macro(exten-vm,170,170,1,1,1)              [pbx_config]
  1220.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1221.                     4. GotoIf($["${DIALSTATUS}"="NOANSWER"]?ext-local,vmb201,1)    [pbx_config]
  1222.                     5. GotoIf($["${DIALSTATUS}"="BUSY"]?ext-local,vmu201,1) [pbx   _config]
  1223.                     6. GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?ext-local,vmu201,   1) [pbx_config]
  1224.                     7. Macro(vm,170,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1225.                     8. Goto(vmret,1)                              [pbx_config]
  1226.   '200' =>          hint: SIP/200&Custom:DND200,CustomPresence:200 [pbx_config]
  1227.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/200/ringtimer)}" > "   0"]?${DB(AMPUSER/200/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1228.                     2. Macro(exten-vm,200,200,0,0,0)              [pbx_config]
  1229.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1230.                     4. Macro(vm,200,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1231.                     5. Goto(vmret,1)                              [pbx_config]
  1232.   '2001' =>         hint: SIP/2001&Custom:DND2001,CustomPresence:2001 [pbx_confi   g]
  1233.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/2001/ringtimer)}" >    "0"]?${DB(AMPUSER/2001/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1234.                     2. Macro(exten-vm,novm,2001,0,0,0)            [pbx_config]
  1235.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1236.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1237.   '2002' =>         hint: SIP/2002&Custom:DND2002,CustomPresence:2002 [pbx_confi   g]
  1238.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/2002/ringtimer)}" >    "0"]?${DB(AMPUSER/2002/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1239.                     2. Macro(exten-vm,novm,2002,0,0,0)            [pbx_config]
  1240.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1241.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1242.   '2003' =>         hint: SIP/2003&Custom:DND2003,CustomPresence:2003 [pbx_confi   g]
  1243.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/2003/ringtimer)}" >    "0"]?${DB(AMPUSER/2003/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1244.                     2. Macro(exten-vm,novm,2003,0,0,0)            [pbx_config]
  1245.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1246.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1247.   '201' =>          hint: SIP/201&Custom:DND201,CustomPresence:201 [pbx_config]
  1248.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/201/ringtimer)}" > "   0"]?${DB(AMPUSER/201/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1249.                     2. Macro(exten-vm,201,201,0,0,0)              [pbx_config]
  1250.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1251.                     4. Macro(vm,201,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1252.                     5. Goto(vmret,1)                              [pbx_config]
  1253.   '202' =>          hint: SIP/202&Custom:DND202,CustomPresence:202 [pbx_config]
  1254.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/202/ringtimer)}" > "   0"]?${DB(AMPUSER/202/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1255.                     2. Macro(exten-vm,202,202,0,0,0)              [pbx_config]
  1256.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1257.                     4. Macro(vm,202,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1258.                     5. Goto(vmret,1)                              [pbx_config]
  1259.   '203' =>          hint: SIP/203&Custom:DND203,CustomPresence:203 [pbx_config]
  1260.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/203/ringtimer)}" > "   0"]?${DB(AMPUSER/203/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1261.                     2. Macro(exten-vm,203,203,0,0,0)              [pbx_config]
  1262.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1263.                     4. Macro(vm,203,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1264.                     5. Goto(vmret,1)                              [pbx_config]
  1265.   '204' =>          hint: SIP/204&Custom:DND204,CustomPresence:204 [pbx_config]
  1266.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/204/ringtimer)}" > "   0"]?${DB(AMPUSER/204/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1267.                     2. Macro(exten-vm,204,204,0,0,0)              [pbx_config]
  1268.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1269.                     4. Macro(vm,204,${DIALSTATUS},${IVR_RETVM})   [pbx_config]
  1270.                     5. Goto(vmret,1)                              [pbx_config]
  1271.   '300' =>          hint: SIP/300&Custom:DND300,CustomPresence:300 [pbx_config]
  1272.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/300/ringtimer)}" > "   0"]?${DB(AMPUSER/300/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1273.                     2. Macro(exten-vm,novm,300,0,0,0)             [pbx_config]
  1274.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1275.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1276.   '301' =>          hint: SIP/301&Custom:DND301,CustomPresence:301 [pbx_config]
  1277.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/301/ringtimer)}" > "   0"]?${DB(AMPUSER/301/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1278.                     2. Macro(exten-vm,novm,301,0,0,0)             [pbx_config]
  1279.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1280.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1281.   '302' =>          hint: SIP/302&Custom:DND302,CustomPresence:302 [pbx_config]
  1282.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/302/ringtimer)}" > "   0"]?${DB(AMPUSER/302/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1283.                     2. Macro(exten-vm,novm,302,0,0,0)             [pbx_config]
  1284.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1285.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1286.   '303' =>          hint: SIP/303&Custom:DND303,CustomPresence:303 [pbx_config]
  1287.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/303/ringtimer)}" > "   0"]?${DB(AMPUSER/303/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1288.                     2. Macro(exten-vm,novm,303,0,0,0)             [pbx_config]
  1289.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1290.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1291.   '304' =>          hint: SIP/304&Custom:DND304,CustomPresence:304 [pbx_config]
  1292.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/304/ringtimer)}" > "   0"]?${DB(AMPUSER/304/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1293.                     2. Macro(exten-vm,novm,304,0,0,0)             [pbx_config]
  1294.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1295.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1296.   '305' =>          hint: SIP/305&Custom:DND305,CustomPresence:305 [pbx_config]
  1297.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/305/ringtimer)}" > "   0"]?${DB(AMPUSER/305/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1298.                     2. Macro(exten-vm,novm,305,0,0,0)             [pbx_config]
  1299.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1300.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1301.   '307' =>          hint: SIP/307&Custom:DND307,CustomPresence:307 [pbx_config]
  1302.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/307/ringtimer)}" > "   0"]?${DB(AMPUSER/307/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1303.                     2. Macro(exten-vm,novm,307,0,0,0)             [pbx_config]
  1304.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1305.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1306.   '308' =>          hint: SIP/308&Custom:DND308,CustomPresence:308 [pbx_config]
  1307.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/308/ringtimer)}" > "   0"]?${DB(AMPUSER/308/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1308.                     2. Macro(exten-vm,novm,308,0,0,0)             [pbx_config]
  1309.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1310.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1311.   '320' =>          hint: SIP/320&Custom:DND320,CustomPresence:320 [pbx_config]
  1312.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/320/ringtimer)}" > "   0"]?${DB(AMPUSER/320/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1313.                     2. Macro(exten-vm,novm,320,0,0,0)             [pbx_config]
  1314.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1315.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1316.   '321' =>          hint: SIP/321&Custom:DND321,CustomPresence:321 [pbx_config]
  1317.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/321/ringtimer)}" > "   0"]?${DB(AMPUSER/321/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1318.                     2. Macro(exten-vm,novm,321,0,0,0)             [pbx_config]
  1319.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1320.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1321.   '4000' =>         hint: SIP/4000&Custom:DND4000,CustomPresence:4000 [pbx_confi   g]
  1322.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4000/ringtimer)}" >    "0"]?${DB(AMPUSER/4000/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1323.                     2. Macro(exten-vm,4000,4000,0,0,0)            [pbx_config]
  1324.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1325.                     4. Macro(vm,4000,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1326.                     5. Goto(vmret,1)                              [pbx_config]
  1327.   '4001' =>         hint: SIP/4001&Custom:DND4001,CustomPresence:4001 [pbx_confi   g]
  1328.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4001/ringtimer)}" >    "0"]?${DB(AMPUSER/4001/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1329.                     2. Macro(exten-vm,4001,4001,0,0,0)            [pbx_config]
  1330.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1331.                     4. Macro(vm,4001,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1332.                     5. Goto(vmret,1)                              [pbx_config]
  1333.   '4002' =>         hint: SIP/4002&Custom:DND4002,CustomPresence:4002 [pbx_confi   g]
  1334.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4002/ringtimer)}" >    "0"]?${DB(AMPUSER/4002/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1335.                     2. Macro(exten-vm,4002,4002,0,0,0)            [pbx_config]
  1336.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1337.                     4. Macro(vm,4002,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1338.                     5. Goto(vmret,1)                              [pbx_config]
  1339.   '4003' =>         hint: SIP/4003&Custom:DND4003,CustomPresence:4003 [pbx_confi   g]
  1340.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4003/ringtimer)}" >    "0"]?${DB(AMPUSER/4003/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1341.                     2. Macro(exten-vm,4003,4003,0,0,0)            [pbx_config]
  1342.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1343.                     4. Macro(vm,4003,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1344.                     5. Goto(vmret,1)                              [pbx_config]
  1345.   '4004' =>         hint: SIP/4004&Custom:DND4004,CustomPresence:4004 [pbx_confi   g]
  1346.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4004/ringtimer)}" >    "0"]?${DB(AMPUSER/4004/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1347.                     2. Macro(exten-vm,4004,4004,0,0,0)            [pbx_config]
  1348.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1349.                     4. Macro(vm,4004,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1350.                     5. Goto(vmret,1)                              [pbx_config]
  1351.   '4005' =>         hint: SIP/4005&Custom:DND4005,CustomPresence:4005 [pbx_confi   g]
  1352.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4005/ringtimer)}" >    "0"]?${DB(AMPUSER/4005/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1353.                     2. Macro(exten-vm,4005,4005,0,0,0)            [pbx_config]
  1354.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1355.                     4. Macro(vm,4005,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1356.                     5. Goto(vmret,1)                              [pbx_config]
  1357.   '4006' =>         hint: SIP/4006&Custom:DND4006,CustomPresence:4006 [pbx_confi   g]
  1358.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4006/ringtimer)}" >    "0"]?${DB(AMPUSER/4006/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1359.                     2. Macro(exten-vm,4006,4006,0,0,0)            [pbx_config]
  1360.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1361.                     4. Macro(vm,4006,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1362.                     5. Goto(vmret,1)                              [pbx_config]
  1363.   '4007' =>         hint: SIP/4007&Custom:DND4007,CustomPresence:4007 [pbx_confi   g]
  1364.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4007/ringtimer)}" >    "0"]?${DB(AMPUSER/4007/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1365.                     2. Macro(exten-vm,4007,4007,0,0,0)            [pbx_config]
  1366.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1367.                     4. Macro(vm,4007,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1368.                     5. Goto(vmret,1)                              [pbx_config]
  1369.   '4008' =>         hint: SIP/4008&Custom:DND4008,CustomPresence:4008 [pbx_confi   g]
  1370.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4008/ringtimer)}" >    "0"]?${DB(AMPUSER/4008/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1371.                     2. Macro(exten-vm,4008,4008,0,0,0)            [pbx_config]
  1372.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1373.                     4. Macro(vm,4008,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1374.                     5. Goto(vmret,1)                              [pbx_config]
  1375.   '4009' =>         hint: SIP/4009&Custom:DND4009,CustomPresence:4009 [pbx_confi   g]
  1376.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4009/ringtimer)}" >    "0"]?${DB(AMPUSER/4009/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1377.                     2. Macro(exten-vm,4009,4009,0,0,0)            [pbx_config]
  1378.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1379.                     4. Macro(vm,4009,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1380.                     5. Goto(vmret,1)                              [pbx_config]
  1381.   '4010' =>         hint: SIP/4010&Custom:DND4010,CustomPresence:4010 [pbx_confi   g]
  1382.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4010/ringtimer)}" >    "0"]?${DB(AMPUSER/4010/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1383.                     2. Macro(exten-vm,4010,4010,0,0,0)            [pbx_config]
  1384.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1385.                     4. Macro(vm,4010,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1386.                     5. Goto(vmret,1)                              [pbx_config]
  1387.   '4070' =>         hint: SIP/4070&Custom:DND4070,CustomPresence:4070 [pbx_confi   g]
  1388.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4070/ringtimer)}" >    "0"]?${DB(AMPUSER/4070/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1389.                     2. Macro(exten-vm,4070,4070,1,1,1)            [pbx_config]
  1390.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1391.                     4. GotoIf($["${DIALSTATUS}"="NOANSWER"]?ext-local,vmb203,1)    [pbx_config]
  1392.                     5. GotoIf($["${DIALSTATUS}"="BUSY"]?ext-local,vmu203,1) [pbx   _config]
  1393.                     6. GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?ext-local,vmu203,   1) [pbx_config]
  1394.                     7. Macro(vm,4070,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1395.                     8. Goto(vmret,1)                              [pbx_config]
  1396.   '4100' =>         hint: SIP/4100&Custom:DND4100,CustomPresence:4100 [pbx_confi   g]
  1397.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/4100/ringtimer)}" >    "0"]?${DB(AMPUSER/4100/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1398.                     2. Macro(exten-vm,novm,4100,0,0,0)            [pbx_config]
  1399.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1400.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1401.   '9000' =>         hint: &Custom:DND9000,CustomPresence:9000     [pbx_config]
  1402.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/9000/ringtimer)}" >    "0"]?${DB(AMPUSER/9000/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1403.                     2. Macro(exten-vm,9000,9000,0,0,0)            [pbx_config]
  1404.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1405.                     4. Macro(vm,9000,${DIALSTATUS},${IVR_RETVM})  [pbx_config]
  1406.                     5. Goto(vmret,1)                              [pbx_config]
  1407.                     6. Goto(from-internal,9000,1)                 [pbx_config]
  1408.   '999' =>          hint: &Custom:DND999,CustomPresence:999       [pbx_config]
  1409.                     1. Set(__RINGTIMER=${IF($["${DB(AMPUSER/999/ringtimer)}" > "   0"]?${DB(AMPUSER/999/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
  1410.                     2. Macro(exten-vm,novm,999,0,0,0)             [pbx_config]
  1411.      [dest]         3. Set(__PICKUPMARK=)                         [pbx_config]
  1412.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1413.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  1414.   'vmb103' =>       1. Macro(vm,103,BUSY,${IVR_RETVM})            [pbx_config]
  1415.                     2. Goto(vmret,1)                              [pbx_config]
  1416.   'vmb150' =>       1. Macro(vm,150,BUSY,${IVR_RETVM})            [pbx_config]
  1417.                     2. Goto(vmret,1)                              [pbx_config]
  1418.   'vmb170' =>       1. Macro(vm,170,BUSY,${IVR_RETVM})            [pbx_config]
  1419.                     2. Goto(vmret,1)                              [pbx_config]
  1420.   'vmb200' =>       1. Macro(vm,200,BUSY,${IVR_RETVM})            [pbx_config]
  1421.                     2. Goto(vmret,1)                              [pbx_config]
  1422.   'vmb201' =>       1. Macro(vm,201,BUSY,${IVR_RETVM})            [pbx_config]
  1423.                     2. Goto(vmret,1)                              [pbx_config]
  1424.   'vmb202' =>       1. Macro(vm,202,BUSY,${IVR_RETVM})            [pbx_config]
  1425.                     2. Goto(vmret,1)                              [pbx_config]
  1426.   'vmb203' =>       1. Macro(vm,203,BUSY,${IVR_RETVM})            [pbx_config]
  1427.                     2. Goto(vmret,1)                              [pbx_config]
  1428.   'vmb204' =>       1. Macro(vm,204,BUSY,${IVR_RETVM})            [pbx_config]
  1429.                     2. Goto(vmret,1)                              [pbx_config]
  1430.   'vmb4000' =>      1. Macro(vm,4000,BUSY,${IVR_RETVM})           [pbx_config]
  1431.                     2. Goto(vmret,1)                              [pbx_config]
  1432.   'vmb4001' =>      1. Macro(vm,4001,BUSY,${IVR_RETVM})           [pbx_config]
  1433.                     2. Goto(vmret,1)                              [pbx_config]
  1434.   'vmb4002' =>      1. Macro(vm,4002,BUSY,${IVR_RETVM})           [pbx_config]
  1435.                     2. Goto(vmret,1)                              [pbx_config]
  1436.   'vmb4003' =>      1. Macro(vm,4003,BUSY,${IVR_RETVM})           [pbx_config]
  1437.                     2. Goto(vmret,1)                              [pbx_config]
  1438.   'vmb4004' =>      1. Macro(vm,4004,BUSY,${IVR_RETVM})           [pbx_config]
  1439.                     2. Goto(vmret,1)                              [pbx_config]
  1440.   'vmb4005' =>      1. Macro(vm,4005,BUSY,${IVR_RETVM})           [pbx_config]
  1441.                     2. Goto(vmret,1)                              [pbx_config]
  1442.   'vmb4006' =>      1. Macro(vm,4006,BUSY,${IVR_RETVM})           [pbx_config]
  1443.                     2. Goto(vmret,1)                              [pbx_config]
  1444.   'vmb4007' =>      1. Macro(vm,4007,BUSY,${IVR_RETVM})           [pbx_config]
  1445.                     2. Goto(vmret,1)                              [pbx_config]
  1446.   'vmb4008' =>      1. Macro(vm,4008,BUSY,${IVR_RETVM})           [pbx_config]
  1447.                     2. Goto(vmret,1)                              [pbx_config]
  1448.   'vmb4009' =>      1. Macro(vm,4009,BUSY,${IVR_RETVM})           [pbx_config]
  1449.                     2. Goto(vmret,1)                              [pbx_config]
  1450.   'vmb4010' =>      1. Macro(vm,4010,BUSY,${IVR_RETVM})           [pbx_config]
  1451.                     2. Goto(vmret,1)                              [pbx_config]
  1452.   'vmb4070' =>      1. Macro(vm,4070,BUSY,${IVR_RETVM})           [pbx_config]
  1453.                     2. Goto(vmret,1)                              [pbx_config]
  1454.   'vmb9000' =>      1. Macro(vm,9000,BUSY,${IVR_RETVM})           [pbx_config]
  1455.                     2. Goto(vmret,1)                              [pbx_config]
  1456.   'vmi103' =>       1. Macro(vm,103,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1457.                     2. Goto(vmret,1)                              [pbx_config]
  1458.   'vmi150' =>       1. Macro(vm,150,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1459.                     2. Goto(vmret,1)                              [pbx_config]
  1460.   'vmi170' =>       1. Macro(vm,170,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1461.                     2. Goto(vmret,1)                              [pbx_config]
  1462.   'vmi200' =>       1. Macro(vm,200,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1463.                     2. Goto(vmret,1)                              [pbx_config]
  1464.   'vmi201' =>       1. Macro(vm,201,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1465.                     2. Goto(vmret,1)                              [pbx_config]
  1466.   'vmi202' =>       1. Macro(vm,202,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1467.                     2. Goto(vmret,1)                              [pbx_config]
  1468.   'vmi203' =>       1. Macro(vm,203,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1469.                     2. Goto(vmret,1)                              [pbx_config]
  1470.   'vmi204' =>       1. Macro(vm,204,INSTRUCT,${IVR_RETVM})        [pbx_config]
  1471.                     2. Goto(vmret,1)                              [pbx_config]
  1472.   'vmi4000' =>      1. Macro(vm,4000,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1473.                     2. Goto(vmret,1)                              [pbx_config]
  1474.   'vmi4001' =>      1. Macro(vm,4001,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1475.                     2. Goto(vmret,1)                              [pbx_config]
  1476.   'vmi4002' =>      1. Macro(vm,4002,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1477.                     2. Goto(vmret,1)                              [pbx_config]
  1478.   'vmi4003' =>      1. Macro(vm,4003,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1479.                     2. Goto(vmret,1)                              [pbx_config]
  1480.   'vmi4004' =>      1. Macro(vm,4004,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1481.                     2. Goto(vmret,1)                              [pbx_config]
  1482.   'vmi4005' =>      1. Macro(vm,4005,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1483.                     2. Goto(vmret,1)                              [pbx_config]
  1484.   'vmi4006' =>      1. Macro(vm,4006,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1485.                     2. Goto(vmret,1)                              [pbx_config]
  1486.   'vmi4007' =>      1. Macro(vm,4007,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1487.                     2. Goto(vmret,1)                              [pbx_config]
  1488.   'vmi4008' =>      1. Macro(vm,4008,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1489.                     2. Goto(vmret,1)                              [pbx_config]
  1490.   'vmi4009' =>      1. Macro(vm,4009,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1491.                     2. Goto(vmret,1)                              [pbx_config]
  1492.   'vmi4010' =>      1. Macro(vm,4010,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1493.                     2. Goto(vmret,1)                              [pbx_config]
  1494.   'vmi4070' =>      1. Macro(vm,4070,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1495.                     2. Goto(vmret,1)                              [pbx_config]
  1496.   'vmi9000' =>      1. Macro(vm,9000,INSTRUCT,${IVR_RETVM})       [pbx_config]
  1497.                     2. Goto(vmret,1)                              [pbx_config]
  1498.   'vmret' =>        1. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?playret) [pbx_config]
  1499.                     2. Hangup()                                   [pbx_config]
  1500.      [playret]      3. Playback(exited-vm-will-be-transfered&silence/1) [pbx_con   fig]
  1501.                     4. Goto(${IVR_CONTEXT},return,1)              [pbx_config]
  1502.   'vms103' =>       1. Macro(vm,103,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1503.                     2. Goto(vmret,1)                              [pbx_config]
  1504.   'vms150' =>       1. Macro(vm,150,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1505.                     2. Goto(vmret,1)                              [pbx_config]
  1506.   'vms170' =>       1. Macro(vm,170,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1507.                     2. Goto(vmret,1)                              [pbx_config]
  1508.   'vms200' =>       1. Macro(vm,200,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1509.                     2. Goto(vmret,1)                              [pbx_config]
  1510.   'vms201' =>       1. Macro(vm,201,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1511.                     2. Goto(vmret,1)                              [pbx_config]
  1512.   'vms202' =>       1. Macro(vm,202,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1513.                     2. Goto(vmret,1)                              [pbx_config]
  1514.   'vms203' =>       1. Macro(vm,203,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1515.                     2. Goto(vmret,1)                              [pbx_config]
  1516.   'vms204' =>       1. Macro(vm,204,NOMESSAGE,${IVR_RETVM})       [pbx_config]
  1517.                     2. Goto(vmret,1)                              [pbx_config]
  1518.   'vms4000' =>      1. Macro(vm,4000,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1519.                     2. Goto(vmret,1)                              [pbx_config]
  1520.   'vms4001' =>      1. Macro(vm,4001,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1521.                     2. Goto(vmret,1)                              [pbx_config]
  1522.   'vms4002' =>      1. Macro(vm,4002,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1523.                     2. Goto(vmret,1)                              [pbx_config]
  1524.   'vms4003' =>      1. Macro(vm,4003,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1525.                     2. Goto(vmret,1)                              [pbx_config]
  1526.   'vms4004' =>      1. Macro(vm,4004,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1527.                     2. Goto(vmret,1)                              [pbx_config]
  1528.   'vms4005' =>      1. Macro(vm,4005,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1529.                     2. Goto(vmret,1)                              [pbx_config]
  1530.   'vms4006' =>      1. Macro(vm,4006,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1531.                     2. Goto(vmret,1)                              [pbx_config]
  1532.   'vms4007' =>      1. Macro(vm,4007,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1533.                     2. Goto(vmret,1)                              [pbx_config]
  1534.   'vms4008' =>      1. Macro(vm,4008,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1535.                     2. Goto(vmret,1)                              [pbx_config]
  1536.   'vms4009' =>      1. Macro(vm,4009,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1537.                     2. Goto(vmret,1)                              [pbx_config]
  1538.   'vms4010' =>      1. Macro(vm,4010,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1539.                     2. Goto(vmret,1)                              [pbx_config]
  1540.   'vms4070' =>      1. Macro(vm,4070,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1541.                     2. Goto(vmret,1)                              [pbx_config]
  1542.   'vms9000' =>      1. Macro(vm,9000,NOMESSAGE,${IVR_RETVM})      [pbx_config]
  1543.                     2. Goto(vmret,1)                              [pbx_config]
  1544.   'vmu103' =>       1. Macro(vm,103,NOANSWER,${IVR_RETVM})        [pbx_config]
  1545.                     2. Goto(vmret,1)                              [pbx_config]
  1546.   'vmu150' =>       1. Macro(vm,150,NOANSWER,${IVR_RETVM})        [pbx_config]
  1547.                     2. Goto(vmret,1)                              [pbx_config]
  1548.   'vmu170' =>       1. Macro(vm,170,NOANSWER,${IVR_RETVM})        [pbx_config]
  1549.                     2. Goto(vmret,1)                              [pbx_config]
  1550.   'vmu200' =>       1. Macro(vm,200,NOANSWER,${IVR_RETVM})        [pbx_config]
  1551.                     2. Goto(vmret,1)                              [pbx_config]
  1552.   'vmu201' =>       1. Macro(vm,201,NOANSWER,${IVR_RETVM})        [pbx_config]
  1553.                     2. Goto(vmret,1)                              [pbx_config]
  1554.   'vmu202' =>       1. Macro(vm,202,NOANSWER,${IVR_RETVM})        [pbx_config]
  1555.                     2. Goto(vmret,1)                              [pbx_config]
  1556.   'vmu203' =>       1. Macro(vm,203,NOANSWER,${IVR_RETVM})        [pbx_config]
  1557.                     2. Goto(vmret,1)                              [pbx_config]
  1558.   'vmu204' =>       1. Macro(vm,204,NOANSWER,${IVR_RETVM})        [pbx_config]
  1559.                     2. Goto(vmret,1)                              [pbx_config]
  1560.   'vmu4000' =>      1. Macro(vm,4000,NOANSWER,${IVR_RETVM})       [pbx_config]
  1561.                     2. Goto(vmret,1)                              [pbx_config]
  1562.   'vmu4001' =>      1. Macro(vm,4001,NOANSWER,${IVR_RETVM})       [pbx_config]
  1563.                     2. Goto(vmret,1)                              [pbx_config]
  1564.   'vmu4002' =>      1. Macro(vm,4002,NOANSWER,${IVR_RETVM})       [pbx_config]
  1565.                     2. Goto(vmret,1)                              [pbx_config]
  1566.   'vmu4003' =>      1. Macro(vm,4003,NOANSWER,${IVR_RETVM})       [pbx_config]
  1567.                     2. Goto(vmret,1)                              [pbx_config]
  1568.   'vmu4004' =>      1. Macro(vm,4004,NOANSWER,${IVR_RETVM})       [pbx_config]
  1569.                     2. Goto(vmret,1)                              [pbx_config]
  1570.   'vmu4005' =>      1. Macro(vm,4005,NOANSWER,${IVR_RETVM})       [pbx_config]
  1571.                     2. Goto(vmret,1)                              [pbx_config]
  1572.   'vmu4006' =>      1. Macro(vm,4006,NOANSWER,${IVR_RETVM})       [pbx_config]
  1573.                     2. Goto(vmret,1)                              [pbx_config]
  1574.   'vmu4007' =>      1. Macro(vm,4007,NOANSWER,${IVR_RETVM})       [pbx_config]
  1575.                     2. Goto(vmret,1)                              [pbx_config]
  1576.   'vmu4008' =>      1. Macro(vm,4008,NOANSWER,${IVR_RETVM})       [pbx_config]
  1577.                     2. Goto(vmret,1)                              [pbx_config]
  1578.   'vmu4009' =>      1. Macro(vm,4009,NOANSWER,${IVR_RETVM})       [pbx_config]
  1579.                     2. Goto(vmret,1)                              [pbx_config]
  1580.   'vmu4010' =>      1. Macro(vm,4010,NOANSWER,${IVR_RETVM})       [pbx_config]
  1581.                     2. Goto(vmret,1)                              [pbx_config]
  1582.   'vmu4070' =>      1. Macro(vm,4070,NOANSWER,${IVR_RETVM})       [pbx_config]
  1583.                     2. Goto(vmret,1)                              [pbx_config]
  1584.   'vmu9000' =>      1. Macro(vm,9000,NOANSWER,${IVR_RETVM})       [pbx_config]
  1585.                     2. Goto(vmret,1)                              [pbx_config]
  1586.   '_*80X.' =>       hint: ${DB(AMPUSER/${EXTEN:3}/hint)}          [pbx_config]
  1587.   Include =>        'ext-local-custom'                            [pbx_config]
  1588.  
  1589. [ Context 'app-dialvm' created by 'pbx_config' ]
  1590.   '*98' =>          1. Macro(user-callerid,)                      [pbx_config]
  1591.                     2. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1592.                     3. Set(CONNECTEDLINE(name,i)=Dial Voicemail)  [pbx_config]
  1593.                     4. Set(CONNECTEDLINE(num,i)=${EXTEN})         [pbx_config]
  1594.                     5. Answer()                                   [pbx_config]
  1595.      [start]        6. Wait(1)                                    [pbx_config]
  1596.                     7. Noop(app-dialvm: Asking for mailbox)       [pbx_config]
  1597.                     8. Read(MAILBOX,vm-login,,,3,2)               [pbx_config]
  1598.      [check]        9. GotoIf($["${MAILBOX}" = ""]?hangup)        [pbx_config]
  1599.                     10. Noop(app-dialvm: Got Mailbox ${MAILBOX})  [pbx_config]
  1600.                     11. Macro(get-vmcontext,${MAILBOX})           [pbx_config]
  1601.                     12. Set(VMBOXEXISTSSTATUS=${IF(${VM_INFO(${MAILBOX}@${VMCONT   EXT},exists)}?SUCCESS:FAILED)}) [pbx_config]
  1602.                     13. GotoIf($["${VMBOXEXISTSSTATUS}" = "SUCCESS"]?good:bad) [   pbx_config]
  1603.                     14. Macro(hangupcall,)                        [pbx_config]
  1604.      [good]         15. Noop(app-dialvm: Good mailbox ${MAILBOX}@${VMCONTEXT}) [   pbx_config]
  1605.                     16. VoiceMailMain(${MAILBOX}@${VMCONTEXT})    [pbx_config]
  1606.                     17. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?playret) [pbx_config]
  1607.                     18. Macro(hangupcall,)                        [pbx_config]
  1608.      [bad]          19. Noop(app-dialvm: BAD mailbox ${MAILBOX}@${VMCONTEXT}) [p   bx_config]
  1609.                     20. Wait(1)                                   [pbx_config]
  1610.                     21. Noop(app-dialvm: Asking for password so people can't pro   be for existence of a mailbox) [pbx_config]
  1611.                     22. Read(FAKEPW,vm-password,,,3,2)            [pbx_config]
  1612.                     23. Noop(app-dialvm: Asking for mailbox again) [pbx_config]
  1613.                     24. Read(MAILBOX,vm-incorrect-mailbox,,,3,2)  [pbx_config]
  1614.                     25. Goto(check)                               [pbx_config]
  1615.                     26. Macro(hangupcall,)                        [pbx_config]
  1616.      [hangup]       27. Playback(vm-incorrect&vm-goodbye)         [pbx_config]
  1617.                     28. Macro(hangupcall,)                        [pbx_config]
  1618.      [playret]      29. Playback(beep&you-will-be-transfered-menu&silence/1) [pb   x_config]
  1619.                     30. Goto(${IVR_CONTEXT},return,1)             [pbx_config]
  1620.   '_*98.' =>        1. Set(CONNECTEDLINE(name-charset,i)=utf8)    [pbx_config]
  1621.                     2. Set(CONNECTEDLINE(name,i)=Dial Voicemail)  [pbx_config]
  1622.                     3. Set(CONNECTEDLINE(num,i)=${EXTEN:3})       [pbx_config]
  1623.                     4. Answer()                                   [pbx_config]
  1624.                     5. Wait(1)                                    [pbx_config]
  1625.                     6. Macro(get-vmcontext,${EXTEN:3})            [pbx_config]
  1626.                     7. VoiceMailMain(${EXTEN:3}@${VMCONTEXT})     [pbx_config]
  1627.                     8. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" !=    ""]?${IVR_CONTEXT},return,1) [pbx_config]
  1628.                     9. Macro(hangupcall,)                         [pbx_config]
  1629.   Include =>        'app-dialvm-custom'                           [pbx_config]
  1630.  
  1631. [ Context 'vm-callme' created by 'pbx_config' ]
  1632.   '#' =>            1. Playback(vm-goodbye)                       [pbx_config]
  1633.                     2. Hangup()                                   [pbx_config]
  1634.   '*' =>            1. Macro(get-vmcontext,${MBOX})               [pbx_config]
  1635.                     2. VoiceMailMain(${MBOX}@${VMCONTEXT},s)      [pbx_config]
  1636.   '5' =>            1. Goto(s,repeat)                             [pbx_config]
  1637.   'h' =>            1. Hangup()                                   [pbx_config]
  1638.   'i' =>            1. Playback(pm-invalid-option)                [pbx_config]
  1639.                     2. Goto(s,repeat)                             [pbx_config]
  1640.   's' =>            1. Answer()                                   [pbx_config]
  1641.                     2. Wait(1)                                    [pbx_config]
  1642.      [repeat]       3. Background(${MSG}&silence/2&vm-repeat&vm-starmain) [pbx_c   onfig]
  1643.                     4. WaitExten(15,)                             [pbx_config]
  1644.   't' =>            1. Playback(vm-goodbye)                       [pbx_config]
  1645.                     2. Hangup()                                   [pbx_config]
  1646.   Include =>        'vm-callme-custom'                            [pbx_config]
  1647.  
  1648. [ Context 'ext-tts' created by 'pbx_config' ]
  1649.   '2' =>            1. Noop(TTS: ttsflite)                        [pbx_config]
  1650.                     2. Noop(Using: flite)                         [pbx_config]
  1651.                     3. Answer()                                   [pbx_config]
  1652.                     4. AGI(propolys-tts.agi,"suck my balls",flite,/usr/bin/flite   ) [pbx_config]
  1653.                     5. Goto(from-did-direct,103,1)                [pbx_config]
  1654.   '3' =>            1. Noop(TTS: TTSTest1)                        [pbx_config]
  1655.                     2. Noop(Using: flite)                         [pbx_config]
  1656.                     3. Answer()                                   [pbx_config]
  1657.                     4. AGI(propolys-tts.agi,"",flite,/usr/bin/flite) [pbx_config   ]
  1658.                     5. Goto(ext-queues,501,1)                     [pbx_config]
  1659.   Include =>        'ext-tts-custom'                              [pbx_config]
  1660.  
  1661. [ Context 'macro-toggle-tc' created by 'pbx_config' ]
  1662.   'en' =>           1. Playback(beep&silence/1&time&${IF($["${TCSTATE}" = "true"   ]?de-activated:activated)}) [pbx_config]
  1663.   'ja' =>           1. Playback(beep&silence/1&time-change&${IF($["${TCSTATE}" =    "true"]?de-activated:activated)}) [pbx_config]
  1664.   'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(macro-toggle-tc,${CHANNEL(la   nguage)})}]?macro-toggle-tc,${CHANNEL(language)},${ARG1}():macro-toggle-tc,en,${   ARG1}()) [pbx_config]
  1665.                     2. Return()                                   [pbx_config]
  1666.   's' =>            1. GotoIf($[${ARG2} > 0]?hasauth:toggle)      [pbx_config]
  1667.      [hasauth]      2. Authenticate(${ARG2},)                     [pbx_config]
  1668.      [toggle]       3. Set(INDEXES=${ARG1})                       [pbx_config]
  1669.                     4. Set(TCRETURN=RETURN)                       [pbx_config]
  1670.                     5. Set(TCSTATE=false)                         [pbx_config]
  1671.                     6. Set(TCINUSE=${DB(TC/${ARG1}/INUSESTATE)})  [pbx_config]
  1672.                     7. Set(TCNOTINUSE=${DB(TC/${ARG1}/NOT_INUSESTATE)}) [pbx_con   fig]
  1673.                     8. Set(LOOPCNT=${FIELDQTY(INDEXES,&)})        [pbx_config]
  1674.                     9. Set(ITER=1)                                [pbx_config]
  1675.      [begin1]       10. Set(INDEX=${CUT(INDEXES,&,${ITER})})      [pbx_config]
  1676.                     11. Gosub(timeconditions,${INDEX},1())        [pbx_config]
  1677.                     12. Set(TCSTATE_${INDEX}=${TCSTATE})          [pbx_config]
  1678.                     13. ExecIf($["${TCOVERRIDE}" = "true"]?Set(OVERRIDE=true)) [   pbx_config]
  1679.      [end1]         14. Set(ITER=$[${ITER} + 1])                  [pbx_config]
  1680.                     15. GotoIf($[${ITER} <= ${LOOPCNT}]?begin1)   [pbx_config]
  1681.                     16. Set(LOOPCNT=${FIELDQTY(INDEXES,&)})       [pbx_config]
  1682.                     17. Set(ITER=1)                               [pbx_config]
  1683.      [begin2]       18. Set(INDEX=${CUT(INDEXES,&,${ITER})})      [pbx_config]
  1684.                     19. Set(DB(TC/${INDEX})=${IF($["${OVERRIDE}" = "true"]?:${IF   ($["${TCSTATE_${INDEX}}" == "true"]?false:true)})}) [pbx_config]
  1685.                     20. Gosub(timeconditions,${INDEX},1())        [pbx_config]
  1686.      [end2]         21. Set(ITER=$[${ITER} + 1])                  [pbx_config]
  1687.                     22. GotoIf($[${ITER} <= ${LOOPCNT}]?begin2)   [pbx_config]
  1688.      [playback]     23. Gosub(macro-toggle-tc,lang-playback,1(hook_0)) [pbx_conf   ig]
  1689.   Include =>        'macro-toggle-tc-custom'                      [pbx_config]
  1690.  
  1691. [ Context 'timeconditions-toggles' created by 'pbx_config' ]
  1692.   '*271' =>         hint: Custom:TC1                              [pbx_config]
  1693.                     1. Macro(user-callerid,)                      [pbx_config]
  1694.                     2. Macro(toggle-tc,1)                         [pbx_config]
  1695.                     3. Hangup()                                   [pbx_config]
  1696.   '*272' =>         hint: Custom:TC2                              [pbx_config]
  1697.                     1. Macro(user-callerid,)                      [pbx_config]
  1698.                     2. Macro(toggle-tc,2)                         [pbx_config]
  1699.                     3. Hangup()                                   [pbx_config]
  1700.   '*273' =>         hint: Custom:TC3                              [pbx_config]
  1701.                     1. Macro(user-callerid,)                      [pbx_config]
  1702.                     2. Macro(toggle-tc,3)                         [pbx_config]
  1703.                     3. Hangup()                                   [pbx_config]
  1704.   '*274' =>         hint: Custom:TC4                              [pbx_config]
  1705.                     1. Macro(user-callerid,)                      [pbx_config]
  1706.                     2. Macro(toggle-tc,4)                         [pbx_config]
  1707.                     3. Hangup()                                   [pbx_config]
  1708.   '*275' =>         hint: Custom:TC5                              [pbx_config]
  1709.                     1. Macro(user-callerid,)                      [pbx_config]
  1710.                     2. Macro(toggle-tc,5)                         [pbx_config]
  1711.                     3. Hangup()                                   [pbx_config]
  1712.   'h' =>            1. Hangup()                                   [pbx_config]
  1713.   Include =>        'timeconditions-toggles-custom'               [pbx_config]
  1714.  
  1715. [ Context 'timeconditions' created by 'pbx_config' ]
  1716.   '1' =>            1. Set(DB(TC/1/INUSESTATE)=INUSE)             [pbx_config]
  1717.                     2. Set(DB(TC/1/NOT_INUSESTATE)=NOT_INUSE)     [pbx_config]
  1718.                     3. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1719.                     4. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,4,jul?TRUE:FALSE)}   ) [pbx_config]
  1720.                     5. GotoIfTime(08:30-16:30,*,4,jul?truestate)  [pbx_config]
  1721.                     6. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1722.                     7. Set(TIMEMATCHED=${IFTIME(16:31-00:00,mon-fri,1-31,jan-dec   ?TRUE:FALSE)}) [pbx_config]
  1723.                     8. GotoIfTime(16:31-00:00,mon-fri,1-31,jan-dec?truestate) [p   bx_config]
  1724.                     9. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1725.                     10. Set(TIMEMATCHED=${IFTIME(14:00-16:30,*,14,apr?TRUE:FALSE   )}) [pbx_config]
  1726.                     11. GotoIfTime(14:00-16:30,*,14,apr?truestate) [pbx_config]
  1727.                     12. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1728.                     13. Set(TIMEMATCHED=${IFTIME(13:00-16:30,*,23,dec?TRUE:FALSE   )}) [pbx_config]
  1729.                     14. GotoIfTime(13:00-16:30,*,23,dec?truestate) [pbx_config]
  1730.                     15. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1731.                     16. Set(TIMEMATCHED=${IFTIME(13:00-16:30,*,11,nov?TRUE:FALSE   )}) [pbx_config]
  1732.                     17. GotoIfTime(13:00-16:30,*,11,nov?truestate) [pbx_config]
  1733.                     18. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1734.                     19. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,6,jan?TRUE:FALSE)   }) [pbx_config]
  1735.                     20. GotoIfTime(08:30-16:30,*,6,jan?truestate) [pbx_config]
  1736.                     21. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1737.                     22. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,4,jul?TRUE:FALSE)   }) [pbx_config]
  1738.                     23. GotoIfTime(08:30-16:30,*,4,jul?truestate) [pbx_config]
  1739.                     24. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1740.                     25. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,2,jan?TRUE:FALSE)   }) [pbx_config]
  1741.                     26. GotoIfTime(08:30-16:30,*,2,jan?truestate) [pbx_config]
  1742.                     27. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1743.                     28. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,29,may?TRUE:FALSE   )}) [pbx_config]
  1744.                     29. GotoIfTime(08:30-16:30,*,29,may?truestate) [pbx_config]
  1745.                     30. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1746.                     31. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,26,dec?TRUE:FALSE   )}) [pbx_config]
  1747.                     32. GotoIfTime(08:30-16:30,*,26,dec?truestate) [pbx_config]
  1748.                     33. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1749.                     34. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,20,feb?TRUE:FALSE   )}) [pbx_config]
  1750.                     35. GotoIfTime(08:30-16:30,*,20,feb?truestate) [pbx_config]
  1751.                     36. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1752.                     37. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,1,jan?TRUE:FALSE)   }) [pbx_config]
  1753.                     38. GotoIfTime(08:30-16:30,*,1,jan?truestate) [pbx_config]
  1754.                     39. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1755.                     40. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,10,oct?TRUE:FALSE   )}) [pbx_config]
  1756.                     41. GotoIfTime(08:30-16:30,*,10,oct?truestate) [pbx_config]
  1757.                     42. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1758.                     43. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,16,jan?TRUE:FALSE   )}) [pbx_config]
  1759.                     44. GotoIfTime(08:30-16:30,*,16,jan?truestate) [pbx_config]
  1760.                     45. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1761.                     46. Set(TIMEMATCHED=${IFTIME(00:00-23:59,sat-sun,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1762.                     47. GotoIfTime(00:00-23:59,sat-sun,1-31,jan-dec?truestate) [   pbx_config]
  1763.                     48. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1764.                     49. Set(TIMEMATCHED=${IFTIME(00:00-08:29,mon-fri,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1765.                     50. GotoIfTime(00:00-08:29,mon-fri,1-31,jan-dec?truestate) [   pbx_config]
  1766.                     51. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1767.                     52. Set(TIMEMATCHED=${IFTIME(00:00-23:59,*,24-25,nov?TRUE:FA   LSE)}) [pbx_config]
  1768.                     53. GotoIfTime(00:00-23:59,*,24-25,nov?truestate) [pbx_confi   g]
  1769.      [falsestate]   54. GotoIf($["${DB(TC/1):0:4}" = "true"]?truegoto) [pbx_conf   ig]
  1770.                     55. ExecIf($["${DB(TC/1)}" = "false"]?Set(DB(TC/1)=)) [pbx_c   onfig]
  1771.      [falsegoto]    56. Set(DEVICE_STATE(Custom:TC1)=INUSE)       [pbx_config]
  1772.                     57. ExecIf($["${DB(TC/1)}" = "false_sticky"]?Set(DEVICE_STAT   E(Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1773.                     58. GotoIf($["${TCRETURN}"!="RETURN"]?ivr-1,s,1) [pbx_config   ]
  1774.                     59. Set(TCSTATE=false)                        [pbx_config]
  1775.                     60. Set(TCOVERRIDE=${IF($["${DB(TC/1):0:5}" = "false"]?true:   false)}) [pbx_config]
  1776.                     61. Return()                                  [pbx_config]
  1777.      [truestate]    62. GotoIf($["${DB(TC/1):0:5}" = "false"]?falsegoto) [pbx_co   nfig]
  1778.                     63. ExecIf($["${DB(TC/1)}" = "true"]?Set(DB(TC/1)=)) [pbx_co   nfig]
  1779.      [truegoto]     64. Set(DEVICE_STATE(Custom:TC1)=NOT_INUSE)   [pbx_config]
  1780.                     65. ExecIf($["${DB(TC/1)}" = "true_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1781.                     66. GotoIf($["${TCRETURN}"!="RETURN"]?ivr-4,s,1) [pbx_config   ]
  1782.                     67. Set(TCSTATE=true)                         [pbx_config]
  1783.                     68. Set(TCOVERRIDE=${IF($["${DB(TC/1):0:4}" = "true"]?true:f   alse)}) [pbx_config]
  1784.                     69. Return()                                  [pbx_config]
  1785.   '2' =>            1. Set(DB(TC/2/INUSESTATE)=INUSE)             [pbx_config]
  1786.                     2. Set(DB(TC/2/NOT_INUSESTATE)=NOT_INUSE)     [pbx_config]
  1787.      [falsestate]   3. GotoIf($["${DB(TC/2):0:4}" = "true"]?truegoto) [pbx_confi   g]
  1788.                     4. ExecIf($["${DB(TC/2)}" = "false"]?Set(DB(TC/2)=)) [pbx_co   nfig]
  1789.      [falsegoto]    5. Set(DEVICE_STATE(Custom:TC2)=INUSE)        [pbx_config]
  1790.                     6. ExecIf($["${DB(TC/2)}" = "false_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1791.                     7. GotoIf($["${TCRETURN}"!="RETURN"]?ivr-15,s,1) [pbx_config   ]
  1792.                     8. Set(TCSTATE=false)                         [pbx_config]
  1793.                     9. Set(TCOVERRIDE=${IF($["${DB(TC/2):0:5}" = "false"]?true:f   alse)}) [pbx_config]
  1794.                     10. Return()                                  [pbx_config]
  1795.      [truestate]    11. GotoIf($["${DB(TC/2):0:5}" = "false"]?falsegoto) [pbx_co   nfig]
  1796.                     12. ExecIf($["${DB(TC/2)}" = "true"]?Set(DB(TC/2)=)) [pbx_co   nfig]
  1797.      [truegoto]     13. Set(DEVICE_STATE(Custom:TC2)=NOT_INUSE)   [pbx_config]
  1798.                     14. ExecIf($["${DB(TC/2)}" = "true_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1799.                     15. GotoIf($["${TCRETURN}"!="RETURN"]?ivr-6,s,1) [pbx_config   ]
  1800.                     16. Set(TCSTATE=true)                         [pbx_config]
  1801.                     17. Set(TCOVERRIDE=${IF($["${DB(TC/2):0:4}" = "true"]?true:f   alse)}) [pbx_config]
  1802.                     18. Return()                                  [pbx_config]
  1803.   '3' =>            1. Set(DB(TC/3/INUSESTATE)=INUSE)             [pbx_config]
  1804.                     2. Set(DB(TC/3/NOT_INUSESTATE)=NOT_INUSE)     [pbx_config]
  1805.                     3. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1806.                     4. Set(TIMEMATCHED=${IFTIME(07:00-17:30,*,4,jul?TRUE:FALSE)}   ) [pbx_config]
  1807.                     5. GotoIfTime(07:00-17:30,*,4,jul?truestate)  [pbx_config]
  1808.                     6. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1809.                     7. Set(TIMEMATCHED=${IFTIME(07:00-17:30,*,29,may?TRUE:FALSE)   }) [pbx_config]
  1810.                     8. GotoIfTime(07:00-17:30,*,29,may?truestate) [pbx_config]
  1811.                     9. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1812.                     10. Set(TIMEMATCHED=${IFTIME(17:30-00:00,mon-fri,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1813.                     11. GotoIfTime(17:30-00:00,mon-fri,1-31,jan-dec?truestate) [   pbx_config]
  1814.                     12. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1815.                     13. Set(TIMEMATCHED=${IFTIME(00:00-23:59,sat-sun,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1816.                     14. GotoIfTime(00:00-23:59,sat-sun,1-31,jan-dec?truestate) [   pbx_config]
  1817.                     15. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1818.                     16. Set(TIMEMATCHED=${IFTIME(00:00-07:00,mon-fri,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1819.                     17. GotoIfTime(00:00-07:00,mon-fri,1-31,jan-dec?truestate) [   pbx_config]
  1820.      [falsestate]   18. GotoIf($["${DB(TC/3):0:4}" = "true"]?truegoto) [pbx_conf   ig]
  1821.                     19. ExecIf($["${DB(TC/3)}" = "false"]?Set(DB(TC/3)=)) [pbx_c   onfig]
  1822.      [falsegoto]    20. Set(DEVICE_STATE(Custom:TC3)=INUSE)       [pbx_config]
  1823.                     21. ExecIf($["${DB(TC/3)}" = "false_sticky"]?Set(DEVICE_STAT   E(Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1824.                     22. GotoIf($["${TCRETURN}"!="RETURN"]?ext-queues,503,1) [pbx   _config]
  1825.                     23. Set(TCSTATE=false)                        [pbx_config]
  1826.                     24. Set(TCOVERRIDE=${IF($["${DB(TC/3):0:5}" = "false"]?true:   false)}) [pbx_config]
  1827.                     25. Return()                                  [pbx_config]
  1828.      [truestate]    26. GotoIf($["${DB(TC/3):0:5}" = "false"]?falsegoto) [pbx_co   nfig]
  1829.                     27. ExecIf($["${DB(TC/3)}" = "true"]?Set(DB(TC/3)=)) [pbx_co   nfig]
  1830.      [truegoto]     28. Set(DEVICE_STATE(Custom:TC3)=NOT_INUSE)   [pbx_config]
  1831.                     29. ExecIf($["${DB(TC/3)}" = "true_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1832.                     30. GotoIf($["${TCRETURN}"!="RETURN"]?ivr-14,s,1) [pbx_confi   g]
  1833.                     31. Set(TCSTATE=true)                         [pbx_config]
  1834.                     32. Set(TCOVERRIDE=${IF($["${DB(TC/3):0:4}" = "true"]?true:f   alse)}) [pbx_config]
  1835.                     33. Return()                                  [pbx_config]
  1836.   '4' =>            1. Set(DB(TC/4/INUSESTATE)=INUSE)             [pbx_config]
  1837.                     2. Set(DB(TC/4/NOT_INUSESTATE)=NOT_INUSE)     [pbx_config]
  1838.                     3. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1839.                     4. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,4,jul?TRUE:FALSE)}   ) [pbx_config]
  1840.                     5. GotoIfTime(08:30-16:30,*,4,jul?truestate)  [pbx_config]
  1841.                     6. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1842.                     7. Set(TIMEMATCHED=${IFTIME(16:31-00:00,mon-fri,1-31,jan-dec   ?TRUE:FALSE)}) [pbx_config]
  1843.                     8. GotoIfTime(16:31-00:00,mon-fri,1-31,jan-dec?truestate) [p   bx_config]
  1844.                     9. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_c   onfig]
  1845.                     10. Set(TIMEMATCHED=${IFTIME(14:00-16:30,*,14,apr?TRUE:FALSE   )}) [pbx_config]
  1846.                     11. GotoIfTime(14:00-16:30,*,14,apr?truestate) [pbx_config]
  1847.                     12. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1848.                     13. Set(TIMEMATCHED=${IFTIME(13:00-16:30,*,23,dec?TRUE:FALSE   )}) [pbx_config]
  1849.                     14. GotoIfTime(13:00-16:30,*,23,dec?truestate) [pbx_config]
  1850.                     15. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1851.                     16. Set(TIMEMATCHED=${IFTIME(13:00-16:30,*,11,nov?TRUE:FALSE   )}) [pbx_config]
  1852.                     17. GotoIfTime(13:00-16:30,*,11,nov?truestate) [pbx_config]
  1853.                     18. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1854.                     19. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,6,jan?TRUE:FALSE)   }) [pbx_config]
  1855.                     20. GotoIfTime(08:30-16:30,*,6,jan?truestate) [pbx_config]
  1856.                     21. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1857.                     22. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,4,jul?TRUE:FALSE)   }) [pbx_config]
  1858.                     23. GotoIfTime(08:30-16:30,*,4,jul?truestate) [pbx_config]
  1859.                     24. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1860.                     25. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,2,jan?TRUE:FALSE)   }) [pbx_config]
  1861.                     26. GotoIfTime(08:30-16:30,*,2,jan?truestate) [pbx_config]
  1862.                     27. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1863.                     28. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,29,may?TRUE:FALSE   )}) [pbx_config]
  1864.                     29. GotoIfTime(08:30-16:30,*,29,may?truestate) [pbx_config]
  1865.                     30. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1866.                     31. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,26,dec?TRUE:FALSE   )}) [pbx_config]
  1867.                     32. GotoIfTime(08:30-16:30,*,26,dec?truestate) [pbx_config]
  1868.                     33. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1869.                     34. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,20,feb?TRUE:FALSE   )}) [pbx_config]
  1870.                     35. GotoIfTime(08:30-16:30,*,20,feb?truestate) [pbx_config]
  1871.                     36. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1872.                     37. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,1,jan?TRUE:FALSE)   }) [pbx_config]
  1873.                     38. GotoIfTime(08:30-16:30,*,1,jan?truestate) [pbx_config]
  1874.                     39. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1875.                     40. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,10,oct?TRUE:FALSE   )}) [pbx_config]
  1876.                     41. GotoIfTime(08:30-16:30,*,10,oct?truestate) [pbx_config]
  1877.                     42. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1878.                     43. Set(TIMEMATCHED=${IFTIME(08:30-16:30,*,16,jan?TRUE:FALSE   )}) [pbx_config]
  1879.                     44. GotoIfTime(08:30-16:30,*,16,jan?truestate) [pbx_config]
  1880.                     45. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1881.                     46. Set(TIMEMATCHED=${IFTIME(00:00-23:59,sat-sun,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1882.                     47. GotoIfTime(00:00-23:59,sat-sun,1-31,jan-dec?truestate) [   pbx_config]
  1883.                     48. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1884.                     49. Set(TIMEMATCHED=${IFTIME(00:00-08:29,mon-fri,1-31,jan-de   c?TRUE:FALSE)}) [pbx_config]
  1885.                     50. GotoIfTime(00:00-08:29,mon-fri,1-31,jan-dec?truestate) [   pbx_config]
  1886.                     51. Set(TIMENOW=${STRFTIME(${EPOCH},,%H:%M,%a,%e,%b)}) [pbx_   config]
  1887.                     52. Set(TIMEMATCHED=${IFTIME(00:00-23:59,*,24-25,nov?TRUE:FA   LSE)}) [pbx_config]
  1888.                     53. GotoIfTime(00:00-23:59,*,24-25,nov?truestate) [pbx_confi   g]
  1889.      [falsestate]   54. GotoIf($["${DB(TC/4):0:4}" = "true"]?truegoto) [pbx_conf   ig]
  1890.                     55. ExecIf($["${DB(TC/4)}" = "false"]?Set(DB(TC/4)=)) [pbx_c   onfig]
  1891.      [falsegoto]    56. Set(DEVICE_STATE(Custom:TC4)=INUSE)       [pbx_config]
  1892.                     57. ExecIf($["${DB(TC/4)}" = "false_sticky"]?Set(DEVICE_STAT   E(Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1893.                     58. GotoIf($["${TCRETURN}"!="RETURN"]?ext-queues,502,1) [pbx   _config]
  1894.                     59. Set(TCSTATE=false)                        [pbx_config]
  1895.                     60. Set(TCOVERRIDE=${IF($["${DB(TC/4):0:5}" = "false"]?true:   false)}) [pbx_config]
  1896.                     61. Return()                                  [pbx_config]
  1897.      [truestate]    62. GotoIf($["${DB(TC/4):0:5}" = "false"]?falsegoto) [pbx_co   nfig]
  1898.                     63. ExecIf($["${DB(TC/4)}" = "true"]?Set(DB(TC/4)=)) [pbx_co   nfig]
  1899.      [truegoto]     64. Set(DEVICE_STATE(Custom:TC4)=NOT_INUSE)   [pbx_config]
  1900.                     65. ExecIf($["${DB(TC/4)}" = "true_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1901.                     66. GotoIf($["${TCRETURN}"!="RETURN"]?ext-local,vmu202,1) [p   bx_config]
  1902.                     67. Set(TCSTATE=true)                         [pbx_config]
  1903.                     68. Set(TCOVERRIDE=${IF($["${DB(TC/4):0:4}" = "true"]?true:f   alse)}) [pbx_config]
  1904.                     69. Return()                                  [pbx_config]
  1905.   '5' =>            1. Set(DB(TC/5/INUSESTATE)=INUSE)             [pbx_config]
  1906.                     2. Set(DB(TC/5/NOT_INUSESTATE)=NOT_INUSE)     [pbx_config]
  1907.      [falsestate]   3. GotoIf($["${DB(TC/5):0:4}" = "true"]?truegoto) [pbx_confi   g]
  1908.                     4. ExecIf($["${DB(TC/5)}" = "false"]?Set(DB(TC/5)=)) [pbx_co   nfig]
  1909.      [falsegoto]    5. Set(DEVICE_STATE(Custom:TC5)=INUSE)        [pbx_config]
  1910.                     6. ExecIf($["${DB(TC/5)}" = "false_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1911.                     7. GotoIf($["${TCRETURN}"!="RETURN"]?ext-queues,504,1) [pbx_   config]
  1912.                     8. Set(TCSTATE=false)                         [pbx_config]
  1913.                     9. Set(TCOVERRIDE=${IF($["${DB(TC/5):0:5}" = "false"]?true:f   alse)}) [pbx_config]
  1914.                     10. Return()                                  [pbx_config]
  1915.      [truestate]    11. GotoIf($["${DB(TC/5):0:5}" = "false"]?falsegoto) [pbx_co   nfig]
  1916.                     12. ExecIf($["${DB(TC/5)}" = "true"]?Set(DB(TC/5)=)) [pbx_co   nfig]
  1917.      [truegoto]     13. Set(DEVICE_STATE(Custom:TC5)=NOT_INUSE)   [pbx_config]
  1918.                     14. ExecIf($["${DB(TC/5)}" = "true_sticky"]?Set(DEVICE_STATE   (Custom:TCSTICKY${ARG1})=INUSE)) [pbx_config]
  1919.                     15. GotoIf($["${TCRETURN}"!="RETURN"]?from-did-direct,204,1)    [pbx_config]
  1920.                     16. Set(TCSTATE=true)                         [pbx_config]
  1921.                     17. Set(TCOVERRIDE=${IF($["${DB(TC/5):0:4}" = "true"]?true:f   alse)}) [pbx_config]
  1922.                     18. Return()                                  [pbx_config]
  1923.   Include =>        'timeconditions-custom'                       [pbx_config]
  1924.  
  1925. [ Context 'app-speeddial-set' created by 'pbx_config' ]
  1926.   '1' =>            1. Gosub(app-speeddial-set,lang-playback,1(hook_2)) [pbx_con   fig]
  1927.                     2. Goto(s,conflicts)                          [pbx_config]
  1928.   '2' =>            1. Goto(s,setloc)                             [pbx_config]
  1929.   '3' =>            1. Goto(s,setnum)                             [pbx_config]
  1930.   'en' =>           1. Playback(speed-dial)                       [pbx_config]
  1931.                     2. SayDigits(${newlocation})                  [pbx_config]
  1932.                     3. Playback(is-set-to)                        [pbx_config]
  1933.                     4. SayDigits(${newnum})                       [pbx_config]
  1934.                     5. Return()                                   [pbx_config]
  1935.      [hook_1]       6. Playback(speed-dial)                       [pbx_config]
  1936.                     7. SayDigits(${newlocation})                  [pbx_config]
  1937.                     8. Playback(is-in-use)                        [pbx_config]
  1938.                     9. Background(press-1&to-listen-to-it&press-2&to-enter-a-dif   f&location&press-3&to-change&telephone-number) [pbx_config]
  1939.                     10. Return()                                  [pbx_config]
  1940.      [hook_2]       11. Playback(speed-dial)                      [pbx_config]
  1941.                     12. SayDigits(${newlocation})                 [pbx_config]
  1942.                     13. Playback(is-set-to)                       [pbx_config]
  1943.                     14. SayDigits(${SPEEDDIALNUMBER})             [pbx_config]
  1944.                     15. Return()                                  [pbx_config]
  1945.   'ja' =>           1. Playback(speed-dial)                       [pbx_config]
  1946.                     2. SayDigits(${newlocation})                  [pbx_config]
  1947.                     3. Playback(jp-wo)                            [pbx_config]
  1948.                     4. SayDigits(${newnum})                       [pbx_config]
  1949.                     5. Playback(is-set-to)                        [pbx_config]
  1950.                     6. Return()                                   [pbx_config]
  1951.      [hook_1]       7. Playback(speed-dial)                       [pbx_config]
  1952.                     8. SayDigits(${newlocation})                  [pbx_config]
  1953.                     9. Playback(jp-wa&is-in-use)                  [pbx_config]
  1954.                     10. Background(list&press-1&to-enter-a-diff&location&jp-wo&t   o-enter&press-2&telephone-number&jp-wo&to-change&press-3) [pbx_config]
  1955.                     11. Return()                                  [pbx_config]
  1956.      [hook_2]       12. Playback(speed-dial)                      [pbx_config]
  1957.                     13. SayDigits(${newlocation})                 [pbx_config]
  1958.                     14. Playback(jp-wa)                           [pbx_config]
  1959.                     15. SayDigits(${SPEEDDIALNUMBER})             [pbx_config]
  1960.                     16. Playback(is-set-to-2)                     [pbx_config]
  1961.                     17. Return()                                  [pbx_config]
  1962.   'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(app-speeddial-set,${CHANNEL(   language)})}]?app-speeddial-set,${CHANNEL(language)},${ARG1}():app-speeddial-set   ,en,${ARG1}()) [pbx_config]
  1963.                     2. Return()                                   [pbx_config]
  1964.   's' =>            1. Macro(user-callerid,)                      [pbx_config]
  1965.      [setloc]       2. Read(newlocation,speed-enterlocation,,,,)  [pbx_config]
  1966.      [lookup]       3. Macro(speeddial-lookup,${newlocation},${AMPUSER}) [pbx_co   nfig]
  1967.                     4. GotoIf($["${SPEEDDIALNUMBER}"!=""]?conflicts) [pbx_config   ]
  1968.      [setnum]       5. Read(newnum,speed-enternumber,,,,)         [pbx_config]
  1969.      [success]      6. Set(DB(AMPUSER/${AMPUSER}/speeddials/${newlocation})=${ne   wnum}) [pbx_config]
  1970.                     7. Gosub(app-speeddial-set,lang-playback,1(hook_0)) [pbx_con   fig]
  1971.                     8. Hangup()                                   [pbx_config]
  1972.      [conflicts]    9. Gosub(app-speeddial-set,lang-playback,1(hook_1)) [pbx_con   fig]
  1973.                     10. WaitExten(60,)                            [pbx_config]
  1974.   't' =>            1. Congestion()                               [pbx_config]
  1975.   Include =>        'app-speeddial-set-custom'                    [pbx_config]
  1976.  
  1977. [ Context 'app-speeddial' created by 'pbx_config' ]
  1978.   '*75' =>          1. Goto(app-speeddial-set,s,1)                [pbx_config]
  1979.   '_*0.' =>         1. Macro(user-callerid,)                      [pbx_config]
  1980.                     2. Set(SPEEDDIALLOCATION=${EXTEN:2})          [pbx_config]
  1981.      [lookup]       3. Macro(speeddial-lookup,${SPEEDDIALLOCATION},${AMPUSER}) [   pbx_config]
  1982.                     4. GotoIf($["${SPEEDDIALNUMBER}"=""]?failed)  [pbx_config]
  1983.                     5. Goto(from-internal,${SPEEDDIALNUMBER},1)   [pbx_config]
  1984.      [failed]       104. Playback(speed-dial-empty)               [pbx_config]
  1985.                     105. Congestion()                             [pbx_config]
  1986.   Include =>        'app-speeddial-custom'                        [pbx_config]
  1987.  
  1988. [ Context 'macro-speeddial-lookup' created by 'pbx_config' ]
  1989.   's' =>            1. GotoIf($["${ARG2}"=""]]?lookupsys)         [pbx_config]
  1990.                     2. Set(SPEEDDIALNUMBER=)                      [pbx_config]
  1991.      [lookupuser]   3. Set(SPEEDDIALNUMBER=${DB(AMPUSER/${ARG2}/speeddials/${ARG   1})}) [pbx_config]
  1992.                     4. GotoIf($["${SPEEDDIALNUMBER}"=""]?lookupsys) [pbx_config]
  1993.                     5. Noop(Found speeddial ${ARG1} for user ${ARG2}: ${SPEEDDIA   LNUMBER}) [pbx_config]
  1994.                     6. Goto(end)                                  [pbx_config]
  1995.      [lookupsys]    104. Set(SPEEDDIALNUMBER=${DB(sysspeeddials/${ARG1})}) [pbx_   config]
  1996.                     105. GotoIf($["${SPEEDDIALNUMBER}"=""]?failed) [pbx_config]
  1997.                     106. Noop(Found system speeddial ${ARG1}: ${SPEEDDIALNUMBER}   ) [pbx_config]
  1998.                     107. Goto(end)                                [pbx_config]
  1999.      [failed]       205. Noop(No system or user speeddial found)  [pbx_config]
  2000.      [end]          206. Noop(End of Speeddial-lookup)            [pbx_config]
  2001.   Include =>        'macro-speeddial-lookup-custom'               [pbx_config]
  2002.  
  2003. [ Context 'sub-rgsetcid' created by 'pbx_config' ]
  2004.   's' =>            1. Goto(s-${DB(RINGGROUP/${NODEST}/changecid)},1) [pbx_confi   g]
  2005.   's-did' =>        1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?S   et(__REALCALLERIDNUM=${FROM_DID})) [pbx_config]
  2006.                     2. Return()                                   [pbx_config]
  2007.   's-extern' =>     1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST   }/fixedcid)})}" == "1" & "${FROM_DID}" != ""]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGR   OUP/${NODEST}/fixedcid)})) [pbx_config]
  2008.                     2. Return()                                   [pbx_config]
  2009.   's-fixed' =>      1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${DB(RINGGROUP/${NODEST   }/fixedcid)})}" = "1"]?Set(__TRUNKCIDOVERRIDE=${DB(RINGGROUP/${NODEST}/fixedcid)   })) [pbx_config]
  2010.                     2. Return()                                   [pbx_config]
  2011.   's-forcedid' =>   1. ExecIf($["${REGEX("^[\+]?[0-9]+$" ${FROM_DID})}" = "1"]?S   et(__TRUNKCIDOVERRIDE=${FROM_DID})) [pbx_config]
  2012.                     2. Return()                                   [pbx_config]
  2013.   '_s-.' =>         1. Noop(Unknown value for RINGGROUP/${NODEST}/changecid of $   {DB(RINGGROUP/${NODEST}/changecid)} set to "default") [pbx_config]
  2014.                     2. Set(DB(RINGGROUP/${NODEST}/changecid)=default) [pbx_confi   g]
  2015.                     3. Return()                                   [pbx_config]
  2016.   Include =>        'sub-rgsetcid-custom'                         [pbx_config]
  2017.  
  2018. [ Context 'ext-group' created by 'pbx_config' ]
  2019.   '400' =>          1. GotoIf($["${__RINGINGSENT}" = "TRUE"]?cid) [pbx_config]
  2020.                     2. Progress()                                 [pbx_config]
  2021.      [cid]          3. Macro(user-callerid,)                      [pbx_config]
  2022.                     4. Macro(blkvm-setifempty,)                   [pbx_config]
  2023.                     5. GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov) [pbx_config]
  2024.                     6. Macro(blkvm-set,reset)                     [pbx_config]
  2025.                     7. Set(__NODEST=)                             [pbx_config]
  2026.      [skipov]       8. Set(RRNODEST=${NODEST})                    [pbx_config]
  2027.      [skipvmblk]    9. Set(__NODEST=${EXTEN})                     [pbx_config]
  2028.                     10. GosubIf($[${DB_EXISTS(RINGGROUP/400/changecid)} = 1 & "$   {DB(RINGGROUP/400/changecid)}" != "default" & "${DB(RINGGROUP/400/changecid)}" !   = ""]?sub-rgsetcid,s,1()) [pbx_config]
  2029.                     11. Macro(prepend-cid,CAP: )                  [pbx_config]
  2030.                     12. Gosub(sub-record-check,s,1(rg,400,dontcare)) [pbx_config   ]
  2031.                     13. Set(RingGroupMethod=ringall)              [pbx_config]
  2032.      [DIALGRP]      14. Macro(dial,7,m(Opus)${REPLACE(DIAL_OPTIONS,r)},100) [pbx   _config]
  2033.                     15. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2034.                     16. Set(RingGroupMethod=)                     [pbx_config]
  2035.                     17. GotoIf($["foo${RRNODEST}" != "foo"]?nodest) [pbx_config]
  2036.                     18. Set(__NODEST=)                            [pbx_config]
  2037.                     19. Macro(blkvm-clr,)                         [pbx_config]
  2038.                     20. Goto(ext-queues,500,1)                    [pbx_config]
  2039.      [nodest]       21. Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST}) [p   bx_config]
  2040.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  2041.   Include =>        'ext-group-custom'                            [pbx_config]
  2042.  
  2043. [ Context 'macro-systemrecording' created by 'pbx_config' ]
  2044.   '*' =>            1. Goto(dorecord,1)                           [pbx_config]
  2045.   '1' =>            1. Goto(${LISTEN},dc_start)                   [pbx_config]
  2046.   '2' =>            1. Goto(doaccept,1)                           [pbx_config]
  2047.   '3' =>            1. Goto(switchlang,1)                         [pbx_config]
  2048.   'confmenu' =>     1. Background(to-listen-to-it&press-1&to-accept-recording&pr   ess-2&to-rerecord-it&press-star&language&press-3,m,${CHANNEL(language)},macro-sy   stemrecording) [pbx_config]
  2049.                     2. Read(RECRESULT,,1,,,4)                     [pbx_config]
  2050.                     3. GotoIf($["x${RECRESULT}"="x*"]?dorecord,1) [pbx_config]
  2051.                     4. GotoIf($["x${RECRESULT}"="x1"]?${LISTEN},2) [pbx_config]
  2052.                     5. GotoIf($["x${RECRESULT}"="x2"]?doaccept,1) [pbx_config]
  2053.                     6. GotoIf($["x${RECRESULT}"="x3"]?switchlang,1) [pbx_config]
  2054.                     7. Goto(1)                                    [pbx_config]
  2055.   'doaccept' =>     1. Set(EXISTS=${STAT(e,${ASTVARLIBDIR}/sounds/${TMPRECFILE}.   ${CHANNEL(audioreadformat)})}) [pbx_config]
  2056.                     2. Noop(${EXISTS})                            [pbx_config]
  2057.                     3. GotoIf($["${EXISTS}" != "1"]?exit)         [pbx_config]
  2058.                     4. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished)    [pbx_config]
  2059.                     5. GotoIf($["x${TMPRECFILE}"="x"]?exit)       [pbx_config]
  2060.                     6. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.${CHANNEL(   audioreadformat)} ${ASTVARLIBDIR}/sounds/${RECFILE}.${CHANNEL(audioreadformat)})    [pbx_config]
  2061.                     7. Playback(wait-moment)                      [pbx_config]
  2062.                     8. AGI(recordings.agi)                        [pbx_config]
  2063.                     9. Set(TMPRECFILE=${RECFILE})                 [pbx_config]
  2064.      [exit]         10. Playback(auth-thankyou)                   [pbx_config]
  2065.                     11. Goto(confmenu,1)                          [pbx_config]
  2066.   'docheck' =>      1. Playback(beep)                             [pbx_config]
  2067.      [dc_start]     2. Background(${RECFILE},m,${CHANNEL(language)},macro-system   recording) [pbx_config]
  2068.                     3. Wait(1)                                    [pbx_config]
  2069.                     4. Goto(confmenu,1)                           [pbx_config]
  2070.   'dochecknolanguage' => 1. Playback(beep)                             [pbx_conf   ig]
  2071.      [dc_start]     2. Background(${TMPRECFILE},m,,macro-systemrecording) [pbx_c   onfig]
  2072.                     3. Wait(1)                                    [pbx_config]
  2073.                     4. Goto(confmenu,1)                           [pbx_config]
  2074.   'dorecord' =>     1. Set(TMPRECFILE=${RECFILE}-TMP)             [pbx_config]
  2075.                     2. Background(say-temp-msg-prs-pound,,${CHANNEL(language)})    [pbx_config]
  2076.                     3. Record(${TMPRECFILE}.${CHANNEL(audioreadformat)},,,k) [pb   x_config]
  2077.                     4. Set(LISTEN=dochecknolanguage)              [pbx_config]
  2078.                     5. Goto(confmenu,1)                           [pbx_config]
  2079.   'h' =>            1. System(touch ${ASTVARLIBDIR}/sounds/${RECFILE}.finished)    [pbx_config]
  2080.                     2. GotoIf($["x${TMPRECFILE}"="x"]?exit)       [pbx_config]
  2081.                     3. System(mv ${ASTVARLIBDIR}/sounds/${TMPRECFILE}.${CHANNEL(   audioreadformat)} ${ASTVARLIBDIR}/sounds/${CHANNEL(language)}/${RECFILE}.${CHANN   EL(audioreadformat)}) [pbx_config]
  2082.      [exit]         4. Hangup()                                   [pbx_config]
  2083.   'i' =>            1. Playback(pm-invalid-option)                [pbx_config]
  2084.                     2. Goto(confmenu,1)                           [pbx_config]
  2085.   'invalid' =>      1. Playback(pm-invalid-option)                [pbx_config]
  2086.                     2. Hangup()                                   [pbx_config]
  2087.   's' =>            1. GotoIf($["${ARG2}" = ""]?invalid)          [pbx_config]
  2088.                     2. Set(TMPLANG=${CHANNEL(language)})          [pbx_config]
  2089.                     3. Set(RECFILE=${TMPLANG}/${ARG2})            [pbx_config]
  2090.                     4. Set(LISTEN=docheck)                        [pbx_config]
  2091.                     5. ExecIf($["${ARG3}" != ""]?Authenticate(${ARG3})) [pbx_con   fig]
  2092.                     6. Goto(${ARG1},1)                            [pbx_config]
  2093.   'switchlang' =>   1. Playback(language&is-set-to)               [pbx_config]
  2094.                     2. SayAlpha(${TMPLANG})                       [pbx_config]
  2095.                     3. Playback(after-the-tone)                   [pbx_config]
  2096.                     4. Background(press-1)                        [pbx_config]
  2097.                     5. SayAlpha(en)                               [pbx_config]
  2098.                     6. Playback(beep)                             [pbx_config]
  2099.                     7. Read(LANGRESULT,,1,,,4)                    [pbx_config]
  2100.                     8. ExecIf($["x${LANGRESULT}"="x1"]?Set(TMPLANG=en)) [pbx_con   fig]
  2101.                     9. Set(RECFILE=${TMPLANG}/${ARG2})            [pbx_config]
  2102.                     10. Playback(language&is-set-to)              [pbx_config]
  2103.                     11. SayAlpha(${TMPLANG})                      [pbx_config]
  2104.                     12. Goto(confmenu,1)                          [pbx_config]
  2105.   't' =>            1. Playback(goodbye)                          [pbx_config]
  2106.                     2. Hangup()                                   [pbx_config]
  2107.   Include =>        'macro-systemrecording-custom'                [pbx_config]
  2108.  
  2109. [ Context 'systemrecording-gui' created by 'pbx_config' ]
  2110.   'dorecord' =>     1. Record(${RECFILE}.wav,,,k)                 [pbx_config]
  2111.   'h' =>            1. System(touch ${RECFILE}.finished)          [pbx_config]
  2112.      [exit]         2. Hangup()                                   [pbx_config]
  2113.   Include =>        'systemrecording-gui-custom'                  [pbx_config]
  2114.  
  2115. [ Context 'app-recordings' created by 'pbx_config' ]
  2116.   '*2916' =>        1. Macro(user-callerid,)                      [pbx_config]
  2117.                     2. Wait(2)                                    [pbx_config]
  2118.                     3. Macro(systemrecording,docheck,custom/CombinedClosings) [p   bx_config]
  2119.   '*2932' =>        1. Macro(user-callerid,)                      [pbx_config]
  2120.                     2. Wait(2)                                    [pbx_config]
  2121.                     3. Macro(systemrecording,docheck,custom/CISIVRBreakoutUPLD)    [pbx_config]
  2122.   '*2933' =>        1. Macro(user-callerid,)                      [pbx_config]
  2123.                     2. Wait(2)                                    [pbx_config]
  2124.                     3. Macro(systemrecording,docheck,custom/CCSpecAnnoun) [pbx_c   onfig]
  2125.   '*2934' =>        1. Macro(user-callerid,)                      [pbx_config]
  2126.                     2. Wait(2)                                    [pbx_config]
  2127.                     3. Macro(systemrecording,docheck,custom/CAPSpecAnnoun) [pbx_   config]
  2128.   '*2935' =>        1. Macro(user-callerid,)                      [pbx_config]
  2129.                     2. Wait(2)                                    [pbx_config]
  2130.                     3. Macro(systemrecording,docheck,custom/CISSpecAnnoun) [pbx_   config]
  2131.   '*2936' =>        1. Macro(user-callerid,)                      [pbx_config]
  2132.                     2. Wait(2)                                    [pbx_config]
  2133.                     3. Macro(systemrecording,docheck,custom/CCGreetingUPLD) [pbx   _config]
  2134.   '*294' =>         1. Macro(user-callerid,)                      [pbx_config]
  2135.                     2. Wait(2)                                    [pbx_config]
  2136.                     3. Macro(systemrecording,docheck,custom/DailyColorRecoring)    [pbx_config]
  2137.   '*2950' =>        1. Macro(user-callerid,)                      [pbx_config]
  2138.                     2. Wait(2)                                    [pbx_config]
  2139.                     3. Macro(systemrecording,docheck,custom/CAPOpenIVRUPLD) [pbx   _config]
  2140.   '*2953' =>        1. Macro(user-callerid,)                      [pbx_config]
  2141.                     2. Wait(2)                                    [pbx_config]
  2142.                     3. Macro(systemrecording,docheck,custom/CISClosedIVRUPLDnew)    [pbx_config]
  2143.   '*2954' =>        1. Macro(user-callerid,)                      [pbx_config]
  2144.                     2. Wait(2)                                    [pbx_config]
  2145.                     3. Macro(systemrecording,docheck,custom/CAPClosedIVRUPLD) [p   bx_config]
  2146.   '*2955' =>        1. Macro(user-callerid,)                      [pbx_config]
  2147.                     2. Wait(2)                                    [pbx_config]
  2148.                     3. Macro(systemrecording,docheck,custom/CCIVRUPLD) [pbx_conf   ig]
  2149.   '*2958' =>        1. Macro(user-callerid,)                      [pbx_config]
  2150.                     2. Wait(2)                                    [pbx_config]
  2151.                     3. Macro(systemrecording,docheck,custom/OPSIntro) [pbx_confi   g]
  2152.   '*2959' =>        1. Macro(user-callerid,)                      [pbx_config]
  2153.                     2. Wait(2)                                    [pbx_config]
  2154.                     3. Macro(systemrecording,docheck,custom/OPSSpecAnnounUPLD) [   pbx_config]
  2155.   '*2960' =>        1. Macro(user-callerid,)                      [pbx_config]
  2156.                     2. Wait(2)                                    [pbx_config]
  2157.                     3. Macro(systemrecording,docheck,custom/OPSQueueIVRBreakout)    [pbx_config]
  2158.   '*2961' =>        1. Macro(user-callerid,)                      [pbx_config]
  2159.                     2. Wait(2)                                    [pbx_config]
  2160.                     3. Macro(systemrecording,docheck,custom/OPSClosedIVR) [pbx_c   onfig]
  2161.   '*2962' =>        1. Macro(user-callerid,)                      [pbx_config]
  2162.                     2. Wait(2)                                    [pbx_config]
  2163.                     3. Macro(systemrecording,docheck,custom/OPSQueueIntro) [pbx_   config]
  2164.   Include =>        'app-recordings-custom'                       [pbx_config]
  2165.  
  2166. [ Context 'play-system-recording' created by 'pbx_config' ]
  2167.   '16' =>           1. Answer()                                   [pbx_config]
  2168.                     2. Playback(custom/CombinedClosings)          [pbx_config]
  2169.                     3. Hangup()                                   [pbx_config]
  2170.   '29' =>           1. Answer()                                   [pbx_config]
  2171.                     2. Playback(custom/CAPIVRBreakoutUPLD)        [pbx_config]
  2172.                     3. Hangup()                                   [pbx_config]
  2173.   '31' =>           1. Answer()                                   [pbx_config]
  2174.                     2. Playback(custom/CAPIVRBreakoutUPLD)        [pbx_config]
  2175.                     3. Hangup()                                   [pbx_config]
  2176.   '32' =>           1. Answer()                                   [pbx_config]
  2177.                     2. Playback(custom/CISIVRBreakoutUPLD)        [pbx_config]
  2178.                     3. Hangup()                                   [pbx_config]
  2179.   '33' =>           1. Answer()                                   [pbx_config]
  2180.                     2. Playback(custom/CCSpecAnnoun)              [pbx_config]
  2181.                     3. Hangup()                                   [pbx_config]
  2182.   '34' =>           1. Answer()                                   [pbx_config]
  2183.                     2. Playback(custom/CAPSpecAnnoun)             [pbx_config]
  2184.                     3. Hangup()                                   [pbx_config]
  2185.   '35' =>           1. Answer()                                   [pbx_config]
  2186.                     2. Playback(custom/CISSpecAnnoun)             [pbx_config]
  2187.                     3. Hangup()                                   [pbx_config]
  2188.   '36' =>           1. Answer()                                   [pbx_config]
  2189.                     2. Playback(custom/CCGreetingUPLD)            [pbx_config]
  2190.                     3. Hangup()                                   [pbx_config]
  2191.   '38' =>           1. Answer()                                   [pbx_config]
  2192.                     2. Playback(custom/CAPGreetingUPLD)           [pbx_config]
  2193.                     3. Hangup()                                   [pbx_config]
  2194.   '4' =>            1. Answer()                                   [pbx_config]
  2195.                     2. Playback(custom/DailyColorRecoring)        [pbx_config]
  2196.                     3. Hangup()                                   [pbx_config]
  2197.   '42' =>           1. Answer()                                   [pbx_config]
  2198.                     2. Playback(custom/CISGreetingUPLD)           [pbx_config]
  2199.                     3. Hangup()                                   [pbx_config]
  2200.   '48' =>           1. Answer()                                   [pbx_config]
  2201.                     2. Playback(custom/CISOpenIVRUPLD)            [pbx_config]
  2202.                     3. Hangup()                                   [pbx_config]
  2203.   '50' =>           1. Answer()                                   [pbx_config]
  2204.                     2. Playback(custom/CAPOpenIVRUPLD)            [pbx_config]
  2205.                     3. Hangup()                                   [pbx_config]
  2206.   '52' =>           1. Answer()                                   [pbx_config]
  2207.                     2. Playback(custom/CISOpenIVRUPLD)            [pbx_config]
  2208.                     3. Hangup()                                   [pbx_config]
  2209.   '53' =>           1. Answer()                                   [pbx_config]
  2210.                     2. Playback(custom/CISClosedIVRUPLDnew)       [pbx_config]
  2211.                     3. Hangup()                                   [pbx_config]
  2212.   '54' =>           1. Answer()                                   [pbx_config]
  2213.                     2. Playback(custom/CAPClosedIVRUPLD)          [pbx_config]
  2214.                     3. Hangup()                                   [pbx_config]
  2215.   '55' =>           1. Answer()                                   [pbx_config]
  2216.                     2. Playback(custom/CCIVRUPLD)                 [pbx_config]
  2217.                     3. Hangup()                                   [pbx_config]
  2218.   '58' =>           1. Answer()                                   [pbx_config]
  2219.                     2. Playback(custom/OPSIntro)                  [pbx_config]
  2220.                     3. Hangup()                                   [pbx_config]
  2221.   '59' =>           1. Answer()                                   [pbx_config]
  2222.                     2. Playback(custom/OPSSpecAnnounUPLD)         [pbx_config]
  2223.                     3. Hangup()                                   [pbx_config]
  2224.   '60' =>           1. Answer()                                   [pbx_config]
  2225.                     2. Playback(custom/OPSQueueIVRBreakout)       [pbx_config]
  2226.                     3. Hangup()                                   [pbx_config]
  2227.   '61' =>           1. Answer()                                   [pbx_config]
  2228.                     2. Playback(custom/OPSClosedIVR)              [pbx_config]
  2229.                     3. Hangup()                                   [pbx_config]
  2230.   '62' =>           1. Answer()                                   [pbx_config]
  2231.                     2. Playback(custom/OPSQueueIntro)             [pbx_config]
  2232.                     3. Hangup()                                   [pbx_config]
  2233.   '63' =>           1. Answer()                                   [pbx_config]
  2234.                     2. Playback(custom/RDLIntroUPLD)              [pbx_config]
  2235.                     3. Hangup()                                   [pbx_config]
  2236.   '64' =>           1. Answer()                                   [pbx_config]
  2237.                     2. Playback(custom/RDLClosedIVR)              [pbx_config]
  2238.                     3. Hangup()                                   [pbx_config]
  2239.   '65' =>           1. Answer()                                   [pbx_config]
  2240.                     2. Playback(custom/RDLQueueIntro)             [pbx_config]
  2241.                     3. Hangup()                                   [pbx_config]
  2242.   '66' =>           1. Answer()                                   [pbx_config]
  2243.                     2. Playback(custom/CAPClosedAnnounUPLD)       [pbx_config]
  2244.                     3. Hangup()                                   [pbx_config]
  2245.   '67' =>           1. Answer()                                   [pbx_config]
  2246.                     2. Playback(custom/CapClosedAnnoun)           [pbx_config]
  2247.                     3. Hangup()                                   [pbx_config]
  2248.   '68' =>           1. Answer()                                   [pbx_config]
  2249.                     2. Playback(custom/CapGreeting)               [pbx_config]
  2250.                     3. Hangup()                                   [pbx_config]
  2251.   '69' =>           1. Answer()                                   [pbx_config]
  2252.                     2. Playback(custom/CAPIVRBreakout)            [pbx_config]
  2253.                     3. Hangup()                                   [pbx_config]
  2254.   '70' =>           1. Answer()                                   [pbx_config]
  2255.                     2. Playback(custom/CapOpenAnnoun)             [pbx_config]
  2256.                     3. Hangup()                                   [pbx_config]
  2257.   '71' =>           1. Answer()                                   [pbx_config]
  2258.                     2. Playback(custom/CapOpenIVR)                [pbx_config]
  2259.                     3. Hangup()                                   [pbx_config]
  2260.   '72' =>           1. Answer()                                   [pbx_config]
  2261.                     2. Playback(custom/CCGreeting)                [pbx_config]
  2262.                     3. Hangup()                                   [pbx_config]
  2263.   '73' =>           1. Answer()                                   [pbx_config]
  2264.                     2. Playback(custom/CCIVRUNew)                 [pbx_config]
  2265.                     3. Hangup()                                   [pbx_config]
  2266.   '74' =>           1. Answer()                                   [pbx_config]
  2267.                     2. Playback(custom/CISClosedIVRUPLD)          [pbx_config]
  2268.                     3. Hangup()                                   [pbx_config]
  2269.   '75' =>           1. Answer()                                   [pbx_config]
  2270.                     2. Playback(custom/CISClosedIVR)              [pbx_config]
  2271.                     3. Hangup()                                   [pbx_config]
  2272.   '76' =>           1. Answer()                                   [pbx_config]
  2273.                     2. Playback(custom/CISGreeting)               [pbx_config]
  2274.                     3. Hangup()                                   [pbx_config]
  2275.   '77' =>           1. Answer()                                   [pbx_config]
  2276.                     2. Playback(custom/CISIVRBreakout)            [pbx_config]
  2277.                     3. Hangup()                                   [pbx_config]
  2278.   '78' =>           1. Answer()                                   [pbx_config]
  2279.                     2. Playback(custom/CISOpenIVR)                [pbx_config]
  2280.                     3. Hangup()                                   [pbx_config]
  2281.   '79' =>           1. Answer()                                   [pbx_config]
  2282.                     2. Playback(custom/ColorCodeIVRrec)           [pbx_config]
  2283.                     3. Hangup()                                   [pbx_config]
  2284.   '80' =>           1. Answer()                                   [pbx_config]
  2285.                     2. Playback(custom/test1)                     [pbx_config]
  2286.                     3. Hangup()                                   [pbx_config]
  2287.   '81' =>           1. Answer()                                   [pbx_config]
  2288.                     2. Playback(custom/test2)                     [pbx_config]
  2289.                     3. Hangup()                                   [pbx_config]
  2290.   '82' =>           1. Answer()                                   [pbx_config]
  2291.                     2. Playback(custom/test3)                     [pbx_config]
  2292.                     3. Hangup()                                   [pbx_config]
  2293.   '83' =>           1. Answer()                                   [pbx_config]
  2294.                     2. Playback(custom/test4)                     [pbx_config]
  2295.                     3. Hangup()                                   [pbx_config]
  2296.   '84' =>           1. Answer()                                   [pbx_config]
  2297.                     2. Playback(custom/test5)                     [pbx_config]
  2298.                     3. Hangup()                                   [pbx_config]
  2299.   '85' =>           1. Answer()                                   [pbx_config]
  2300.                     2. Playback(custom/testops)                   [pbx_config]
  2301.                     3. Hangup()                                   [pbx_config]
  2302.   Include =>        'play-system-recording-custom'                [pbx_config]
  2303.  
  2304. [ Context 'macro-agent-del' created by 'pbx_config' ]
  2305.   's' =>            1. Wait(1)                                    [pbx_config]
  2306.                     2. Set(QUEUENO=${ARG1})                       [pbx_config]
  2307.                     3. Macro(user-callerid,SKIPTTL)               [pbx_config]
  2308.      [a3]           4. Read(CALLBACKNUM,agent-logoff,,,,)         [pbx_config]
  2309.                     5. GotoIf($[${LEN(${CALLBACKNUM})}=0]?a5:a7)  [pbx_config]
  2310.      [a5]           6. Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(n   umber)}:${AMPUSER})}) [pbx_config]
  2311.                     7. GotoIf($["${CALLBACKNUM}" = ""]?a3)        [pbx_config]
  2312.                     8. Set(STATE=NOT_INUSE)                       [pbx_config]
  2313.                     9. Gosub(app-queue-toggle,sstate,1())         [pbx_config]
  2314.      [a7]           10. RemoveQueueMember(${QUEUENO},Local/${CALLBACKNUM}@from-q   ueue/n) [pbx_config]
  2315.                     11. RemoveQueueMember(${QUEUENO},Local/${CALLBACKNUM}@from-i   nternal/n) [pbx_config]
  2316.                     12. UserEvent(RefreshQueue)                   [pbx_config]
  2317.                     13. Wait(1)                                   [pbx_config]
  2318.                     14. Playback(agent-loggedoff)                 [pbx_config]
  2319.                     15. Hangup()                                  [pbx_config]
  2320.   Include =>        'macro-agent-del-custom'                      [pbx_config]
  2321.  
  2322. [ Context 'macro-agent-add' created by 'pbx_config' ]
  2323.   'en' =>           1. Playback(agent-loginok&with&extension)     [pbx_config]
  2324.                     2. SayDigits(${CALLBACKNUM})                  [pbx_config]
  2325.                     3. Return()                                   [pbx_config]
  2326.   'ja' =>           1. Playback(extension)                        [pbx_config]
  2327.                     2. SayDigits(${CALLBACKNUM})                  [pbx_config]
  2328.                     3. Playback(jp-kara&agent-loginok)            [pbx_config]
  2329.                     4. Return()                                   [pbx_config]
  2330.   'lang-playback' => 1. GosubIf($[${DIALPLAN_EXISTS(macro-agent-add,${CHANNEL(la   nguage)})}]?macro-agent-add,${CHANNEL(language)},${ARG1}():macro-agent-add,en,${   ARG1}()) [pbx_config]
  2331.                     2. Return()                                   [pbx_config]
  2332.   's' =>            1. Wait(1)                                    [pbx_config]
  2333.                     2. Set(QUEUENO=${ARG1})                       [pbx_config]
  2334.                     3. Macro(user-callerid,SKIPTTL)               [pbx_config]
  2335.      [a3]           4. Read(CALLBACKNUM,agent-login,,,,)          [pbx_config]
  2336.                     5. GotoIf($[${LEN(${CALLBACKNUM})}=0]?a5:a7)  [pbx_config]
  2337.      [a5]           6. Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(n   umber)}:${AMPUSER})}) [pbx_config]
  2338.                     7. Set(THISDEVICE=${DB(DEVICE/${REALCALLERIDNUM}/dial)}) [pb   x_config]
  2339.                     8. GotoIf($["${CALLBACKNUM}" = ""]?a3)        [pbx_config]
  2340.      [a7]           9. GotoIf($["${CALLBACKNUM}" = "${QUEUENO}"]?invalid) [pbx_c   onfig]
  2341.                     10. GotoIf($["${ARG3}" = "EXTEN" & ${DB_EXISTS(AMPUSER/${CAL   LBACKNUM}/cidname)} = 0]?invalid) [pbx_config]
  2342.                     11. GotoIf($["${DB(QPENALTY/${QUEUENO}/dynmemberonly)}" = "y   es" & ${DB_EXISTS(QPENALTY/${QUEUENO}/agents/${CALLBACKNUM})} != 1]?invalid) [pb   x_config]
  2343.                     12. ExecIf($["${QREGEX}" != ""]?GotoIf($["${REGEX("${QREGEX}   " ${CALLBACKNUM})}" = "0"]?invalid)) [pbx_config]
  2344.                     13. ExecIf($["${ARG2}" != ""]?Authenticate(${ARG2})) [pbx_co   nfig]
  2345.                     14. Set(STATE=INUSE)                          [pbx_config]
  2346.                     15. Gosub(app-queue-toggle,sstate,1())        [pbx_config]
  2347.                     16. ExecIf($[${DB_EXISTS(AMPUSER/${CALLBACKNUM}/cidname)} =    1 & "${DB(AMPUSER/${CALLBACKNUM}/queues/qnostate)}" != "ignorestate"]?AddQueueMe   mber(${QUEUENO},Local/${CALLBACKNUM}@from-queue/n,${DB(QPENALTY/${QUEUENO}/agent   s/${CALLBACKNUM})},,${DB(AMPUSER/${ [pbx_config]
  2348.                     17. ExecIf($[${DB_EXISTS(AMPUSER/${CALLBACKNUM}/cidname)} =    1 & "${DB(AMPUSER/${CALLBACKNUM}/queues/qnostate)}" = "ignorestate"]?AddQueueMem   ber(${QUEUENO},Local/${CALLBACKNUM}@from-queue/n,${DB(QPENALTY/${QUEUENO}/agents   /${CALLBACKNUM})},,${DB(AMPUSER/${C [pbx_config]
  2349.                     18. ExecIf($[${DB_EXISTS(AMPUSER/${CALLBACKNUM}/cidname)} =    0]?AddQueueMember(${QUEUENO},Local/${CALLBACKNUM}@from-queue/n,${DB(QPENALTY/${Q   UEUENO}/agents/${CALLBACKNUM})})) [pbx_config]
  2350.                     19. UserEvent(Agentlogin,Agent: ${CALLBACKNUM}) [pbx_config]
  2351.                     20. Wait(1)                                   [pbx_config]
  2352.                     21. Gosub(macro-agent-add,lang-playback,1(hook_0)) [pbx_conf   ig]
  2353.                     22. Hangup()                                  [pbx_config]
  2354.                     23. MacroExit()                               [pbx_config]
  2355.      [invalid]      24. Playback(pbx-invalid)                     [pbx_config]
  2356.                     25. Goto(a3)                                  [pbx_config]
  2357.   Include =>        'macro-agent-add-custom'                      [pbx_config]
  2358.  
  2359. [ Context 'from-queue-exten-only' created by 'pbx_config' ]
  2360.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  2361.   '_XXXXX' =>       1. GotoIf($[${DB_EXISTS(AMPUSER/${EXTEN}/cidnum)} = 0]?from-   queue-exten-only-x,${EXTEN},1) [pbx_config]
  2362.                     2. Set(RingGroupMethod=none)                  [pbx_config]
  2363.                     3. Set(QDOPTS=${IF($["${CALLER_DEST}"!=""]?g)}${IF($["${AGEN   T_DEST}"!=""]?F(${AGENT_DEST}))}) [pbx_config]
  2364.      [checkrecord]  4. Set(CALLTYPE_OVERRIDE=external)            [pbx_config]
  2365.                     5. ExecIf($[!${LEN(${FROMEXTEN})}]?Set(FROMEXTEN=${IF(${LEN(   ${NODEST})}?${NODEST}:external)})) [pbx_config]
  2366.                     6. Gosub(sub-record-check,s,1(exten,${EXTEN},)) [pbx_config]
  2367.                     7. Macro(dial-one,,${DIAL_OPTIONS}${QDOPTS},${EXTEN}) [pbx_c   onfig]
  2368.                     8. GotoIf($["${CALLER_DEST}"!=""&&"${DIALSTATUS}"="ANSWER"]?   ${CUT(CALLER_DEST,^,1)},${CUT(CALLER_DEST,^,2)},${CUT(CALLER_DEST,^,3)}) [pbx_co   nfig]
  2369.                     9. Hangup()                                   [pbx_config]
  2370.   '_XXXX' =>        1. GotoIf($[${DB_EXISTS(AMPUSER/${EXTEN}/cidnum)} = 0]?from-   queue-exten-only-x,${EXTEN},1) [pbx_config]
  2371.                     2. Set(RingGroupMethod=none)                  [pbx_config]
  2372.                     3. Set(QDOPTS=${IF($["${CALLER_DEST}"!=""]?g)}${IF($["${AGEN   T_DEST}"!=""]?F(${AGENT_DEST}))}) [pbx_config]
  2373.      [checkrecord]  4. Set(CALLTYPE_OVERRIDE=external)            [pbx_config]
  2374.                     5. ExecIf($[!${LEN(${FROMEXTEN})}]?Set(FROMEXTEN=${IF(${LEN(   ${NODEST})}?${NODEST}:external)})) [pbx_config]
  2375.                     6. Gosub(sub-record-check,s,1(exten,${EXTEN},)) [pbx_config]
  2376.                     7. Macro(dial-one,,${DIAL_OPTIONS}${QDOPTS},${EXTEN}) [pbx_c   onfig]
  2377.                     8. GotoIf($["${CALLER_DEST}"!=""&&"${DIALSTATUS}"="ANSWER"]?   ${CUT(CALLER_DEST,^,1)},${CUT(CALLER_DEST,^,2)},${CUT(CALLER_DEST,^,3)}) [pbx_co   nfig]
  2378.                     9. Hangup()                                   [pbx_config]
  2379.   '_XXX' =>         1. GotoIf($[${DB_EXISTS(AMPUSER/${EXTEN}/cidnum)} = 0]?from-   queue-exten-only-x,${EXTEN},1) [pbx_config]
  2380.                     2. Set(RingGroupMethod=none)                  [pbx_config]
  2381.                     3. Set(QDOPTS=${IF($["${CALLER_DEST}"!=""]?g)}${IF($["${AGEN   T_DEST}"!=""]?F(${AGENT_DEST}))}) [pbx_config]
  2382.      [checkrecord]  4. Set(CALLTYPE_OVERRIDE=external)            [pbx_config]
  2383.                     5. ExecIf($[!${LEN(${FROMEXTEN})}]?Set(FROMEXTEN=${IF(${LEN(   ${NODEST})}?${NODEST}:external)})) [pbx_config]
  2384.                     6. Gosub(sub-record-check,s,1(exten,${EXTEN},)) [pbx_config]
  2385.                     7. Macro(dial-one,,${DIAL_OPTIONS}${QDOPTS},${EXTEN}) [pbx_c   onfig]
  2386.                     8. GotoIf($["${CALLER_DEST}"!=""&&"${DIALSTATUS}"="ANSWER"]?   ${CUT(CALLER_DEST,^,1)},${CUT(CALLER_DEST,^,2)},${CUT(CALLER_DEST,^,3)}) [pbx_co   nfig]
  2387.                     9. Hangup()                                   [pbx_config]
  2388.   Include =>        'from-queue-exten-only-custom'                [pbx_config]
  2389.  
  2390. [ Context 'from-queue-exten-internal' created by 'pbx_config' ]
  2391.   'foo' =>          1. Noop(bar)                                  [pbx_config]
  2392.   Include =>        'from-queue-exten-internal-custom'            [pbx_config]
  2393.   Include =>        'from-queue-exten-only'                       [pbx_config]
  2394.   Include =>        'from-queue-exten-only-x'                     [pbx_config]
  2395.   Include =>        'from-internal'                               [pbx_config]
  2396.  
  2397. [ Context 'from-queue-exten-only-x' created by 'pbx_config' ]
  2398.   'foo' =>          1. Noop(bar)                                  [pbx_config]
  2399.   Include =>        'from-queue-exten-only-x-custom'              [pbx_config]
  2400.   Include =>        'from-internal'                               [pbx_config]
  2401.  
  2402. [ Context 'app-queue-caller-count' created by 'pbx_config' ]
  2403.   's' =>            1. Answer()                                   [pbx_config]
  2404.                     2. Wait(1)                                    [pbx_config]
  2405.                     3. Set(QUEUES=${ARG1})                        [pbx_config]
  2406.                     4. Set(COUNT=0)                               [pbx_config]
  2407.                     5. Set(LOOPCNT=${FIELDQTY(QUEUES,&)})         [pbx_config]
  2408.                     6. Set(ITER=1)                                [pbx_config]
  2409.      [begin1]       7. Set(QUEUE=${CUT(QUEUES,&,${ITER})})        [pbx_config]
  2410.                     8. Set(COUNT=$[${COUNT} + ${QUEUE_WAITING_COUNT(${QUEUE})}])    [pbx_config]
  2411.      [end1]         9. Set(ITER=$[${ITER} + 1])                   [pbx_config]
  2412.                     10. GotoIf($[${ITER} <= ${LOOPCNT}]?begin1)   [pbx_config]
  2413.                     11. SayNumber(${COUNT},f)                     [pbx_config]
  2414.                     12. Playback(queue-quantity2)                 [pbx_config]
  2415.                     13. Return()                                  [pbx_config]
  2416.   Include =>        'app-queue-caller-count-custom'               [pbx_config]
  2417.  
  2418. [ Context 'from-queue' created by 'pbx_config' ]
  2419.   '10001' =>        1. Goto(from-internal,${QAGENT},1)            [pbx_config]
  2420.   '500' =>          1. Goto(from-queue-exten-only,${QAGENT},1)    [pbx_config]
  2421.   '501' =>          1. Goto(from-internal,${QAGENT},1)            [pbx_config]
  2422.   '502' =>          1. Goto(from-internal,${QAGENT},1)            [pbx_config]
  2423.   '503' =>          1. Goto(from-internal,${QAGENT},1)            [pbx_config]
  2424.   '504' =>          1. Goto(from-internal,${QAGENT},1)            [pbx_config]
  2425.   '_.' =>           1. Set(QAGENT=${EXTEN})                       [pbx_config]
  2426.                     2. Set(__FROMQ=true)                          [pbx_config]
  2427.                     3. Goto(${NODEST},1)                          [pbx_config]
  2428.   Include =>        'from-queue-custom'                           [pbx_config]
  2429.  
  2430. [ Context 'ext-queues' created by 'pbx_config' ]
  2431.   '*45' =>          1. Goto(app-all-queue-toggle,s,start)         [pbx_config]
  2432.   '*4510001' =>     1. Set(QUEUENO=10001)                         [pbx_config]
  2433.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2434.   '*45500' =>       1. Set(QUEUENO=500)                           [pbx_config]
  2435.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2436.   '*45501' =>       1. Set(QUEUENO=501)                           [pbx_config]
  2437.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2438.   '*45502' =>       1. Set(QUEUENO=502)                           [pbx_config]
  2439.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2440.   '*45503' =>       1. Set(QUEUENO=503)                           [pbx_config]
  2441.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2442.   '*45504' =>       1. Set(QUEUENO=504)                           [pbx_config]
  2443.                     2. Goto(app-queue-toggle,s,start)             [pbx_config]
  2444.   '*46' =>          1. Goto(app-all-queue-pause-toggle,s,1)       [pbx_config]
  2445.   '*4610001' =>     1. Gosub(app-queue-pause-toggle,s,1(10001))   [pbx_config]
  2446.   '*46500' =>       1. Gosub(app-queue-pause-toggle,s,1(500))     [pbx_config]
  2447.   '*46501' =>       1. Gosub(app-queue-pause-toggle,s,1(501))     [pbx_config]
  2448.   '*46502' =>       1. Gosub(app-queue-pause-toggle,s,1(502))     [pbx_config]
  2449.   '*46503' =>       1. Gosub(app-queue-pause-toggle,s,1(503))     [pbx_config]
  2450.   '*46504' =>       1. Gosub(app-queue-pause-toggle,s,1(504))     [pbx_config]
  2451.   '10001' =>        1. Macro(user-callerid,)                      [pbx_config]
  2452.                     2. Answer()                                   [pbx_config]
  2453.                     3. Macro(blkvm-set,reset)                     [pbx_config]
  2454.                     4. ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}   " != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) [pbx_config]
  2455.                     5. Set(__NODEST=${EXTEN})                     [pbx_config]
  2456.                     6. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}: )})    [pbx_config]
  2457.                     7. Set(VQ_CIDPP=)                             [pbx_config]
  2458.                     8. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2459.                     9. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )})    [pbx_config]
  2460.                     10. Set(VQ_AINFO=)                            [pbx_config]
  2461.                     11. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2462.                     12. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}: )}) [pbx_config]
  2463.                     13. Set(VQ_JOINMSG=)                          [pbx_config]
  2464.                     14. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2465.                     15. Set(VQ_RETRY=)                            [pbx_config]
  2466.      [qoptions]     16. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2467.                     17. Set(VQ_OPTIONS=)                          [pbx_config]
  2468.      [qgosub]       18. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2469.                     19. Set(VQ_GOSUB=)                            [pbx_config]
  2470.      [qagi]         20. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2471.                     21. Set(VQ_AGI=)                              [pbx_config]
  2472.      [qrule]        22. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2473.                     23. Set(VQ_RULE=)                             [pbx_config]
  2474.      [qposition]    24. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2475.                     25. Set(VQ_POSITION=)                         [pbx_config]
  2476.                     26. Gosub(sub-record-check,s,1(q,10001,dontcare)) [pbx_confi   g]
  2477.                     27. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2478.                     28. QueueLog(10001,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_co   nfig]
  2479.                     29. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2480.                     30. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2481.                     31. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}: )}) [pbx_con   fig]
  2482.                     32. Set(VQ_MOH=)                              [pbx_config]
  2483.                     33. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2484.                     34. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2485.                     35. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}: )}) [pbx_config]
  2486.                     36. Set(VQ_MAXWAIT=)                          [pbx_config]
  2487.                     37. Set(QUEUENUM=10001)                       [pbx_config]
  2488.                     38. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2489.      [qcall]        39. Queue(10001,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAG   I},,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2490.                     40. Macro(blkvm-clr,)                         [pbx_config]
  2491.                     41. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2492.                     42. Set(__NODEST=)                            [pbx_config]
  2493.                     43. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2494.                     44. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2495.                     45. Set(VQ_DEST=)                             [pbx_config]
  2496.      [gotodest]     46. GotoIf($["${QDEST}"=""]?from-did-direct,100,1:${CUT(QDES   T,^,1)},${CUT(QDEST,^,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2497.   '10001*' =>       1. Macro(agent-add,10001,)                    [pbx_config]
  2498.   '10001**' =>      1. Macro(agent-del,10001)                     [pbx_config]
  2499.   '500' =>          1. Macro(user-callerid,)                      [pbx_config]
  2500.                     2. Answer()                                   [pbx_config]
  2501.                     3. ExecIf($["${QUEUEWAIT}" = ""]?Set(__QUEUEWAIT=${EPOCH}))    [pbx_config]
  2502.                     4. Set(__NODEST=${EXTEN})                     [pbx_config]
  2503.                     5. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}:CAP:   )}) [pbx_config]
  2504.                     6. Set(VQ_CIDPP=)                             [pbx_config]
  2505.                     7. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2506.                     8. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )})    [pbx_config]
  2507.                     9. Set(VQ_AINFO=)                             [pbx_config]
  2508.                     10. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2509.                     11. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}: )}) [pbx_config]
  2510.                     12. Set(VQ_JOINMSG=)                          [pbx_config]
  2511.                     13. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2512.                     14. Set(VQ_RETRY=)                            [pbx_config]
  2513.      [qoptions]     15. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2514.                     16. Set(VQ_OPTIONS=)                          [pbx_config]
  2515.      [qgosub]       17. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2516.                     18. Set(VQ_GOSUB=)                            [pbx_config]
  2517.      [qagi]         19. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2518.                     20. Set(VQ_AGI=)                              [pbx_config]
  2519.      [qrule]        21. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2520.                     22. Set(VQ_RULE=)                             [pbx_config]
  2521.      [qposition]    23. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2522.                     24. Set(VQ_POSITION=)                         [pbx_config]
  2523.                     25. Gosub(sub-record-check,s,1(q,500,yes))    [pbx_config]
  2524.                     26. Set(__CFIGNORE=TRUE)                      [pbx_config]
  2525.                     27. Set(__FORWARD_CONTEXT=block-cf)           [pbx_config]
  2526.                     28. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2527.                     29. QueueLog(500,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_conf   ig]
  2528.                     30. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2529.                     31. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2530.                     32. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}:Opus)}) [pbx_   config]
  2531.                     33. Set(VQ_MOH=)                              [pbx_config]
  2532.                     34. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2533.                     35. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2534.                     36. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}: )}) [pbx_config]
  2535.                     37. Set(VQ_MAXWAIT=)                          [pbx_config]
  2536.                     38. Set(QUEUENUM=500)                         [pbx_config]
  2537.                     39. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2538.      [qcall]        40. Queue(500,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI}   ,,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2539.                     41. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2540.                     42. Set(__NODEST=)                            [pbx_config]
  2541.                     43. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2542.                     44. Set(__CFIGNORE=)                          [pbx_config]
  2543.                     45. Set(__FORWARD_CONTEXT=from-internal)      [pbx_config]
  2544.                     46. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2545.                     47. Set(VQ_DEST=)                             [pbx_config]
  2546.      [gotodest]     48. GotoIf($["${QDEST}"=""]?:${CUT(QDEST,^,1)},${CUT(QDEST,^   ,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2547.   '500*' =>         1. Macro(agent-add,500,,EXTEN)                [pbx_config]
  2548.   '500**' =>        1. Macro(agent-del,500)                       [pbx_config]
  2549.   '501' =>          1. Macro(user-callerid,)                      [pbx_config]
  2550.                     2. Answer()                                   [pbx_config]
  2551.                     3. ExecIf($["${QUEUEWAIT}" = ""]?Set(__QUEUEWAIT=${EPOCH}))    [pbx_config]
  2552.                     4. Macro(blkvm-set,reset)                     [pbx_config]
  2553.                     5. ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}   " != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) [pbx_config]
  2554.                     6. Set(__NODEST=${EXTEN})                     [pbx_config]
  2555.                     7. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}: )})    [pbx_config]
  2556.                     8. Set(VQ_CIDPP=)                             [pbx_config]
  2557.                     9. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2558.                     10. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )}   ) [pbx_config]
  2559.                     11. Set(VQ_AINFO=)                            [pbx_config]
  2560.                     12. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2561.                     13. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}: )}) [pbx_config]
  2562.                     14. Set(VQ_JOINMSG=)                          [pbx_config]
  2563.                     15. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2564.                     16. Set(VQ_RETRY=)                            [pbx_config]
  2565.      [qoptions]     17. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2566.                     18. Set(VQ_OPTIONS=)                          [pbx_config]
  2567.      [qgosub]       19. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2568.                     20. Set(VQ_GOSUB=)                            [pbx_config]
  2569.      [qagi]         21. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2570.                     22. Set(VQ_AGI=)                              [pbx_config]
  2571.      [qrule]        23. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2572.                     24. Set(VQ_RULE=)                             [pbx_config]
  2573.      [qposition]    25. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2574.                     26. Set(VQ_POSITION=)                         [pbx_config]
  2575.                     27. Gosub(sub-record-check,s,1(q,501,dontcare)) [pbx_config]
  2576.                     28. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2577.                     29. QueueLog(501,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_conf   ig]
  2578.                     30. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2579.                     31. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2580.                     32. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}:Opus)}) [pbx_   config]
  2581.                     33. Set(VQ_MOH=)                              [pbx_config]
  2582.                     34. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2583.                     35. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2584.                     36. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}: )}) [pbx_config]
  2585.                     37. Set(VQ_MAXWAIT=)                          [pbx_config]
  2586.                     38. Set(QUEUENUM=501)                         [pbx_config]
  2587.                     39. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2588.      [qcall]        40. Queue(501,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI}   ,,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2589.                     41. Macro(blkvm-clr,)                         [pbx_config]
  2590.                     42. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2591.                     43. Set(__NODEST=)                            [pbx_config]
  2592.                     44. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2593.                     45. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2594.                     46. Set(VQ_DEST=)                             [pbx_config]
  2595.      [gotodest]     47. GotoIf($["${QDEST}"=""]?:${CUT(QDEST,^,1)},${CUT(QDEST,^   ,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2596.   '501*' =>         1. Macro(agent-add,501,)                      [pbx_config]
  2597.   '501**' =>        1. Macro(agent-del,501)                       [pbx_config]
  2598.   '502' =>          1. Macro(user-callerid,)                      [pbx_config]
  2599.                     2. Answer()                                   [pbx_config]
  2600.                     3. ExecIf($["${QUEUEWAIT}" = ""]?Set(__QUEUEWAIT=${EPOCH}))    [pbx_config]
  2601.                     4. Macro(blkvm-set,reset)                     [pbx_config]
  2602.                     5. ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}   " != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) [pbx_config]
  2603.                     6. Set(__NODEST=${EXTEN})                     [pbx_config]
  2604.                     7. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}:RDL:   )}) [pbx_config]
  2605.                     8. Set(VQ_CIDPP=)                             [pbx_config]
  2606.                     9. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2607.                     10. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )}   ) [pbx_config]
  2608.                     11. Set(VQ_AINFO=)                            [pbx_config]
  2609.                     12. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2610.                     13. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}:custom/RDLQueueIntro)}) [pbx_config]
  2611.                     14. Set(VQ_JOINMSG=)                          [pbx_config]
  2612.                     15. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2613.                     16. Set(VQ_RETRY=)                            [pbx_config]
  2614.      [qoptions]     17. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2615.                     18. Set(VQ_OPTIONS=)                          [pbx_config]
  2616.      [qgosub]       19. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2617.                     20. Set(VQ_GOSUB=)                            [pbx_config]
  2618.      [qagi]         21. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2619.                     22. Set(VQ_AGI=)                              [pbx_config]
  2620.      [qrule]        23. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2621.                     24. Set(VQ_RULE=)                             [pbx_config]
  2622.      [qposition]    25. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2623.                     26. Set(VQ_POSITION=)                         [pbx_config]
  2624.                     27. Gosub(sub-record-check,s,1(q,502,yes))    [pbx_config]
  2625.                     28. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2626.                     29. QueueLog(502,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_conf   ig]
  2627.                     30. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2628.                     31. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2629.                     32. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}:Opus)}) [pbx_   config]
  2630.                     33. Set(VQ_MOH=)                              [pbx_config]
  2631.                     34. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2632.                     35. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2633.                     36. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}:120)}) [pbx_config]
  2634.                     37. Set(VQ_MAXWAIT=)                          [pbx_config]
  2635.                     38. Set(QUEUENUM=502)                         [pbx_config]
  2636.                     39. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2637.      [qcall]        40. Queue(502,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI}   ,,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2638.                     41. Macro(blkvm-clr,)                         [pbx_config]
  2639.                     42. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2640.                     43. Set(__NODEST=)                            [pbx_config]
  2641.                     44. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2642.                     45. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2643.                     46. Set(VQ_DEST=)                             [pbx_config]
  2644.      [gotodest]     47. GotoIf($["${QDEST}"=""]?ext-local,vmu202,1:${CUT(QDEST,^   ,1)},${CUT(QDEST,^,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2645.   '502*' =>         1. Macro(agent-add,502,)                      [pbx_config]
  2646.   '502**' =>        1. Macro(agent-del,502)                       [pbx_config]
  2647.   '503' =>          1. Macro(user-callerid,)                      [pbx_config]
  2648.                     2. Answer()                                   [pbx_config]
  2649.                     3. ExecIf($["${QUEUEWAIT}" = ""]?Set(__QUEUEWAIT=${EPOCH}))    [pbx_config]
  2650.                     4. Macro(blkvm-set,reset)                     [pbx_config]
  2651.                     5. ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}   " != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) [pbx_config]
  2652.                     6. Set(__NODEST=${EXTEN})                     [pbx_config]
  2653.                     7. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}:OPS:   )}) [pbx_config]
  2654.                     8. Set(VQ_CIDPP=)                             [pbx_config]
  2655.                     9. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2656.                     10. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )}   ) [pbx_config]
  2657.                     11. Set(VQ_AINFO=)                            [pbx_config]
  2658.                     12. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2659.                     13. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}:custom/OPSQueueIntro)}) [pbx_config]
  2660.                     14. Set(VQ_JOINMSG=)                          [pbx_config]
  2661.                     15. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2662.                     16. Set(VQ_RETRY=)                            [pbx_config]
  2663.      [qoptions]     17. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2664.                     18. Set(VQ_OPTIONS=)                          [pbx_config]
  2665.      [qgosub]       19. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2666.                     20. Set(VQ_GOSUB=)                            [pbx_config]
  2667.      [qagi]         21. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2668.                     22. Set(VQ_AGI=)                              [pbx_config]
  2669.      [qrule]        23. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2670.                     24. Set(VQ_RULE=)                             [pbx_config]
  2671.      [qposition]    25. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2672.                     26. Set(VQ_POSITION=)                         [pbx_config]
  2673.                     27. Gosub(sub-record-check,s,1(q,503,yes))    [pbx_config]
  2674.                     28. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2675.                     29. QueueLog(503,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_conf   ig]
  2676.                     30. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2677.                     31. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2678.                     32. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}:Opus)}) [pbx_   config]
  2679.                     33. Set(VQ_MOH=)                              [pbx_config]
  2680.                     34. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2681.                     35. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2682.                     36. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}: )}) [pbx_config]
  2683.                     37. Set(VQ_MAXWAIT=)                          [pbx_config]
  2684.                     38. Set(QUEUENUM=503)                         [pbx_config]
  2685.                     39. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2686.      [qcall]        40. Queue(503,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI}   ,,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2687.                     41. Macro(blkvm-clr,)                         [pbx_config]
  2688.                     42. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2689.                     43. Set(__NODEST=)                            [pbx_config]
  2690.                     44. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2691.                     45. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2692.                     46. Set(VQ_DEST=)                             [pbx_config]
  2693.      [gotodest]     47. GotoIf($["${QDEST}"=""]?ext-queues,503,1:${CUT(QDEST,^,1   )},${CUT(QDEST,^,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2694.   '503*' =>         1. Macro(agent-add,503,)                      [pbx_config]
  2695.   '503**' =>        1. Macro(agent-del,503)                       [pbx_config]
  2696.   '504' =>          1. Macro(user-callerid,)                      [pbx_config]
  2697.                     2. Answer()                                   [pbx_config]
  2698.                     3. Macro(blkvm-set,reset)                     [pbx_config]
  2699.                     4. ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}   " != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm))) [pbx_config]
  2700.                     5. Set(__NODEST=${EXTEN})                     [pbx_config]
  2701.                     6. Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}: )})    [pbx_config]
  2702.                     7. Set(VQ_CIDPP=)                             [pbx_config]
  2703.                     8. ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP})) [   pbx_config]
  2704.                     9. Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )})    [pbx_config]
  2705.                     10. Set(VQ_AINFO=)                            [pbx_config]
  2706.                     11. ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO})) [   pbx_config]
  2707.                     12. Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${V   Q_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}: )}) [pbx_config]
  2708.                     13. Set(VQ_JOINMSG=)                          [pbx_config]
  2709.                     14. Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )}   ) [pbx_config]
  2710.                     15. Set(VQ_RETRY=)                            [pbx_config]
  2711.      [qoptions]     16. Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTION   S}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY}) [pbx_config]
  2712.                     17. Set(VQ_OPTIONS=)                          [pbx_config]
  2713.      [qgosub]       18. Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${Q   GOSUB})}) [pbx_config]
  2714.                     19. Set(VQ_GOSUB=)                            [pbx_config]
  2715.      [qagi]         20. Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})}   ) [pbx_config]
  2716.                     21. Set(VQ_AGI=)                              [pbx_config]
  2717.      [qrule]        22. Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE   }"!="0"]?${VQ_RULE}: )}:${QRULE})}) [pbx_config]
  2718.                     23. Set(VQ_RULE=)                             [pbx_config]
  2719.      [qposition]    24. Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSI   TION}:${QPOSITION})}) [pbx_config]
  2720.                     25. Set(VQ_POSITION=)                         [pbx_config]
  2721.                     26. Gosub(sub-record-check,s,1(q,504,yes))    [pbx_config]
  2722.                     27. Set(__CWIGNORE=TRUE)                      [pbx_config]
  2723.                     28. ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, )) [pb   x_config]
  2724.                     29. QueueLog(504,${UNIQUEID},NONE,DID,${FROM_DID}) [pbx_conf   ig]
  2725.                     30. Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($[   "${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )}) [pbx_config]
  2726.                     31. Set(VQ_AANNOUNCE=)                        [pbx_config]
  2727.                     32. Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}:Opus)}) [pbx_   config]
  2728.                     33. Set(VQ_MOH=)                              [pbx_config]
  2729.                     34. ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH})) [pbx_co   nfig]
  2730.                     35. ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MO   HCLASS})) [pbx_config]
  2731.                     36. Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAI   T}: )}) [pbx_config]
  2732.                     37. Set(VQ_MAXWAIT=)                          [pbx_config]
  2733.                     38. Set(QUEUENUM=504)                         [pbx_config]
  2734.                     39. Set(QUEUEJOINTIME=${EPOCH})               [pbx_config]
  2735.      [qcall]        40. Queue(504,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI}   ,,${QGOSUB},${QRULE},${QPOSITION}) [pbx_config]
  2736.                     41. Macro(blkvm-clr,)                         [pbx_config]
  2737.                     42. Gosub(sub-record-cancel,s,1())            [pbx_config]
  2738.                     43. Set(__NODEST=)                            [pbx_config]
  2739.                     44. Set(_QUEUE_PRIO=0)                        [pbx_config]
  2740.                     45. Set(__CWIGNORE=)                          [pbx_config]
  2741.                     46. Set(QDEST=${VQ_DEST})                     [pbx_config]
  2742.                     47. Set(VQ_DEST=)                             [pbx_config]
  2743.      [gotodest]     48. GotoIf($["${QDEST}"=""]?:${CUT(QDEST,^,1)},${CUT(QDEST,^   ,2)},${CUT(QDEST,^,3)}) [pbx_config]
  2744.   '504*' =>         1. Macro(agent-add,504,)                      [pbx_config]
  2745.   '504**' =>        1. Macro(agent-del,504)                       [pbx_config]
  2746.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  2747.   '_*45*X.' =>      hint: ${DB(AMPUSER/${EXTEN:4}/queuehint)}     [pbx_config]
  2748.                     1. Goto(app-all-queue-toggle,s,start)         [pbx_config]
  2749.   '_*45XXX*XXXXX' => hint: Custom:QUEUE${EXTEN:3}                  [pbx_config]
  2750.                     1. Set(QUEUENO=${EXTEN:7:5})                  [pbx_config]
  2751.                     2. Set(QUEUEUSER=${EXTEN:3:3})                [pbx_config]
  2752.                     3. Goto(app-queue-toggle,s,start)             [pbx_config]
  2753.   '_*45XXX*XXX' =>  hint: Custom:QUEUE${EXTEN:3}                  [pbx_config]
  2754.                     1. Set(QUEUENO=${EXTEN:7:3})                  [pbx_config]
  2755.                     2. Set(QUEUEUSER=${EXTEN:3:3})                [pbx_config]
  2756.                     3. Goto(app-queue-toggle,s,start)             [pbx_config]
  2757.   '_*45XXXX*XXXXX' => hint: Custom:QUEUE${EXTEN:3}                  [pbx_config]
  2758.                     1. Set(QUEUENO=${EXTEN:8:5})                  [pbx_config]
  2759.                     2. Set(QUEUEUSER=${EXTEN:3:4})                [pbx_config]
  2760.                     3. Goto(app-queue-toggle,s,start)             [pbx_config]
  2761.   '_*45XXXX*XXX' => hint: Custom:QUEUE${EXTEN:3}                  [pbx_config]
  2762.                     1. Set(QUEUENO=${EXTEN:8:3})                  [pbx_config]
  2763.                     2. Set(QUEUEUSER=${EXTEN:3:4})                [pbx_config]
  2764.                     3. Goto(app-queue-toggle,s,start)             [pbx_config]
  2765.   '_*46*XXX*10001' => hint: qpause:10001:Local/${DB(DEVICE/${EXTEN:4:3}/user)}@f   rom-queue/n [pbx_config]
  2766.                     1. Gosub(app-queue-pause-toggle,s,1(10001,${DB(DEVICE/${EXTE   N:4:3}/user)})) [pbx_config]
  2767.   '_*46*XXX*500' => hint: qpause:500:Local/${DB(DEVICE/${EXTEN:4:3}/user)}@from-   queue/n [pbx_config]
  2768.                     1. Gosub(app-queue-pause-toggle,s,1(500,${DB(DEVICE/${EXTEN:   4:3}/user)})) [pbx_config]
  2769.   '_*46*XXX*502' => hint: qpause:502:Local/${DB(DEVICE/${EXTEN:4:3}/user)}@from-   queue/n [pbx_config]
  2770.                     1. Gosub(app-queue-pause-toggle,s,1(502,${DB(DEVICE/${EXTEN:   4:3}/user)})) [pbx_config]
  2771.   '_*46*XXX*503' => hint: qpause:503:Local/${DB(DEVICE/${EXTEN:4:3}/user)}@from-   queue/n [pbx_config]
  2772.                     1. Gosub(app-queue-pause-toggle,s,1(503,${DB(DEVICE/${EXTEN:   4:3}/user)})) [pbx_config]
  2773.   '_*46*XXXX*501' => hint: qpause:501:Local/${DB(DEVICE/${EXTEN:4:4}/user)}@from   -queue/n [pbx_config]
  2774.                     1. Gosub(app-queue-pause-toggle,s,1(501,${DB(DEVICE/${EXTEN:   4:4}/user)})) [pbx_config]
  2775.   '_*46*XXXX*503' => hint: qpause:503:Local/${DB(DEVICE/${EXTEN:4:4}/user)}@from   -queue/n [pbx_config]
  2776.                     1. Gosub(app-queue-pause-toggle,s,1(503,${DB(DEVICE/${EXTEN:   4:4}/user)})) [pbx_config]
  2777.   '_*46*XXXX*504' => hint: qpause:504:Local/${DB(DEVICE/${EXTEN:4:4}/user)}@from   -queue/n [pbx_config]
  2778.                     1. Gosub(app-queue-pause-toggle,s,1(504,${DB(DEVICE/${EXTEN:   4:4}/user)})) [pbx_config]
  2779.   '_*46*X.' =>      hint: ${DB(AMPUSER/${EXTEN:4}/pausequeuehint)} [pbx_config]
  2780.                     1. Goto(app-all-queue-pause-toggle,s,1)       [pbx_config]
  2781.   Include =>        'ext-queues-custom'                           [pbx_config]
  2782.  
  2783. [ Context 'app-all-queue-pause-toggle' created by 'pbx_config' ]
  2784.   's' =>            1. Answer()                                   [pbx_config]
  2785.                     2. Wait(1)                                    [pbx_config]
  2786.                     3. Macro(user-callerid,)                      [pbx_config]
  2787.                     4. AGI(queue_devstate.agi,toggle-pause-all,${AMPUSER}) [pbx_   config]
  2788.                     5. Playback(dictate/pause&${IF($[${TOGGLEPAUSED}]?activated:   de-activated)}) [pbx_config]
  2789.                     6. Macro(hangupcall,)                         [pbx_config]
  2790.   Include =>        'app-all-queue-pause-toggle-custom'           [pbx_config]
  2791.  
  2792. [ Context 'app-queue-pause-toggle' created by 'pbx_config' ]
  2793.   's' =>            1. Answer()                                   [pbx_config]
  2794.                     2. Wait(1)                                    [pbx_config]
  2795.                     3. Macro(user-callerid,)                      [pbx_config]
  2796.                     4. Set(QUEUEUSER=${IF($[${LEN(${ARG2})}>0]?${ARG2}:${AMPUSER   })}) [pbx_config]
  2797.                     5. Set(MEMBR=Local/${QUEUEUSER}@from-queue/n) [pbx_config]
  2798.                     6. Set(PAUSE_STATE=${QUEUE_MEMBER(${ARG1},paused,${MEMBR})})    [pbx_config]
  2799.                     7. Set(QUEUE_MEMBER(${ARG1},paused,${MEMBR})=${IF($[${PAUSE_   STATE}]?0:1)}) [pbx_config]
  2800.                     8. Playback(dictate/pause&${IF($[${PAUSE_STATE}]?de-activate   d:activated)}) [pbx_config]
  2801.                     9. ExecIf($[${ARG2}]?Return())                [pbx_config]
  2802.                     10. Macro(hangupcall,)                        [pbx_config]
  2803.   Include =>        'app-queue-pause-toggle-custom'               [pbx_config]
  2804.  
  2805. [ Context 'macro-toggle-add-agent' created by 'pbx_config' ]
  2806.   's' =>            1. Macro(user-callerid,SKIPTTL,)              [pbx_config]
  2807.                     2. Set(QUEUEUSER=${IF($[${LEN(${QUEUEUSER})}>0]?${QUEUEUSER}   :${AMPUSER})}) [pbx_config]
  2808.                     3. Set(QUEUEUSERCIDNAME=${DB(AMPUSER/${QUEUEUSER}/cidname)})    [pbx_config]
  2809.                     4. GotoIf($["${DB(QPENALTY/${QUEUENO}/dynmemberonly)}" = "ye   s" & ${DB_EXISTS(QPENALTY/${QUEUENO}/agents/${QUEUEUSER})} != 1]?invalid) [pbx_c   onfig]
  2810.                     5. ExecIf($["${DB(AMPUSER/${QUEUEUSER}/queues/qnostate)}" !=    "ignorestate"]?AddQueueMember(${QUEUENO},Local/${QUEUEUSER}@from-queue/n,${DB(Q   PENALTY/${QUEUENO}/agents/${QUEUEUSER})},,${QUEUEUSERCIDNAME},hint:${QUEUEUSER}@   ext-local)) [pbx_config]
  2811.                     6. ExecIf($["${DB(AMPUSER/${QUEUEUSER}/queues/qnostate)}" =    "ignorestate"]?AddQueueMember(${QUEUENO},Local/${QUEUEUSER}@from-queue/n,${DB(QP   ENALTY/${QUEUENO}/agents/${QUEUEUSER})},,${QUEUEUSERCIDNAME})) [pbx_config]
  2812.                     7. UserEvent(AgentLogin,Agent: ${QUEUEUSER})  [pbx_config]
  2813.                     8. QueueLog(${QUEUENO},MANAGER,${IF($[${LEN(${QUEUEUSERCIDNA   ME})}>0]?${QUEUEUSERCIDNAME}:${QUEUEUSER})},ADDMEMBER,) [pbx_config]
  2814.                     9. MacroExit()                                [pbx_config]
  2815.      [invalid]      10. Playback(pbx-invalid)                     [pbx_config]
  2816.                     11. Set(QAGENT_UNAUTHORIZED=1)                [pbx_config]
  2817.                     12. MacroExit()                               [pbx_config]
  2818.   Include =>        'macro-toggle-add-agent-custom'               [pbx_config]
  2819.  
  2820. [ Context 'macro-toggle-del-agent' created by 'pbx_config' ]
  2821.   's' =>            1. Macro(user-callerid,SKIPTTL,)              [pbx_config]
  2822.                     2. Set(QUEUEUSER=${IF($[${LEN(${QUEUEUSER})}>0]?${QUEUEUSER}   :${AMPUSER})}) [pbx_config]
  2823.                     3. Set(QUEUEUSERCIDNAME=${DB(AMPUSER/${QUEUEUSER}/cidname)})    [pbx_config]
  2824.                     4. RemoveQueueMember(${QUEUENO},Local/${QUEUEUSER}@from-queu   e/n) [pbx_config]
  2825.                     5. RemoveQueueMember(${QUEUENO},Local/${QUEUEUSER}@from-inte   rnal/n) [pbx_config]
  2826.                     6. UserEvent(RefreshQueue)                    [pbx_config]
  2827.                     7. QueueLog(${QUEUENO},MANAGER,${IF($[${LEN(${QUEUEUSERCIDNA   ME})}>0]?${QUEUEUSERCIDNAME}:${QUEUEUSER})},REMOVEMEMBER,) [pbx_config]
  2828.                     8. MacroExit()                                [pbx_config]
  2829.   Include =>        'macro-toggle-del-agent-custom'               [pbx_config]
  2830.  
  2831. [ Context 'app-all-queue-toggle' created by 'pbx_config' ]
  2832.   's' =>            1. Answer()                                   [pbx_config]
  2833.                     2. Wait(1)                                    [pbx_config]
  2834.                     3. Macro(user-callerid,)                      [pbx_config]
  2835.                     4. AGI(queue_devstate.agi,getall,${AMPUSER})  [pbx_config]
  2836.                     5. GotoIf($["${QUEUESTAT}" = "NOQUEUES"]?skip) [pbx_config]
  2837.                     6. Set(TOGGLE_MACRO=${IF($["${QUEUESTAT}"="LOGGEDOUT"]?toggl   e-add-agent:toggle-del-agent)}) [pbx_config]
  2838.                     7. Set(STATE=${IF($["${QUEUESTAT}"="LOGGEDOUT"]?INUSE:NOT_IN   USE)}) [pbx_config]
  2839.                     8. Set(LOOPCNTALL=${FIELDQTY(USERQUEUES,-)})  [pbx_config]
  2840.                     9. Set(ITERALL=1)                             [pbx_config]
  2841.      [begin]        10. Set(QUEUENO=${CUT(USERQUEUES,-,${ITERALL})}) [pbx_config   ]
  2842.                     11. Set(ITERALL=$[${ITERALL}+1])              [pbx_config]
  2843.                     12. Macro(${TOGGLE_MACRO},)                   [pbx_config]
  2844.                     13. Gosub(app-queue-toggle,sstate,1())        [pbx_config]
  2845.                     14. GotoIf($[${ITERALL} <= ${LOOPCNTALL}]?begin) [pbx_config   ]
  2846.      [skip]         15. ExecIf($["${QUEUESTAT}"="LOGGEDIN" | "${QUEUESTAT}"="NOQ   UEUES"]?Playback(agent-loggedoff)) [pbx_config]
  2847.                     16. ExecIf($["${QUEUESTAT}"="LOGGEDOUT"]?Playback(agent-logi   nok)) [pbx_config]
  2848.                     17. ExecIf($["${QUEUESTAT}"="LOGGEDOUT"]?SayDigits(${AMPUSER   })) [pbx_config]
  2849.                     18. Macro(hangupcall,)                        [pbx_config]
  2850.   Include =>        'app-all-queue-toggle-custom'                 [pbx_config]
  2851.  
  2852. [ Context 'app-queue-toggle' created by 'pbx_config' ]
  2853.   's' =>            1. Answer()                                   [pbx_config]
  2854.                     2. Wait(1)                                    [pbx_config]
  2855.                     3. Macro(user-callerid,)                      [pbx_config]
  2856.                     4. Set(QUEUEUSER=${IF($[${LEN(${QUEUEUSER})}>0]?${QUEUEUSER}   :${AMPUSER})}) [pbx_config]
  2857.                     5. Set(QUEUESTAT=LOGGEDOUT)                   [pbx_config]
  2858.                     6. AGI(queue_devstate.agi,getqueues,${QUEUEUSER}) [pbx_confi   g]
  2859.                     7. GotoIf($["${QUEUESTAT}" = "LOGGEDOUT"]?activate) [pbx_con   fig]
  2860.                     8. GotoIf($["${QUEUESTAT}" = "LOGGEDIN"]?deactivate) [pbx_co   nfig]
  2861.                     9. GotoIf($["${QUEUESTAT}" = "STATIC"]?static:end) [pbx_conf   ig]
  2862.      [deactivate]   10. Noop(Agent Logged out)                    [pbx_config]
  2863.                     11. Macro(toggle-del-agent,)                  [pbx_config]
  2864.      [logout]       12. Set(STATE=NOT_INUSE)                      [pbx_config]
  2865.                     13. Gosub(sstate,1())                         [pbx_config]
  2866.                     14. Playback(agent-loggedoff)                 [pbx_config]
  2867.                     15. Macro(hangupcall,)                        [pbx_config]
  2868.      [activate]     16. Noop(Agent Logged In)                     [pbx_config]
  2869.                     17. Macro(toggle-add-agent,)                  [pbx_config]
  2870.                     18. GotoIf($["${QAGENT_UNAUTHORIZED}"="1"]?logout) [pbx_conf   ig]
  2871.                     19. Set(STATE=INUSE)                          [pbx_config]
  2872.                     20. Gosub(sstate,1())                         [pbx_config]
  2873.                     21. Playback(agent-loginok)                   [pbx_config]
  2874.                     22. SayDigits(${QUEUEUSER})                   [pbx_config]
  2875.                     23. Macro(hangupcall,)                        [pbx_config]
  2876.      [static]       24. Noop(User is a Static Agent)              [pbx_config]
  2877.                     25. Set(STATE=INUSE)                          [pbx_config]
  2878.                     26. Gosub(sstate,1())                         [pbx_config]
  2879.                     27. Playback(agent-loginok)                   [pbx_config]
  2880.                     28. Macro(hangupcall,)                        [pbx_config]
  2881.   'sstate' =>       1. Set(DEVICES=${DB(AMPUSER/${QUEUEUSER}/device)}) [pbx_conf   ig]
  2882.                     2. GotoIf($["${DEVICES}" = "" ]?return)       [pbx_config]
  2883.                     3. Set(LOOPCNT=${FIELDQTY(DEVICES,&)})        [pbx_config]
  2884.                     4. Set(ITER=1)                                [pbx_config]
  2885.      [begin]        5. Set(DEVICE_STATE(Custom:QUEUE${CUT(DEVICES,&,${ITER})}*${   QUEUENO})=${STATE}) [pbx_config]
  2886.                     6. Set(ITER=$[${ITER} + 1])                   [pbx_config]
  2887.                     7. GotoIf($[${ITER} <= ${LOOPCNT}]?begin)     [pbx_config]
  2888.      [return]       8. Return()                                   [pbx_config]
  2889.   Include =>        'app-queue-toggle-custom'                     [pbx_config]
  2890.  
  2891. [ Context 'app-queueprio' created by 'pbx_config' ]
  2892.   '1' =>            1. Noop(Changing Channel to queueprio: 10 (CISQP)) [pbx_conf   ig]
  2893.                     2. Set(_QUEUE_PRIO=10)                        [pbx_config]
  2894.                     3. Goto(ext-queues,501,1)                     [pbx_config]
  2895.   Include =>        'app-queueprio-custom'                        [pbx_config]
  2896.  
  2897. [ Context 'app-pbdirectory' created by 'pbx_config' ]
  2898.   '411' =>          1. Goto(pbdirectory,1)                        [pbx_config]
  2899.   'hangup' =>       1. Hangup()                                   [pbx_config]
  2900.   'pbdirectory' =>  1. Answer()                                   [pbx_config]
  2901.                     2. Wait(1)                                    [pbx_config]
  2902.                     3. Macro(user-callerid,)                      [pbx_config]
  2903.                     4. AGI(pbdirectory)                           [pbx_config]
  2904.                     5. GotoIf($["${dialnumber}"=""]?hangup,1)     [pbx_config]
  2905.                     6. Noop(Got number to dial: ${dialnumber})    [pbx_config]
  2906.                     7. Dial(Local/${dialnumber}@from-internal/n,) [pbx_config]
  2907.   Include =>        'app-pbdirectory-custom'                      [pbx_config]
  2908.  
  2909. [ Context 'park-dial' created by 'pbx_config' ]
  2910.   't' =>            1. Noop(WARNING: PARKRETURN to: [${EXTEN}] failed with: [${D   IALSTATUS}]. Trying Alternate Dest On Parking Lot ${PARKINGSLOT}) [pbx_config]
  2911.                     2. Goto(park-orphan-routing,9,1)              [pbx_config]
  2912.   '_[0-9a-zA-Z*#].' => 1. Noop(WARNING: PARKRETURN to: [${EXTEN}] failed with: [   ${DIALSTATUS}]. Trying Alternate Dest On Parking Lot ${PARKINGSLOT}) [pbx_config   ]
  2913.                     2. Goto(park-orphan-routing,9,1)              [pbx_config]
  2914.   Include =>        'park-dial-custom'                            [pbx_config]
  2915.  
  2916. [ Context 'parkedcallstimeout' created by 'pbx_config' ]
  2917.   '_[0-9a-zA-Z*#].' => 1. Set(PARKCALLBACK=${REPLACE(EXTEN,_,/)})    [pbx_config   ]
  2918.                     2. GotoIf($["${REC_STATUS}" != "RECORDING"]?next) [pbx_confi   g]
  2919.                     3. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)     [pbx_config]
  2920.                     4. MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFIL   ENAME}.${MIXMON_FORMAT},a,${MIXMON_POST}) [pbx_config]
  2921.      [next]         5. Goto(park-return-routing,${PARKINGSLOT},1) [pbx_config]
  2922.   Include =>        'parkedcallstimeout-custom'                   [pbx_config]
  2923.  
  2924. [ Context 'macro-parked-call' created by 'pbx_config' ]
  2925.   'h' =>            1. Macro(hangupcall,)                         [pbx_config]
  2926.   's' =>            1. Macro(user-callerid,)                      [pbx_config]
  2927.                     2. Gosub(sub-record-check,s,1(parking,${AMPUSER},${AMPUSER})   ) [pbx_config]
  2928.                     3. Noop(PARKRETURNTO: ${SHARED(PARKRETURNTO,${CHANNEL})}) [p   bx_config]
  2929.                     4. GotoIf($[${LEN(${SHARED(PARKRETURNTO,${CHANNEL})})} > 0]?   backtosender) [pbx_config]
  2930.                     5. GotoIf($[${LEN(${BLINDTRANSFER})} > 0 | ${LEN(${ATTENDEDT   RANSFER})} > 0]?attemptpark) [pbx_config]
  2931.                     6. AGI(parkfetch.agi,${ARG1},${ARG2})         [pbx_config]
  2932.                     7. GotoIf($["${REC_STATUS}" != "RECORDING"]?next) [pbx_confi   g]
  2933.                     8. Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)     [pbx_config]
  2934.                     9. Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) [pbx_c   onfig]
  2935.      [next]         10. Set(CCSS_SETUP=TRUE)                      [pbx_config]
  2936.                     11. GotoIf($["${PARKIE}" != ""]?pcall)        [pbx_config]
  2937.                     12. ResetCDR()                                [pbx_config]
  2938.                     13. NoCDR()                                   [pbx_config]
  2939.                     14. Wait(1)                                   [pbx_config]
  2940.                     15. Playback(pbx-invalidpark)                 [pbx_config]
  2941.                     16. Wait(1)                                   [pbx_config]
  2942.                     17. Hangup()                                  [pbx_config]
  2943.      [pcall]        18. Noop(User: ${CALLERID(all)} attempting to pick up Parked    Call Slot ${ARG1}) [pbx_config]
  2944.                     19. Noop(PARKIE: ${PARKIE})                   [pbx_config]
  2945.                     20. Set(SHARED(PARKRETURNTO,${PARKIE})=)      [pbx_config]
  2946.                     21. Set(PARKOWNER=1)                          [pbx_config]
  2947.                     22. ParkedCall(${ARG1},${ARG2})               [pbx_config]
  2948.                     23. Hangup()                                  [pbx_config]
  2949.      [attemptpark]  24. Noop(User: ${CALLERID(all)} attempting to Park into slot    ${ARG1}) [pbx_config]
  2950.                     25. Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer   : ${ATTENDEDTRANSFER}) [pbx_config]
  2951.                     26. Noop($[${LEN(${PARKOWNER})} = 0])         [pbx_config]
  2952.                     27. GotoIf($[${LEN(${PARKOWNER})} = 0]?parkit) [pbx_config]
  2953.                     28. Macro(hangupcall,)                        [pbx_config]
  2954.      [parkit]       29. Set(PARKINGEXTEN=${ARG1})                 [pbx_config]
  2955.                     30. ExecIf($[${LEN(${BLINDTRANSFER})} > 0]?Set(SHARED(PARKRE   TURNTO,${CHANNEL})=${CUT(BLINDTRANSFER,-,1)}):Set(SHARED(PARKRETURNTO,${CHANNEL}   )=${CUT(ATTENDEDTRANSFER,-,1)})) [pbx_config]
  2956.                     31. Noop(PARKRETURNTO: ${SHARED(PARKRETURNTO,${CHANNEL})}) [   pbx_config]
  2957.                     32. Park(,${CONTEXT},s,200,s,${ARG2})         [pbx_config]
  2958.      [backtosender] 200. Noop(Attempting to go back to sender)    [pbx_config]
  2959.                     201. Set(PARKCALLBACK=${SHARED(PARKRETURNTO,${CHANNEL})}) [p   bx_config]
  2960.                     202. Set(SHARED(PARKRETURNTO,${CHANNEL})=)    [pbx_config]
  2961.                     203. Goto(park-return-routing,${ARG1},1)      [pbx_config]
  2962.   Include =>        'macro-parked-call-custom'                    [pbx_config]
  2963.  
  2964. [ Context 'app-pagegroups' created by 'pbx_config' ]
  2965.   '10040' =>        1. Macro(user-callerid,)                      [pbx_config]
  2966.                     2. Set(_PAGEGROUP=10040)                      [pbx_config]
  2967.      [busy-check]   3. GotoIf($[${TRYLOCK(apppagegroups10040)}]?:busy) [pbx_conf   ig]
  2968.      [devstate]     4. Set(DEVICE_STATE(Custom:PAGE10040)=INUSE)  [pbx_config]
  2969.                     5. Gosub(app-paging,ssetup,1())               [pbx_config]
  2970.                     6. Set(PAGEMODE=PAGE)                         [pbx_config]
  2971.                     7. Set(PAGE_MEMBERS=100-101-102-103-104-105-106-107-108-109-   110-111-112-120-121-124-129-300-301-302-303-304-305-307-308-320-321-4000-4001-40   02-4003-4004-4005-4006-4007-4008-4009-4010-4100) [pbx_config]
  2972.                     8. Set(PAGE_CONF_OPTS=1dqsxm)                 [pbx_config]
  2973.                     9. Set(ANNOUNCEMENT=beep)                     [pbx_config]
  2974.      [agi]          10. AGI(page.agi)                             [pbx_config]
  2975.                     11. Answer()                                  [pbx_config]
  2976.      [page]         12. MeetMe(${PAGE_CONF},dqwxAG,,)             [pbx_config]
  2977.                     13. Hangup()                                  [pbx_config]
  2978.      [busy]         14. Set(PAGE${PAGEGROUP}BUSY=TRUE)            [pbx_config]
  2979.      [play-busy]    15. Busy(3)                                   [pbx_config]
  2980.      [busy-hang]    16. Goto(app-pagegroups,h,1)                  [pbx_config]
  2981.   '199' =>          1. Macro(user-callerid,)                      [pbx_config]
  2982.                     2. Set(_PAGEGROUP=199)                        [pbx_config]
  2983.      [busy-check]   3. GotoIf($[${TRYLOCK(apppagegroups199)}]?:busy) [pbx_config   ]
  2984.      [devstate]     4. Set(DEVICE_STATE(Custom:PAGE199)=INUSE)    [pbx_config]
  2985.                     5. Gosub(app-paging,ssetup,1())               [pbx_config]
  2986.                     6. Set(PAGEMODE=PAGE)                         [pbx_config]
  2987.                     7. Set(PAGE_MEMBERS=100-101-102-103-104-105-106-107-108-109-   110-111-112-120-121-124-129-4100) [pbx_config]
  2988.                     8. Set(PAGE_CONF_OPTS=1dqsxm)                 [pbx_config]
  2989.                     9. Set(ANNOUNCEMENT=beep)                     [pbx_config]
  2990.      [agi]          10. AGI(page.agi)                             [pbx_config]
  2991.                     11. Answer()                                  [pbx_config]
  2992.      [page]         12. MeetMe(${PAGE_CONF},dqwxAG,,)             [pbx_config]
  2993.                     13. Hangup()                                  [pbx_config]
  2994.      [busy]         14. Set(PAGE${PAGEGROUP}BUSY=TRUE)            [pbx_config]
  2995.      [play-busy]    15. Busy(3)                                   [pbx_config]
  2996.      [busy-hang]    16. Goto(app-pagegroups,h,1)                  [pbx_config]
  2997.   '399' =>          1. Macro(user-callerid,)                      [pbx_config]
  2998.                     2. Set(_PAGEGROUP=399)                        [pbx_config]
  2999.      [busy-check]   3. GotoIf($[${TRYLOCK(apppagegroups399)}]?:busy) [pbx_config   ]
  3000.      [devstate]     4. Set(DEVICE_STATE(Custom:PAGE399)=INUSE)    [pbx_config]
  3001.                     5. Gosub(app-paging,ssetup,1())               [pbx_config]
  3002.                     6. Set(PAGEMODE=PAGE)                         [pbx_config]
  3003.                     7. Set(PAGE_MEMBERS=300-301-302-303-304-305-307-308-320-321)    [pbx_config]
  3004.                     8. Set(PAGE_CONF_OPTS=1dqsxm)                 [pbx_config]
  3005.                     9. Set(ANNOUNCEMENT=beep)                     [pbx_config]
  3006.      [agi]          10. AGI(page.agi)                             [pbx_config]
  3007.                     11. Answer()                                  [pbx_config]
  3008.      [page]         12. MeetMe(${PAGE_CONF},dqwxAG,,)             [pbx_config]
  3009.                     13. Hangup()                                  [pbx_config]
  3010.      [busy]         14. Set(PAGE${PAGEGROUP}BUSY=TRUE)            [pbx_config]
  3011.      [play-busy]    15. Busy(3)                                   [pbx_config]
  3012.      [busy-hang]    16. Goto(app-pagegroups,h,1)                  [pbx_config]
  3013.   '9400' =>         1. Macro(user-callerid,)                      [pbx_config]
  3014.                     2. Set(_PAGEGROUP=9400)                       [pbx_config]
  3015.      [busy-check]   3. GotoIf($[${TRYLOCK(apppagegroups9400)}]?:busy) [pbx_confi   g]
  3016.      [devstate]     4. Set(DEVICE_STATE(Custom:PAGE9400)=INUSE)   [pbx_config]
  3017.                     5. Gosub(app-paging,ssetup,1())               [pbx_config]
  3018.                     6. Set(PAGEMODE=PAGE)                         [pbx_config]
  3019.                     7. Set(PAGE_MEMBERS=4000-4001-4002-4003-4004-4005-4006-4007-   4008-4009-4010-4100) [pbx_config]
  3020.                     8. Set(PAGE_CONF_OPTS=1dqsxm)                 [pbx_config]
  3021.                     9. Set(ANNOUNCEMENT=beep)                     [pbx_config]
  3022.      [agi]          10. AGI(page.agi)                             [pbx_config]
  3023.                     11. Answer()                                  [pbx_config]
  3024.      [page]         12. MeetMe(${PAGE_CONF},dqwxAG,,)             [pbx_config]
  3025.                     13. Hangup()                                  [pbx_config]
  3026.      [busy]         14. Set(PAGE${PAGEGROUP}BUSY=TRUE)            [pbx_config]
  3027.      [play-busy]    15. Busy(3)                                   [pbx_config]
  3028.      [busy-hang]    16. Goto(app-pagegroups,h,1)                  [pbx_config]
  3029.   'h' =>            1. ExecIf($[${ISNULL(${PAGE${PAGEGROUP}BUSY})}]?Set(DEVICE_S   TATE(Custom:PAGE${PAGEGROUP})=NOT_INUSE)) [pbx_config]
  3030.   Include =>        'app-pagegroups-custom'                       [pbx_config]
  3031.  
  3032. [ Context 'ext-paging' created by 'pbx_config' ]
  3033.   '10040' =>        hint: Custom:PAGE10040                        [pbx_config]
  3034.                     1. Goto(app-pagegroups,10040,1)               [pbx_config]
  3035.   '199' =>          hint: Custom:PAGE199                          [pbx_config]
  3036.                     1. Goto(app-pagegroups,199,1)                 [pbx_config]
  3037.   '399' =>          hint: Custom:PAGE399                          [pbx_config]
  3038.                     1. Goto(app-pagegroups,399,1)                 [pbx_config]
  3039.   '9400' =>         hint: Custom:PAGE9400                         [pbx_config]
  3040.                     1. Goto(app-pagegroups,9400,1)                [pbx_config]
  3041.   Include =>        'ext-paging-custom'                           [pbx_config]
  3042.  
  3043. [ Context 'app-page-stream' created by 'pbx_config' ]
  3044.   's' =>            1. Wait(1)                                    [pbx_config]
  3045.                     2. Answer()                                   [pbx_config]
  3046.                     3. MeetMe(${PAGE_CONF},${PAGE_CONF_OPTS},,)   [pbx_config]
  3047.                     4. Hangup()                                   [pbx_config]
  3048.   Include =>        'app-page-stream-custom'                      [pbx_config]
  3049.  
  3050. [ Context 'app-paging' created by 'pbx_config' ]
  3051.   'ssetup' =>       1. Set(_SIPURI=)                              [pbx_config]
  3052.                     2. Set(_ALERTINFO=Ring Answer)                [pbx_config]
  3053.                     3. Set(_CALLINFO=<uri>;answer-after=0)        [pbx_config]
  3054.                     4. Set(_SIPURI=intercom=true)                 [pbx_config]
  3055.                     5. Set(_DTIME=5)                              [pbx_config]
  3056.                     6. Set(_ANSWERMACRO=)                         [pbx_config]
  3057.                     7. Set(PAGE_CONF=${EPOCH}${RAND(100,999)})    [pbx_config]
  3058.                     8. Return()                                   [pbx_config]
  3059.   '_PAGE.' =>       1. Macro(autoanswer,${EXTEN:4})               [pbx_config]
  3060.                     2. Noop(${EXTRINGTIME})                       [pbx_config]
  3061.                     3. GotoIf($["${EXTRINGTIME}" != "true"]?doptions) [pbx_confi   g]
  3062.                     4. Set(_DTIME=${RINGTIMER_DEFAULT})           [pbx_config]
  3063.                     5. ExecIf($["${DB(AMPUSER/${EXTEN:4}/ringtimer)}" != "" & ${   DB(AMPUSER/${EXTEN:4}/ringtimer)} > 0]?Set(_DTIME=${DB(AMPUSER/${EXTEN:4}/ringti   mer)})) [pbx_config]
  3064.      [doptions]     6. ExecIf($["${DOPTIONS}" = ""]?Set(_DOPTIONS=b(autoanswer^s   ^1(${ALERTINFO},${CALLINFO})))) [pbx_config]
  3065.                     7. Dial(${DIAL},${DTIME},A(${ANNOUNCEMENT})${DOPTIONS}) [pbx   _config]
  3066.      [skipself]     8. Hangup()                                   [pbx_config]
  3067.   '_SPAGE.' =>      1. ChanSpy(${SP_DEVICE}-,qW)                  [pbx_config]
  3068.                     2. Hangup()                                   [pbx_config]
  3069.   Include =>        'app-paging-custom'                           [pbx_config]
  3070.