Path Parameters
The unique identifier of the agent (UUID format)
Request Body
Required Fields
SIP domain for the registration.Example: sip.example.com
SIP username for authentication. Also used as the extension number.Example: 1001
SIP password for authentication.
Optional Fields
SIP proxy server address. Use this if your SIP provider requires routing through a proxy.Example: proxy.sip.example.com
SIP port number.Common values:
5060 - Standard SIP (UDP/TCP)
5061 - SIP over TLS
Transport protocol.Supported values:
udp - User Datagram Protocol (most common)
tcp - Transmission Control Protocol
tls - Transport Layer Security (encrypted)
Enable SIP SUBSCRIBE for presence/BLF (Busy Lamp Field).Set to true if you need presence information from the PBX.
Optional authentication username, if different from the SIP username.Some providers use a separate auth identity. If not set, username is used for authentication.
DID (Direct Inward Dialing) number to send in the SIP INVITE.Example: +15551234567
curl -X PUT https://api.telzino.com/v1/agents/123e4567-e89b-12d3-a456-426614174000/sip/registration \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sipDomain": "sip.example.com",
"username": "1001",
"password": "secure_password",
"proxy": "proxy.example.com",
"port": 5060,
"transport": "udp"
}'
{
"success": true,
"data": {
"sipDomain": "sip.example.com",
"username": "1001",
"password": "secure_password",
"proxy": "proxy.example.com",
"port": 5060,
"transport": "udp",
"subscribe": false,
"authUsername": null,
"did": null,
"registrationEnabled": true,
"extension": "1001"
}
}
How It Works
- API validates the SIP configuration fields
- Stores configuration in the agent’s
sip_registration_data field with registrationEnabled: true
- Sync service picks up the change via Supabase realtime and registers with OpenSIPS
- Agent can now receive inbound calls via the SIP registration
The extension field is automatically set to match username. The registrationEnabled flag is automatically set to true when saving — saving a registration means enabling it.
Common PBX Configurations
FreePBX / Asterisk
{
"sipDomain": "pbx.local",
"username": "100",
"password": "extension_password",
"port": 5060,
"transport": "udp"
}
3CX
{
"sipDomain": "company.3cx.us",
"username": "1001",
"password": "sip_password",
"proxy": "company.3cx.us",
"port": 5060,
"transport": "tls"
}
Twilio SIP
{
"sipDomain": "yourdomain.sip.twilio.com",
"username": "agent",
"password": "twilio_password",
"port": 5060,
"transport": "tls"
}
After configuring SIP registration, the agent will automatically receive calls sent to the configured SIP address. Make sure your PBX or SIP provider is configured to route calls to this address.
Troubleshooting
| Error | Cause | Solution |
|---|
| ”Agent not found” | Invalid agentId or no access | Verify the agent ID and your access token |
| ”Cannot update vida agents via this API” | Agent is not a LiveKit agent | Only LiveKit agents support SIP registration via API |
| Agent not receiving calls | SIP registration failed | Use the status endpoint to check registration state |
| One-way audio | NAT/firewall issues | Try TCP or TLS transport, check proxy settings |