Prerequisites
- An endpoint on your carrier, PBX, or SBC that Bland can reach over TLS on port 5061, with SRTP enabled
- Firewall access to allow-list Bland’s signaling and media IPs
- The numbers you will route, on your own carrier. Numbers bought from Bland can’t be attached to a trunk
Create a trunk
On the SIP tab, press Create trunk. The wizard names the trunk from the provider and endpoint, and every trunk it builds carries both directions. Rename it later on the trunk’s Configure tab.Provider
sip:user@host:5061;transport=tls, or shorthand such as tls://host. The wizard parses the host, port, and transport.The catalog has instructions for Twilio, Vonage, Asterisk / FreePBX, 3CX, Cisco UCM / CUBE, and RingCentral. For anything else, including Bandwidth and Telnyx, pick Other.Microsoft Teams can’t connect directly. Put a certified SBC between Teams and Bland, and enter the SBC’s address.Discovery
Firewall
Authentication
- IP-based (recommended): your server trusts Bland’s IPs as SIP peers, and Bland trusts your endpoint by its source IP. No credentials to manage.
- Registration-based: Bland registers with your server using a username and password. Generate password creates a strong one.
- Via Bland’s carrier (default): Bland’s carrier places the call to your SIP endpoint. Nothing else to set up.
- Direct to your carrier (BYOC): Bland sends the call straight to your carrier, so termination runs on your own carrier contract. Your carrier must support TLS, and the caller IDs you dial from must be authorized on that account.
401 or 407 challenge. They are optional with Bland’s carrier and required with direct routing.Press Create trunk.Numbers
Complete
Attach numbers and DIDs
Numbers inherit the trunk’s endpoint, transport, and authentication, so you don’t repeat them per number.- Phone numbers are stored in E.164, for example
+14155550100. - DIDs and extensions, such as
2001, are stored as written when the number is attached to a trunk. - Each number has its own inbound and outbound configuration.
POST /v1/sip/attach:
configured numbers, and failed numbers with a reason for each.
Then assign an agent to each number. Under Phone numbers, press Configure on the number and pick the agent under Assignment.
Inspect a call
Open a trunk’s Overview tab and select a call to see its SIP trace: every message on every leg, as a sortable table or a ladder diagram, with full headers and SDP. Copy or export it to share with your carrier. The call log beside it shows each call’s direction, status, SIP response code, and duration.Advanced configuration
PATCH /v1/sip/config saves failover servers, codec preferences, and alert thresholds for a number. Bland stores these settings but does not apply them to calls yet, and there is no dashboard control for them:
- Calls use the single endpoint on the trunk. There is no automatic failover.
- Calls use Bland’s standard codec list, whatever order you save.
- No SIP-specific alerts are sent.
Do it with the API
Validate an endpoint
Validate an endpoint
POST /v1/sip/parse-destination parses a destination into its host, port, user, and transport:Run discovery
Run discovery
POST /v1/sip/discover runs the full probe. The recommended object in the response has the port, transport, and detected_system. One discovery runs per organization at a time. Poll a long one with GET /v1/sip/discover/status.Get the IPs to allow-list
Get the IPs to allow-list
GET /v1/sip/firewall-ips returns your region’s IPs and ports.Use registration authentication
Use registration authentication
auth_mode in the inbound direction of POST /v1/sip/attach:register_password_for_pbx, a one-time derived password to configure in your PBX. GET /v1/sip/generate-password returns a strong, PBX-safe password between 8 and 256 characters.Create a named or one-direction trunk
Create a named or one-direction trunk
POST /v1/sip/trunks takes a name and a single direction.Check a number's health
Check a number's health
GET /v1/sip/status returns the health of a number’s SIP configuration.Common failures
Attaching a number fails
Attaching a number fails
Test connection fails but calls work
Test connection fails but calls work
Inbound calls are rejected with 603 Decline
Inbound calls are rejected with 603 Decline
+.Inbound calls are challenged with 407
Inbound calls are challenged with 407