浏览器内软电话、来电、IVR 语音菜单与排队队列
直接在浏览器中通话(不呼叫您的手机),通过 IVR 语音菜单接听来电,使用队列/振铃组和坐席在线状态。基于您自己的 Twilio 账户(BYO)。
除了一键拨号(会呼叫您的手机)之外,Sellio 还提供一个运行在浏览器中的软电话:您可以直接在电脑上,通过耳机和麦克风进行通话,CRM 不会呼叫您的手机。它还可以让您接听来电:拨打您 Twilio 号码的人会先进入应答菜单(IVR),然后被路由到某个队列,CRM 会呼叫该队列中所有在线(可接听)坐席的软电话。
它完全保持 BYO 模式(“自带账户”):通话在您的 Twilio 账户中拨打并计费。该功能处于未启用状态:如果没有语音凭据,拨号器会显示为已禁用并附带提示,不会导致任何异常。
前提条件
- Twilio 集成(Account SID + Auth Token + 语音号码)已配置并启用,与“消息”功能使用同一个。
- 一个 Twilio Voice API Key:SID + Secret(在 Twilio 控制台的 Account → API keys & tokens 下创建)。
- 一个 TwiML App(SID):在 Twilio 控制台的 Voice → TwiML → TwiML Apps 下创建,其 Voice Request URL 指向 Sellio 在电话页面上显示的“outgoing URL”。
- 一副带麦克风的耳机以及现代浏览器(浏览器会请求麦克风权限)。
如何设置
- 打开 Settings → Telephony(电话)。
- 在“软电话凭据”下,填写 API Key SID、API Key Secret 和 TwiML App SID,勾选“启用软电话”,然后保存。Secret 会被加密存储,且永远不会再显示出来。
- 复制页面显示的“Outgoing URL(TwiML App)”,并将其粘贴到 Twilio 控制台中 TwiML App 的 Voice Request URL 字段。
- 复制“Incoming URL(号码)”,并将其粘贴到 Twilio 控制台中您 Twilio 号码的 Voice URL 字段(这是启用来电功能的关键步骤)。
- 至少创建一个队列并添加坐席;如果需要语音菜单,请配置 IVR(数字键 → 队列)。
在线状态与接听
- 任意页面右下角都会出现一个拨号器按钮(📞),点击打开它。
- 设置您的在线状态:可接听(Available)表示接收来电,忙碌(Busy)或离线(Offline)表示不响铃。
- 要拨出电话:输入号码并点击“呼叫”,即可在浏览器中通话。该通话会被录音并记录在历史中。
- 要接听来电:当有来电进入队列时,拨号器会响铃并显示“接听/拒接”。路由只会呼叫状态为“可接听”的坐席。
IVR(数字键菜单)与队列
- IVR:语音问候语加菜单(例如“销售请按 1;支持请按 2”)。每个数字键会将来电转接到对应队列。如果没有菜单,来电会直接进入默认队列。
- 队列/振铃组:一组坐席。策略“全部响铃”会同时呼叫所有在线坐席;“轮询”会在坐席之间轮流分配。“响铃时长(秒)”是软电话在放弃前响铃的时长。
- 在线状态:路由只会呼叫状态为“可接听”的坐席。如果没有任何坐席在线,来电方会听到队列的兜底提示语。
💡 安全性:语音 Access Token 由服务器使用 API Key Secret 进行签名(该密钥永远不会离开服务器),有效期为 1 小时,并会自动续期。入站 webhook 会使用您的 Auth Token 校验 X-Twilio-Signature(未签名的调用会被拒绝)。
如何测试
- 在软电话已启用且在线状态设为“可接听”的情况下,打开拨号器并拨打您自己的某个号码:确认您可以在浏览器中通话。
- 从另一部手机拨打您的 Twilio 号码:确认您能听到问候语(如果配置了 IVR),并且拨号器会响铃以供接听。
- 通话结束后,在联系人历史中检查该通话(入站/出站、时长,以及如有录音则显示录音)。
故障排查
- 拨号器显示已禁用:缺少语音凭据(API Key + TwiML App),或 Twilio 集成未启用。请在 Settings → Telephony 中完成配置。
- 我拨打电话但没有声音:浏览器需要麦克风权限,且 TwiML App 的 Voice Request URL 必须指向页面上显示的“outgoing URL”。
- 我收不到来电:检查 Twilio 控制台中该号码的 Voice URL 是否为“incoming URL”;是否有带坐席的队列;以及是否有人的在线状态设为“可接听”。
- 来电进入“无人接听”提示:队列中当前没有任何坐席处于“可接听”状态(全部为忙碌/离线,或拨号器已关闭)。