Peter van Haaften
2020-Oct-15 16:34 UTC
[asterisk-users] Parallel dialing / running dialplan process in background
Hi, I am trying to write a dialplan that will use Dial() to call two local extensions. One extension will run an AGI script (a continuous background process, running until hangup), the other will connect the active channel to Jack() (also running as continuous process, until hangup). This is my current dialplan attempt: --------------------- [from-internal] exten = 514316XXXX,1,Answer() same => n,Playback(hello) same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at extensions) [extensions] exten => 100,1,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) same => n,Hangup() exten => 101,1,AGI(test.py) --------------------- Currently, this will start my python script via AGI & run it as blocking, stopping extension 100 from connecting. I’ve also tried the following alternative syntax’s with Dial, with varying results but no solution yet: --------------------- same => n,Dial(LOCAL/100 at extensions,,&LOCAL/101 at extensions ,,G(extensions,101,1)) same => n,Dial(LOCAL/100 at extensions,,g&LOCAL/101 at extensions,,g) same => n,Dial(LOCAL/100 at extensions,,G(extensions,101,1)) --------------------->From my readings of other related issues, I think I’m very close but havejust minimally messed up the syntax. I know trying to force two running processes on the dialplan is not generally recommended, but I have a specific use-case, and my Asterisk server will only be handling a small number of concurrent callers. I can provide more detail on my python script process, my need for Jack, etc. My need for parallel running processes on the dialplan was spurned by issues I’ve had with JACK_HOOK, which are detailed here: https://community.asterisk.org/t/jack-hook-issue-and-finding-working-alternative/86039 Thanks in advance for any help or suggestions! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20201015/09d59704/attachment.html>
Dovid Bender
2020-Oct-15 21:15 UTC
[asterisk-users] Parallel dialing / running dialplan process in background
Asterisk will try calling both at once. As soon as one is answered it cancels the call to the other. What you can do is for extension 101 to put it in it's own context and then call the agi from the h extension. So something like this: [from-internal] exten = 514316XXXX,1,Answer() same => n,Playback(hello) same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at extensions) [extensions] exten => 100,1,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) same => n,Hangup() [our_agi] Exten => 101,1,Congestion Exten => h,1,AGI(test.py) On Thu, Oct 15, 2020 at 12:35 PM Peter van Haaften <petervh at gmail.com> wrote:> Hi, > > I am trying to write a dialplan that will use Dial() to call two local > extensions. One extension will run an AGI script (a continuous background > process, running until hangup), the other will connect the active channel > to Jack() (also running as continuous process, until hangup). > > This is my current dialplan attempt: > > --------------------- > [from-internal] > exten = 514316XXXX,1,Answer() > same => n,Playback(hello) > same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at extensions) > [extensions] > exten => 100,1,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) > same => n,Hangup() > exten => 101,1,AGI(test.py) > --------------------- > > Currently, this will start my python script via AGI & run it as blocking, > stopping extension 100 from connecting. > > I’ve also tried the following alternative syntax’s with Dial, with varying > results but no solution yet: > > --------------------- > same => n,Dial(LOCAL/100 at extensions,,&LOCAL/101 at extensions > ,,G(extensions,101,1)) > same => n,Dial(LOCAL/100 at extensions,,g&LOCAL/101 at extensions,,g) > same => n,Dial(LOCAL/100 at extensions,,G(extensions,101,1)) > --------------------- > > From my readings of other related issues, I think I’m very close but have > just minimally messed up the syntax. I know trying to force two running > processes on the dialplan is not generally recommended, but I have a > specific use-case, and my Asterisk server will only be handling a small > number of concurrent callers. > > I can provide more detail on my python script process, my need for Jack, > etc. My need for parallel running processes on the dialplan was spurned by > issues I’ve had with JACK_HOOK, which are detailed here: > https://community.asterisk.org/t/jack-hook-issue-and-finding-working-alternative/86039 > > Thanks in advance for any help or suggestions! > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > Check out the new Asterisk community forum at: > https://community.asterisk.org/ > > New to Asterisk? Start here: > https://wiki.asterisk.org/wiki/display/AST/Getting+Started > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20201015/2f338b6e/attachment.html>
Peter van Haaften
2020-Oct-16 11:53 UTC
[asterisk-users] Parallel dialing / running dialplan process in background
Hi Dovid, thanks for that, it works! :) [from-internal] exten = 514316XXXX,1,Answer() same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at background) [extensions] exten => 100,1,Playback(hello) same => n,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) same => n,Hangup() [background] Exten => 101,1,Congestion Exten => h,1,AGI(test.py) On Thu, Oct 15, 2020 at 5:16 PM Dovid Bender <dovid at telecurve.com> wrote:> Asterisk will try calling both at once. As soon as one is answered it > cancels the call to the other. What you can do is for extension 101 to put > it in it's own context and then call the agi from the h extension. So > something like this: > [from-internal] > exten = 514316XXXX,1,Answer() > same => n,Playback(hello) > same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at extensions) > [extensions] > exten => 100,1,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) > same => n,Hangup() > [our_agi] > Exten => 101,1,Congestion > Exten => h,1,AGI(test.py) > > > > > > > On Thu, Oct 15, 2020 at 12:35 PM Peter van Haaften <petervh at gmail.com> > wrote: > >> Hi, >> >> I am trying to write a dialplan that will use Dial() to call two local >> extensions. One extension will run an AGI script (a continuous background >> process, running until hangup), the other will connect the active channel >> to Jack() (also running as continuous process, until hangup). >> >> This is my current dialplan attempt: >> >> --------------------- >> [from-internal] >> exten = 514316XXXX,1,Answer() >> same => n,Playback(hello) >> same => n,Dial(LOCAL/100 at extensions&LOCAL/101 at extensions) >> [extensions] >> exten => 100,1,JACK([i(SuperCollider:in_1), o(SuperCollider:out_1)]) >> same => n,Hangup() >> exten => 101,1,AGI(test.py) >> --------------------- >> >> Currently, this will start my python script via AGI & run it as blocking, >> stopping extension 100 from connecting. >> >> I’ve also tried the following alternative syntax’s with Dial, with >> varying results but no solution yet: >> >> --------------------- >> same => n,Dial(LOCAL/100 at extensions,,&LOCAL/101 at extensions >> ,,G(extensions,101,1)) >> same => n,Dial(LOCAL/100 at extensions,,g&LOCAL/101 at extensions,,g) >> same => n,Dial(LOCAL/100 at extensions,,G(extensions,101,1)) >> --------------------- >> >> From my readings of other related issues, I think I’m very close but have >> just minimally messed up the syntax. I know trying to force two running >> processes on the dialplan is not generally recommended, but I have a >> specific use-case, and my Asterisk server will only be handling a small >> number of concurrent callers. >> >> I can provide more detail on my python script process, my need for Jack, >> etc. My need for parallel running processes on the dialplan was spurned by >> issues I’ve had with JACK_HOOK, which are detailed here: >> https://community.asterisk.org/t/jack-hook-issue-and-finding-working-alternative/86039 >> >> Thanks in advance for any help or suggestions! >> -- >> _____________________________________________________________________ >> -- Bandwidth and Colocation Provided by http://www.api-digital.com -- >> >> Check out the new Asterisk community forum at: >> https://community.asterisk.org/ >> >> New to Asterisk? Start here: >> https://wiki.asterisk.org/wiki/display/AST/Getting+Started >> >> asterisk-users mailing list >> To UNSUBSCRIBE or update options visit: >> http://lists.digium.com/mailman/listinfo/asterisk-users > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > Check out the new Asterisk community forum at: > https://community.asterisk.org/ > > New to Asterisk? Start here: > https://wiki.asterisk.org/wiki/display/AST/Getting+Started > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20201016/011df79f/attachment.html>