Sinch SIP 中继
Sinch SIP 中继
将 Sinch Elastic SIP Trunking 连接到 ElevenLabs Agents。
开始前,建议阅读 ElevenLabs SIP 中继 指南和 Sinch Voice SIP 中继 指南。
概述
本指南介绍如何将 Sinch Voice 应用直接连接到 ElevenLabs Agents。该集成让你保留 Sinch 号码和路由,同时由 ElevenLabs 处理语音 AI 智能体体验。
Sinch SIP 中继的工作方式
Sinch SIP 中继是在 Sinch 网络与 ElevenLabs 平台之间建立的双向连接:
- 呼入电话:分配给 Sinch Voice 应用的 DID 会接收来电。Sinch 将
INVITE发送到在中继呼入设置中配置为静态端点的 ElevenLabs 发起地址。 - 呼出电话:由 ElevenLabs 发起的电话会发送到应用的完全限定域名(FQDN)SIP 地址,再由 Sinch 路由至 PSTN。
- 身份验证:Sinch 要求对呼出进行身份验证(SIP 凭据),并支持对进入中继的流量进行 ACL 身份验证(IP 允许列表)。
要求
开始前,请确保具备:
- 已配置智能体的有效 ElevenLabs 账户
- 已在 Sinch Build dashboard 中创建语音应用的 Sinch 账户
- 至少 1 个在 Sinch 购买并分配给应用的电话号码(DID)
配置呼入电话(Sinch 到 ElevenLabs)
将应用的呼叫转发指向 ElevenLabs SIP 地址。
为 ElevenLabs 添加静态端点
在应用的呼叫转发设置中,将呼叫事件处理程序更新为 SIP Forwarding,并添加指向 ElevenLabs 发起地址的静态 SIP URI:
- DID:要拨打的 Sinch 电话号码
- 地址:
sip.rtc.elevenlabs.io - 端口和传输协议:
5061/TLS、5060/TCP
例如:sip:15551234567@sip.rtc.elevenlabs.io:5061;transport=tls。
如果 ElevenLabs 工作区使用隔离的数据驻留区域或静态 IP SIP 基础设施,请使用相应端点替代 sip.rtc.elevenlabs.io。可用区域请参阅 数据驻留。
配置呼出电话(ElevenLabs 到 Sinch)
对于呼出电话,ElevenLabs 会向 Sinch 应用发送 SIP INVITE 并对其进行身份验证。
在 ElevenLabs 中完成设置
配置转接
智能体使用 transfer_to_number 系统工具将电话转接给人工客服。
Sinch 中继仅支持会议转接。SIP REFER 和盲转会失败。
会议转接
ElevenLabs 会通过 Sinch 中继拨打目标号码,将双方加入会议,然后退出智能体。
改用 Sinch Voice API v2
上述设置让 ElevenLabs 处理整个语音路径。如果需要由 Sinch 控制呼叫,Sinch Voice API v2 可以接听电话、应用自己的逻辑,并使用 SVAML 将第二路呼叫桥接至 ElevenLabs 智能体,无需中继服务器。当你希望在智能体接入前插入 Sinch 功能(如答录机检测、通话录音或号码掩码),或者智能体只是更大 Sinch 呼叫流程中的一个环节时,此模式更合适。
有关其他常见场景,请参阅 Sinch 的 通过 SIP 集成 ElevenLabs AI 智能体 教程。
故障排除
呼入电话无法接通
- 确认中继的静态呼入端点指向
sip.rtc.elevenlabs.io,且使用的端口和传输协议正确。 - 确认 DID 已分配给该中继。
- 检查 ElevenLabs 中的号码是否与 Sinch 发送的号码一致,包括开头的
+。 - 更改端点或 ACL 后至少等待 60 秒,再重新测试。
- 确认防火墙允许 TCP 使用 5060 进行 SIP 信令,或 TLS 使用 5061,且未阻止 RTP。
呼出电话收到 403 或 407 响应
- 确认 ElevenLabs 中的 SIP 中继用户名和密码与 Sinch 中继上的凭据一致。
- 检查 地址 字段是否仅包含中继 FQDN,且不含
sip:前缀。 - 确认中继已启用目标国家/地区的国家权限。
- 确认所使用的主叫号码是 Sinch 接受用于该中继的号码。
- 如果使用 ACL 身份验证,请注意 ElevenLabs 信令来自分布式地址池。请切换到摘要身份验证,或迁移至静态 IP 基础设施。
单向音频或无音频
- 确认防火墙允许 RTP 通过 UDP 双向传输,且未限制为特定静态地址。
- 检查媒体加密是否匹配:TLS Sinch 中继需要 SRTP,因此请在 ElevenLabs 中将媒体加密设为
Allowed或Required。 - 使用 TCP 并禁用媒体加密进行测试,以确定问题是否与 TLS 或 SRTP 有关。
- 确认中继提供 G711。ElevenLabs 支持 G711 和 G722。
智能体挂断后电话未结束
对 BYE 的 481 响应通常意味着请求到达了没有该通话对话状态的 SIP 服务器。请将对话内请求发送到 200 OK 返回的 Contact URI,而不是共享的 sip.rtc.elevenlabs.io 地址。如果通过 TLS 的 BYE 或 REFER 未通过证书验证,请在电话号码设置的 远程域 字段中添加中继证书签发所对应的 FQDN。
常见问题
应使用哪种传输协议?
生产环境请在 Sinch 中继上使用 5061 的 TLS 搭配 SRTP 媒体。验证时可先使用 5060 的 TCP。ElevenLabs 上的 UDP 仍处于实验阶段,不应用于生产流量。
兼容哪些音频编解码器?
ElevenLabs 支持 G711(8 kHz)和 G722(16 kHz)。请确保 Sinch 中继提供 G711,作为共同支持的编解码器。
如何将来电者上下文传入对话?
呼入 INVITE 上的自定义 X- 标头会作为动态变量公开,例如 X-Contact-ID 会变为 {{sip_contact_id}}。X-Call-ID 和 X-Caller-ID 会映射到 system__call_sid 和 system__caller_id。完整规范化规则请参阅 SIP 中继。