Overview
Bland supports inbound and outbound SIP, allowing customers to direct calls from their SIP provider to Bland for handling — or to direct Bland to make calls through their SIP provider. This guide covers:- Setting up SIP trunks via the SIP Setup Wizard or API
- Auto-discovery of your SIP endpoint settings
- Test calls to verify connectivity
- Number porting to transfer numbers to Bland
- SIP connection details, firewall configuration, and security requirements
- Full API reference for all SIP endpoints
Quick Start
[1] Enable SIP Contact support to have theSIP entitlement enabled for your organization.
[2] Open the SIP Dashboard
Navigate to the SIP Trunks dashboard in the Bland app.

- Direction — Choose outbound
- Destination — Enter your SIP provider endpoint
- Discovery — Auto-detect optimal settings
- Firewall — Whitelist Bland’s IP addresses
- Authentication — Configure IP-based or registration auth
- Numbers — Select which numbers to route
- Test Call — Verify the connection works
- Complete — You’re live
from value in a standard /v1/calls request:
SIP Setup Wizard
The SIP Setup Wizard provides a guided, step-by-step experience for configuring SIP trunks. Access it by clicking “Add trunk” on the SIP Dashboard. Every step below can also be done programmatically — see the expandable API sections under each step, or jump to the full API Reference.Step 1: Direction
Choose whether this trunk handles inbound (calls coming to Bland) or outbound (Bland placing calls through your SIP provider).API
API
The direction is specified in the
directions array when calling POST /v1/sip/attach:Step 2: Destination (Outbound Only)
Enter your SIP provider’s endpoint address. The wizard includes a provider catalog with guided instructions for popular platforms:- Twilio — SIP Domain URI
- Vonage — SIP endpoint
- Asterisk / FreePBX — Public IP or hostname
- 3CX — SIP trunk FQDN
- Cisco UCM / CUBE — Gateway address
- RingCentral — SIP endpoint
- Microsoft Teams — Requires a certified SBC (direct connection not supported)
- Other — Any standard SIP endpoint

sip:user@host:5061;transport=tls, or shorthand like tls://host. It automatically parses the host, port, and transport for you.
API
API
Validate a destination before attaching with Then set
POST /v1/sip/parse-destination:sip_endpoint and options (port, transport) in your POST /v1/sip/attach request.Step 3: Auto-Discovery
Bland automatically probes your SIP endpoint to detect the optimal connection settings.
- Resolves DNS — A/AAAA and SRV records (
_sip._udp,_sip._tcp,_sips._tcp) - Probes SIP ports — Tests ports 5060, 5061, and 5080 over UDP and TCP with SIP OPTIONS messages
- Analyzes responses — Detects your PBX system (Asterisk, FreeSWITCH, Kamailio, 3CX, Cisco, etc.), supported codecs, and methods
API
API
Run discovery with The
POST /v1/sip/discover, then poll for results:recommended object in the response contains the optimal port, transport, and detected_system. One discovery can run per organization at a time.Step 4: Firewall Configuration
The wizard displays Bland’s static IP addresses and ports that must be whitelisted in your firewall. See the SIP Connection Details section below for the full list.API
API
Retrieve your region’s IPs and ports programmatically with
GET /v1/sip/firewall-ips:Step 5: Authentication
Choose how your SIP server authenticates incoming connections from Bland.
- IP-based (recommended) — Bland’s IP addresses are whitelisted on your server. No credentials needed.
- Registration-based — Bland registers with your server using a username and password via SIP REGISTER. A derived password is provided that you must configure in your PBX.
API
API
Set The response includes
auth_mode in the inbound direction of your POST /v1/sip/attach request:register_password_for_pbx — configure this derived password in your PBX.Step 6: Number Selection
Select which phone numbers to route through this trunk. You can attach up to 100 numbers at once. Numbers must be in E.164 format.API
API
Pass numbers in The response separates
phone_numbers when calling POST /v1/sip/attach. List existing SIP numbers with GET /v1/sip/numbers.configured (successful) and failed (with error reasons) numbers.Step 7: Test Call
Verify your connection with a live test call before going live.
API
API
Initiate a test call with The response includes
POST /v1/sip/test-call, then poll for results:status, result, duration_seconds, and a timeline of SIP events.Step 8: Complete
Your SIP trunk is now configured and active. You can view and manage it from the SIP Dashboard.API
API
Verify your live trunk with
GET /v1/sip and check health with GET /v1/sip/status:SIP Dashboard
The SIP Dashboard at app.bland.ai/dashboard/sip-trunks is your central hub for managing SIP trunks.Trunk Overview
View all configured trunks with summary cards showing total SIP trunks, inbound count, and outbound count. Each trunk row displays the phone number, direction (inbound/outbound), SIP endpoint, and health status.Configuration Details
Click “View” on any trunk to see its full configuration, including the SIP trace viewer for recent calls, firewall IP addresses, and connection settings.
- SIP Trace Viewer — A ladder diagram of SIP call events (INVITE, 100 Trying, 180 Ringing, 200 OK, ACK) with full message headers. Search, filter, and copy/download traces for debugging.
- Call Logs — Paginated call history with direction, status, SIP response code, duration, and timestamps. Auto-refreshes every 30 seconds.
- Firewall & Ports — Bland’s egress IP addresses and SIP/RTP ports for your region, with a copy-all button.
- Health Monitoring — Real-time health status via SIP OPTIONS probes (healthy/unreachable/unchecked), uptime percentage, and average response time.
Configuring Inbound Numbers
You can set up inbound SIP through the wizard (choose “Inbound” at the direction step) or via the API withPOST /v1/sip/attach. Inbound SIP numbers behave like regular inbound numbers — configure their pathway, persona, voice, and other settings just as you would any Bland inbound number.
Advanced Configuration
From the configuration detail page, you can also manage:- Failover — Configure primary, secondary, and tertiary SIP servers with automatic failover triggers (unreachable, auth failure, timeout) and failback mode (auto/manual).
- Codecs — Reorder and enable/disable codecs (PCMU, PCMA, G.729, Opus, G.722) with optional transcoding.
- Alerts — Set thresholds for unreachable duration, failure rate percentage, and response time, with notification channels (email, SMS, webhook).
Number Porting
Bland supports number porting — transferring phone numbers you own from another carrier to Bland. This allows you to use your existing business numbers directly with Bland’s SIP infrastructure without maintaining a separate SIP provider.How Number Porting Works
Number porting is a regulated process coordinated between carriers. It typically takes 7–14 business days depending on the losing carrier and number type. The process follows these stages:| Status | Description |
|---|---|
waiting_for_signature | Port request created. A Letter of Authorization (LOA) needs to be signed. |
submitted | LOA signed and submitted to the losing carrier. |
in_progress | The losing carrier is processing the port. |
completed | Numbers have been ported successfully and are active on Bland. |
canceled | The port request was canceled. |
failed | The port request failed (e.g., incorrect account information). |
Porting via the Dashboard
Click “Port a number” on the SIP Dashboard to launch the porting wizard. Step 1: Enter Numbers Enter the phone numbers you want to port and click “Check portability” to verify they can be transferred.
API
API
Check portability with Returns
GET /v1/sip/port/check:portable (boolean), number_type, and pin_required for each number.
- Authorized representative — Name and email of the person authorized to port the numbers
- Service address — The address on file with the losing carrier (must match their records)
- Target port date — Earliest date for the port (minimum 7 days from today)
- Proof of ownership — Upload a utility bill or carrier invoice (PDF or image, max 10MB) showing the account name and service address
API
API
Upload your proof of ownership document with Returns a
POST /v1/sip/port/document:document_sid to reference when initiating the port.API
API
Submit the port request with Track progress with
POST /v1/sip/port/initiate:GET /v1/sip/port or cancel with DELETE /v1/sip/port/:id.SIP Connection Details
SIP Signaling Endpoint FQDNs:- You must use TCP over TLS for all SIP signaling.
- You must use Secure Media / SRTP for all media streams.
- Bland does not accept UDP for SIP signaling.
- You must whitelist all IP addresses listed below in your firewall.
10000 to 20000 (UDP).
You can also retrieve your region’s IP addresses and ports programmatically via GET /v1/sip/firewall-ips.
Requirements and Security Settings
Supported Codecs:- PCMU (G.711 μ-law), PCMA (G.711 A-law), Opus
- Additional codecs configurable via advanced settings: G.729, G.722
- SIP Signaling: TLS 1.2 or higher
- You must ensure the Let’s Encrypt ISRG X1 Root CA is installed. Downloadable here.
- RTP Media: SRTP using AES_CM_128_HMAC_SHA1_80
- RTCP: Uses port RTP + 1
- DTMF: RFC 2833 (Out-of-band via RTP payload)
- Transport: TCP over TLS
- Methods: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER
- Number Format: +E.164 or E.164 (both supported)
- Authentication: IP-based (default) or SIP REGISTER digest auth
Entitlement Requirement
All/sip endpoints are protected by an entitlement check.
Your organization must have the SIP entitlement enabled. Contact support to have SIP enabled for your Enterprise organization.
API Reference
All SIP endpoints are under/v1/sip and require authentication via your API key. Detailed parameter documentation for each endpoint is available in the API Reference tab.
Core Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/sip | Get SIP config for a phone number |
POST | /v1/sip/attach | Attach SIP configuration to phone numbers |
POST | /v1/sip/update | Update SIP direction settings |
POST | /v1/sip/detach | Remove SIP configuration |
GET | /v1/sip/numbers | List all SIP-configured numbers |
Discovery & Testing
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/sip/discover | Auto-discover SIP endpoint settings |
GET | /v1/sip/discover/status | Poll discovery progress |
POST | /v1/sip/test-call | Send a test call to your SIP endpoint |
GET | /v1/sip/test-call/status | Get test call status and trace |
Configuration & Monitoring
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/sip/firewall-ips | Get Bland’s IP addresses and ports |
GET | /v1/sip/outbound-setup | Get outbound SIP server details for PBX config |
GET | /v1/sip/status | Get trunk health status |
GET | /v1/sip/calls | Get SIP call logs |
PATCH | /v1/sip/config | Update advanced config (failover, codecs, alerts) |
Number Porting
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/sip/port/check | Check number portability |
POST | /v1/sip/port/document | Upload LOA / proof of ownership |
POST | /v1/sip/port/initiate | Submit a port request |
GET | /v1/sip/port | List all port requests |
DELETE | /v1/sip/port/:id | Cancel a port request |
Notes
- Phone numbers can be attached independently for inbound and outbound routing.
- Up to 10 SIP configurations can be attached per phone number.
- Up to 100 numbers can be attached in a single API call.
- All requests must conform to the expected schema; invalid payloads will be rejected with a 400 response.
- Number porting typically takes 7–14 business days. Track status via the dashboard or API.
- Health checks probe your outbound endpoints every 60 seconds via SIP OPTIONS. Inbound-only trunks show as “unchecked” since there is no outbound endpoint to probe.