# SIP Trunking

> Connect an existing PBX or SIP application with username/password or IP authentication.

## When to use a trunk

Use SIP Trunking when your existing PBX or SIP application handles the calls and you want to connect it to Rinzo. For an employee’s desk phone or softphone, use [Phones & devices](https://rinzo.ai/docs/phones.md). Trunks and hosted users can coexist in the same account.

## Add a trunk

An account admin opens SIP Trunking in the Control panel’s App Exchange, chooses Add trunk and enters a name. Choose generated username/password credentials or one public source IPv4 address. There is no PBX brand selection. Creating a trunk does not create an employee or extension, or configure the external system for you.

## Connect your system

Copy the connection details into your PBX or application. Use your account realm as the SIP domain and `sip.rinzo.tel` as the outbound proxy. Username/password trunks normally register to receive incoming calls; a fixed incoming hostname or IPv4 destination is optional. IP trunks authenticate by source address, do not register, and receive calls at that same address. A separate incoming host is not supported for IP authentication. Behind NAT, allow incoming SIP and media to reach the PBX.

TLS signaling uses port 5061; UDP/TCP use 5060. Fixed incoming destinations use UDP; registered-contact delivery follows the registration’s transport. TLS signaling alone does not mean the audio is encrypted. Start with G.711 PCMU/PCMA, RFC 2833 keypad tones, and SIP ALG disabled. Media uses UDP 16384–32768.

For a firewall allowlist, allow signaling and media from both Rinzo SIP servers: `51.222.175.1` and `51.222.175.2` (also published as [sip-addresses.json](https://rinzo.ai/sip-addresses.json)). Allow both, because `sip.rinzo.tel` moves to the other server if one fails.

## Phone numbers and caller ID

Assign an available account phone number for incoming delivery. A number can belong to one trunk or hosted route; explicitly unassign its existing route before moving it. Unassigning a number or deleting a trunk keeps the number in your account. A trunk can place outgoing calls without an incoming number assigned, but outgoing caller ID must still satisfy your account’s caller-ID policy. See [Phone numbers](https://rinzo.ai/docs/numbers.md) for adding or porting numbers.

## Settings and maintenance

Overview shows connection details and registration status. Phone numbers manages incoming assignments; Call history shows recent calls for this trunk. Settings include caller ID, codecs, incoming number format, ring timeout and fallback. Passwords are masked with reveal/copy controls. If you replace a password, update the connected system too. To stop using a trunk, delete it; its numbers stay in your account. IP authorization changes can take up to 90 seconds to refresh.

## Verify it works

Check registration when required, then make an answered outgoing call and an incoming call to each assigned number. Confirm audio in both directions and keypad tones. Registered does not prove that calls or audio work; Registration unavailable means the status could not be checked. IP and fixed-destination trunks do not need registration. If calls fail, check the realm, authentication, destination, caller ID and number assignment. For missing audio, check NAT, firewall rules, codecs and SIP ALG. Hosted callflow simulation does not test the external PBX.

## Optional CLI or agent setup

CLI 0.7.0 and later manages the same trunks. Check `rinzo version` and `rinzo schema trunks`; see [Developers & agents](https://rinzo.ai/docs/developers-agents.md) for installation and login.

```
rinzo trunks list
rinzo trunks create --name "Office PBX" --auth password --credentials-file office-trunk.json
rinzo trunks credentials TRUNK_ID --credentials-file connection.json
rinzo numbers assign +16045550123 --trunk TRUNK_ID
rinzo trunks status TRUNK_ID
rinzo trunks calls TRUNK_ID --since 1h --limit 20
```

Credential files are readable only by you; ordinary command output hides passwords. Updates reject stale edits. Agents should read the focused [trunk reference](https://rinzo.ai/agents/rinzo/references/trunks.md) for the full workflow, including IP authentication and rotation.

---

The Markdown version of https://rinzo.ai/docs/sip-trunking/. An index of every page: https://rinzo.ai/llms.txt. 911 and emergency calling are not supported during early access.
