SIP setup, secure webhooks, and server-side call sessions
Register your customer-owned number with origin byo_trunk and either webhook routing or an agent_id.
Set your carrier's destination to sip:{number}@sip.voice.x.ai;transport=tls.
Restrict SIP access with allowed_addresses CIDRs or digest credentials.
Your backend must verify the webhook-id, webhook-timestamp, and webhook-signature headers using the one-time signing secret.
Read data.call_id from the verified realtime.call.incoming event, then connect server-side to
wss://api.x.ai/v1/realtime?call_id=CALL_ID using your API key in the Authorization header.
Send session.update and response.create. Ephemeral browser tokens cannot join SIP calls.
Transfer uses a tel: or sip: target_uri and returns its outcome synchronously. A failed transfer leaves the existing call connected. DTMF keypresses arrive as input_audio_buffer.dtmf_event_received: digits flush on #, after 2.5 seconds idle, or when the caller starts speaking. Resumption can attach cached conversation context to a later call for up to 30 minutes.
Complete SIP guide and carrier configurationNo usage details returned.