Vonage 集成

通过 WebSocket 连接器将 ElevenAgents 与 Vonage 语音通话集成。

概览

通过 WebSocket 连接器应用,将 ElevenLabs Agents 连接到 Vonage Voice API 或 Video API 通话。这样可实现实时双向音频流,适用于 PSTN 通话、SIP 中继和 WebRTC 客户端等场景。

工作原理

Node.js 连接器在 Vonage 与 ElevenLabs 之间搭建桥梁:

  1. Vonage 为活跃通话发起到连接器的 WebSocket 连接。
  2. 连接器建立到 ElevenLabs Agents 端点的 WebSocket 连接。
  3. 音频会被转发:Vonage(L16)-> 连接器 -> ElevenLabs(base64),反之亦然。
  4. 连接器管理对话事件(user_transcript、agent_response、interruption)。

设置

1

1. 获取 ElevenLabs 凭据

  • API Key:API 密钥位于 Developers 页面的 API Keys 标签页,可通过侧边栏链接进入。
  • Agent ID:在 ElevenAgents 控制台中找到智能体。选择智能体后,点击设置按钮并选择 “Copy Agent ID”。
2

2. 配置连接器

克隆仓库并设置环境文件。

git clone https://github.com/nexmo-se/elevenlabs-agent-ws-connector.git
cd elevenlabs-agent-ws-connector
cp .env.example .env

将凭据添加到 .env:

.env
ELEVENLABS_API_KEY = YOUR_API_KEY;
ELEVENLABS_AGENT_ID = YOUR_AGENT_ID;

安装依赖:npm install。

3

3. 公开连接器(本地开发)

使用 ngrok 或类似服务,为连接器创建一个公开 URL(默认端口为 6000)。

ngrok http 6000

记下公开的 Forwarding URL(例如 xxxxxxxx.ngrok-free.app)。配置 Vonage 时,不要包含 https://。

4

4. 运行连接器

启动应用:

node elevenlabs-agent-ws-connector.cjs
5

5. 配置 Vonage 语音应用

Vonage 应用需要连接到连接器的 WebSocket 端点(wss://YOUR_CONNECTOR_HOSTNAME/socket)。这就是第 3 步中的 ngrok URL。

  • 使用示例应用:配置 Vonage 示例应用,将 PROCESSOR_SERVER 设为连接器的主机名。
  • 更新现有应用:修改 Nexmo Call Control Object,添加一个 connect 操作,以 content-type: audio/l16;rate=16000 指向连接器的 WebSocket URI(wss://...)。传递 peer_uuid 和 webhook_url 等必要查询参数。
6

6. 测试

通过 Vonage 应用拨打呼入或呼出电话,与 ElevenLabs 智能体交互。

云端部署

用于生产环境时,请将连接器部署到具有公开主机名的稳定托管服务提供商(例如 Vonage Cloud Runtime)。