一、概述
雙向視頻類產(chǎn)品中,設(shè)備端主動(dòng)發(fā)起呼叫的場(chǎng)景分為兩種:設(shè)備當(dāng)前無(wú)用戶訪問(wèn)和設(shè)備當(dāng)前有用戶訪問(wèn)。兩種場(chǎng)景的處理流程不同,需根據(jù)實(shí)際連接狀態(tài)選擇對(duì)應(yīng)實(shí)現(xiàn)方式,核心依賴 TUTK P2P 音視頻傳輸API和消息推送通道。
二、場(chǎng)景一:設(shè)備當(dāng)前無(wú)用戶訪問(wèn)
設(shè)備未被任何APP連接時(shí),因手機(jī)端通常不攜帶固定UID,需通過(guò)消息服務(wù)器發(fā)起呼叫請(qǐng)求,引導(dǎo)用戶打開(kāi)APP并建立P2P連接,進(jìn)而實(shí)現(xiàn)雙向視頻。
支持的消息推送通道:
支持的消息推送通道:
- TUTK 原生:KPNS(TUTK 推送服務(wù))
- 系統(tǒng)級(jí)推送:蘋果 APNS(iOS)、谷歌 FCM(Android 海外)
- 國(guó)內(nèi)廠商推送:華為 HMS Push、小米 MI Push、OPPO Push、vivo Push 等
- 自定義推送:廠商自建消息通道

圖 1:設(shè)備無(wú)用戶訪問(wèn)時(shí)的呼叫流程示意圖
核心流程:
- 設(shè)備上線報(bào)到(可選):設(shè)備啟動(dòng)后連接 TUTK 服務(wù)器完成上線(設(shè)備通常長(zhǎng)期在線,此步驟非必需),同步設(shè)備狀態(tài)和綁定的APP賬號(hào)信息。
- 設(shè)備廣播呼叫消息:設(shè)備觸發(fā)呼叫事件(如觸發(fā)傳感器、用戶按鍵),通過(guò)預(yù)設(shè)的消息通道(如 KPNS/APNS)向綁定的手機(jī)端發(fā)送呼叫通知,消息需包含設(shè)備 UID、呼叫類型等關(guān)鍵信息。
- 用戶響應(yīng)呼叫:手機(jī)端收到推送消息,用戶點(diǎn)擊消息后喚醒 APP(需配置APP的推送喚醒權(quán)限)。
- APP 發(fā)起 P2P 連線:APP 啟動(dòng)后,讀取消息中的設(shè)備 UID,調(diào)用 TUTK P2P SDK 接口發(fā)起連接請(qǐng)求,完成身份認(rèn)證和 P2P 隧道建立。
- 雙向音視頻傳輸:P2P 連線成功后,APP 與設(shè)備端分別啟動(dòng)音視頻采集、編碼,通過(guò) SDK 提供的音視頻傳輸API互相發(fā)送數(shù)據(jù),實(shí)現(xiàn)實(shí)時(shí)通話。
- 通話結(jié)束掛斷:任意一方觸發(fā)掛斷操作,APP 和設(shè)備端停止音視頻采集,釋放 P2P 連接資源。
三、場(chǎng)景二:設(shè)備當(dāng)前有用戶訪問(wèn)
設(shè)備已被 APP 成功連接(用戶正在查看實(shí)時(shí)視頻或已建立會(huì)話),此時(shí)無(wú)需通過(guò)消息推送(也可以設(shè)計(jì)為同時(shí)呼叫其他綁定此設(shè)備的用戶,參考場(chǎng)景一),直接通過(guò) P2P 通道發(fā)送控制指令即可觸發(fā)雙向視頻切換。
核心優(yōu)勢(shì):
核心優(yōu)勢(shì):
- 無(wú)需依賴外部消息通道,響應(yīng)速度快;
- SDK v3.3+ 支持全雙工通道,無(wú)需額外建立新通道,直接使用現(xiàn)有 0 通道傳輸音視頻數(shù)據(jù)。
核心流程:
- 設(shè)備觸發(fā)呼叫事件:設(shè)備需發(fā)起雙向視頻(如用戶按下通話鍵),此時(shí)已存在有效的 P2P 連接(APP 已訪問(wèn)設(shè)備)。
- 設(shè)備發(fā)送控制指令:設(shè)備通過(guò) avSendIOCtrl 接口發(fā)送雙向視頻呼叫指令(如 IOTYPE_USER_IPCAM_CALL_REQ)給已連接的 APP。
- APP 響應(yīng)指令:APP 通過(guò) avRecvIOCtrl 接口接收指令后,自動(dòng)啟動(dòng)本地音視頻采集、編碼模塊。
- 全雙工音視頻傳輸:APP 與設(shè)備端通過(guò)現(xiàn)有 P2P 通道(0 通道),使用音視頻傳輸API互相發(fā)送數(shù)據(jù),實(shí)現(xiàn)雙向通話(無(wú)需額外創(chuàng)建通道)。
- 通話結(jié)束/切換:掛斷后,APP 可切換回單向查看模式(停止本地音視頻發(fā)送),或直接釋放連接。
四、對(duì)接流程
P2P SDK 為雙向視頻呼叫流程的核心依賴,需根據(jù)場(chǎng)景組合使用,具體請(qǐng)參考以下章節(jié):
