Bland AI + Telnyx SIP setup
Use Bland as a full phone agent (pathways, personas, tools) while keeping Telnyxas CenterLeap's carrier. This guide covers the Bland SIP wizard answers for Telnyx, firewall allow-lists, attaching DIDs, and placing a test outbound call.
On this page
Overview
Bland supports inbound and outbound SIP. For CenterLeap recruiter / outbound AI agents, start with an outbound (or both) trunk: Bland places the AI call and sends SIP INVITEs to Telnyx, which delivers to the PSTN on your DID.
Agent-centerleap / app
voice_provider = bland
│
▼
POST https://api.bland.ai/v1/calls
from = your Telnyx DID on the SIP trunk
│
▼
Bland agent (task / persona / pathway)
│ SIP TLS + SRTP
▼
Telnyx SIP → PSTN calleeOfficial Bland SIP docs: SIP integration. Dashboard: app.bland.ai/dashboard/sip.
Bland SIP wizard answers (Telnyx)
On the step that asks for provider endpoint (outbound — Bland places calls through your provider), fill in:
| Field | Value for CenterLeap / Telnyx |
|---|---|
| Which provider? | OtherTelnyx is not in the fixed catalog (Twilio, Vonage, Asterisk…). Use Other. |
| SIP server address | sip.telnyx.comHostname only is fine. If the wizard wants a full URI or TLS port, use one of:
|
| Trunk direction | Start with Outbound (or Both if you also want inbound AI on the same DID). |
| Authentication | Prefer IP-based (allow Bland IPs on Telnyx) or Telnyx credential username/password on a dedicated SIP Connection. Match whatever the Telnyx connection type expects. |
Do not put Bland's address here for outbound
For outbound trunks, the field is your carrier endpoint (Telnyx). Bland already exposes us2.sip.bland.ai:5061 for the reverse case (your PBX sending calls toBland). That value comes from Bland's outbound-setup API and is for inbound-to-Bland PBX config, not this wizard field.
Prerequisites
- Bland account with API key (Settings → API keys)
- SIP entitlement enabled (if trunks are blocked, email Bland support)
- Telnyx account with a funded balance and a DID for testing
- Prefer a dedicated test DID before moving production Call Control numbers
Configure Telnyx
- Create a SIP Connection (Mission Control → Voice → SIP Connections). Use credentials or FQDN/IP auth.
- Create or reuse an Outbound Voice Profile and attach the connection. Allow the destinations you need (US at minimum).
- Assign a phone numberto that SIP Connection (or to the connection's outbound profile per Telnyx UI).
- Codecs: enable PCMU (G.711 μ-law) (and PCMA if needed). Prefer TLS for SIP where the portal allows.
- Allowlist Bland's signaling + media IPs (see Firewall) so INVITEs from Bland are accepted.
Telnyx SIP overview: developers.telnyx.com — SIP trunking.
Create Bland SIP trunk
- Open SIP Trunks → Add trunk.
- Name e.g.
centerleap-telnyx-prod. Direction: Outbound or Both. - Provider step: use the wizard answers above (Other +
sip.telnyx.com). - Run discovery if offered; confirm TLS / 5061 where applicable.
- Complete auth (IP or credentials matching Telnyx). Use Diagnostics → connection test (OPTIONS ping).
Firewall step when the provider is Telnyx (cloud)
Discovery succeeded — good sign
If Bland reports sip.telnyx.com:5061/TLS as Telnyx SIP Proxy (and anycast SRV hosts), the endpoint address is correct. You do not need a self-hosted Asterisk box for this path.
Bland's generic firewall text (open 5060 on your network, RTP 10000–20000, NAT port-forward) applies when you host the SIP PBX. With Telnyx as the SIP provider, Telnyx already terminates SIP on the public internet. Your job is different:
- On Telnyx — authorize Bland as a SIP source
- Create a dedicated SIP Connection for Bland (do not repoint production Call Control without a test DID).
- Prefer Credentialsauth (username/password from Telnyx) and enter those on Bland's Authentication step — simplest when you do not control Telnyx edge ACLs.
- Or use IP authentication and add each Bland signaling IP (below) as an authorized IP on that connection, if your portal supports multiple source IPs for the connection.
- Attach an Outbound Voice Profile and assign the test DID to this connection.
- On CenterLeap / office firewall
- Usually nothing to open inbound for this outbound trunk (you are not hosting the SIP endpoint).
- Ignore “port-forward 5060 on your router” unless you run a local PBX in the path.
- In the Bland wizard
- Read the IP list, confirm it matches the table below, then Continue / mark the step complete.
- Prefer TLS / 5061 (discovery already chose this). You do not need plain UDP 5060 for Telnyx TLS.
- Bland's “RTP 10000–20000” note is generic; Bland's published media range is UDP 16384–32768 — use that when allowlisting on any middlebox.
Firewall allow-list (US region)
Bland US edge (from live GET /v1/sip/firewall-ips). These are the IPs Bland shows in the wizard — allow them on Telnyx (IP auth) and any middlebox that filters toward Telnyx. Open TLS 5061 for signaling and UDP 16384–32768 for media where you control a firewall in the path.
Signaling (SIP TLS 5061)
- 35.82.60.77
- 52.27.163.2
FQDN: us2.sip.bland.ai
Media (RTP / SRTP UDP 16384–32768)
- 52.13.231.129
- 35.160.144.213
- 44.234.13.26
- 54.218.96.252
Attach numbers
On the trunk Numbers tab (or POST /v1/sip/attach), attach your Telnyx DID in E.164 (e.g. +19162700077). That same number is the from field when calling Bland's API.
Test outbound call
After the trunk is green, place a call (replace placeholders; never commit real API keys):
curl -X POST https://api.bland.ai/v1/calls \
-H "Authorization: Bearer $BLAND_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+1XXXXXXXXXX",
"from": "+19162700077",
"task": "You are a recruiter with Semi Truck Staffing. Get their name, explain you connect drivers with positions, ask consent for a text and recruiter callback. One question at a time. Keep it short.",
"first_sentence": "Hi, this is Alex with Semi Truck Staffing — got a sec?",
"record": true,
"voice": "June",
"max_duration": 10
}'Full API: POST /v1/calls. Use personas/pathways for reusable scripts.
CenterLeap multi-provider notes
Agent-centerleap will treat Bland as one voice_provider option alongside OpenAI Realtime and Grok Voice:
- bland — SIP +
POST /v1/calls(this guide) - openai — Telnyx media bridge + Realtime S2S
- grok — Telnyx media bridge + Grok Voice
- elevenlabs (later) — Agents SIP or WebSocket
Webhooks from Bland should eventually map into voice.centerleap.com history (CDR, recording URL, transcript) the same way agent-owned bridges do today.
Troubleshooting
- OPTIONS / connection test fails— Check TLS 5061, allowlist Bland signaling IPs on Telnyx, and that the SIP connection is Active.
- Call rings but no audio— Open RTP UDP 16384–32768 to Bland media IPs; confirm SRTP/codec (PCMU).
- 403 / SIP entitlement— Ask Bland support to enable the SIP feature for the org.
- from number rejected— DID must be attached on the Bland trunk Numbers tab and owned on Telnyx under the same SIP connection.