From 7741ed8bcc4a1c302ef7039196aeeb2481afe1aa Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Tue, 25 Mar 2008 17:40:28 +0000 Subject: Update the sample configuration, to use Macro less (since it's now deprecated). (closes issue #12293) Reported by: pprindeville Patches: bugid-0012293.1.6.patch uploaded by pprindeville (license 347) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@110689 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- configs/extensions.conf.sample | 94 ++++++++++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 26 deletions(-) diff --git a/configs/extensions.conf.sample b/configs/extensions.conf.sample index e350b229b..6657b22fb 100644 --- a/configs/extensions.conf.sample +++ b/configs/extensions.conf.sample @@ -210,7 +210,8 @@ TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) ; ; List canonical entries here ; -;exten => 12564286000,1,Macro(stdexten,6000,IAX2/foo) +;exten => 12564286000,1,Gosub(stdexten,s,1(6000,IAX2/foo)) +;exten => 12564286000,n,Goto(default,s,1) ; exited Voicemail ;exten => _125642860XX,1,Dial(IAX2/otherbox/${EXTEN:7}) [dundi-e164-customers] @@ -376,50 +377,86 @@ exten => s-NOANSWER,1,Hangup exten => s-BUSY,1,Hangup exten => _s-.,1,NoOp -[macro-stdexten]; +[stdexten] ; -; Standard extension macro: -; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well +; Standard extension subroutine: +; ${ARG1} - Extension ; ${ARG2} - Device(s) to ring +; ${ARG3} - Optional context in Voicemail (if empty, then "default") ; -exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum -exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) +; Note that the current version will drop through to the next priority in the +; case of their pressing '#'. This gives more flexibility in what do to next: +; you can prompt for a new extension, or drop the call, or send them to a +; general delivery mailbox, or... +; +; The use of the LOCAL() function is purely for convenience. Any variable +; initially declared as LOCAL() will disappear when the innermost Gosub context +; in which it was declared returns. Note also that you can declare a LOCAL() +; variable on top of an existing variable, and its value will revert to its +; previous value (before being declared as LOCAL()) upon Return. +; +exten => s,1,NoOp(Start stdexten) +exten => s,n,Set(LOCAL(ext)=${ARG1}) +exten => s,n,Set(LOCAL(dev)=${ARG2}) +exten => s,n,Set(LOCAL(cntx)=${ARG3}) + +exten => s,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""]) +exten => s,n,Dial(${dev},20) ; Ring the interface, 20 seconds maximum +exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) -exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce -exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start +exten => s-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce +exten => s-NOANSWER,n,NoOp(Finish stdexten NOANSWER) +exten => s-NOANSWER,n,Return() ; If they press #, return to start -exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce -exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start +exten => s-BUSY,1,Voicemail(${mbx},b) + ; If busy, send to voicemail w/ busy announce +exten => s-BUSY,n,NoOp(Finish stdexten BUSY) +exten => s-BUSY,n,Return() ; If they press #, return to start exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer -exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain +exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain + ; does this ever return? -[macro-stdPrivacyexten]; +[stdPrivacyexten] ; -; Standard extension macro: -; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well +; Standard extension subroutine: +; ${ARG1} - Extension ; ${ARG2} - Device(s) to ring ; ${ARG3} - Optional DONTCALL context name to jump to (assumes the s,1 extension-priority) ; ${ARG4} - Optional TORTURE context name to jump to (assumes the s,1 extension-priority)` +; ${ARG5} - Context in voicemail (if empty, then "default") ; -exten => s,1,Dial(${ARG2},20|p) ; Ring the interface, 20 seconds maximum, call screening +; See above note in stdexten about priority handling on exit. +; +exten => s,1,NoOp(Start stdPrivacyexten) +exten => s,n,Set(LOCAL(ext)=${ARG1}) +exten => s,n,Set(LOCAL(dev)=${ARG2}) +exten => s,n,Set(LOCAL(dontcntx)=${ARG3}) +exten => s,n,Set(LOCAL(tortcntx)=${ARG4}) +exten => s,n,Set(LOCAL(cntx)=${ARG5}) + +exten => s,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""]) +exten => s,n,Dial(${dev},20|p) ; Ring the interface, 20 seconds maximum, call screening ; option (or use P for databased call screening) -exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) +exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) -exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce -exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start +exten => s-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce +exten => s-NOANSWER,n,NoOp(Finish stdPrivacyexten NOANSWER) +exten => s-NOANSWER,n,Return() ; If they press #, return to start -exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce -exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start +exten => s-BUSY,1,Voicemail(${mbx},b) ; If busy, send to voicemail w/ busy announce +exten => s-BUSY,n,NoOp(Finish stdPrivacyexten BUSY) +exten => s-BUSY,n,Return() ; If they press #, return to start -exten => s-DONTCALL,1,Goto(${ARG3},s,1) ; Callee chose to send this call to a polite "Don't call again" script. +exten => s-DONTCALL,1,Goto(${dontcntx},s,1) ; Callee chose to send this call to a polite "Don't call again" script. -exten => s-TORTURE,1,Goto(${ARG4},s,1) ; Callee chose to send this call to a telemarketer torture script. +exten => s-TORTURE,1,Goto(${tortcntx},s,1) ; Callee chose to send this call to a telemarketer torture script. exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer -exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain +exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain + ; does this ever return? [macro-page]; ; @@ -463,7 +500,8 @@ exten => 1000,1,Goto(default,s,1) ; exten => 1234,1,Playback(transfer,skip) ; "Please hold while..." ; (but skip if channel is not up) -exten => 1234,n,Macro(stdexten,1234,${GLOBAL(CONSOLE)}) +exten => 1234,n,Gosub(stdexten,s,1(1234,${GLOBAL(CONSOLE)})) +exten => 1234,n,Goto(default,s,1) ; exited Voicemail exten => 1235,1,Voicemail(1234,u) ; Right to voicemail @@ -579,9 +617,13 @@ include => demo ;exten => 6391,1,Dial(JINGLE/asterisk@digium.com/mogorman@astjab.org) ;Dial via jingle using asterisk as the transport and calling mogorman. ;exten => 6394,1,Dial(Local/6275/n) ; this will dial ${MARK} -;exten => 6275,1,Macro(stdexten,6275,${MARK}) ; assuming ${MARK} is something like Zap/2 +;exten => 6275,1,Gosub(stdexten,s,1(6275,${MARK})) + ; assuming ${MARK} is something like Zap/2 +;exten => 6275,n,Goto(default,s,1) ; exited Voicemail ;exten => mark,1,Goto(6275|1) ; alias mark to 6275 -;exten => 6536,1,Macro(stdexten,6236,${WIL}) ; Ditto for wil +;exten => 6536,1,Gosub(stdexten,s,1(6236,${WIL})) + ; Ditto for wil +;exten => 6536,n,Goto(default,s,1) ; exited Voicemail ;exten => wil,1,Goto(6236|1) ;If you want to subscribe to the status of a parking space, this is -- cgit v1.2.3