Parallel dialing / Process in background

Hello,

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@extensions&LOCAL/101@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@extensions,,&LOCAL/101@extensions,,G(extensions,101,1))
same => n,Dial(LOCAL/100@extensions,,g&LOCAL/101@extensions,,g)
same => n,Dial(LOCAL/100@extensions,,G(extensions,101,1))

From my readings of other threads/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 in this post.

Thanks in advance for any help or suggestions!