SIP Integration
Configure and manage SIP for call routing to and from Bland.
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 contact with their SIP provider.
This guide provides:
- SIP connection details
- Requirements and security settings
- Instructions for attaching, verifying, updating, and detaching SIP routes via Bland’s API
- Schema definitions and usage patterns
Entitlement Requirement
All /sip
endpoints are protected by an entitlement check.
Your organization must have the SIP
entitlement enabled to use SIP features. If not, all requests to the /sip
routes will return:
Contact support to have SIP enabled for your Enterprise organization.
SIP Termination Details
SIP Signaling Endpoint:
You must use TCP over TLS. Bland does not accept UDP for SIP messages. We do support UDP over S/RTP for media streams. mTLS is not required at this time.
Static IP Addresses of the SIP Signalling Server(s):
Static IP Addresses of the Media Stream Server(s):
Bland does not provide static addresses for Media Stream Servers. As part of the SDP negotiation, our SIP Signalling Servers will provide you with the location of an available Media Stream endpoint. Through this, Bland is able to confidently scale our Media Stream capabilities without the need for NAT.
Supported Codecs:
- Currently Supported: PCMU, PCMA
- Coming Soon: Opus, G722
Security Requirements:
- SIP Signaling: TLS 1.2 or higher
- RTP Media: SRTP using AES_CM_128_HMAC_SHA1_80
From
Header FQDN: Bland will enforce validity of the FQDN provided for in yourFrom
header. If this should be the same as the signaling endpoint, or a non-valid FQDN, we may reject your request(s) in the future.
Other Configurations:
-
RTCP: Uses port RTP + 1
-
DTMF: RFC 2833 (Out-of-band via RTP payload)
-
Transport: TCP over TLS
-
Number Format: +E.164 or E.164 (both supported for origination and termination)
-
SIP Registration: Not required (Bland determines routing based on predefined configurations configurable below.)
API Reference
Attach SIP Endpoint
POST /sip/attach
Attach a SIP configuration to a phone number.
The phone number to associate with the SIP configuration. Must be in E.164 format.
An array of directions for the SIP routing. Valid values: inbound
, outbound
. If outbound, you must also provide a sip_endpoint
.
Must be set to sip
.
Verify SIP Number (Outbound)
PUT /sip/verify
To prove that you own the number, you’ll need to perform a one-time verification.
Be ready! Once you make this request, you’ll receive a phone call to the specified phone number, from +14157234000
- which will require you to input the code returned from the below request into your keypad.
The phone number to verify SIP calling from. It must be attached to your organization first before attempting to verify.
Update SIP Direction
POST /sip/update
Update a phone number’s SIP routing direction.
The phone number for which to update the direction.
The updated direction object. Use type: outbound
and provide sip_endpoint
, or type: inbound
.
Detach SIP Endpoint
POST /sip/detach
Remove SIP configuration from a number.
The phone number to detach SIP routing from.
Direction(s) to remove. Either inbound
or outbound
.
Must be set to sip
.
Making your first SIP Call (Outbound)
To use a number that was registered for SIP, in an outbound direction - all that is required is to specify this as your from number.
Note: You’ll need to ensure that you’ve verified your number ahead of time, as instructed above.
Get SIP Config
GET /sip?phone_number={phone_number}
Returns current SIP configuration (if any) for a given phone_number
.
The phone number of the number to fetch SIP configuration for.
Example Response
Notes
- Phone numbers can be attached independently for inbound and outbound routing via the API.
- All requests must conform to the expected schema; invalid payloads will be rejected with a 400 response.
- Each API response includes a success status and, if applicable, an error message to aid debugging.