使用 NextGenSwitch 将 AI 语音代理连接到 SIP 与 PSTN

发布: (2026年2月6日 GMT+8 13:14)
5 分钟阅读
原文: Dev.to

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:
Back to Blog

相关文章

阅读更多 »

量子安全计算的不安全性

量子隐私:为何某些量子技巧无法保护秘密安全 人们曾希望量子技术能够阻止陌生人窃取秘密,就像智能卡……