使用 NextGenSwitch 将 AI 语音代理连接到 SIP 与 PSTN
Source: Dev.to
构建 AI 语音代理在今天已经相对容易。
然而,将该代理连接到**真实电话通话(SIP、PBX、PSTN)**却并不容易。大多数 AI 语音系统是为 WebSockets 和原始音频流 设计的,而实际的电话业务仍然依赖 SIP、RTP 和 PSTN 基础设施。这种不匹配正是许多语音 AI 项目在从演示阶段向实际生产转化时遇到的瓶颈。
核心问题
AI 语音系统通常期望:
WebSocket → PCM audio → AI pipeline → PCM audio
电话系统的工作方式则大不相同:
PSTN → SIP Trunk → PBX → RTP (μ-law / A-law)
关键挑战
- SIP 和 RTP 是有状态且对编解码器敏感的
- AI 系统需要干净、有序的音频帧
- 处理抢话、延迟和扩展性并非易事
- 大多数 AI 框架并不了解 PBX
NextGenSwitch 的作用
NextGenSwitch 充当 电话抽象层,在传统电话系统和现代 AI 服务之间提供桥接。
它提供:
- SIP 与 PSTN 终端
- 与 PBX 系统(Asterisk / FreeSWITCH)的集成
- 类 Twilio 的可编程语音 API
- 实时 WebSocket 音频流
- 编解码器和采样率归一化
您的 AI 服务无需直接与 SIP 或 RTP 交互。
高层架构
Caller
|
[PSTN / SIP Trunk]
|
[Asterisk / FreeSWITCH]
|
[NextGenSwitch]
|
[AI Voice Service]
AI 语音服务可以是:
- 自定义 WebSocket 服务器
- 基于云的 AI 接口
- 本地部署的 STT + LLM + TTS 组合
- 任何能够处理实时音频的框架
Twilio‑Style XML 呼叫控制
当呼叫到达 NextGenSwitch 时,它会获取 XML 指令——类似于 Twilio 的 TwiML。
Minimal XML (only the stream URL is required)
</xml>
此指令:
- 接听来电
- 打开双向 WebSocket
- 开始实时音频流传输
Optional Parameters (examples only)
参数 不是必需的;它们作为元数据传递给您的 AI 服务。
</xml>
这些值会出现在 JSON start 事件中,可用于路由、提示或 CRM 查询。
WebSocket 流协议(JSON)
NextGenSwitch 使用 Twilio Media Streams 风格的 JSON 协议。您的 AI 服务只需处理少量事件。
start 事件
流开始时发送一次。
{
"event": "start",
"streamId": "NGS_STREAM_123456",
"start": {
"callId": "NGS_CALL_abc",
"from": "+8801XXXXXXXXX",
"to": "5000",
"customParameters": {
"agent": "support-bot",
"tenant_id": "company-01"
}
}
}
保存 streamId——它必须包含在出站音频消息中。
media 事件(入站音频)
{
"event": "media",
"streamId": "NGS_STREAM_123456",
"media": {
"payload": "BASE64_AUDIO_BYTES=="
}
}
音频特性
- 编解码器:G.711 μ-law
- 采样率:8 kHz
- 负载:base64 编码的音频帧
media 事件(出站音频)
您的 AI 服务使用相同结构作出响应:
{
"event": "media",
"streamId": "NGS_STREAM_123456",
"media": {
"payload": "BASE64_AUDIO_BYTES=="
}
}
NextGenSwitch 会将此音频转换回电话格式并发送给呼叫方。
stop 事件
{
"event": "stop",
"streamId": "NGS_STREAM_123456",
"stop": {
"reason": "hangup"
}
}
AI 堆栈:完全灵活
NextGenSwitch 不需要任何特定的 AI 框架。您可以使用:
- 任何 STT 引擎
- 任何 LLM
- 任何 TTS 引擎
- 任何编程语言
参考实现(例如 Pipecat)是可选的,并非必需。
为什么这种架构有效
- AI 代码中不处理 SIP 或 RTP
- 类 Twilio、开发者友好的接口
- 实时、低延迟的音频流
- 供应商中立的 AI 集成
- 适用于生产环境的 PSTN 可扩展性
常见使用场景
- AI 接待员
- AI 呼叫中心坐席
- 基于语音的订单处理
- 预约预订
- IVR 替代
- 多语言语音机器人
关键要点
- Only the “ element is mandatory
- XML 参数是可选的元数据
- 流媒体协议遵循 Twilio‑风格的 JSON
- 电话音频使用 μ‑law @ 8 kHz
- AI 逻辑与 PBX 逻辑完全解耦
了解更多
- Programmable Voice Stream API:
- AI streaming examples: