常见问题解答
全球覆盖、不限文案、免费测试
电话/微信:182-0071-8221

如何把Exotel SIP中继接入Retell AI:印度PSTN接入完整教程

2026-10-10 23:38:08

  将 Exotel 的 SIP中继接入 Retell AI,本质上是把印度的 PSTN 电话网络与 Retell 的 Voice AI 代理连接起来。整个配置分为**出站(Retell 拨打电话)** 和**入站(用户拨打电话)** 两个方向,核心难点在于印度 TRAI 的媒体锚定要求和 Exotel 的认证机制选择。

  前置准备:KYC 与 API 凭证

  在开始配置之前,必须完成 Exotel 账户的 **KYC 验证和账户升级**。未完成 KYC 的账户无法使用 vSIP(虚拟 SIP 中继)服务。

  你需要从 Exotel 控制台获取以下凭证:

凭证 说明
API_KEY + API_TOKEN 用于 HTTP Basic Auth 认证
ACCOUNT_SID Exotel 账户唯一标识
Exophone (DID) 已购买的印度本地号码

  Exotel 的印度区域 API 基地址为 `api.in.exotel.com`。所有 Trunk 配置 API 的速率限制为 **200 请求/分钟**。

  关键决策:Digest 认证 vs IP 白名单

  这是接入 Retell AI 时最容易踩坑的地方。**Retell AI 的出口 IP 是动态的**,运行在共享的 AWS/GCP 基础设施上,没有固定的静态 IP。

认证方式 适用场景 对 Retell 的适用性
Digest 认证 云 Voice AI 平台、动态 IP ✅ 推荐,Exotel 官方推荐用于 Retell、ElevenLabs、LiveKit
IP 白名单(ACL) 本地 PBX、固定 IP ❌ 仅支持 /32 单 IP,不支持 CIDR 范围

  **核心规则**:Exotel 的 Trunk ACL **仅支持单个静态 IP(mask: 32)**,不支持 CIDR 范围。如果 Retell 提供的是 IP 范围,不要尝试在 Exotel 上白名单范围,应**使用 Digest 认证**。

  出站配置:Retell → Exotel → PSTN

  出站流程让 Retell 的 AI 代理通过 Exotel 的印度号码拨打印度用户。

  第一步:创建 Trunk

  ```bash

  curl -s -X POST "https://${API_KEY}:${API_TOKEN}@api.in.exotel.com/v2/accounts/${ACCOUNT_SID}/trunks" \

  -H "Content-Type: application/json" \

  -d '{

  "trunk_name": "retell_trunk",

  "nso_code": "ANY-ANY",

  "domain_name": "'"${ACCOUNT_SID}"'.pstn.exotel.com"

  }'

  ```

  保存响应中的 `trunk_sid`。

  第二步:映射 DID

  ```bash

  curl -s -X POST "https://${API_KEY}:${API_TOKEN}@api.in.exotel.com/v2/accounts/${ACCOUNT_SID}/trunks/${TRUNK_SID}/phone-numbers" \

  -H "Content-Type: application/json" \

  -d '{"phone_number": "+91XXXXXXXXXX"}'

  ```

  第三步:创建 Digest 凭证

  ```bash

  curl -s -X POST "https://${API_KEY}:${API_TOKEN}@api.in.exotel.com/v2/accounts/${ACCOUNT_SID}/trunks/${TRUNK_SID}/credentials" \

  -H "Content-Type: application/json" \

  -d '{

  "user_name": "SIP_USER",

  "password": "SIP_PASS",

  "friendly_name": "retell_voice_ai"

  }'

  ```

  保存 `credential id`,后续可能需要用于轮换。

  第四步:在 Retell 导入号码

  在 Retell 控制台进入 **Phone Numbers → Import Number**,填写:

字段 值
Termination SIP URI sip:<trunk_sid>@in.voip.exotel.com:5070;transport=tcp
SIP Trunk User Name 上面创建的 user_name
SIP Trunk Password 上面创建的 password

  **重要提示**:Exotel 的 SIP 边缘地址为 **TCP: `in.voip.exotel.com:5070`** 或 **TLS: `in.voip.exotel.com:443`**。使用 Exotel 分配给你的确切地址。

  在保存前,点击 **Test SIP Connection** 验证连通性。Retell 会发送 SIP OPTIONS 请求测试连接,如果返回 SIP 2xx 响应则成功。

  入站配置:PSTN → Exotel → Retell

  入站流程让印度用户拨打你的 Exotel 号码时,通话路由到 Retell 的 AI 代理。

  第一步:配置 Destination URI

  ```bash

  curl -s -X POST "https://${API_KEY}:${API_TOKEN}@api.in.exotel.com/v2/accounts/${ACCOUNT_SID}/trunks/${TRUNK_SID}/destination-uris" \

  -H "Content-Type: application/json" \

  -d '{

  "destinations": [

  {"destination": "sip.retellai.com:5060;transport=tcp"}

  ]

  }'

  ```

  Retell 的 SIP 服务器地址是 **`sip:sip.retellai.com`**,这是 Retell 唯一的 SIP 地址,用于入站 Origination URI。Retell 支持 `transport=tcp` 或 `transport=tls`。

  第二步:创建 Exotel Flow 并连接 Trunk

  入站通话需要通过 **Exotel Flow** 路由。创建一个 Flow,添加 **Connect Applet**,在 **Dial whom** 字段中输入:

  ```

  sip:

  ```

  **注意**:这里只填 `trunk_sid` 并加上 `sip:` 前缀,**不要填完整的 URI**。Exotel 文档明确说明了这一格式要求。

  第三步:将 DID 绑定到 Flow

  在 Exotel 控制台将你的 Exophone(印度号码)绑定到刚创建的 Flow。完整的入站通话路径为:

  ```

  PSTN → Exotel → DID → Flow(Connect Applet) → SIP Trunk → Destination URI → Retell

  ```

  印度媒体锚定合规提醒

  这是接入印度市场不可绕过的监管要求。TRAI 规定:**涉及印度 PSTN 的通话,SIP 信令和 RTP 媒体流都必须锚定在印度境内**。

  Retell AI 本身**不在印度部署基础设施**,这意味着 Retell 的 AI 代理**无法直接处理印度通话**。Exotel 的 vSIP 中继作为印度本地的 PSTN 接入层,将印度通话锚定在 Exotel 的印度网络内,但**媒体流最终需要路由到 Retell 进行处理**——这仍然存在合规风险。

  **实际操作建议**:与 Exotel 支持团队确认你的具体使用场景是否满足媒体锚定要求。部分企业选择在印度本地部署媒体处理节点,或使用支持印度区域部署的 Voice AI 平台(如 LiveKit 的区域固定功能)。

  调试与故障排查

问题 可能原因 解决方案
连接测试失败 (401/407) 凭证错误 检查 user_name 和 password 是否与 Exotel 创建的一致
连接测试失败 (403) IP 限制 检查是否误开了 IP 白名单,或 Exotel 账户状态异常
出站呼叫失败 Termination URI 错误 确认 trunk_sid 和 in.voip.exotel.com 地址正确
入站呼叫不接通 Flow 配置错误 检查 Connect Applet 的 Dial whom 是否为 sip:<trunk_sid>
没有响应 防火墙/端口问题 确认 UDP 10000-40000 端口开放用于 RTP

  总结

  将 Exotel SIP 中继接入 Retell AI 的核心步骤可以概括为 **“出站三件套 + 入站两步走”**:

  **出站**:创建 Trunk → 映射 DID → 创建 Digest 凭证 → 在 Retell 导入号码

  **入站**:配置 Destination URI 指向 `sip.retellai.com` → 创建 Flow 并绑定 DID

  **最关键的两个决策**:

  1. **认证方式**:使用 **Digest 认证**,因为 Retell 没有静态 IP,Exotel 的 ACL 不支持 CIDR 范围

  2. **媒体锚定**:与 Exotel 确认印度合规要求,Retell 本身不在印度部署,可能需要额外的本地媒体处理方案

本文链接:https://www.lanlansms.com/faq/783.html

联系我们--即刻申请免费测试账号

点击拨号:182-0071-8221