Sign inGet Started

Set up a SIP trunk to receive and place calls

This page walks through a complete trunk setup in the order the dashboard needs it. Where skipping a step leaves a visible symptom, the step names it, so you can also use the page as a checklist when a test call fails. For what each setting means, follow the links to SIP trunks, Receiving calls, and Placing calls.

Before you start

  • A Bird workspace. Calls, numbers, and trunks belong to one workspace, so do every step in the same one.
  • The public addresses of your equipment: the hosts Bird should deliver calls to, and the addresses your equipment sends SIP from.
  • For incoming calls, a Bird number in that workspace. For outgoing calls, a caller ID: a Bird number in the workspace or a number you verified.
  • A Bird number whose status is active. A number still waiting for its ownership paperwork or its registration carries no incoming or outgoing calls: see File a number's ownership paperwork.

1. Create the trunk

Open Voice > SIP Trunks, select Add new SIP trunk, enter a name, and select Create trunk.

A new trunk carries no calls in either direction until you turn each one on.

2. Turn on inbound calling

Under Inbound calling, select Enable inbound. The Inbound routing section appears below it.

If you skip this step, numbers cannot be pointed at the trunk: the trunk is missing from the number's trunk list.

3. Add your gateways

In Inbound routing, open the Gateways tab and select Add gateway for each address Bird should deliver calls to:

FieldWhat to enter
NameA label you recognize, such as Primary SBC
HostThe host name or public IP address of your equipment, without sip: or a user part
PortLeave empty for the transport's default port, or enter the port your equipment listens on
TransportUDP, TCP, or TLS, matching your equipment
R-URI user partHow the dialed number is written in the Request-URI. Defaults to E.164 with +
Origination formatHow the calling number is written. Defaults to E.164 with +

If your equipment expects numbers without the leading +, open the format's list and choose Without the plus, or a 00 or 011 international prefix. What a gateway needs explains the number formats.

Your gateway must accept calls from Bird without a SIP Digest challenge, because Bird does not answer one.

4. Put the gateways in a group

Bird delivers a call to a group of gateways, so a gateway outside every group never rings. In the Groups tab, select Add group, name it, and use Add gateway to group for each gateway.

For failover, set the group's Order to Weighted and give the backup gateway a higher Priority number. Deliver calls to a SIP trunk explains each order and the ring time.

When the first gateway is added to a trunk whose routing was never saved, the dashboard creates a group named All gateways with that gateway and points the default route at it. Check the group again after you add more gateways.

5. Point the default route at the group

In the Rules tab, find Default route (No rule above matched). Set Then to Route to group and choose your group. Select Review and save, then confirm.

The default route answers every call no rule matches, so with no rules it answers every call. If it is set to Reject, those calls are refused before they reach your equipment, even with gateways in a group.

In the review, the dashboard warns Calls never reach some gateways when a gateway sits in no group that a rule or the default route sends calls to. Fix that warning before you test.

This default route belongs to the trunk. It is separate from the workspace setting Calls to numbers without their own route on the Numbers page, which decides what happens to numbers that have no route of their own.

6. Point your numbers at the trunk

Open Voice > Numbers, open the number, and under Inbound routing choose Deliver to a SIP trunk. Pick the trunk and save.

A number without a route of its own follows the workspace default route, which starts as reject. To send every such number to this trunk at once, set Calls to numbers without their own route to the trunk. See Set a default route.

If you skip this step while the workspace default route is still reject, incoming calls are rejected and the call record's Inbound route shows Reject the leg.

7. Turn on outbound calling and say who may send

Under Outbound calling, select Enable outbound. The Connection section appears with the trunk's SIP domain. Bird identifies your trunk by this domain, so copy it whole.

Then add at least one way to recognize your equipment:

  • Allowed IP addresses: the public addresses your equipment sends SIP from. Behind NAT, use the router's public address.
  • Allowed API keys: for equipment that answers a Digest challenge, with username bird and an API key secret as the password.

Until outbound is on, the trunk refuses every outgoing call. Until the trunk can recognize your equipment, calls are refused before a call record exists. See Controlling who may send calls.

8. Configure your PBX or SBC

On your PBX or SBC:

  • Send outgoing calls to the trunk's SIP domain. Put the SIP domain in the Request-URI host. Use port 5060 (UDP or TCP) or 5061 (TLS). A call whose Request-URI host is any other name is refused.
  • Dial in international format. Put the called number in the Request-URI user part as + and the country code, for example +442071234567. Do not add a technical prefix. See What Bird expects on the INVITE.
  • Present an eligible caller ID in the From header.
  • Offer G.711 (A-law or µ-law) and send DTMF as RFC 4733 telephone events. The same section of that page covers media.
  • Let Bird's calls and audio in. If your firewall or SBC accepts only listed addresses, it has to accept the calls and audio Bird sends to the gateways you added in step 3.

9. Turn on the countries you call

Open Voice > Destinations, tick each country you call, and select Save changes. A new workspace starts with none enabled, and a call to a disabled country is rejected with destination_not_enabled. See Voice destinations.

10. Test both directions

  1. Incoming: call your Bird number from an ordinary phone, then open Voice > Legs in the same workspace.
  2. Outgoing: place a call from your equipment to any reachable number in an enabled country, presenting your Bird number or a verified number as caller ID. You do not need a second Bird number for this.
  3. Open each leg. Inbound route says what the number was set to do. A rejected call shows its reason and, when the fix is a setting of yours, a link to that setting. A call that worked shows Answered. Keep the Leg ID if you contact support.

If a call is missing, rejected, or never reaches your equipment, follow Voice troubleshooting, which starts from the symptom.

Next steps

PageWhat it covers
SIP trunksEvery trunk setting, authentication, and Digest
Receiving callsNumber routes, gateways, groups, and the workspace default route
Placing callsWhat Bird expects on the INVITE
Voice troubleshootingDiagnosing a call from its symptom

Continue with the documentation, guides and examples for this topic.