From 48d17a76d0948fc5b27c75a23809e8f0269e01de Mon Sep 17 00:00:00 2001 From: Tilghman Lesher <tilghman@meg.abyt.es> Date: Thu, 30 Oct 2008 04:26:34 +0000 Subject: [PATCH] Set up an example stdexten that preserves the original context and extension in the CDR. (Related to issue #13799) Reported by: davidw git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152765 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- configs/extensions.conf.sample | 85 ++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/configs/extensions.conf.sample b/configs/extensions.conf.sample index a7cbd972ea..0b82f3b3aa 100644 --- a/configs/extensions.conf.sample +++ b/configs/extensions.conf.sample @@ -213,10 +213,11 @@ TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) ; ; [dundi-e164-canonical] +;include => stdexten ; ; List canonical entries here ; -;exten => 12564286000,1,Gosub(stdexten,s,1(6000,IAX2/foo)) +;exten => 12564286000,1,Gosub(stdexten(6000,IAX2/foo)) ;exten => 12564286000,n,Goto(default,s,1) ; exited Voicemail ;exten => _125642860XX,1,Dial(IAX2/otherbox/${EXTEN:7}) @@ -401,28 +402,28 @@ exten => _s-.,1,NoOp ; 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 => _X.,50000(stdexten),NoOp(Start stdexten) +exten => _X.,n,Set(LOCAL(ext)=${ARG1}) +exten => _X.,n,Set(LOCAL(dev)=${ARG2}) +exten => _X.,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 => _X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""]) +exten => _X.,n,Dial(${dev},20) ; Ring the interface, 20 seconds maximum +exten => _X.,n,Goto(stdexten-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) -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 => stdexten-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce +exten => stdexten-NOANSWER,n,NoOp(Finish stdexten NOANSWER) +exten => stdexten-NOANSWER,n,Return() ; If they press #, return to start -exten => s-BUSY,1,Voicemail(${mbx},b) +exten => stdexten-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 => stdexten-BUSY,n,NoOp(Finish stdexten BUSY) +exten => stdexten-BUSY,n,Return() ; If they press #, return to start -exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer +exten => _stdexten[\-].,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain - ; does this ever return? +exten => a,n,Return() [stdPrivacyexten] ; @@ -435,34 +436,34 @@ exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into Voicem ; ; 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 => _X.,60000(stdPrivacyexten),NoOp(Start stdPrivacyexten) +exten => _X.,n,Set(LOCAL(ext)=${ARG1}) +exten => _X.,n,Set(LOCAL(dev)=${ARG2}) +exten => _X.,n,Set(LOCAL(dontcntx)=${ARG3}) +exten => _X.,n,Set(LOCAL(tortcntx)=${ARG4}) +exten => _X.,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,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) +exten => _X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""]) +exten => _X.,n,Dial(${dev},20,p) ; Ring the interface, 20 seconds maximum, call screening + ; option (or use P for databased call _X.creening) +exten => _X.,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) -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 => stdexten-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce +exten => stdexten-NOANSWER,n,NoOp(Finish stdPrivacyexten NOANSWER) +exten => stdexten-NOANSWER,n,Return() ; 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 => stdexten-BUSY,1,Voicemail(${mbx},b) ; If busy, send to voicemail w/ busy announce +exten => stdexten-BUSY,n,NoOp(Finish stdPrivacyexten BUSY) +exten => stdexten-BUSY,n,Return() ; If they press #, return to start -exten => s-DONTCALL,1,Goto(${dontcntx},s,1) ; Callee chose to send this call to a polite "Don't call again" script. +exten => stdexten-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(${tortcntx},s,1) ; Callee chose to send this call to a telemarketer torture script. +exten => stdexten-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 => _stdexten-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain - ; does this ever return? +exten => a,n,Return [macro-page]; ; @@ -482,6 +483,7 @@ exten => s,n(fail),Hangup [demo] +include => stdexten ; ; We start with what to do when a call first comes in. ; @@ -506,7 +508,7 @@ 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,Gosub(stdexten,s,1(1234,${GLOBAL(CONSOLE)})) +exten => 1234,n,Gosub(stdexten(1234,${GLOBAL(CONSOLE)})) exten => 1234,n,Goto(default,s,1) ; exited Voicemail exten => 1235,1,Voicemail(1234,u) ; Right to voicemail @@ -623,11 +625,11 @@ 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,Gosub(stdexten,s,1(6275,${MARK})) +;exten => 6275,1,Gosub(stdexten(6275,${MARK})) ; assuming ${MARK} is something like DAHDI/2 ;exten => 6275,n,Goto(default,s,1) ; exited Voicemail ;exten => mark,1,Goto(6275,1) ; alias mark to 6275 -;exten => 6536,1,Gosub(stdexten,s,1(6236,${WIL})) +;exten => 6536,1,Gosub(stdexten(6236,${WIL})) ; Ditto for wil ;exten => 6536,n,Goto(default,s,1) ; exited Voicemail ;exten => wil,1,Goto(6236,1) @@ -693,10 +695,11 @@ include => demo ; grouping of acme's extensions... never used directly, always included. ; ;[acme-extens] -;exten => 111,1,Gosub(stdexten,s,1(111,SIP/pete_1,acme)) +;include => stdexten +;exten => 111,1,Gosub(stdexten(111,SIP/pete_1,acme)) ;exten => 111,n,Goto(s,exten) ; -;exten => 112,1,Gosub(stdexten,s,1(112,SIP/nancy_1,acme)) +;exten => 112,1,Gosub(stdexten(112,SIP/nancy_1,acme)) ;exten => 112,n,Goto(s,end) ; ; end of acme example -- GitLab