- Joined
- Jun 19, 2026
- Messages
- 1
- Reaction score
- 0
Hi everyone,
We are building a real-time transcription assistant on top of 3CX v20 and we are looking for guidance on the supported way to capture live audio at scale.
Our target is to handle many simultaneous inbound calls, potentially up to 500/600 participants.
The transcription pipeline itself is handled outside 3CX using Azure Speech and our own backend.
We have a VM with 3CX Phone System installed with an Enterprise licence 16SC.
Here's what we've tried :
TLDR: We need to detect calls and identify participants (Call Control API ok), Listen to the both legs and stream RTP audio to get leg1_callId.wav and leg2_callId.wav, Be able to do this simultaneously on N extension behind
use case => Customer call the technician pool => one technician take the call => a Ghost bot listen => our service transcribe and communicate with our solution. This is repeatable to N.
Questions:
Can one SIP extension accept multiple simultaneous Listen/Barge-in sessions on different calls?
Is there a supported pattern for N concurrent mixed-audio taps without N listener DNs?
Is there, by any chance, a way to get both legs separately?
Our goal is not to modify call routing or interfere with the SIP trunk. We are looking for the cleanest supported architecture for live transcription at scale.
Thanks in advance for any guidance or recommended pattern
Maxime
System Selected is the Enterprise one
We are building a real-time transcription assistant on top of 3CX v20 and we are looking for guidance on the supported way to capture live audio at scale.
Our target is to handle many simultaneous inbound calls, potentially up to 500/600 participants.
The transcription pipeline itself is handled outside 3CX using Azure Speech and our own backend.
We have a VM with 3CX Phone System installed with an Enterprise licence 16SC.
Here's what we've tried :
- Call Control API REST+ GET /stream
We got the audio only for the Route point not for the other participant. One leg only. And we got a lot of errors 424 Failed Dependancy
on GET/POST /stream — Duplex media stream
- Call Control API REST
What we tested:
POST /callcontrol/{dn}/participants/{id}/listen
POST /callcontrol/{dn}/participants/{id}/bargein
POST /callcontrol/{dn}/participants/{id}/whisper
via OAuth REST
Result: HTTP 422 — OAuth REST v20 does not support these actions.
So we moved onto Call Control C# API.
- Listen / Barge-in + SIP UA (baresip) using C# Call Control
With a Ghost Extension, we bargeIn on detection of a new call, we got a mixed mono stream (caller + agent) using BargeInCallbackAsync (local C# API on the PBX VM) toward a ghost SIP extension. We managed to get a live .Wav that we have transcribed in real-time.
The downside: it seems to assume one active Listen session per listener extension, so scaling to many concurrent calls would mean many ghost extensions (98, 97, 96…), which we want to avoid. - CFD Route point solution
We came across a lot of threads, that talk about a route point with a C# script to do what we need with only one extension. But the literature is thin... I don't have any idea how to use this.
TLDR: We need to detect calls and identify participants (Call Control API ok), Listen to the both legs and stream RTP audio to get leg1_callId.wav and leg2_callId.wav, Be able to do this simultaneously on N extension behind
use case => Customer call the technician pool => one technician take the call => a Ghost bot listen => our service transcribe and communicate with our solution. This is repeatable to N.
Questions:
Can one SIP extension accept multiple simultaneous Listen/Barge-in sessions on different calls?
Is there a supported pattern for N concurrent mixed-audio taps without N listener DNs?
Is there, by any chance, a way to get both legs separately?
Our goal is not to modify call routing or interfere with the SIP trunk. We are looking for the cleanest supported architecture for live transcription at scale.
Thanks in advance for any guidance or recommended pattern
Maxime
System Selected is the Enterprise one