華為Digital inCloud電信能力云服務
大家好。先自我介紹一下,我是從南京研究所那邊過來的,主要給大家提供一下我們易聯話音的服務。其實這個不復雜,很簡單。主要講四部分:***部分是服務總覽,大概介紹一下框檻;第二是從用戶角度看一下易聯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的情況。