Connection flow
Endpoint
X-VoxCore-Secret header for authentication.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
bot_id | string | Yes | Bot configuration to use |
to_number | string | Yes | Number to dial |
from_number | string | No | Caller ID. If omitted, VoxBridge selects a trunk. |
connected_event | object | No | Arbitrary metadata forwarded to VoxBridge during config fetch |
Response
Audio format
Same as LiveKit SIP inbound: 16kHz mono LINEAR16 via LiveKit SDK.Dial-out behavior
VoxCore callslkapi.sip.create_sip_participant() with a 45-second ringing timeout and wait_until_answered=True. The pipeline’s opening message only plays after the callee picks up.
SIP failure codes
| SIP code | Meaning | disconnected_by |
|---|---|---|
| 408 | Request timeout | no_answer |
| 480 | Temporarily unavailable | no_answer |
| 486 | Busy here | rejected |
| 603 | Decline | rejected |
| Other | Unexpected error | error |
Trunk selection
VoxCore resolves the outbound SIP trunk by calling VoxBridge:{"trunk_id": "...", "number": "..."}. If from_number is omitted, VoxBridge selects an available trunk.
Prerequisites
- LiveKit server with outbound SIP trunks configured
- Outbound trunk registered in VoxBridge
- Environment variables:
LIVEKIT_URL,LIVEKIT_API_KEY,LIVEKIT_API_SECRET