Voice Stream 1.0.0
WebSocket-based API for bidirectional voice streaming between the Sinch platform and customer endpoints.
This service enables real-time audio streaming for outbound calls, supporting use cases such as AI-powered voice assistants, interactive voice applications, and custom telephony integrations.
Key Features:
- Bidirectional audio streaming using PCM-encoded audio frames
- Flexible audio chunk sizes (e.g., 20ms frames or larger buffered chunks)
- Stream control commands for audio buffer management and connection keep-alive
- Support for call acceptance, rejection, and busy signaling
Audio Buffering: The platform buffers incoming audio and plays it out to the caller. Use the clear command to discard buffered audio that has not yet been played, enabling real-time interruptions for interactive applications like chatbots. The maximum buffer is 5MBs per call. If exceeded, older data will be discarded.
Connection Flow:
- Platform initiates connection with
ConnectRequest - Client responds with
answer,busy, orreject - If answered, bidirectional audio streaming begins
- Either party can send audio frames as binary WebSocket messages
- Client can send control commands (
clear,heartbeat) during the stream
Connection Loss: There is no reconnection mechanism. If the WebSocket connection is lost for any reason, the call is immediately considered hung up and cannot be recovered.
Latency: End-to-end audio latency is the sum of network round-trip time and platform buffering delay. Sending smaller frames (e.g. 20ms) reduces buffering delay but increases per-frame overhead; larger frames reduce overhead at the cost of higher latency. Audio sent to the platform is queued in the playback buffer before being played out to the caller, so a large backlog of buffered audio will delay playback. Use the clear command to flush unplayed audio when low latency is required, for example to interrupt ongoing playback in conversational applications.