大家好。先自我介绍一下,我是从南京研究所那边过来的,主要给大家提供一下我们易联话音的服务。其实这个不复杂,很简单。主要讲四部分:***部分是服务总览,大概介绍一下框槛;第二是从用户角度看一下易联SDK能力和KPI是什么样子;第三是从核心API方面来介绍,我们大概就是11个API和10个接口;第四是大概把我们推出来的Demo的代码简单讲一下。
首先讲一下一下华为云通讯,这是全能力的话音开放平台。依托华为公司和运营商建立的良好合作关系,我们拿到了比较丰富的语音资源。我们通过接入平台,把这些资源开放出一些能力,包括呼叫等等,我们希望跟开发者一起把这些能力推送到最终用户那边,从而丰富用户的沟通和交流。
我们的平台开发架构,从下往上是数据层、业务层和开放层。业务方面包括传统坐席、互联网坐席和互联网电话,以及其他的认证管理和企业信息等等。今天主要讲一下互联网电话,也就是VOIP和CTI的。
主要讲一下易联的能力开放形态。主要分三个维度:一个是RESTful API,主要提供坐席方面的能力;脚本主要是面向服务器那边的,还有客户端的SDK等等。
上面讲完了,下面直接进入正题,讲一下移动端的SDK。主要讲一下VOIP和双向回呼,大家理解就是对于被叫的都一样,走的WiFi或者4G网络,双向回呼也是走的通话,先把主叫喊出来,再喊被叫。我们现在外面经常见到的神州,包括保护我们隐私等等,其实也就是通过这一块的能力进行的。
我们平台的支持,其实就是安卓和iOS的,安卓是2.3以上,iOS是7.0以上。
讲到话音,最主要的就是语音质量。我们的语音质量,应该说我们有很多团队搭建这样的能力,包括我们媒体这一块的能力和业务这一块的能力。我们有一个比对的数据,我们找了一个凭品,找了一个BAT的厂商,选用了一个产品。这边有一个具体的数据,我们衡量语音到底好还是不好的数据,就是我们的MOS值,一般我们3.0以上的MOS值才是语音质量比较好的,在3.0以下或者离3.0比较远,相对来说语音质量比较差。从我们的数据来看,基本上我们语音质量比较稳定,而且都是在3.0以上。在iOS方面的对比,情况也都差不多。
在三个运营商4G下面的对比,我们的移动网络其实是比较复杂和多变的,在保证我们MOS 3.0的基础上,对于我们的抗丢包能力、抗时延和抗抖动都做了一些工作,包括我们800毫秒以上的延时能够达到3.0以上,包括25%的抖动上面也能够补仓回来。
讲完语音质量,在移动端比较关注的就是流量了。我们分两块,通话状态和静默状态。我们大概是4K/秒的数据,也就是说假设一个通话25秒钟的样子,大概是100M的流量,能够差不多1000个电话。
在我们的电量消耗情况下,电话打多了,也担心手机耗电太快,也有明显的对比,当然这里是越低越好了。从数据对比来看,通话方面有明显的优势,尤其是在iOS方面。
我们做移动端最痛苦的就是安卓端的兼容性的问题。我们在阿里云测的mqc上面做了对比测试。从对比来看,通过率大概在60%多,参照的这部分竞品大概在70%多的样子,所以从兼容性来看优势也是在这边。
接下来主要讲一下开发者最关心的核心API。
刚才说了,我们的核心API比较少,一共十多个API。从状态来说,大家可以想象,打电话就是呼叫的接口。从状态上面需要先初始化,然后进行登录,然后就是打电话。打完电话就是挂断,然后就是反向的动作。
初始化这些东西也是比较现成的,包括我们的开发者ID和开发者CPU等等,唯一要关注的是事件监听器,通话过程中会上线一些事件上来,大家要关注。我们的场景是启动程序时对接口进行初始化,这也是一些异步接口,我们会关注事件的回送,针对的就是onInit,跟它对应的就是Uninit。
讲完初始化,讲一下登录。登录是在初始化之后,它是在发起呼叫之前,也是异步接口。我们要考虑登录的返回值,还要考虑登录事件的呼叫。我们也要对后面的oginResultBean进行参数的工作。
再讲一下呼叫。我们主要关心第二个参数,这个主要是手机号码,大家把手机号码传给我们就行了。这也是一个异步的接口,呼叫出去之后,被叫那边出现振铃的时候,我们会有一个振铃的通知。被叫那边接通之后,我们有一个开始通话的通知。当对方挂断之后,我们也会收到一个通知。如果自己主动挂断,我们会有一个主动挂断的通知。还有呼叫失败的通知,比如说遇到网络原因的问题导致呼叫失败的问题。同样的,我们都会有相关的描述。
在我们通话过程中,还有一个比较容易理解的,一个是静音,一个是切换免提,这个也可以设置接口。
***一部分就是设置运行参数。刚才讲到SDK是两种呼叫模式,一个是我们的VIP呼叫,还有一个是双呼,对主叫来说到底走数据网络还是走远程通话,所以我们要设置模式,系统可以自动呼叫这样的手机号。
其实我们所有的东西已经讲完了,还有几个通知。因为我们跟服务器具备连接的状态,我们尽量把网络这一块的东西封装完,这里面包括网络变化、网络切换的时候,SDK内部会自己做处理,不需要开发者再做这样的事情。如果网络没有切换,所有网络由强变弱,正好那个地方网络不太好,但是没有断开,我们就会进行重连。重连开始、重连成功或者重连失败,会有一个通知状态,我们会有一个APP方面的交互设计。***,iOS的SDK,我们会自动处理前后台切换相关处理,不用开发者做这一块的处理。
讲完这一块,主要把我们的接口都讲完了,基本上是初始化登录呼叫,然后中间还有静音和切换,其实也没有什么太多东西了。
这是我们在线的开发者中心,大家遇到问题的时候可以登录这个网站看API的情况。