An Azure communication platform for deploying applications across devices and platforms.
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.