Is bidirectional audio streaming supported for outbound PSTN calls under Teams Phone Extensibility after the ACS retirement?

Oscar Galles Argemi 0 Reputation points
2026-09-26T10:31:46.8833333+00:00

We have an outbound conversational AI voice agent built on Azure Communication Services Call Automation:

  • createCall to PSTN from an ACS phone number
  • bidirectional media streaming over WebSocket (enableBidirectional: true, PCM 24 kHz mono) connected to a realtime speech-to-speech model, whose audio is streamed back into the call
  • addParticipant to let a human agent (ACS identity in the web Calling SDK) take over the call
  • JavaScript SDK @azure/communication-call-automation

The ACS retirement guide says that from 30 September 2028 Call Automation and Audio Streaming will only be supported in Teams-aligned scenarios, so we are evaluating Teams Phone Extensibility (TPE).

The TPE capability matrix lists "stream real-time audio out of the call to a WebSocket" and "Outbound Audio Streaming ... for conversational AI", but the retirement guide also states that support for sending audio out of a call doesn't, by itself, establish support for sending audio back into that call.

Questions:

  1. Is bidirectional media streaming (application audio injected back into the call) supported for outbound PSTN calls created with CreateCall + TeamsAppSource under TPE, now and after 30 September 2028? Any known limitations (16/24 kHz, latency, barge-in)?
  2. Is teamsAppSource + enableBidirectional supported in the JavaScript SDK (1.6.0), or only in .NET?
  3. Under TPE, can a human agent using an ACS identity in the web Calling SDK still be added to the call, or must the agent be a Teams user with a Teams Phone license?
Azure Communication Services
0 comments No comments

1 answer

Sort by: Newest
  1. Taz 10,046 Reputation points MVP Volunteer Moderator
    2026-09-26T17:56:00.1+00:00

    Hi Oscar,

    For the exact scenario you described, TPE currently supports outbound audio streaming from the call to your WebSocket, but not bidirectional WebSocket streaming back into the call.

    Microsoft's TPE capability matrix explicitly lists “stream real-time audio out of the call to a WebSocket” as supported, while inbound application audio over that WebSocket is not listed as a supported TPE capability. The same matrix does support the Play API for sending audio prompts into the call.

    So:

    CreateCall + TeamsAppSource for outbound PSTN: supported. teamsAppSource is documented for server-initiated TPE calls. Full-duplex WebSocket audio (enableBidirectional=true) for TPE: not currently a documented supported capability. This remains the boundary for the migration after September 30, 2028 as well. Microsoft's retirement guidance specifically says that outbound streaming support does not imply audio can also be sent back into the call.

    JavaScript SDK: yes, the JavaScript Call Automation SDK exposes both teamsAppSource and mediaStreamingOptions.enableBidirectional. However, the presence of the property in the SDK does not mean that bidirectional streaming is supported for every call scenario. For TPE, the capability matrix currently only documents audio streaming out of the call.

    Human agent: TPE supports adding an agent through the Dual Persona model using the ACS Calling SDK. The capability matrix says Dual Persona Agents are supported and explicitly distinguishes them from users running the standard Teams client. However, the agent still needs a Teams Phone license and Enterprise Voice enabled.

    For your existing conversational-AI design, the key gap is therefore raw bidirectional WebSocket audio. TPE currently gives you call → WebSocket streaming plus Play for audio going into the call, but not the same full-duplex streaming model you are using with standalone ACS Audio Streaming.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.