最近有一个客户的呼叫中心项目,客户提出了一个强制性需求,要求坐席使用PC+Phone的方式来接听电话,而且最重要的是PC不能安装任何软件或者浏览器插件,研究了半天,似乎只有华山一条路了,那就是使用基于现代浏览器的webrtc音频通信技术了,可喜的是,Freeswtich作为语音服务器,已经天然支持webrtc技术了,而且成熟度很高,基本只要做些配置就好。
对于那些不熟悉webrtc技术的小伙伴,先简单的介绍下,引自百度:
“WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。”
典型的webrtc技术栈如下图所示:

由于webrtc是基于浏览器实现的,所以开发使用天然的会会使用javascripts语音,感谢开源项目的贡献,已经多个基于webrtc的js封装库可用了,比较有名的有jssip,sip.js等,这次我们选用了sip.js作为客户端的开发基础库,来实现VoIP的通话控制,整个过程整体还是比较顺利的,当然免不了还是会有一些坑需要填,下面就结合代码来做一个说明。
首先就服务器来说,这块不是本文的重点,而且几乎是零配置的,不过有一点需要简单的说明下,由于现在浏览器对安全性的要求比较高,正常的业务使用,不管是http网页还是webrtc传输信令所要使用的websocket协议,均是要求加密的,否则的是不允许调用音视频资源的。但是部署一套使用ssl证书加密的环境也是一件稍嫌麻烦的事情,能不能在开发阶段免去这个步骤呢?答案是肯定的。本文以谷歌浏览器为例,说明下配置方法:
第一步: 浏览器地址栏输入: chrome://flags/#unsafely-treat-insecure-origin-as-secure
第二步: 如图配置:
第三步:权限配置成功,访问页面相关功能,授权允许麦克风。
然后我们就可以欢乐的使用sip.js的各种功能了,首先,我们包含下sip.js的代码:
<script src="./js/sip-0.13.8.js"></script>
然后,我们初始化并注册一个UAC到服务器:
var extCode = "1001"; //分机号
var extPass = "1234"; //分机密码
var config = {
uri: "sip:" + extCode + '@119.1.2.3:5066',
authorizationUser: extCode,
password: extPass,
displayName: extCode,
log: {
buil

本文介绍了一种基于Webrtc技术实现的呼叫中心解决方案,该方案可在不安装任何软件或插件的情况下,让坐席人员使用PC+Phone接听电话。文章详细介绍了如何利用Freeswitch和sip.js库搭建语音服务器,并提供了具体的代码示例。

3929

被折叠的 条评论
为什么被折叠?



