Forwarding DTMFs from one ARI app to another in multi-app setup

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:

  1. App-1 originates a call.

  2. App-2 receives the call and answers it.

  3. App-1 creates a bridge and adds channel 1 (its dialed leg) and channel 2.

  4. 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 sees ChannelDtmfReceived events.

  • 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

  1. Is there a way to forward DTMFs dynamically across two ARI apps without hardcoding channels?

  2. Should I use REST calls, a message broker, or is there a native ARI mechanism?

  3. How do other people handle DTMFs in multi-app ARI setups?

Thanks in advance for any guidance!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.