如何搭建一个外呼系统,不使用网易七鱼这样的第三方。主要是不了解如何用电脑把电话拨出去

2023-05-10 16:43:26 +08:00
 Dingo

主要是不了解如何用电脑把电话拨出去

3881 次点击
所在节点    程序员
29 条回复
icegaze
2023-05-11 00:54:09 +08:00
系统软件硬件反而是最简单的:

普通电话线,或者 ISDN ,或者 E1 线路,或者 IMS 专线,,,根据你的呼叫设备而定,越后面的越贵。系统到座席一般都是 tcp 的 SIP 电话,用电脑当作电话也可以,反正座席也要用电脑工作。

然后软件,中间件,主要是管理话务流程,加载 CRM 系统,甚至知识库系统等等

然后后台要有录音,可按号码以及时间以及座席工号进行检索,,,要能保存 180 天以上。
DonaldY
2023-05-11 01:24:13 +08:00
@Bantes 想问下,webrtc 方式呢?如何交互呢?线路商如何接入?
ccadb
2023-05-11 09:18:25 +08:00
公司内部使用,没有任何问题。我们单位是我实施的,买了套星纵科技(就是原来的朗视)的 IPPBX ,把电信放到我们单位的 ONU 破解了,把里面的固化账号导出来,然后把 ONU 注册固化取消,接入 IPPBX 注册,然后将号码分配给下面的分机。我们是 30 个固化号码,内部使用快半年了,毫无问题。
ccadb
2023-05-11 09:18:43 +08:00
@ccadb 固话
doveyoung
2023-05-11 11:16:22 +08:00
服务端硬件:语音网关和运营商的线路和软件的服务器
服务端软件:freeswitch
客户端硬件:电脑或 IP 话机或手机
客户端软件:关键词 SIP

服务端方面,服务器和软件可以替换掉,好像华为的交换机有这个功能,我看相关的文档有点难啃,现在用的系统是找服务商做的。等有兴趣的时候再研究
Bantes
2023-05-11 13:06:19 +08:00
@DonaldY 接入模式还是一样,freeswitch 服务端安装 webrtc 相关模块和配置好 stun/turn 服务器,webrtc 客户端连接到 freeswitch 服务器就好了,记得 fs 官方有 webrtc 的案例
markgor
2023-05-11 14:43:29 +08:00
办理专线的话需要许可证。
只弄过 E1/T1/SIP Trunk/模拟线 这几种,不知道你问的是哪种。
>用电脑把电话拨出去
要通过介质传递。这问题就像用电脑如何连上广域网一样。可以是光纤也可以通过同轴也可以通过铜线.....
E1/T1 是线路,上面还要跑协议,具体什么协议要问运营商,不过好像现在都是跑 ss7 了
SIP 的话就类似网络电话,通过网络走,但要对端支持。
模拟线路就是普通的电话线,有 fsk 和 dtmf 制式区别。
太久没碰我也忘记的 7788 了,大概是 E1 先通道数比较多,T1 通道数比较少,两者都是一个 DChannel 做控制,其余 BChannel 做通话,好处是稳定,且支持通道相对多,如果电脑接的话需要购买板卡。
Sip 的话就简单很多,只要保证网络稳定即可,不需要额外购买设备,直接配置好去对方服务器认证成功就行了,现在电信的光猫就是带这个功能,走 SIP 去认证,再输出模拟线。

模拟线路,就平时普通的 2 芯电话线,如果电脑接入的话要购买板卡,坏处是线路状态靠声音检测而非数字传输,从而导致有时不准确,需要一直调整,另外一条线只支持一个通道。

之前我们用的哈里斯,然后改 asterisk ,但太久的事了,基本都忘记了。
asterisk 的话有提供 api 接口,可以理解为有 cli ,程序 telnet 过去然后丢命令即可。
里面会涉及到通道变量等的信息。
当时我们自己搞,实现 自动拨号,动态队列,动态 sip 账号,sip 分机状态,录音,监听,通道插入,和简单的知识库还有弹屏功能。
sip 分机状态:Out (离线)、Wrap (挂机)、Ready (空闲)、Busy(通话中)

外呼:上传一堆号码,配置同时拨号数量,asterisk 就会对这些号码进行拨号,拨通后就会丢到 queue 里面,播放着音乐,等待话务员 ready 接听。
当 sip 分机状态为 Ready 时,asterisk 会自动把 queue 里的等待线路转移到分机上,此时就能开始对话了。同时程序也能通过 sip 分机号查询到入线信息,从而进行弹屏。
这个是外呼功能,现在如果你接到推销的电话,接听后一会才有人说话的,基本就是走这个模式。

呼入:配置了队列,入线后会一层层往下掉,比如队列 1 等待 30 秒 会去队列 2 ,队列 2 等待 60 秒会去队列 9.
然后其实大致和外呼流程一样,业务 ready 就进线,至于为何一个个队列跳,是因为有些是专项项目,会配有专人接听,但人数不多,为了保证接听成功率,所以会一级级向下跳,对了前面忘记说了,话务员登入的时候是需要选择队列登入的。

录音:监听 asterisk 的 bridge 状态,接通( agent 和客户)的时候,传递录音命令给 asterisk 。

监听:通道插入:
其实就是丢个 asterisk 的命令过去,传递监听或插入的分机号,和目标通道。

IVR:
静态的,写死,每次变动都要 reload ;
动态的,丢去 api 网关,由 api 返回结果执行。
大致上就是这样了,上述都是应用上的功能,实际之前最头疼的是信令,asterisk 自带的 ss7 和中国 ss7 有出入,后来还是找了 openVox 的人帮忙重新修改编译 asterisk 才解决。

性能:
当时项目不大,agent 数量大概 100 个左右,3 条 T1 ,1 条 E1. asterisk 硬件配置是普通的双路 L5630/32G D3 ,语音信令主要走 G729->ulaw->alaw->gsm 。
echo cancel 是走软件算法,有时候会因此导致出现通话质量不佳的情况,但几率小。
DonaldY
2023-05-11 21:26:39 +08:00
@Bantes 感谢回复。
想问下,如果要录音等功能,是不是要有中间件( webrtc 服务器)。流程是这样:客户端( webrtc ) -> webrtc 服务器 -> fs ?
Bantes
2023-05-12 13:49:16 +08:00
@DonaldY fs 自带录音功能的,默认关闭的,配置里打开就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/938939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX