APP下载

基于SIP及WebSocket的VoIP电话呼叫技术

2020-05-21王江淮周路丁常坤

电脑知识与技术 2020年9期

王江淮 周路 丁常坤

摘要:为了实现VoIP与业务能力的结合,实现基于VoIP软电话的呼叫中心平台能力,提出了通过WebSocket、SIP协议和FreeSWITCH的技术结合,打造IP-PBX[1]交换机方式的VolP呼叫中心平台方案,来替代传统的基于电路的呼叫中心平台系统,从而在不影响呼叫中心功能的情况下实现系统的灵活部署、低廉成本等优势。

关键词:VolP;FreeSWITCH;SIP;WebSocket

中图分类号:TP399 文献标识码:A

文章编号:1009-3044(2020)09-0040-03

基于电路的传统的呼叫中心系统是目前应用最多的呼叫中心平台,它具有成熟稳定、接人能力强等特点,但也导致系统架构复杂、安装部署及运维难度大、建设成本高等缺点,这也导致其很难适用于小中规模呼叫中心建设的原因。随着移动通信,无线网络的快速发展,融合IP和通信技术的统一通信平台已经渐渐被各企业所接受和认可。基于VoIP软电话的呼叫中心平台也应运而生,由FreeSWITCH提供通信等能力、软电话承接,通过WebSocket与软电话建立连接实现通讯与业务能力的结合,建立基于VoIP软电话的呼叫中心系统,不仅具有传统交换机的优势,同时还具备系统结构简单、部署灵活、低成本的等优点,这将是未来呼叫中心系统的发展方向。

1 电话软交换平台

FreeSWITCH是一个开源的、跨平台的、伸缩性好的、多协议的电话软交换平台,由于使用了IP通信,它能通过IP网提供语音通信,它不仅可以在企业内部网上进行,也可通过Internet在外网甚至PSTN电话间进行。FreeSWITCH与SIP软电话通信的协议是SIP协议,SIP是由IETF提出的IP电话信令协议,如图1为请求呼叫建立发送的SIPINVITE请求。在SIP通信中,除文字外,媒体都是在RTP协议中传输的,由于媒体一般都是持续传输的,因此又称RTP流。FreeSWITCH是一个典型的B2BUA.在一个通话过程中,FreeSWITCH都是作为一个B2BUA来桥接两个客戶端软电话进行通话,完整的呼叫流程如图2。在搭建软电话呼叫中心系统中,由FreeSWITCH提供语音交换、媒体处理、媒体监播、电话会议、排队等功能,由SIP软电话承接功能,并通过WebSocket收发命令实现属性、方法、事件与呼叫中心业务、管理能力结合(如图3)。

2 基于SIP的软电话

MicroSIPc2]是开源的轻量级的SIP软电话,所用的协议栈是SIP协议栈[3],PJSIP是包含SIP、SDP、RTP、RTCP、STUN、ICE等协议实现的开源库。目前MicroSIP最新版本已更新到3.19.23,MicroSIP不仅实现呼叫、接听、挂断、通话保持、继续,静音等基本功能,同时也实现了坐席的示忙、示闲、会议、释放转坐席等功能,这些功能已基本能满足普通用户和中小企业的内部通信需求。但无法满足话务服务中心的复杂功能的需要,特别是管理和质检的需要。所以在依托开源的MicroSIP基础上,开发一个不仅能支持普通话务需求,同时能更好地承接或替代基于传统交换机的话务中心的软电话,是目前最需要考虑的问题,在此基础上我们需要设计一款新的软电话。新的软电话不仅包括目前MicroSIP所有功能,同时也支持目前话务中心班长管理功能、技能控制功能,如动态修改坐席签人信息、引入技能队列、监听、拦截、三方通话、协商转流程、释放转技能组、协商转技能组等。协商转IVR流程是目前话务中心或服务中心经常用到的功能,原有MicroSIP中并没有实现,通过研究,我们可以根据现有挂起转功能进行改造(如图4),同时结合FreeSWITCH的拨号计划(如图5)和Lua脚本(如图6)实现此功能,在挂起转时将转移IVR编码和受理坐席工号一起转移,同时,示忙当前坐席状态,让坐席等待客户转流程后返回,并在FreeSWITCH拨号计划进行路由,并转入对应Lua脚本的IVR流程,待流程结束再转移到传人的受理坐席账号。此外,与其他SIP软电话不同的是,新的SIP软电话客户端需要不仅能够正常启动运行,同时通过Socket技术搭建WebSocket服务端(如图7),为呼叫中心平台提供通信和监控服务。为方便对通信行为的控制,限制客户对SIP软电话的直接操作,所以客户端可以实现后台启动方式启动,这即降低了客户的非法操作,同时也规范了客户的正常操作。

3 基于软电话的VoIP呼叫中心平台

传统呼叫中心平台,都是基于电路型的交换机实现的,大多都需要浏览器加载中间件(控件)来实现与交换机的交互,过于依赖浏览器,所以在搭建呼叫中心系统的同时,也必须要求客户统一规定安装相对应的浏览器和版本,即便是如此,也无法保证浏览器不会被变更,这也是导致现有呼叫中心客户经常出现呼叫中心系统故障的原因之一。而WebSocket技术目前已经基本支持所有高版本的主流浏览器,在搭建呼叫中心系统而基本无须特意要求客户的浏览器环境。在VoIP呼叫中心系统中,由SIP软电话程序实现启动WebSocket服务端,而呼叫中心平台作为客户端申请并与WebSocket服务端建立长连接(这一方案也称为SIP over WebSocket[4]),呼叫中心平台即可通过调用指令接口实现如呼出、挂断、示闲、示忙等主动操作。同时SIP软电话接收和获取FreeSWITCH坐席通话信息和状态,主动以事件方式推送当前坐席的通话信息和状态,为平台提供数据支持(如图8)。

4 技术验证及分析

通过上述的讨论和研究,我们可以通过搭建FreeSWITCH,编译并修改MicroSIP实现其它功能,创建WebSocket服务端,通过火狐浏览器创建WebSocket连接,发送呼叫、监听指令,分析返回结果:

呼出指令如:

根据WebSocket服务端返回结果分析,1003客户端已接听并建立通话连接。

监听指令如:

根据WebSocket返回结果分析,监听0055aOcO-e7a5-4d8c-8a74-337809fe66b5通话成功。

由上呼出、监听验证结果分析可知,本文提出的基于FreeSWITCH、SIP协议以及WebSocket的VoIP软电话呼叫中心技术的可行性。

5 结束语

本文提出了通过FreeSWITCH、SIP软电话实现VoIP呼叫中心系统,通过由FreeSWITCH提供能力,软电话进行SIP请求封装、与FreeSWITCH进行SIP通信,与业务能力、管理功能结合搭建呼叫中心平台,并通过具体呼叫、监听测试验证了本方案的可行性。本方案相对于传统的基于电路交换机的呼叫中心系统有结构简单、成本低、部署灵活等特点,但也存在很多不可预知的问题,比如NAT穿越[51问题一直没有统~的解决方案,需要等待时间来不断发现和完善。、

参考文献:

[1]Wikipedia:hUp://en.wikipedia.org/wiki/lP_PBX

[2] https://www.MicroSIP.org/source

[3]张文杰PJSIP开发指南,http://www.pjSIP.org/.

[4]http://datatracker. ietf. org/doc/draft-ietf-SIPcore-SIP-Web-Socket/。

[5]杜金房,张令考FreeSWITCH权威指南。

【通联编辑:梁书】

作者简介:王江淮,男,安徽安庆人,本科;周路,男,安徽亳州人,本科;丁常坤,男,安徽肥西人,硕士研究生。