Connect a Kenyan Number to LiveKit SIP for Voice Agents
Route a Sautikit Kenyan number into LiveKit Agents: an inbound trunk and dispatch rule for incoming calls, and an outbound trunk to sip.sautikit.com:5080.
Route a Sautikit Kenyan number into LiveKit Agents: an inbound trunk and dispatch rule for incoming calls, and an outbound trunk to sip.sautikit.com:5080.
A LiveKit voice agent can answer and place calls on a Kenyan Sautikit number. Inbound: create a LiveKit inbound trunk that lists your number, add a dispatch rule that sends those calls to your agent, and forward the Sautikit number to +2547XXXXXXXX@<your-project>.sip.livekit.cloud. Outbound: create a LiveKit outbound trunk with address sip.sautikit.com:5080, transport UDP, and your number's SIP username and password. The number costs KES 500 a month, inbound calls are free on Sautikit and outbound calls cost KES 3.00 a minute billed per second. LiveKit bills its own SIP and agent minutes.
lk CLI signed in to it.abc123.sip.livekit.cloud.Save as inbound-trunk.json:
{
"trunk": {
"name": "Sautikit Kenya inbound",
"numbers": ["+254709000000"]
}
}Listing your number tells LiveKit which calls this trunk accepts. Create it:
lk sip inbound create inbound-trunk.jsonSave as dispatch-rule.json, replacing the agent name with yours:
{
"dispatch_rule": {
"name": "Sautikit to agent",
"rule": {
"dispatchRuleIndividual": { "roomPrefix": "call-" }
},
"roomConfig": {
"agents": [{ "agentName": "kenya-receptionist" }]
}
}
}lk sip dispatch create dispatch-rule.jsonEach caller gets their own room, and your agent joins it.
In the Sautikit console, open the number and set Forward to:
+254709000000@abc123.sip.livekit.cloudUse your number and your project's SIP host. No sip: prefix. Save. The API equivalent is the number's forward.destinations (Forward calls and voicemail).
Save as outbound-trunk.json:
{
"trunk": {
"name": "Sautikit Kenya outbound",
"address": "sip.sautikit.com:5080",
"transport": "SIP_TRANSPORT_UDP",
"numbers": ["+254709000000"],
"authUsername": "YOUR_SAUTIKIT_SIP_USERNAME",
"authPassword": "YOUR_SAUTIKIT_SIP_PASSWORD"
}
}lk sip outbound create outbound-trunk.jsonLiveKit answers Sautikit's authentication challenge with these credentials on every call.
From your agent code or the CLI, create a SIP participant with the outbound trunk id and a Kenyan destination in E.164 format:
lk sip participant create \
--trunk YOUR_OUTBOUND_TRUNK_ID \
--call "+254711000000" \
--room outbound-testThe person you call sees your Sautikit number.
Inbound calls are rejected. Check the inbound trunk's numbers matches the number before the @ in the forward destination exactly.
Outbound calls fail to authenticate. Copy the username and password again from SIP setup on the device row. The address needs :5080.
Outbound calls are refused by Sautikit. Use E.164 destinations (+254…) and check your wallet has credit.
No audio. Leave media encryption disabled; LiveKit offers PCMU and PCMA by default.
Sautikit AI agents answer the number with no SIP setup at all: KES 4.00 a minute, metered per second, on top of the call rate.
Yes. Sautikit supplies the Kenyan number, forwards inbound calls to your LiveKit SIP URI and carries outbound calls placed through a LiveKit outbound trunk.
UDP, to sip.sautikit.com on port 5080, with your Sautikit SIP username and password.
The number is KES 500 a month, inbound calls are free on Sautikit and outbound calls are KES 3.00 a minute billed per second. LiveKit bills its own SIP and agent usage.