国信呼叫中心 WebRTC网页电话集成

什么是WebRTC技术?

"WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,Google开源了这项技术!"

就冲着6000多万美金的技术,就很值得研究一下!WebRTC提供了视频会议的核心技术,包括音视频采集、编解码、网络传输、显示等功能,并且还支持跨平台:Windows,Linux,Mac,Android,尤其是在实时通信方面的很多技术可以灵活嫁接到非RTC类流媒体系统中,例如,在低带宽下的视频抖动控制,图像效果增强,通用NAT穿透过程等等(后面咱们再具体细说如何嫁接)。

::: warning WebRTC仅能在支持H5的浏览器中使用 :::

WebRTC-SIP的互联互通

WebRTC传输的是加密的流媒体语音,传统SIP传输的是非加密的流媒体。它们之间的互联互通,需要相互之间进行加解密处理。国信CTi已经完美解决上述问题。

WebRTC应用场景

手机和平板端应用

提升软件竞争力,目前很多管理系统都支持手机端的访问和使用,可在基于H5开发应用界面嵌入语音通信能力,提升产品的竞争力。

防止封杀,使用4G网络,运营商会限制传统SIP网络电话的接入。使用国信WebRTC的电话,直接在信令和媒体加密,运营商无法进行封杀。

移动办公,使用手机在任何有4G网络的地方都可以接打公司的电话。

降低成本,电销公司,不再需要为坐席购买电脑和耳麦,仅需要员工用手机或者Pad浏览器登录到系统,就可以接打营销电话。

电脑端应用

维护方便,电脑端无需安装任何插件和软件,使用浏览器登录系统就可以接打电话。

升级简单,不再需要这个电脑进行系统升级,仅需要升级后台,前端就统一升级到最新版。

分机随身,集成了WebRTC电话功能的系统,坐席使用账户登录后,分机号码无需重新设定。

我们能提供什么

● WebRTC语音终端无缝接入到国信呼叫中心中,让WebRTC终端能像SIP终端一样支持放音,报工号,录音,转话,会议。

● WebRTC到SIP的互联互通。

● 提供基于WebRTC的JavaScript封装的二次开发库,降低开发门槛。

国信WebRTC JS开发库

只需少量JavaScript代码,即可轻松将WebRTC电话功能嵌入您的网站前端。如下图:

国信WebRTC开发库下载

WebRTC-Lib开发库,包含使用例子,修改连接地址,部署到容器即可使用。 下载

开发库说明

js目录中的所有文件都是经过封装的,用于简化WebRTC对接开发的JS库文件。这些文件包含了用于WebRTC应用程序开发的便捷功能,使得开发人员无需深入了解WebRTC的底层细节,即可快速构建和部署WebRTC应用程序。

SipContainer

库中提供的SipContainer将WebRTC封装成了电话软终端,提供了注册,拨打,挂机,接听等一系列电话功能接口。使用该实例能够非常方便的创建一个电话软终端。

开发流程如下:

::: tip 实例化SipContainer,构造函数中传入呼叫中心服务器的地址,前端Audio播放组件

调用SipContainer的open方法,传入分机号和分机密码

实现SipContainer的13个回调方法。详情见后面描述

您还可调用SipContainer提供的8个方法 :::

接口方法

为开发者提供的可直接调用的函数和方法

名称功能描述参数说明
new SipContainer创建WebRTC终端实例1. websocket连接地址
例如:wss://x.x.x.x:7399/websocket
将x.x.x.x替换成CTi服务器地址
2. 网页上的audio放音组件实例
open连接CTi服务器,自动注册1. 分机号
2. 分机注册密码,由CTi后台配置
register向CTi服务器发送注册消息1. 分机号
2. 分机注册密码,由CTi后台配置

::: warning 注意: open函数会调用当前方法,因此仅当修改了分机号或密码后调用该方法重新注册。 :::
unRegister向CTi服务器发送注销消息,释放资源,不再接听和拨打电话
reRegister注销后可调用该方法重新注册
reject在振铃时调用,用于拒接来电
answer在振铃时调用,用于接听来电
makecall拨打电话1: 即将呼叫的目标号码
hangupCall外呼等待接通或者已经在通话中时(不区分接听还是外呼),挂断电话

回调方法

开发者需要实现的一系列的回调方法,回调方法一般处理CTi通过WebSocket发往软终端的各类消息

回调方法列表

名称功能描述回调参数说明
onincoming来电通知{
"callid": "a8d8604e-99f0-4ef3-89b3-ac0866f12d2e@192.168.0.86",
"method": "INVITE",
"from": "806",
"to": "833",
}

::: tip callid: 会话编号
method: 消息类型呼叫
from: 主叫号码
to: 被叫号码,即本机号码 :::
oncancel对端取消呼叫
onrmterr外呼失败
onearly外呼,对端振铃{
"callid": "8D400D733DF197E7",
"method": "INVITE",
"from": "833",
"to": "806",
"status": 180,
}

::: tip callid: 会话编号
method: 消息类型呼叫
from: 主叫号码
to: 被叫号码,即本机号码
status: 180振铃消息 :::
onconfirmed外呼,对端接听
onterminated通话已经挂断
onregfail注册失败!账号或者密码不正确.
onregsucc注册成功
oncnnsucc已连接
oncnnfail连接中断,正在自动重连中...
onforceOffline账号已在其他终端登录,请退出。
onstate置忙置闲通知,来电排队通知,弹屏通知请参考开发库提供的文件main.js的实现方式
onmikegrant浏览器麦克风授权通知仅iso微信嵌入国信WebRTC需要关注,其他浏览器可忽略

苹果手机微信小程序嵌入WebRTC的特殊处理

::: tip 苹果手机微信小程序集成WebRTC软终端时,在第一次呼叫时会申请麦克风权限。

网页授权后,需要利用SipContaner的onmikegrant回调函数监听授权操作。

一旦授权成功,可以弹出一个窗口提示用户再次点击呼叫按钮继续呼出。

这种方式可以确保用户操作的连贯性,在授权后能够顺利地进行后续的呼出操作。 :::

::: warning 仅苹果手机微信小程序需要注意,其他地方可忽略当前处理。 :::