Hi everyone,
I have a multi-app setup using ARI (Asterisk 18/20) and I’m running into a DTMF forwarding issue. I’d like guidance on best practices.
Setup
-
App-1: originates outbound calls. It owns channel
1(callee leg). -
App-2: answers calls, sees channel
3(caller leg). -
Both apps are separate processes, each connected to Asterisk via ARI WebSocket.
Workflow:
-
App-1 originates a call.
-
App-2 receives the call and answers it.
-
App-1 creates a bridge and adds channel
1(its dialed leg) and channel2. -
From App-2, I can play sounds and hang up, and App-1 sees the events correctly.
Problem
-
When I enter DTMFs on App-2’s channel (
3), App-1 never seesChannelDtmfReceivedevents. -
Bridge inspection shows App-2’s channel is not part of the bridge, but even if it were, DTMFs do not automatically propagate to other ARI apps.
-
Other events (playback, hangup) work fine across apps via the bridge.
What I want
-
App-1 to see all DTMFs from the caller leg as if they arrived on the channel it owns.
-
Channels are dynamic, so I cannot hardcode IDs.
-
Apps are separate processes, no shared memory.
Questions
-
Is there a way to forward DTMFs dynamically across two ARI apps without hardcoding channels?
-
Should I use REST calls, a message broker, or is there a native ARI mechanism?
-
How do other people handle DTMFs in multi-app ARI setups?
Thanks in advance for any guidance!