article
README
🚀 语音呼叫 MCP 服务器
这是一个借助 Twilio 和 OpenAI 构建的实时语音通话服务器项目。它支持多语言通话,可处理复杂的电话业务逻辑,还能提供详细的通话记录与分析,为电话业务提供了强大的支持。
🚀 快速开始
安装要求
系统要求
- 操作系统:推荐使用 Linux,也支持 macOS
- 内存:至少 4GB
- CPU:双核及以上
依赖项
- Node.js (>=16.0)
- PostgreSQL 或其他支持的数据库
- Twilio 账户
- OpenAI API 密钥
安装指南
# 克隆仓库
git clone https://github.com/your-repo.git
cd your-repo
# 安装依赖
npm install
# 配置环境变量
export TWILIO_ACCOUNT_SID=your_sid
export TWILIO_AUTH_TOKEN=your_token
export OPENAI_API_KEY=your_key
配置指南
环境变量配置
在项目根目录下创建 .env 文件,添加以下内容:
TWILIO_ACCOUNT_SID=your_account SID
TWILIO_AUTH_TOKEN=your_auth token
OPENAI_API_KEY=your_openai key
DB_URI=postgresql://localhost:5432/voip_calls
业务逻辑配置
编辑 config/businessLogic.js 文件,添加自定义的通话规则:
module.exports = {
languageSupport: ['zh-CN', 'en-US', 'de-DE'],
fallbackLanguage: 'zh-CN',
callTimeout: 30000 // 30秒超时
};
✨ 主要特性
- 多语言支持:支持多种语言的实时语音识别和生成。
- 智能路由:根据规则自动将呼叫路由到不同处理节点。
- 录音功能:保存所有通话的录音文件。
- 数据分析:提供通话时长、用户意图等详细分析报告。
📦 安装指南
上文已详细介绍安装要求、安装步骤和配置方法,此处不再赘述。
💻 使用示例
基础用法
// 客服逻辑配置
const { createVoiceCall } = require('voip-service');
createVoiceCall({
fromNumber: '1234567890',
toNumber: '0987654321',
language: 'zh-CN',
callbackUrl: 'http://localhost:3000/api/call-back'
}).then(call => {
console.log('Call created:', call.sid);
});
📚 详细文档
序列图
呼叫流程
- 用户发起呼叫:通过 Twilio 发起语音呼叫。
- AI 接听:OpenAI 的实时语音模型开始处理通话内容。
- 智能交互:AI 根据预设的业务逻辑与用户进行对话。
- 记录存档:所有通话内容自动存储到本地数据库。
为什么选择 MCP
- 高性能:基于 Twilio 的可靠通信平台和 OpenAI 的强大 AI 能力。
- 易扩展:支持快速添加新的语言和业务逻辑。
- 高可用性:内置容错机制,确保服务稳定运行。
注意事项
- 电话号码格式:所有号码必须使用 E.164 标准(例如 +1234567890)。
- 速率限制:注意 Twilio 和 OpenAI 账户的速率限制和计费情况。
- 语音对话:AI 实时处理自然对话。
- 通话时长:控制通话时长以节省费用。
- 公网暴露:ngrok 隧道随机 URL 公开暴露,需注意安全。
故障排除
常见问题
-
“电话号码必须是 E.164 格式”
- 确保号码以“+”开头并包含国家代码。
-
“无效凭证”
- 检查
TWILIO_ACCOUNT_SID和TWILIO_AUTH_TOKEN是否正确。
- 检查
-
“OpenAI API 错误”
- 验证
OPENAI_API_KEY是否有效且有足够的额度。
- 验证
-
“ngrok 隧道启动失败”
- 确保
NGROK_AUTHTOKEN有效且未过期。
- 确保
贡献指南
欢迎贡献!以下是待改进的领域:
- 支持更多 AI 模型
- 增加数据库集成以存储对话历史
- 提高延迟和响应时间以提升通话体验
- 加强错误处理和恢复机制
- 添加更多预设对话模板
📄 许可证
项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
Scan to contact