RTC與SIP互通所涉及的問題
要想讓RTC與SIP互通,要解決兩個(gè)層面的問題:信令層和媒體層。
兩個(gè)網(wǎng)絡(luò)使用的信令機(jī)制不同,所以要進(jìn)行信令的轉(zhuǎn)換,才能完成媒體的協(xié)商,建立會(huì)話。媒體層要完成編碼的轉(zhuǎn)換,以及rtp/srtp轉(zhuǎn)換等功能。
優(yōu)質(zhì)通信三要素
- 信令層的協(xié)商:穩(wěn)定的信令是實(shí)現(xiàn)RTC與SIP互通的基礎(chǔ),保達(dá)、異常處理、斷線重連等機(jī)制。
- SIP協(xié)議與RTC協(xié)議互轉(zhuǎn)的處理:上述已經(jīng)探討了,RTC與SIP互通需要媒體層協(xié)議的轉(zhuǎn)換。
- 加速線路:媒體在服務(wù)間的中轉(zhuǎn),丟包以及延遲的處理。就近接入、節(jié)點(diǎn)選擇等。
ARCall-RTC與SIP互通解決方案
為何制定RTC與SIP互通的開源方案
RTC與SIP互通是基于市場(chǎng)的呼叫中心解決方案的需求,隨著RTC技術(shù)的廣泛應(yīng)用,各個(gè)環(huán)節(jié)的應(yīng)用需求層出不窮,傳統(tǒng)的SIP呼叫中心也需要升級(jí)技術(shù)方案,我們?cè)诮o貝殼找房,浙江省公安廳等大型企業(yè)提供技術(shù)方案后進(jìn)行項(xiàng)目分析發(fā)現(xiàn):我們?cè)谔峁┓?wù)時(shí)客戶更關(guān)注的是自己的業(yè)務(wù)流程,如何讓客戶快速的集成,以及集成后靈活的改造方案來應(yīng)對(duì)多變的需求,是項(xiàng)目能夠順利快速推進(jìn)的重要因素。
anyRTC全球超過200數(shù)據(jù)中心,覆蓋200+國(guó)家和地區(qū),國(guó)內(nèi)線路涵蓋華東、華南、華北、西南、東北、西北、香港、臺(tái)灣。客戶就近接入、根據(jù)智能算法,給出最優(yōu)路徑。
開源說明
開源代碼地址
開源的RTC和SIP互通的網(wǎng)關(guān)代碼,其中使用了三大模塊:RTC,RTM,SIP,相關(guān)的模塊以庫(kù)的形式提供,支持linux和windows平臺(tái)。
開源的網(wǎng)關(guān)代碼支持與ArCall開源項(xiàng)目互通,支持呼叫流程制定和修改。
開源的網(wǎng)關(guān)支持三種模式:
- IVR呼叫中心模塊適用于呼叫中心,手機(jī)/網(wǎng)頁/小程序客戶端呼入IVR,通過語音導(dǎo)航實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)流程。
- SIP主動(dòng)呼RTC模塊適用于客戶坐席主動(dòng)呼叫消費(fèi)者,支持SIP呼叫客戶端,支持SIP直呼手機(jī)號(hào)等。
- RTC直呼SIP座機(jī)適用于企業(yè)內(nèi)外網(wǎng)互通,通過App客戶端直接呼叫員工或指定坐席的工位座機(jī)。
呼叫流程
這里用到了anyRTC的實(shí)時(shí)消息SDK,請(qǐng)查看詳細(xì)API說明
項(xiàng)目地址
1,狀態(tài)流轉(zhuǎn)圖
呼叫邀請(qǐng)中,主叫可以通過 LocalInvitation 對(duì)象提供的 getState 方法查詢當(dāng)前呼叫邀請(qǐng)的有關(guān)狀態(tài);被叫可以通過 SDK 返回的 RemoteInvitation對(duì)象的 getState方法查詢當(dāng)前呼叫邀請(qǐng)的相關(guān)狀態(tài)。
LocalInvitationState
下圖描述了與主叫相關(guān)的呼叫邀請(qǐng)狀態(tài)流轉(zhuǎn)圖:
RemoteInvitationState
下圖描述了與被叫相關(guān)的呼叫邀請(qǐng)狀態(tài)流轉(zhuǎn)圖:
2,API 時(shí)序圖
取消已發(fā)送呼叫邀請(qǐng)
接受/拒絕呼叫邀請(qǐng)
注意事項(xiàng)及限制條件
- 主叫設(shè)置的呼叫邀請(qǐng) content 的字符串長(zhǎng)度:8 KB,格式為 UTF-8。
- 被叫設(shè)置的呼叫邀請(qǐng)響應(yīng) response 的字符串長(zhǎng)度:8 KB,格式為 UTF-8。
- 呼叫邀請(qǐng)的 channel ID 僅用于與老信令互通時(shí)設(shè)置。設(shè)置的 channel ID 必須與老信令 SDK 設(shè)置相同才能實(shí)現(xiàn)互通。字符串長(zhǎng)度:64 字節(jié),格式為 UTF-8。
結(jié)語
SIP與RTC互通,我們完成了一整套的呼叫,通信流程,以及異常處理。更多場(chǎng)景玩法等待您去挖掘~






