Skip to main content
The assistant-api supports five telephony providers. Each is identified by a string constant in api/assistant-api/internal/channel/telephony/telephony.go.

Provider Comparison

Twilio, Vonage, and Exotel are cloud providers — they call your server. PUBLIC_ASSISTANT_HOST must be a publicly reachable HTTPS hostname. For local development, use ngrok.Asterisk connects from your PBX to Rapida — no public URL needed on Asterisk’s side.SIP is a built-in server in assistant-api — any SIP client dials it directly.

URL Routing

All telephony paths follow this pattern (source: api/assistant-api/internal/type/telephony.go):
All telephony endpoints authenticate via the x-api-key query parameter. Use a project API key (rpd-xxx) scoped to the project that owns the assistant.
The contextId is generated on the first webhook hit. It is stored in PostgreSQL and binds together the call session, assistant, conversation, and auth token.

Inbound Call Flow


Provider Pages

Twilio

Global PSTN via WebSocket Media Streams

Vonage

Global PSTN via WebSocket NCCO

Exotel

India / SEA PSTN

Asterisk

Self-hosted PBX — AudioSocket and WebSocket

SIP

Built-in SIP server, any SIP client

Configure Your Own

Implement the Telephony interface