RTC與SIP互通所涉及的問題
要想讓RTC與SIP互通,要解決兩個層面的問題:信令層和媒體層。
兩個網(wǎng)絡(luò)使用的信令機制不同躏啰,所以要進行信令的轉(zhuǎn)換,才能完成媒體的協(xié)商耙册,建立會話给僵。媒體層要完成編碼的轉(zhuǎn)換,以及rtp/srtp轉(zhuǎn)換等功能详拙。
優(yōu)質(zhì)通信三要素
- 信令層的協(xié)商:穩(wěn)定的信令是實現(xiàn)RTC與SIP互通的基礎(chǔ)帝际,保達、異常處理溪厘、斷線重連等機制胡本。
- SIP協(xié)議與RTC協(xié)議互轉(zhuǎn)的處理:上述已經(jīng)探討了,RTC與SIP互通需要媒體層協(xié)議的轉(zhuǎn)換畸悬。
- 加速線路:媒體在服務(wù)間的中轉(zhuǎn)侧甫,丟包以及延遲的處理。就近接入蹋宦、節(jié)點選擇等披粟。
ARCall-RTC與SIP互通解決方案
為何制定RTC與SIP互通的開源方案
RTC與SIP互通是基于市場的呼叫中心解決方案的需求,隨著RTC技術(shù)的廣泛應(yīng)用冷冗,各個環(huán)節(jié)的應(yīng)用需求層出不窮守屉,傳統(tǒng)的SIP呼叫中心也需要升級技術(shù)方案,我們在給貝殼找房蒿辙,浙江省公安廳等大型企業(yè)提供技術(shù)方案后進行項目分析發(fā)現(xiàn):我們在提供服務(wù)時客戶更關(guān)注的是自己的業(yè)務(wù)流程拇泛,如何讓客戶快速的集成滨巴,以及集成后靈活的改造方案來應(yīng)對多變的需求,是項目能夠順利快速推進的重要因素俺叭。
anyRTC全球超過200數(shù)據(jù)中心恭取,覆蓋200+國家和地區(qū),國內(nèi)線路涵蓋華東熄守、華南蜈垮、華北、西南裕照、東北攒发、西北、香港晋南、臺灣惠猿。客戶就近接入搬俊、根據(jù)智能算法紊扬,給出最優(yōu)路徑。
開源說明
開源的RTC和SIP互通的網(wǎng)關(guān)代碼唉擂,其中使用了三大模塊:RTC餐屎,RTM,SIP玩祟,相關(guān)的模塊以庫的形式提供腹缩,支持Linux和Windows平臺。
開源的網(wǎng)關(guān)代碼支持與ArCall開源項目互通空扎,支持呼叫流程制定和修改藏鹊。
開源的網(wǎng)關(guān)支持三種模式:
-
IVR呼叫中心模塊
適用于呼叫中心,手機/網(wǎng)頁/小程序客戶端呼入IVR转锈,通過語音導(dǎo)航實現(xiàn)相應(yīng)的業(yè)務(wù)流程盘寡。
-
SIP主動呼RTC模塊
適用于客戶坐席主動呼叫消費者,支持SIP呼叫客戶端撮慨,支持SIP直呼手機號等竿痰。
-
RTC直呼SIP座機
適用于企業(yè)內(nèi)外網(wǎng)互通,通過APP客戶端直接呼叫員工或指定坐席的工位座機砌溺。
呼叫流程
這里用到了anyRTC的實時消息SDK影涉,請查看詳細(xì)API說明
項目地址
1,狀態(tài)流轉(zhuǎn)圖
呼叫邀請中规伐,主叫可以通過 LocalInvitation 對象提供的 getState 方法查詢當(dāng)前呼叫邀請的有關(guān)狀態(tài)蟹倾;被叫可以通過 SDK 返回的 RemoteInvitation對象的 getState方法查詢當(dāng)前呼叫邀請的相關(guān)狀態(tài)。
LocalInvitationState
下圖描述了與主叫相關(guān)的呼叫邀請狀態(tài)流轉(zhuǎn)圖:
RemoteInvitationState
下圖描述了與被叫相關(guān)的呼叫邀請狀態(tài)流轉(zhuǎn)圖:
2,API 時序圖
取消已發(fā)送呼叫邀請
接受/拒絕呼叫邀請
注意事項及限制條件
- 主叫設(shè)置的呼叫邀請 content 的字符串長度:8 KB鲜棠,格式為 UTF-8肌厨。
- 被叫設(shè)置的呼叫邀請響應(yīng) response 的字符串長度:8 KB,格式為 UTF-8岔留。
- 呼叫邀請的 channel ID 僅用于與老信令互通時設(shè)置夏哭。設(shè)置的 channel ID 必須與老信令 SDK 設(shè)置相同才能實現(xiàn)互通。字符串長度:64 字節(jié)献联,格式為 UTF-8。
結(jié)語
SIP與RTC互通何址,我們完成了一整套的呼叫里逆,通信流程,以及異常處理用爪。更多場景玩法等待您去挖掘~
聯(lián)系我們
聯(lián)系電話:021-65650071
QQ咨詢?nèi)海?80477436
ArCall技術(shù)交流群:597181019
咨詢郵箱:hi@dync.cc
技術(shù)問題:開發(fā)者論壇
獲取更多幫助前往:www.anyrtc.io