I’m trying to initiate a call into Asterisk and then do multiple things.
- Answer the incoming call (Play a welcome tone, confbridge-join)
- Dial another party, inviting them to a ConfBridge
- Continue, joining the same ConfBridge so the parties are bridged together.
I understand this is advanced and against the grain of Dialplan.
I started by looking for “continuing” through the dialplan without waiting for Dial() or ConfBridge to finish
That lead me here: Continue processing DialPlan during Dial() but prior to hangup
And then here: Send SIP INVITE to other clients when there is Conference call created using ConfBridge App
The later result has something that plausibly works. Here’s the dialplan:
; Demo
exten => 111,1,NoOp(Entered demo)
same => n,Originate(PJSIP/${EXTEN},app,ConfBridge,${EXTEN})
same => n,ConfBridge(${EXTEN})
same => n,Hangup()
This works. Sort of. Both legs are established and the audio flows between all parties
After 30 seconds, the invited party using Originate leaves the bridge
I’m not sure why it’s leaving. I’ve tried setting a timeout on the Originate to something large and playing with the ‘a’ async option. No luck.
same => n,Originate(PJSIP/${EXTEN},app,ConfBridge,${EXTEN},,40000,a)
Is this worth pursuing? Is there an easier way to do what I’m imagining?