---
title: Connect a Kenyan Number to LiveKit SIP for Voice Agents
description: >-
  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.
summary: >-
  Create a LiveKit inbound trunk that lists your number, a dispatch rule for
  your agent, and an outbound trunk to sip.sautikit.com:5080 over UDP with your
  SIP credentials.
date: 2026-11-05T00:00:00.000Z
type: guide
---


## Summary

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.

## What you need

- **A Sautikit number** (KES 500 a month) and a SIP credential for it: in the [console](https://app.sautikit.com) open the number, go to **SIP & Devices**, click **+ Add device**, label it "LiveKit", and keep the username and password.
- **A LiveKit Cloud project** with an agent deployed, and the `lk` CLI signed in to it.
- **Your project's SIP URI**, shown in the LiveKit project settings, for example `abc123.sip.livekit.cloud`.

## Step 1: create the inbound trunk

Save as `inbound-trunk.json`:

```json
{
  "trunk": {
    "name": "Sautikit Kenya inbound",
    "numbers": ["+254709000000"]
  }
}
```

Listing your number tells LiveKit which calls this trunk accepts. Create it:

```bash
lk sip inbound create inbound-trunk.json
```

## Step 2: add a dispatch rule

Save as `dispatch-rule.json`, replacing the agent name with yours:

```json
{
  "dispatch_rule": {
    "name": "Sautikit to agent",
    "rule": {
      "dispatchRuleIndividual": { "roomPrefix": "call-" }
    },
    "roomConfig": {
      "agents": [{ "agentName": "kenya-receptionist" }]
    }
  }
}
```

```bash
lk sip dispatch create dispatch-rule.json
```

Each caller gets their own room, and your agent joins it.

## Step 3: forward inbound calls to LiveKit

In the Sautikit console, open the number and set **Forward** to:

```text
+254709000000@abc123.sip.livekit.cloud
```

Use 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](/developers/guides/forward-calls-and-voicemail)).

## Step 4: create the outbound trunk

Save as `outbound-trunk.json`:

```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"
  }
}
```

```bash
lk sip outbound create outbound-trunk.json
```

LiveKit answers Sautikit's authentication challenge with these credentials on every call.

## Step 5: place an outbound 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:

```bash
lk sip participant create \
  --trunk YOUR_OUTBOUND_TRUNK_ID \
  --call "+254711000000" \
  --room outbound-test
```

The person you call sees your Sautikit number.

## Step 6: test

1. Call your Sautikit number from a mobile. Your agent should join and speak.
2. Place an outbound call to your mobile. It should show the Sautikit number.

## Troubleshooting

**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.

## Managed alternative

Sautikit [AI agents](/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.

## FAQ

### Can LiveKit Agents use a Kenyan phone number?

Yes. Sautikit supplies the Kenyan number, forwards inbound calls to your LiveKit SIP URI and carries outbound calls placed through a LiveKit outbound trunk.

### Which transport should the outbound trunk use?

UDP, to `sip.sautikit.com` on port 5080, with your Sautikit SIP username and password.

### What does it cost?

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.
