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.

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 callee

Official 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:

FieldValue for CenterLeap / Telnyx
Which provider?OtherTelnyx is not in the fixed catalog (Twilio, Vonage, Asterisk…). Use Other.
SIP server addresssip.telnyx.comHostname only is fine. If the wizard wants a full URI or TLS port, use one of:
  • sip.telnyx.com
  • sip.telnyx.com:5061;transport=tls
  • sip:sip.telnyx.com:5061;transport=tls
Trunk directionStart with Outbound (or Both if you also want inbound AI on the same DID).
AuthenticationPrefer 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

  1. Create a SIP Connection (Mission Control → Voice → SIP Connections). Use credentials or FQDN/IP auth.
  2. Create or reuse an Outbound Voice Profile and attach the connection. Allow the destinations you need (US at minimum).
  3. Assign a phone numberto that SIP Connection (or to the connection's outbound profile per Telnyx UI).
  4. Codecs: enable PCMU (G.711 μ-law) (and PCMA if needed). Prefer TLS for SIP where the portal allows.
  5. 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

  1. Open SIP Trunks Add trunk.
  2. Name e.g. centerleap-telnyx-prod. Direction: Outbound or Both.
  3. Provider step: use the wizard answers above (Other + sip.telnyx.com).
  4. Run discovery if offered; confirm TLS / 5061 where applicable.
  5. 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:

  1. 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.
  2. 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.
  3. 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.

Back to docs