System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及實時音視頻通話,具體是一種基于自定義信令的點對點音視頻通話系統。
技術介紹
1、webrtc(web?real-time?communications)是一種用于在瀏覽器之間實現實時音頻、視頻和數據傳輸的技術。它允許開發者利用javascript?api和html5來創建實時通信應用程序,如語音電話、視頻聊天和文件共享等。它基于網絡傳輸協議udp和tcp,使用stun(session?traversal?utilities?for?nat)和turn(traversal?using?relay?nat)協議來穿越各種類型的網絡地址轉換(nat)設備,并實現端到端加密以保護通信內容安全。webrtc可以在多種平臺上運行,包括windows、macos、linux、android和ios等操作系統。
2、mqtt是一種基于發布/訂閱模式的輕量級消息傳輸協議,具備以下優點:簡單容易實現、支持qos、輕量且省帶寬、數據無關(不關心payload數據格式)、有持續的會話感知能力。它通過發布/訂閱模式支持高效的數據通信,實現實時的數據推送,而無需設備不斷地輪詢服務器,從而降低了網絡開銷和功耗。
技術實現思路
1、本專利技術提供了一種基于自定義信令的點對點音視頻通話系統,旨在利于自定義信令協議輕量、靈活易擴展等特點,實現縮短通話建立時延和減少信令面帶寬浪費的目的。
2、本專利技術為實現上述目的所采用的技術方案是:
3、一種基于自定義信令的點對點音
4、選擇通話對象發起音視頻通話,設置主叫狀態機狀態切換,存儲通話對象用戶名,創建peerconnection;創建本地會話描述對象sdp并將其放到invite消息,將invite消息發送到被叫端;
5、當接收到100trying消息時,將ice候選對象icecandidate放到candidate消息中并發送到被叫端,開始ice候選對象交換;
6、當接收到100trying消息并且ice及sdp均協商成功后進行主叫狀態機狀態切換;
7、當接收到180ringing消息后,進行主叫狀態機狀態切換,完成通話準備,等待被叫接聽。
8、所述主叫狀態機包含idle、waiting、progressing、connected、calling五種狀態,其狀態切換具體為:
9、idle發送invite消息轉到waiting;
10、waiting經過兩個超時或者收到486busy消息轉到idle;
11、waiting收到100trying消息且ice和sdp協商均成功轉到progressing;
12、progressing收到180ringing消息轉到connected;
13、connected收到200ok(type?4)消息轉到calling;
14、calling發出bye消息或者收到bye消息轉到idle;
15、connected、progressing或waiting發出bye消息回到idle;
16、connected、progressing或waiting收到603decline消息回到idle。
17、只有主叫端的兩個狀態機都處于idle態時,才能發起新通話或接受新通話請求。
18、一種基于自定義信令的點對點音視頻通話方法,包括主叫端和被叫端,所述被叫端執行以下步驟:
19、當接收到invite消息時,如果被叫狀態機處于idle態,則設置被叫狀態機狀態切換,存儲通話對象用戶名,創建peerconnection;設置遠端sdp,創建本地sdp并將其放到100trying消息,將100trying消息發送到主叫端,設置被叫狀態機狀態切換;
20、設置完本地sdp后,將icecandidate放到candidate消息中并發送到主叫端,開始ice候選對象交換;
21、在ice及sdp均協商成功后發送180ringing消息,并進行被叫狀態機狀態切換,同時點擊接聽,進行音視頻通話。
22、所述被叫狀態機包含idle、initial、progressing、connected、calling五種狀態,其狀態切換具體為:
23、idle收到invite消息轉到initial;
24、initial發送100trying消息轉到progressing;
25、progressing在ice及sdp均協商成功且發送180ringing消息后轉到connected;
26、connected發送200ok(type?4)消息后轉到calling;
27、calling發送bye消息或收到bye消息轉到idle;
28、connected、progressing或initial發送603decline消息回到idle;
29、connected、progressing或initial收到bye回到idle。
30、只有被叫端的兩個狀態機都處于idle態時,才能發起新通話或接受新通話請求。
31、一種基于自定義信令的點對點音視頻通話系統,包括服務器和兩個客戶端,兩個客戶端分別作為主叫端和被叫端,其中:
32、客戶端,用于通過服務器進行信令交互,實現音視頻通話;
33、服務器,用于在兩個客戶端之間轉發信令報文和icecandidate。
34、所述服務器包括:
35、mqtt服務器,用于在兩個客戶端之間轉發信令報文;
36、ice服務器,用于向兩個客戶端提供icecandidate。
37、所述客戶端包括:
38、mqtt客戶端模塊,用于與webrtc客戶端模塊進行信息交互,以及調用自定義信令封裝解析模塊進行封裝自定義信令和解析自定義信令;
39、自定義信令封裝解析模塊,用于按照自定義信令格式對mqtt載荷域進行編碼發送和接收解碼;
40、webrtc客戶端模塊,用于與mqtt客戶端模塊進行信息交互;
41、狀態機模塊,用于根據收發的信令進行客戶端的狀態轉換。
42、本專利技術具有以下有益效果及優點:
43、1、實現了一種輕量化的點對點音視頻通話系統,由于自定義信令所以不需要專門的協議服務器做協議處理,降低了系統的復雜度。
44、2、在客戶端實現了主叫狀態機和被叫狀態機,用以維護客戶端的會話狀態,從而支持檢測對端忙、檢測對端長時間未接聽等功能。
45、3、以mqtt協議為基礎實現自定義信令,mqtt是二進制協議,使得自定義信令天然具有加密屬性;相比于sip協議mqtt具有極簡的頭部,加之采用二進制形式編碼載荷本文檔來自技高網...
【技術保護點】
1.一種基于自定義信令的點對點音視頻通話方法,包括主叫端和被叫端,其特征在于,所述主叫端執行以下步驟:
2.根據權利要求1所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,所述主叫狀態機包含IDLE、WAITING、PROGRESSING、CONNECTED、CALLING五種狀態,其狀態切換具體為:
3.根據權利要求1所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,只有主叫端的兩個狀態機都處于IDLE態時,才能發起新通話或接受新通話請求。
4.一種基于自定義信令的點對點音視頻通話方法,包括主叫端和被叫端,其特征在于,所述被叫端執行以下步驟:
5.根據權利要求4所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,所述被叫狀態機包含IDLE、INITIAL、PROGRESSING、CONNECTED、CALLING五種狀態,其狀態切換具體為:
6.根據權利要求4所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,只有被叫端的兩個狀態機都處于IDLE態時,才能發起新通話或接受新通話請求。
7.一種基于自定義信令的點對點音視頻通話系統,其特征在于,包括服務器和兩個客戶端,兩個客戶端分別作為主叫端和被叫端,其中:
8.根據權利要求7所述的一種基于自定義信令的點對點音視頻通話系統,其特征在于,所述服務器包括:
9.根據權利要求7所述的一種基于自定義信令的點對點音視頻通話系統,其特征在于,所述客戶端包括:
...【技術特征摘要】
1.一種基于自定義信令的點對點音視頻通話方法,包括主叫端和被叫端,其特征在于,所述主叫端執行以下步驟:
2.根據權利要求1所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,所述主叫狀態機包含idle、waiting、progressing、connected、calling五種狀態,其狀態切換具體為:
3.根據權利要求1所述的一種基于自定義信令的點對點音視頻通話方法,其特征在于,只有主叫端的兩個狀態機都處于idle態時,才能發起新通話或接受新通話請求。
4.一種基于自定義信令的點對點音視頻通話方法,包括主叫端和被叫端,其特征在于,所述被叫端執行以下步驟:
5.根據權利要求4所述的一種基于自定義信令的點對點音視...
【專利技術屬性】
技術研發人員:張守晨,于波,劉呈杰,王衛,趙春一,王靜,劉淳文,
申請(專利權)人:中國科學院沈陽計算技術研究所有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。