Streaming mode: your gateway streams μ-law audio on the voice WebSocket; Convoship runs Deepgram STT and ElevenLabs TTS (same runtime as Twilio streaming). Turn-based mode: your gateway does STT/TTS and exchanges JSON text only.
- Inbound: POST /v1/public/channels/voice_gateway/{connection_id} with call_id and transcript (empty for welcome).
- Header: X-Convoship-Signature = HMAC-SHA256(inbound_secret, raw body) as hex.
- Outbound: Convoship POSTs { call_id, text, end_call } to your gateway_url.
- end_call is true when the flow session completes, fails, or is abandoned.
Full contract: docs/voice-gateway.md. Streaming: scripts/reference-voice-gateway-ws.py, scripts/test-voice-gateway-streaming-e2e.sh, scripts/load-voice-ws.sh.