專利名稱:視頻監(jiān)控會話方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻監(jiān)控的技術(shù)領(lǐng)域,具體說是一種在頭端設(shè)備和監(jiān)控客戶端之間進(jìn) 行流媒體傳輸?shù)囊曨l監(jiān)控會話方法。
背景技術(shù):
視頻監(jiān)控會話協(xié)議(VideoSurveillance Session Protocol,簡稱 VSSP,下同)是 用于視頻監(jiān)控領(lǐng)域的信令控制協(xié)議。通過以下3個方面來支持視頻通信的創(chuàng)建、修改和結(jié) 束媒體能力,信令可攜帶視頻監(jiān)控會話的媒體描述信息(Session Media Description,簡 稱SMD,下同),確定視頻監(jiān)控頭端設(shè)備的媒體能力,包括通道信息和媒體參數(shù)等;會話創(chuàng)建, 在視頻監(jiān)控客戶端(主叫)和視頻監(jiān)控設(shè)備(被叫)之間創(chuàng)建視頻監(jiān)控會話;會話管理,包括 視頻監(jiān)控會話的轉(zhuǎn)接、會話終止和會話參數(shù)的修改。視頻監(jiān)控會話協(xié)議是一種二進(jìn)制編碼格式的協(xié)議,承載會話媒體描述(Session Media Description)。會話媒體描述是一種類似于會話描述協(xié)議Cession Description ftx)t0C0l,RFC4566)的二進(jìn)制協(xié)議,提供媒體信息的描述。視頻監(jiān)控會話協(xié)議除了提供給基 本的會話控制功能以外,還提供了會話內(nèi)的信令消息,用以提供心跳檢測、參數(shù)配置、抓拍、 云臺控制功能。視頻監(jiān)控會話方法是在視頻監(jiān)控會話協(xié)議基礎(chǔ)之上,連接頭端設(shè)備和監(jiān)控客戶 端,并對流媒體傳輸進(jìn)行控制的方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種在頭端設(shè)備和監(jiān)控客戶端之間進(jìn)行流媒體 傳輸?shù)囊曨l監(jiān)控會話方法。本發(fā)明為解決公知技術(shù)中存在的技術(shù)問題所采取的技術(shù)方案是
本發(fā)明的視頻監(jiān)控會話方法,其中監(jiān)控客戶端通過了設(shè)備訪問的鑒權(quán)和認(rèn)證,獲取了 頭端設(shè)備的訪問號碼、頭端設(shè)備的信令I(lǐng)P地址和端口號,且監(jiān)控客戶端支持頭端設(shè)備的音 視頻媒體格式,當(dāng)監(jiān)控客戶端發(fā)送消息時以用戶代理客戶端方式運(yùn)行,頭端設(shè)備接收消息 時以用戶代理服務(wù)器端方式運(yùn)行,包括以下步驟
(1)監(jiān)控客戶端發(fā)送會話邀請,即INVITE消息,監(jiān)控客戶端首先與頭端設(shè)備建立一個 TCP連接,并在TCP連接上發(fā)送INVITE消息,發(fā)起會話邀請,監(jiān)控客戶端在INVITE消息中加 入會話媒體描述信息SMD,告知頭端設(shè)備其自己的媒體能力,監(jiān)控客戶端發(fā)送INVITE消息 后,等待頭端設(shè)備回復(fù)消息,確定是否成功接收INVITE消息;
(2)頭端設(shè)備回復(fù)200響應(yīng),頭端設(shè)備收到會話邀請后,提取監(jiān)控客戶端INVITE消息中 的設(shè)備通道號,將該通道的媒體能力填寫到會話媒體描述SMD中,隨200消息返回至監(jiān)控客 戶端;
(3)頭端設(shè)備發(fā)送音頻媒體流,監(jiān)控客戶端收到200消息相應(yīng)后,提取會話媒體描述 SMD中的媒體能力信息,準(zhǔn)備建立媒體連接,若監(jiān)控客戶端在INVITE消息中加入了會話媒體描述信息SMD,則監(jiān)控客戶端工作在媒體流監(jiān)聽模式,由頭端設(shè)備從SMD中提取監(jiān)控客戶 端的媒體流監(jiān)聽地址和端口號并發(fā)起TCP媒體連接;否則頭端設(shè)備會工作在媒體流監(jiān)聽模 式,監(jiān)控客戶端會從SMD中提取頭端設(shè)備媒體通道的TCP監(jiān)聽地址和端口號,隨即向該地址 和端口號上先后發(fā)起兩個TCP媒體連接,以接收音視頻媒體流;監(jiān)控客戶端在獲取媒體流 前,會分別在音視頻TCP連接上發(fā)送一個媒體流的請求消息,該請求消息攜帶了本次媒體 流的會話標(biāo)識(Call-ID),頭端設(shè)備收到該請求消息后,會通過會話標(biāo)識將媒體流與本次會 話建立關(guān)聯(lián);
(4)監(jiān)控客戶端發(fā)送BYE消息終止會話,當(dāng)監(jiān)控客戶端想結(jié)束本次會話時,可以發(fā)送 BYE消息,準(zhǔn)備結(jié)束本次會話;
(5)頭端設(shè)備回復(fù)BYE消息的200響應(yīng),頭端設(shè)備收到監(jiān)控客戶端的BYE消息后,即可 準(zhǔn)備結(jié)束本次會話,向監(jiān)控客戶端發(fā)送200響應(yīng)后,頭端設(shè)備可以清除本次會話的所有資 源,斷開媒體TCP連接和信令TCP連接;客戶端收到200響應(yīng)后,清除本次會話的所有資源, 斷開媒體TCP連接和信令TCP連接,若客戶端發(fā)送BYE消息后,在一段時間內(nèi)沒有收到200 響應(yīng),則客戶端應(yīng)主動清除本次會話的所有資源。上述客戶端接收BYE消息200響應(yīng)的延遲時間為30秒。上述方法包括VSSP協(xié)議棧、會話管理和用戶代理;VSSP協(xié)議基于TCP協(xié)議,在遇 到TCP擁塞的情況下,VSSP協(xié)議進(jìn)行干涉,提供了定時器操作,用以結(jié)束會話,VSSP協(xié)議棧 又包括TCP層,負(fù)責(zé)協(xié)議的發(fā)送與接收;協(xié)議字段解析層,即Syntax層,負(fù)責(zé)協(xié)議包的解包 與打包;對話層,即Dialog層,負(fù)責(zé)信令控制邏輯,Dialog為信令實(shí)體,代表兩個用戶代理 進(jìn)行會話時建立的信令關(guān)系;會話管理實(shí)體kssion是Dialog層的使用者,Dialog負(fù)責(zé) Session的建立、狀態(tài)改變與銷毀;用戶代理her Agent為邏輯實(shí)體,對上提供人機(jī)操作接 口,下層包裝了會話管理kssion實(shí)體、對話Dialog實(shí)體和媒體流實(shí)體;一個Dialog由三 個關(guān)鍵元素構(gòu)成,即呼叫標(biāo)識Call-ID、主叫標(biāo)識From、被叫標(biāo)識To。在頭端設(shè)備與多個監(jiān)控客戶端之間設(shè)置流媒體服務(wù)器,一個頭端設(shè)備被多個監(jiān)控 客戶端所訪問,流媒體服務(wù)器中包含多個群組會話,每個群組會話管理了多個監(jiān)控客戶端 的會話和一個頭端設(shè)備會話。采用十進(jìn)制12位即12字節(jié)的全局統(tǒng)一標(biāo)識碼,作為協(xié)議字段T0、Fr0m的取值,其 格式為類別號+設(shè)備號+通道號,其中類別號為1位,設(shè)備號采用8位數(shù)字,通道號采用3 位數(shù)字;
類別號的取值定義如下
有效值選取區(qū)間為W-9],類別號=9,代表一般的監(jiān)控客戶端,類別號=1,代表一般設(shè) 備;其它取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在; 設(shè)備號的取值定義如下 有效值選取區(qū)間為
;
其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存
在;
通道號取值如下
有效值選取區(qū)間為
或[#*];
其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在。頭端設(shè)備連接流媒體服務(wù)器時,流媒體服務(wù)器工作在監(jiān)聽模式,頭端設(shè)備工作在 主動連接模式,頭端設(shè)備與流媒體服務(wù)器之間的連接步驟為
(1)頭端設(shè)備發(fā)起INVITE會話請求,頭端設(shè)備會將自己的媒體能力通過SMD發(fā)送至流 媒體服務(wù)器,流媒體服務(wù)器收到SMD后會預(yù)先分配媒體流資源,以在媒體流到來后能夠立 即進(jìn)行媒體處理;
(2)流媒體服務(wù)器回復(fù)200消息響應(yīng),流媒體服務(wù)器會在回復(fù)的SMD中加入監(jiān)聽每一個 通道每一個媒體流的監(jiān)聽IP地址和端口號,媒體流請求由頭端設(shè)備發(fā)起;
(3)頭端設(shè)備依次發(fā)起通道000的音頻和視頻的媒體流請求,對于TCP連接,頭端設(shè)備 可以在媒體流的第一個幀中加入會話媒體流會話關(guān)聯(lián)信息,這里應(yīng)使用Call-ID作為媒體 流與會話的關(guān)聯(lián)鍵;
(4)頭端設(shè)備依次發(fā)起通道001的音頻和視頻的媒體流請求。監(jiān)控客戶端連接流媒體服務(wù)器時,流媒體服務(wù)器工作在監(jiān)聽模式,流媒體服務(wù)器 與監(jiān)控客戶端之間的連接步驟為
(1)監(jiān)控客戶端向流媒體服務(wù)器發(fā)起INVITE請求,流媒體服務(wù)器收到INVITE請求后會 根據(jù)被叫號碼,即頭端設(shè)備+通道號,尋找相關(guān)的群組會話,找到頭端設(shè)備所屬的群組會話 后,建立與監(jiān)控客戶端的會話,并將該會話加入該群組會話中;
(2)流媒體服務(wù)器回復(fù)200消息響應(yīng);
(3)會話建立后由監(jiān)控客戶端向流媒體服務(wù)器發(fā)起音視頻媒體流的TCP連接,TCP連接 建立后,監(jiān)控客戶端會發(fā)送一個媒體流請求頭,流媒體服務(wù)器收到該請求頭后,會建立媒體 流與會話的關(guān)聯(lián)關(guān)系,并轉(zhuǎn)發(fā)相應(yīng)的頭端設(shè)備通道的音視頻媒體流。通過流媒體服務(wù)器向頭端設(shè)備發(fā)送REINVITE消息改變媒體屬性,頭端設(shè)備與流 媒體服務(wù)器建立會話連接后,若此時沒有監(jiān)控客戶端或者錄像設(shè)備訪問流媒體服務(wù)器獲取 該設(shè)備的媒體轉(zhuǎn)發(fā)流,則可以將頭端設(shè)備的媒體流發(fā)送暫停,在REINVITE消息的SMD會話 媒體描述中,可以將IP地址設(shè)定為“0. 0. 0. 0”,則頭端設(shè)備將停止向該地址發(fā)送媒體流,但 會話并不拆除,恢復(fù)媒體流發(fā)送時,只需再次通過發(fā)送REINVITE消息,將SMD中的IP地址 恢復(fù)為初始有效值。監(jiān)控客戶端與頭端設(shè)備之間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù) 器以代理方式轉(zhuǎn)發(fā)MESSAGE消息,MESSAGE消息的發(fā)送是獨(dú)立于任何一個會話的,MESSAGE 消息本身也不會引起一個新的VSSP會話的創(chuàng)建,MESSAGE消息的發(fā)送采用獨(dú)立的Call-ID, 不與任何會話關(guān)聯(lián),每個新的MESSAGE消息采用新的Call-ID,200消息響應(yīng)使用MESSAGE 請求的Call-ID,以下是流媒體服務(wù)器代理模式下的MESSAGE消息通話過程
(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容可以是文本內(nèi)容也可 以是任何自定義格式的2進(jìn)制內(nèi)容;
(2)流媒體服務(wù)器收到MESSAGE消息后,根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè) 備轉(zhuǎn)發(fā)MESSAGE消息,流媒體服務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消 息,同時將該去話TCP連接與之前的來話TCP連接建立關(guān)聯(lián),該MESSAGE消息的Call-ID與 收到的MESSAGE消息的Call-ID相同;(3)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息響應(yīng),200消息響應(yīng)不攜帶消息體 Body ;
(4)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息相到主叫監(jiān)控客戶端,主叫監(jiān)控客戶端收到200消 息后結(jié)束本次即時消息通話,關(guān)閉TCP連接,或者保持此TCP連接,用于發(fā)送和接收新的 MESSAGE 消息;
(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息轉(zhuǎn)發(fā)至監(jiān)控客戶端;
(7)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200消息響應(yīng),當(dāng)監(jiān)控客戶端認(rèn)為可以結(jié)束 本次即時消息通話,即關(guān)閉該TCP連接;
(8)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息響應(yīng),當(dāng)發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,隨即關(guān)閉 與頭端設(shè)備的TCP連接。監(jiān)控客戶端與頭端設(shè)備之間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù) 器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā)MESSAGE消息,流媒體服務(wù)器收到主叫的MESSAGE消息后,立即回復(fù) 200響應(yīng),然后拷貝MESSAGE消息內(nèi)容和消息類型,復(fù)制到一個新的MESSAGE消息發(fā)送到被 叫,以下是流媒體服務(wù)器網(wǎng)關(guān)轉(zhuǎn)發(fā)模式下的MESSAGE消息通話過程
(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容為文本內(nèi)容或其他二 進(jìn)制內(nèi)容;
(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);
(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);
(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;
(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);
(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客 戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;
(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),至此,監(jiān)控客戶端結(jié)束本次即時消 息通話,即可關(guān)閉該TCP連接,流媒體服務(wù)器發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,也隨即關(guān) 閉與頭端設(shè)備的TCP連接。流媒體服務(wù)器始終處于監(jiān)聽狀態(tài),頭端設(shè)備預(yù)先創(chuàng)建一個MESSAGE通信連接,該 MESSAGE消息并不被轉(zhuǎn)發(fā),只起TCP通信鏈路建立的作用,流媒體服務(wù)器會記錄該MESSAGE的消息體類型,發(fā)往該頭端設(shè)備的所有此類型的MESSAGE消息全部從此TCP連接進(jìn)行轉(zhuǎn)發(fā), MESSAGE消息通話過程為
(1)頭端設(shè)備首先向流媒體服務(wù)器發(fā)送MESSAGE消息,消息體類型為1,表示來自監(jiān)控 客戶端的向該頭端設(shè)備發(fā)起的所有MESSAGE消息,只要消息體類型為1,則MESSAGE消息將 被轉(zhuǎn)發(fā)至該頭端設(shè)備,頭端設(shè)備會周期性發(fā)送MESSAGE消息,以檢測通信鏈路的是否正常 連接,如果鏈路因故障終端連接,則頭端設(shè)備會周期性主動發(fā)起新的該類型的MESSAGE消 息以重新建立連接;
(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);
(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);
(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;
(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);
(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客 戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;
(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),監(jiān)控客戶端關(guān)閉此TCP通信連接, 流媒體服務(wù)器檢測到此連接關(guān)閉后并不試圖關(guān)閉與頭端設(shè)備的連接,僅解除客戶端TCP連 接與頭端TCP連接的對應(yīng)關(guān)系,并清除相關(guān)資源。本發(fā)明具有的優(yōu)點(diǎn)和積極效果是
本發(fā)明的視頻監(jiān)控會話方法能夠?qū)崿F(xiàn)對頭端設(shè)備與監(jiān)控客戶端直聯(lián)時的控制,同時能 夠?qū)崿F(xiàn)多臺監(jiān)控客戶端同時訪問頭端設(shè)備并采用流媒體服務(wù)器時的設(shè)備間的連接控制。本 發(fā)明的視頻監(jiān)控會話方法對應(yīng)于具有功能邏輯獨(dú)立、易于擴(kuò)展的、具有高可伸縮性視頻監(jiān) 控平臺架構(gòu),從而能夠滿足大規(guī)模高清網(wǎng)絡(luò)視頻監(jiān)控應(yīng)用的需求。
圖1是本發(fā)明的視頻監(jiān)控會話方法的步驟示意圖; 圖2是視頻監(jiān)控會話協(xié)議的結(jié)構(gòu);
圖3為兩個用戶代理建立點(diǎn)對點(diǎn)會話時的會話連接關(guān)系;
圖4為通過流媒體服務(wù)器會話時的會話連接關(guān)系;
圖5是本發(fā)明的視頻監(jiān)控會話方法中不同類型消息的對照表;
圖6是本發(fā)明的視頻監(jiān)控會話方法中消息響應(yīng)的對照表;
圖7是本發(fā)明的視頻監(jiān)控會話方法中會話請求的編碼格式;
圖8為本發(fā)明的視頻監(jiān)控會話方法中頭端設(shè)備與流媒體服務(wù)器建立會話的示意圖;圖9為本發(fā)明的視頻監(jiān)控會話方法中監(jiān)控客戶端與流媒體服務(wù)器建立會話的示意圖; 圖10是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以代理模式轉(zhuǎn)發(fā)MESSAGE消息的 示意圖11是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā)MESSAGE消 息的示意圖12是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā)MESSAGE消 息的另一種示意圖13是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器與頭端設(shè)備斷開時的示意圖; 圖14是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器與監(jiān)控客戶端斷開時的示意圖。
具體實(shí)施例方式以下參照附圖及實(shí)施例對本發(fā)明進(jìn)行詳細(xì)的說明。圖1是本發(fā)明的視頻監(jiān)控會話方法的步驟示意圖。如圖1所示,本發(fā)明的視頻監(jiān)控會話方法,其中監(jiān)控客戶端通過了設(shè)備訪問的鑒 權(quán)和認(rèn)證,獲取了頭端設(shè)備的訪問號碼、頭端設(shè)備的信令I(lǐng)P地址和端口號,且監(jiān)控客戶端 支持頭端設(shè)備的音視頻媒體格式,當(dāng)監(jiān)控客戶端發(fā)送消息時以用戶代理客戶端方式運(yùn)行, 頭端設(shè)備接收消息時以用戶代理服務(wù)器端方式運(yùn)行,包括以下步驟
(1)監(jiān)控客戶端發(fā)送會話邀請,即INVITE消息,監(jiān)控客戶端首先與頭端設(shè)備建立一個 TCP連接,并在TCP連接上發(fā)送INVITE消息,發(fā)起會話邀請,監(jiān)控客戶端在INVITE消息中加 入會話媒體描述信息SMD,告知頭端設(shè)備其自己的媒體能力,監(jiān)控客戶端發(fā)送INVITE消息 后,等待頭端設(shè)備回復(fù)消息,確定是否成功接收INVITE消息;
(2)頭端設(shè)備回復(fù)200響應(yīng),頭端設(shè)備收到會話邀請后,提取監(jiān)控客戶端INVITE消息中 的設(shè)備通道號,將該通道的媒體能力填寫到會話媒體描述SMD中,隨200消息返回至監(jiān)控客 戶端;
(3)頭端設(shè)備發(fā)送音頻媒體流,監(jiān)控客戶端收到200消息相應(yīng)后,提取會話媒體描述 SMD中的媒體能力信息,準(zhǔn)備建立媒體連接,若監(jiān)控客戶端在INVITE消息中加入了會話媒 體描述信息SMD,則監(jiān)控客戶端工作在媒體流監(jiān)聽模式,由頭端設(shè)備從SMD中提取監(jiān)控客戶 端的媒體流監(jiān)聽地址和端口號并發(fā)起TCP媒體連接;否則頭端設(shè)備會工作在媒體流監(jiān)聽模 式,監(jiān)控客戶端會從SMD中提取頭端設(shè)備媒體通道的TCP監(jiān)聽地址和端口號,隨即向該地址 和端口號上先后發(fā)起兩個TCP媒體連接,以接收音視頻媒體流;監(jiān)控客戶端在獲取媒體流 前,會分別在音視頻TCP連接上發(fā)送一個媒體流的請求消息,該請求消息攜帶了本次媒體 流的會話標(biāo)識(Call-ID),頭端設(shè)備收到該請求消息后,會通過會話標(biāo)識將媒體流與本次會 話建立關(guān)聯(lián);
(4)監(jiān)控客戶端發(fā)送BYE消息終止會話,當(dāng)監(jiān)控客戶端想結(jié)束本次會話時,可以發(fā)送 BYE消息,準(zhǔn)備結(jié)束本次會話;
(5)頭端設(shè)備回復(fù)BYE消息的200響應(yīng),頭端設(shè)備收到監(jiān)控客戶端的BYE消息后,即可 準(zhǔn)備結(jié)束本次會話,向監(jiān)控客戶端發(fā)送200響應(yīng)后,頭端設(shè)備可以清除本次會話的所有資 源,斷開媒體TCP連接和信令TCP連接;客戶端收到200響應(yīng)后,清除本次會話的所有資源, 斷開媒體TCP連接和信令TCP連接(TCP連接雙向斷開),若客戶端發(fā)送BYE消息后,在一段時間內(nèi)沒有收到200響應(yīng),則客戶端應(yīng)主動清除本次會話的所有資源。上述客戶端接收BYE消息200響應(yīng)的延遲時間為30秒。圖2是視頻監(jiān)控會話協(xié)議的結(jié)構(gòu)。如圖2所示,上述視頻監(jiān)控會話方法建立在視頻監(jiān)控會話協(xié)議的基礎(chǔ)之上,視頻 監(jiān)控會話協(xié)議包括VSSP協(xié)議棧、會話管理和用戶代理;VSSP協(xié)議基于TCP協(xié)議,在遇到 TCP擁塞的情況下,VSSP協(xié)議進(jìn)行干涉,提供了定時器操作,用以結(jié)束會話,VSSP協(xié)議棧又 包括TCP層,負(fù)責(zé)協(xié)議的發(fā)送與接收;協(xié)議字段解析層,即Syntax層,負(fù)責(zé)協(xié)議包的解包 與打包;對話層,即Dialog層,負(fù)責(zé)信令控制邏輯,Dialog為信令實(shí)體,代表兩個用戶代理 進(jìn)行會話時建立的信令關(guān)系;會話管理實(shí)體kssion是Dialog層的使用者,Dialog負(fù)責(zé) kssion的建立、狀態(tài)改變與銷毀;用戶代理her Agent為邏輯實(shí)體,對上提供人機(jī)操作接 口,下層包裝了會話管理kssion實(shí)體、對話Dialog實(shí)體和媒體流實(shí)體。圖3為兩個用戶 代理建立點(diǎn)對點(diǎn)會話時的會話連接關(guān)系。這里用戶代理分別是頭端設(shè)備和監(jiān)控客戶端。一 個Dialog由三個關(guān)鍵元素構(gòu)成,即呼叫標(biāo)識Call-ID、主叫標(biāo)識From、被叫標(biāo)識To。媒體流 也可以使用該呼叫標(biāo)識Call-ID,用以建立媒體流和會話的關(guān)聯(lián)關(guān)系。主、被叫可以用全局 唯一的標(biāo)識碼進(jìn)行標(biāo)識,比如電話號碼、統(tǒng)一資源定位符(URI)等。圖4為通過流媒體服務(wù)器會話時的會話連接關(guān)系,在頭端設(shè)備與多個監(jiān)控客戶端 之間設(shè)置流媒體服務(wù)器,一個頭端設(shè)備被多個監(jiān)控客戶端所訪問,流媒體服務(wù)器中包含多 個群組會話,每個群組會話管理了多個監(jiān)控客戶端的會話和一個頭端設(shè)備會話。采用十進(jìn)制12位即12字節(jié)的全局統(tǒng)一標(biāo)識碼,作為協(xié)議字段T0、Fr0m的取值,其 格式為類別號+設(shè)備號+通道號,其中類別號為1位,設(shè)備號采用8位數(shù)字,通道號采用3 位數(shù)字;
類別號的取值定義如下
有效值選取區(qū)間為W-9],類別號=9,代表一般的監(jiān)控客戶端,類別號=1,代表一般設(shè) 備;其它取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在; 設(shè)備號的取值定義如下 有效值選取區(qū)間為
;
其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存
在;
通道號取值如下
有效值選取區(qū)間為
或[***];
其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在。圖5是本發(fā)明的視頻監(jiān)控會話方法中不同類型消息的對照表。INVITE請求用于建立視頻監(jiān)控會話。在直連模式下,一般由監(jiān)控客戶端向頭端設(shè) 備發(fā)起INVITE請求。在流媒體服務(wù)器轉(zhuǎn)發(fā)模式下,一般由頭端設(shè)備和監(jiān)控客戶端分別向流 媒體服務(wù)器發(fā)送會話請求,建立會話。這種情況下,協(xié)議實(shí)現(xiàn)時,一般建議考慮在頭端設(shè)備 系統(tǒng)啟動后,周期性自動向配置好的流媒體服務(wù)器發(fā)送INVITE請求,直到建立會話為止。 周期發(fā)送時間自行定義,這里建議的周期發(fā)送時間為60秒。INVITE請求可以攜帶1條或多 條SMD會話媒體描述,也可以不攜帶SMD會話描述。
當(dāng)監(jiān)控客戶端發(fā)起INVITE請求時,SMD會話媒體描述會攜帶初次希望訪問的1個 或多個頭端設(shè)備通道號,1個通道號對應(yīng)一條SMD會話媒體描述記錄。如果被叫號碼包含一 個有效的通道號號碼,則SMD至多包含一條相對應(yīng)的通道號的媒體描述,這種情況下也可 以不攜帶SMD會話媒體描述,被叫收到該消息后,會自動在返回消息中加入通道號得媒體 信息。如果INVITE請求攜帶多條SMD會話媒體描述,被叫號碼的通道號號碼應(yīng)為“***”,即 不指明特定的通道號,通道號的訪問控制由SMD會話媒體描述提供。頭端設(shè)備在向流媒體服務(wù)器發(fā)送INVITE請求時,主被叫號碼相同,其中通道號號 碼為“***”,INVITE請求中會攜帶所有通道的SMD會話媒體描述,在本次會話中與流媒體服 務(wù)器建立所有通道的媒體連接。REINVITE請求用于在會話期間改變媒體屬性。REINVITE請求一般由監(jiān)控客戶端 發(fā)起,必須攜帶SMD會話媒體描述。REINVITE請求可以用于實(shí)現(xiàn)呼叫保持功能,這時可以保留會話但不切斷,停止媒 體流的發(fā)送。可以將監(jiān)控客戶端SMD媒體流接收的IP地址設(shè)定為“0. 0. 0. 0”,則在該媒體 連接上的媒體發(fā)送會停止,恢復(fù)為有效值后,頭端設(shè)備會繼續(xù)發(fā)送媒體流。如果監(jiān)控客戶端與頭端設(shè)備或者流媒體服務(wù)器建立的會話中包含多個通道的媒 體流,REINVITE請求可以在會話期間增加或者切斷某個通道的媒體流傳輸。這種情況下, 會話發(fā)起時的被叫號碼中通道號碼必須為“***”,否則會話期間不允許增加或者切斷媒體 流操作。當(dāng)通過REINVITE攜帶的會話媒體描述進(jìn)行某個通道的媒體流的切斷操作時,會話 中保有的媒體通道數(shù)不能少于1個,否則視為無效的媒體屬性變更操作。建議協(xié)議實(shí)現(xiàn)時, 在監(jiān)控客戶端的用戶輸入規(guī)則上采取操作限制,比如當(dāng)通道數(shù)剩為1時,刪減操作按鈕變 為灰色禁用狀態(tài)。REINVITE請求的實(shí)現(xiàn)可以根據(jù)需要而定,并不作為必須的實(shí)現(xiàn)。如果不實(shí)現(xiàn) REINVITE請求,則系統(tǒng)不支持呼叫保持功能,不支持在會話過程中改變通道媒體屬性的功 能。BYE請求用于結(jié)束一個已建立的或者正在建立中的會話。發(fā)送BYE請求后,應(yīng)停止 UPDATE或UPDATE的200消息響應(yīng)發(fā)送,如果在60秒內(nèi)未收到BYE請求的200消息響應(yīng),則 結(jié)束并銷毀當(dāng)前會話。UPDATE用于提供信令鏈路的心跳檢測,在視頻監(jiān)控會話協(xié)議中UPDATE發(fā)送的時 間間隔為10秒。收到UPDATE消息的一方必須返回200消息響應(yīng)。UPDATE消息屬于會話內(nèi)消息,UPDATE消息的發(fā)送在一個會話建立后由會話的主 叫方發(fā)出,應(yīng)在會話建立的10秒后發(fā)送。如果發(fā)出UPDATE的主叫方在發(fā)送某個UPDATE消息的60秒內(nèi)都沒有收到200響 應(yīng),則認(rèn)為與被叫方的通信鏈路發(fā)生故障,則定時器觸發(fā)時,結(jié)束并銷毀當(dāng)前會話。如果接收UPDATE的被叫方在發(fā)送一個200響應(yīng)的60秒內(nèi)都沒有收到UPDATE消 息,則認(rèn)為與主叫方的通信鏈路發(fā)生故障,立即結(jié)束并銷毀當(dāng)前會話。本協(xié)議建議由頭端設(shè)備向流媒體服務(wù)器發(fā)送UPDATE消息,由流媒體服務(wù)器向監(jiān) 控客戶端發(fā)送UPDATE消息。MESSAGE請求一般由監(jiān)控客戶端發(fā)出,以實(shí)現(xiàn)遠(yuǎn)程頭端設(shè)備的參數(shù)配置、JPEG圖 像抓拍和485云臺控制協(xié)議的傳輸。
MESSAGE請求既可以用于會話內(nèi)請求,也可以用于會話外請求(獨(dú)立于某個會話存 在)。MESSAGE請求可以攜帶文本或者二進(jìn)制媒體流。MESSAGE請求的200響應(yīng)不能攜帶媒 體流。當(dāng)MESSAGE請求位于會話內(nèi)時,如果沒有收到200消息相應(yīng),系統(tǒng)不需要重新發(fā)送 MESSAGE請求,也不應(yīng)切斷當(dāng)前會話。是否繼續(xù)發(fā)送新的MESSAGE請求由操作人員確定。圖6是本發(fā)明的視頻監(jiān)控會話方法中消息響應(yīng)的對照表。如圖6,200消息響應(yīng),請求成功。所有成功的會話請求都應(yīng)回復(fù)200消息響應(yīng)。當(dāng) 監(jiān)控客戶端與流媒體服務(wù)器建立會話連接時,收到來自流媒體服務(wù)器的INVITE消息的200 消息響應(yīng),該消息可以攜帶會話媒體描述(SMD),提供被叫頭端設(shè)備的媒體描述能力。消息響應(yīng),請求消息語法錯誤。,此消息雖然能夠被識別,但是仍舊被拒絕。,被叫 不存在。可能的原因是被叫號碼沒有被定義,或者已經(jīng)作廢刪除,或者沒有連接流媒體服務(wù) 器。,當(dāng)發(fā)送一個kssion內(nèi)請求,如REINVITE、MESSAGE、UPDATE或者BYE時,請求攜帶的 Call-ID無法與會話匹配,則返回此消息響應(yīng)。,流媒體服務(wù)器遇到內(nèi)部錯誤,無法處理該消 息。主叫端可以在若干秒后重新嘗試連接。,服務(wù)器不支持請求的方法。,流媒體服務(wù)器過載 時返回此消息響應(yīng)。,流媒體服務(wù)器不支持請求中所用的VSSP協(xié)議版本。,由于媒體能力不 匹配,返回此消息響應(yīng)。圖7是本發(fā)明的視頻監(jiān)控會話方法中會話請求的編碼格式。請求分三個部分,信令部分、SMD會話媒體描述、消息體(Message Body)。信令和 每個SMD的長度固定,消息體長度不定,可以在信令部分的BodyLength字段設(shè)定或讀取消 息體的長度。信令部分總長度108字節(jié),各字段的意義如下
(1)32位協(xié)議標(biāo)識頭,取值為“0xFF50FF50”。(2) 2字節(jié)版本號(Version),版本號分為3個部分,表示為字符串時可以是 “1. 12”,分為主版本號,次版本號1,取值分別為十進(jìn)制(Γ99,各占8位,由高到低分別主版 本號、次版本號1。(3)請求(Request)類型,16位整數(shù)值。(4)序列號(Ckq),消息序列號,第一個會話請求的CSeq為0,會話建立后主被叫 所有的每個請求CSeq加1。(5)被叫號碼(To),12字節(jié)字符串。(6)主叫號碼(From),12字節(jié)字符串。(7 )會話標(biāo)識(Cal I-ID),36字節(jié)字符串,Linux下可以取值為UUID,Windows下可 以取值為GUID。會話標(biāo)識由主叫方在發(fā)起第一個會話請求時創(chuàng)建。所有后續(xù)的%8^011內(nèi) 請求和響應(yīng)都需要引用該值,媒體流幀頭應(yīng)加入該標(biāo)識,以建立會話關(guān)聯(lián)。(8)用戶名(USerName),12字節(jié)字符串。該值可以不使用,在后續(xù)協(xié)議擴(kuò)展時,引 入注冊功能時使用。(9)用戶密碼(Password),12字節(jié)字符串。該值可以不使用,在后續(xù)協(xié)議擴(kuò)展時, 引入注冊功能時使用。(10)會話媒體描述標(biāo)識字(HasSMD),32位整型值,為1時標(biāo)識消息帶有SMD描述, 為0表示不帶有SMD描述。(11)會話描述個數(shù)(SMDCoimt),16位整型值,會話描述的個數(shù)。協(xié)議解析時,依據(jù)是否帶有會話描述和會話描述的個數(shù)可以獲取每個定長會話描述內(nèi)容起始位置。(12)消息體類型(BodyType),16位整型值,取值為1時,消息體類型為抓拍數(shù)據(jù); 取值為2時,消息體類型為參數(shù)配置數(shù)據(jù);取值為3時,消息體類型為485云臺控制數(shù)據(jù)。 其它取值類型,自行定義;取值為0時,無消息體數(shù)據(jù),并且消息體長度也為0。(13)消息體長度(BodyLength),32位整型值,消息體的長度,為0時不帶消息體。會話描述部分48字節(jié),各字段意義如下。(1)通道號(Channel)。16位整型值,代表頭端設(shè)備的通道號。缺省的,通道號最 高位為0,表示默認(rèn)的媒體描述是新追加的。如果通道號最高位1,即數(shù)值為負(fù)的通道號,表 示取消該通道該SMD的媒體連接,這種方式一般用于通過REINVITE消息修改會話媒體屬性 的情況。(2)媒體類型(MediaType)。16位整型值,為1時代表音品,為2時代表視頻。(3) IP地址類型(IPType)。32位整型值,為1時代表IP V4,為2時代表IP V6。(4)IP地址。16字節(jié)十六進(jìn)制值。如果IP地址類型為IP V4,則使用前4字節(jié)取 值,IP地址每個部分分別占8位長度。如IP地址172. 28. 1. 32,對應(yīng)的16進(jìn)制值分別為 八(、1(、01、20,對應(yīng)的16進(jìn)制整型值為0仏(10)120。剩余的12字節(jié)IP地址值取0。如果 IP地址類型為IP V6,則IPType字段后的16字節(jié)為IP V6地址,取值方式同IP V4。(5)端口號(Port)。32位整型值。如果媒體端口不采用監(jiān)聽方式,一般不使用該 值。(6)載荷類型(Payload)。32位整型值。常見I^ayload類型見附錄A 表A-1。(7)媒體流方向(MediaDirection)。32位整型值。取值為1時代表在該連接上只 接收媒體流,取值為2時代表在該連接上只發(fā)送媒體流,取值為3時代表在該連接上即可接 收也可發(fā)送媒體流。(8 13)媒體屬性。2字節(jié)屬性值,可以自定義取值。消息體部分的內(nèi)容可以自定義,在這里不作描述。UPDATE、REINFVITE、MESSAGE請 求可以攜帶消息體。在本實(shí)施例中僅說明視頻監(jiān)控會話的建立、修改和結(jié)束過程。所提供的部分實(shí)例 僅作為一種可能的通信實(shí)現(xiàn)方式,并不代表唯一的實(shí)現(xiàn)方式。實(shí)例中顯示的數(shù)值皆為主機(jī)
字節(jié)序。所提供實(shí)例中各實(shí)體滿足如下的配置條件 頭端設(shè)備
IP 地址192. 168. 1. 10
通道數(shù)3
會話號碼123787823000 123787823001、123787823*** 音頻類型PCMU類型值0,采樣率8000,聲道數(shù)1,量化編碼位數(shù)8 視頻類型H. 264類型值98,寬度1920,高度1080 流媒體服務(wù)器
上行流IP地址:192. 168. 1. 50 上行流信令監(jiān)聽端口號3000 上行流媒體監(jiān)聽端口號3001下行流IP地址:192. 168. 1. 51 下行流監(jiān)聽端口號3000 下行流媒體監(jiān)聽端口號3001 監(jiān)控客戶端
IP 地址192. 168. 1. 139 會話號碼918918311000。圖8為本發(fā)明的視頻監(jiān)控會話方法中頭端設(shè)備與流媒體服務(wù)器建立會話的示意 圖。頭端設(shè)備連接流媒體服務(wù)器時,流媒體服務(wù)器工作在監(jiān)聽模式,頭端設(shè)備工作在 主動連接模式,頭端設(shè)備與流媒體服務(wù)器之間的連接步驟為
(1)頭端設(shè)備發(fā)起INVITE會話請求,頭端設(shè)備會將自己的媒體能力通過SMD發(fā)送至流 媒體服務(wù)器,流媒體服務(wù)器收到SMD后會預(yù)先分配媒體流資源,以在媒體流到來后能夠立 即進(jìn)行媒體處理;
(2)流媒體服務(wù)器回復(fù)200消息響應(yīng),流媒體服務(wù)器會在回復(fù)的SMD中加入監(jiān)聽每一個 通道每一個媒體流的監(jiān)聽IP地址和端口號,媒體流請求由頭端設(shè)備發(fā)起;
(3)頭端設(shè)備依次發(fā)起通道000的音頻和視頻的媒體流請求,對于TCP連接,頭端設(shè)備 可以在媒體流的第一個幀中加入會話媒體流會話關(guān)聯(lián)信息,這里應(yīng)使用Call-ID作為媒體 流與會話的關(guān)聯(lián)鍵;
(4)頭端設(shè)備依次發(fā)起通道001的音頻和視頻的媒體流請求。頭端設(shè)備連接流媒體服務(wù)器后,會話一旦建立則將一直保持。指令信消息(抓拍、 參數(shù)配置、485云臺控制)亦從該信令連接收發(fā)。圖9為本發(fā)明的視頻監(jiān)控會話方法中監(jiān)控客戶端與流媒體服務(wù)器建立會話的示 意圖。監(jiān)控客戶端連接流媒體服務(wù)器時,流媒體服務(wù)器工作在監(jiān)聽模式,流媒體服務(wù)器 與監(jiān)控客戶端之間的連接步驟為
(1)監(jiān)控客戶端向流媒體服務(wù)器發(fā)起INVITE請求,流媒體服務(wù)器收到INVITE請求后會 根據(jù)被叫號碼,即頭端設(shè)備+通道號,尋找相關(guān)的群組會話,找到頭端設(shè)備所屬的群組會話 后,建立與監(jiān)控客戶端的會話,并將該會話加入該群組會話中;
(2)流媒體服務(wù)器回復(fù)200消息響應(yīng),SMD描述的Port字段中有一個0x00000BB9的16 進(jìn)制值,即流媒體服務(wù)器的TCP監(jiān)聽端口號3001 ;
(3)會話建立后由監(jiān)控客戶端向流媒體服務(wù)器發(fā)起音視頻媒體流的TCP連接,TCP連接 建立后,監(jiān)控客戶端會發(fā)送一個媒體流請求頭,流媒體服務(wù)器收到該請求頭后,會建立媒體 流與會話的關(guān)聯(lián)關(guān)系,并轉(zhuǎn)發(fā)相應(yīng)的頭端設(shè)備通道的音視頻媒體流??梢杂糜跁拑?nèi)的消息有REINVITE和UPDATE,通過流媒體服務(wù)器向頭端設(shè)備發(fā) 送REINVITE消息改變媒體屬性,頭端設(shè)備與流媒體服務(wù)器建立會話連接后,若此時沒有 監(jiān)控客戶端或者錄像設(shè)備訪問流媒體服務(wù)器獲取該設(shè)備的媒體轉(zhuǎn)發(fā)流,則可以將頭端設(shè) 備的媒體流發(fā)送暫停,在REINVITE消息的SMD會話媒體描述中,可以將IP地址設(shè)定為 “0. 0. 0. 0”,則頭端設(shè)備將停止向該地址發(fā)送媒體流,但會話并不拆除,恢復(fù)媒體流發(fā)送時, 只需再次通過發(fā)送REINVITE消息,將SMD中的IP地址恢復(fù)為初始有效值。
MESSAGE消息可以在會話外發(fā)送,用于會話外的即時通訊。抓拍、參數(shù)配置、485云 臺控制全部采用基于MESSAGE消息的即時通訊方式實(shí)現(xiàn)。監(jiān)控客戶端和頭端設(shè)備可以直接 進(jìn)行端到端的MESSAGE通信,也可以采用基于服務(wù)器轉(zhuǎn)發(fā)的通信模式。當(dāng)通過流媒體服務(wù) 器轉(zhuǎn)發(fā)MESSAGE消息時,有兩種轉(zhuǎn)發(fā)模式,第一種是代理模式,第二種是網(wǎng)關(guān)模式。圖10是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以代理模式轉(zhuǎn)發(fā)MESSAGE消 息的示意圖。監(jiān)控客戶端與頭端設(shè)備之間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù) 器以代理方式轉(zhuǎn)發(fā)MESSAGE消息,MESSAGE消息的發(fā)送是獨(dú)立于任何一個會話的,MESSAGE 消息本身也不會引起一個新的VSSP會話的創(chuàng)建,MESSAGE消息的發(fā)送采用獨(dú)立的Call-ID, 不與任何會話關(guān)聯(lián),每個新的MESSAGE消息采用新的Call-ID,200消息響應(yīng)使用MESSAGE 請求的Call-ID,以下是流媒體服務(wù)器代理模式下的MESSAGE消息通話過程
(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容可以是文本內(nèi)容也可 以是任何自定義格式的2進(jìn)制內(nèi)容;
(2)流媒體服務(wù)器收到MESSAGE消息后,根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè) 備轉(zhuǎn)發(fā)MESSAGE消息,流媒體服務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消 息,同時將該去話TCP連接與之前的來話TCP連接建立關(guān)聯(lián),該MESSAGE消息的Call-ID與 收到的MESSAGE消息的Call-ID相同;
(3)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息響應(yīng),200消息響應(yīng)不攜帶消息體 Body ;
(4)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息相到主叫監(jiān)控客戶端,主叫監(jiān)控客戶端收到200消 息后結(jié)束本次即時消息通話,關(guān)閉TCP連接,或者保持此TCP連接,用于發(fā)送和接收新的 MESSAGE 消息;
(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息轉(zhuǎn)發(fā)至監(jiān)控客戶端;
(7)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200消息響應(yīng),當(dāng)監(jiān)控客戶端認(rèn)為可以結(jié) 束本次即時消息通話,即關(guān)閉該TCP連接;TCP連接的關(guān)閉可以由監(jiān)控客戶端軟件控制,比 如,監(jiān)控客戶端的本次即時消息對話的窗口關(guān)閉、或者按下即時消息通信結(jié)束按鈕等操作, 都可以觸發(fā)TCP連接的關(guān)閉;
(8)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息響應(yīng),當(dāng)發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,隨即關(guān)閉 與頭端設(shè)備的TCP連接。圖11是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā) MESSAGE消息的示意圖。監(jiān)控客戶端與頭端設(shè)備之間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù) 器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā)MESSAGE消息,流媒體服務(wù)器收到主叫的MESSAGE消息后,立即回復(fù) 200響應(yīng),然后拷貝MESSAGE消息內(nèi)容和消息類型,復(fù)制到一個新的MESSAGE消息發(fā)送到被 叫,以下是流媒體服務(wù)器網(wǎng)關(guān)轉(zhuǎn)發(fā)模式下的MESSAGE消息通話過程
18(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容為文本內(nèi)容或其他二 進(jìn)制內(nèi)容;
(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);
(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);
(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;
(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);
(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客 戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;
(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),至此,監(jiān)控客戶端結(jié)束本次即時消 息通話,即可關(guān)閉該TCP連接,流媒體服務(wù)器發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,也隨即關(guān) 閉與頭端設(shè)備的TCP連接。圖12是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā) MESSAGE消息的另一種示意圖。流媒體服務(wù)器始終處于監(jiān)聽狀態(tài),頭端設(shè)備預(yù)先創(chuàng)建一個MESSAGE通信連接,該 MESSAGE消息并不被轉(zhuǎn)發(fā),只起TCP通信鏈路建立的作用,流媒體服務(wù)器會記錄該MESSAGE 的消息體類型,發(fā)往該頭端設(shè)備的所有此類型的MESSAGE消息全部從此TCP連接進(jìn)行轉(zhuǎn)發(fā), MESSAGE消息通話過程為
(1)頭端設(shè)備首先向流媒體服務(wù)器發(fā)送MESSAGE消息,消息體類型為1,表示來自監(jiān)控 客戶端的向該頭端設(shè)備發(fā)起的所有MESSAGE消息,只要消息體類型為1,則MESSAGE消息將 被轉(zhuǎn)發(fā)至該頭端設(shè)備,頭端設(shè)備會周期性發(fā)送MESSAGE消息,以檢測通信鏈路的是否正常 連接,如果鏈路因故障終端連接,則頭端設(shè)備會周期性主動發(fā)起新的該類型的MESSAGE消 息以重新建立連接;
(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);
(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);
(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;
(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);
(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客 戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;
(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),監(jiān)控客戶端關(guān)閉此TCP通信連接, 流媒體服務(wù)器檢測到此連接關(guān)閉后并不試圖關(guān)閉與頭端設(shè)備的連接,僅解除客戶端TCP連 接與頭端TCP連接的對應(yīng)關(guān)系,并清除相關(guān)資源。圖13是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器與頭端設(shè)備斷開時的示意 圖。當(dāng)流媒體停止服務(wù)時,需要先切斷所有會話連接,這時需要流媒體服務(wù)器向頭端 設(shè)備發(fā)送BYE消息來結(jié)束會話。由于在會話建立后,頭端設(shè)備會發(fā)送心跳UPDATE消息, 檢查信令鏈路的連接情況,每個UPDATE消息屬于kssion會話內(nèi)消息,每發(fā)送一個請求 (REQUEST), CSeq值會加1,因此上圖假設(shè)發(fā)送BYE消息前的一個UPDATE消息的CSeq值為 Oxn (十六進(jìn)制值),因此BYE消息發(fā)送時,CSeq值為Oxn+1。在整個會話期間Call-ID值不變。圖14是本發(fā)明的視頻監(jiān)控會話方法中流媒體服務(wù)器與監(jiān)控客戶端斷開時的示意 圖。監(jiān)控客戶端BYE消息的發(fā)送一般由使用者通過用戶界面觸發(fā),這時使用者希望主 動切斷與流媒體服務(wù)器的會話時會。流媒體服務(wù)器也可以主動發(fā)送BYE消息給監(jiān)控客戶端,切斷會話,比如,當(dāng)流媒體 停止服務(wù)時,需要先切斷所有會話連接,這時需要流媒體服務(wù)器向監(jiān)控客戶端和頭端設(shè)備 發(fā)送BYE消息來結(jié)束會話。由于在會話建立后,流媒體服務(wù)器會發(fā)送心跳UPDATE消息,檢查信令鏈路的連接 情況,每個UPDATE消息屬于kssion會話內(nèi)消息,每發(fā)送一個請求(REQUEST),CSeq值會加 1,因此上圖假設(shè)發(fā)送BYE消息前的一個UPDATE消息的CSeq值為Oxn (十六進(jìn)制值),因此 BYE消息發(fā)送時,CSeq值為Oxn+1。整個會話期間Call-ID值不變。以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對本發(fā)明作任何形式上的限制, 雖然本發(fā)明已以較佳實(shí)施例公開如上,然而,并非用以限定本發(fā)明,任何熟悉本專業(yè)的技 術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)然會利用揭示的技術(shù)內(nèi)容作出些許更動或修 飾,成為等同變化的等效實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技 術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明技術(shù)方案的范 圍內(nèi)。
權(quán)利要求
1.一種視頻監(jiān)控會話方法,其中監(jiān)控客戶端通過了設(shè)備訪問的鑒權(quán)和認(rèn)證,獲取了頭 端設(shè)備的訪問號碼、頭端設(shè)備的信令I(lǐng)P地址和端口號,且監(jiān)控客戶端支持頭端設(shè)備的音視 頻媒體格式,當(dāng)監(jiān)控客戶端發(fā)送消息時以用戶代理客戶端方式運(yùn)行,頭端設(shè)備接收消息時 以用戶代理服務(wù)器端方式運(yùn)行,包括以下步驟(1)監(jiān)控客戶端發(fā)送會話邀請,即INVITE消息,監(jiān)控客戶端首先與頭端設(shè)備建立一個 TCP連接,并在TCP連接上發(fā)送INVITE消息,發(fā)起會話邀請,監(jiān)控客戶端在INVITE消息中加 入會話媒體描述信息SMD,告知頭端設(shè)備其自己的媒體能力,監(jiān)控客戶端發(fā)送INVITE消息 后,等待頭端設(shè)備回復(fù)消息,確定是否成功接收INVITE消息;(2)頭端設(shè)備回復(fù)200響應(yīng),頭端設(shè)備收到會話邀請后,提取監(jiān)控客戶端INVITE消息中 的設(shè)備通道號,將該通道的媒體能力填寫到會話媒體描述SMD中,隨200消息返回至監(jiān)控客 戶端;(3)頭端設(shè)備發(fā)送音頻媒體流,監(jiān)控客戶端收到200消息相應(yīng)后,提取會話媒體描述 SMD中的媒體能力信息,準(zhǔn)備建立媒體連接,若監(jiān)控客戶端在INVITE消息中加入了會話媒 體描述信息SMD,則監(jiān)控客戶端工作在媒體流監(jiān)聽模式,由頭端設(shè)備從SMD中提取監(jiān)控客戶 端的媒體流監(jiān)聽地址和端口號并發(fā)起TCP媒體連接;否則頭端設(shè)備會工作在媒體流監(jiān)聽模 式,監(jiān)控客戶端會從SMD中提取頭端設(shè)備媒體通道的TCP監(jiān)聽地址和端口號,隨即向該地址 和端口號上先后發(fā)起兩個TCP媒體連接,以接收音視頻媒體流;監(jiān)控客戶端在獲取媒體流 前,會分別在音視頻TCP連接上發(fā)送一個媒體流的請求消息,該請求消息攜帶了本次媒體 流的會話標(biāo)識Call-ID,頭端設(shè)備收到該請求消息后,會通過會話標(biāo)識將媒體流與本次會話 建立關(guān)聯(lián);(4)監(jiān)控客戶端發(fā)送BYE消息終止會話,當(dāng)監(jiān)控客戶端想結(jié)束本次會話時,可以發(fā)送 BYE消息,準(zhǔn)備結(jié)束本次會話;(5)頭端設(shè)備回復(fù)BYE消息的200響應(yīng),頭端設(shè)備收到監(jiān)控客戶端的BYE消息后,即可 準(zhǔn)備結(jié)束本次會話,向監(jiān)控客戶端發(fā)送200響應(yīng)后,頭端設(shè)備可以清除本次會話的所有資 源,斷開媒體TCP連接和信令TCP連接;客戶端收到200響應(yīng)后,清除本次會話的所有資源, 斷開媒體TCP連接和信令TCP連接,若客戶端發(fā)送BYE消息后,在一段時間內(nèi)沒有收到200 響應(yīng),則客戶端應(yīng)主動清除本次會話的所有資源。
2.根據(jù)權(quán)利要求1所述的視頻監(jiān)控會話方法,其特征在于客戶端接收BYE消息200響 應(yīng)的延遲時間為30秒。
3.根據(jù)權(quán)利要求1所述的視頻監(jiān)控會話方法,其特征在于上述視頻監(jiān)控會話方法建 立在視頻監(jiān)控會話協(xié)議的基礎(chǔ)之上,視頻監(jiān)控會話協(xié)議包括VSSP協(xié)議棧、會話管理和用 戶代理;VSSP協(xié)議基于TCP協(xié)議,在遇到TCP擁塞的情況下,VSSP協(xié)議進(jìn)行干涉,提供了 定時器操作,用以結(jié)束會話,VSSP協(xié)議棧又包括TCP層,負(fù)責(zé)協(xié)議的發(fā)送與接收;協(xié)議字 段解析層,即Syntax層,負(fù)責(zé)協(xié)議包的解包與打包;對話層,即Dialog層,負(fù)責(zé)信令控制 邏輯,Dialog為信令實(shí)體,代表兩個用戶代理進(jìn)行會話時建立的信令關(guān)系;會話管理實(shí)體 Session是Dialog層的使用者,Dialog負(fù)責(zé)kssion的建立、狀態(tài)改變與銷毀;用戶代理 User Agent為邏輯實(shí)體,對上提供人機(jī)操作接口,下層包裝了會話管理kssion實(shí)體、對話 Dialog實(shí)體和媒體流實(shí)體;一個Dialog由三個關(guān)鍵元素構(gòu)成,即呼叫標(biāo)識Call-ID、主叫標(biāo) 識From、被叫標(biāo)識To。
4.根據(jù)權(quán)利要求3所述的視頻監(jiān)控會話方法,其特征在于在頭端設(shè)備與多個監(jiān)控客 戶端之間設(shè)置流媒體服務(wù)器,一個頭端設(shè)備被多個監(jiān)控客戶端所訪問,流媒體服務(wù)器中包 含多個群組會話,每個群組會話管理了多個監(jiān)控客戶端的會話和一個頭端設(shè)備會話。
5.根據(jù)權(quán)利要求4所述的視頻監(jiān)控會話方法,其特征在于采用十進(jìn)制12位即12字 節(jié)的全局統(tǒng)一標(biāo)識碼,作為協(xié)議字段To、Fr0m的取值,其格式為類別號+設(shè)備號+通道號, 其中類別號為1位,設(shè)備號采用8位數(shù)字,通道號采用3位數(shù)字;類別號的取值定義如下有效值選取區(qū)間為W-9],類別號=9,代表一般的監(jiān)控客戶端,類別號=1,代表一般設(shè) 備;其它取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在; 設(shè)備號的取值定義如下 有效值選取區(qū)間為
;其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在;通道號取值如下有效值選取區(qū)間為
或[***];其它任何無效取值為非法標(biāo)識,會產(chǎn)生400響應(yīng)即語法錯誤,或404響應(yīng)即號碼不存在。
6.根據(jù)權(quán)利要求4所述的視頻監(jiān)控會話方法,其特征在于頭端設(shè)備連接流媒體服務(wù) 器時,流媒體服務(wù)器工作在監(jiān)聽模式,頭端設(shè)備工作在主動連接模式,頭端設(shè)備與流媒體服 務(wù)器之間的連接步驟為(1)頭端設(shè)備發(fā)起INVITE會話請求,頭端設(shè)備會將自己的媒體能力通過SMD發(fā)送至流 媒體服務(wù)器,流媒體服務(wù)器收到SMD后會預(yù)先分配媒體流資源,以在媒體流到來后能夠立 即進(jìn)行媒體處理;(2)流媒體服務(wù)器回復(fù)200消息響應(yīng),流媒體服務(wù)器會在回復(fù)的SMD中加入監(jiān)聽每一個 通道每一個媒體流的監(jiān)聽IP地址和端口號,媒體流請求由頭端設(shè)備發(fā)起;(3)頭端設(shè)備依次發(fā)起通道000的音頻和視頻的媒體流請求,對于TCP連接,頭端設(shè)備 可以在媒體流的第一個幀中加入會話媒體流會話關(guān)聯(lián)信息,這里應(yīng)使用Call-ID作為媒體 流與會話的關(guān)聯(lián)鍵;(4)頭端設(shè)備依次發(fā)起通道001的音頻和視頻的媒體流請求。
7.根據(jù)權(quán)利要求6所述的視頻監(jiān)控會話方法,其特征在于監(jiān)控客戶端連接流媒體服 務(wù)器時,流媒體服務(wù)器工作在監(jiān)聽模式,流媒體服務(wù)器與監(jiān)控客戶端之間的連接步驟為(1)監(jiān)控客戶端向流媒體服務(wù)器發(fā)起INVITE請求,流媒體服務(wù)器收到INVITE請求后會 根據(jù)被叫號碼,即頭端設(shè)備+通道號,尋找相關(guān)的群組會話,找到頭端設(shè)備所屬的群組會話 后,建立與監(jiān)控客戶端的會話,并將該會話加入該群組會話中;(2)流媒體服務(wù)器回復(fù)200消息響應(yīng);(3)會話建立后由監(jiān)控客戶端向流媒體服務(wù)器發(fā)起音視頻媒體流的TCP連接,TCP連接 建立后,監(jiān)控客戶端會發(fā)送一個媒體流請求頭,流媒體服務(wù)器收到該請求頭后,會建立媒體 流與會話的關(guān)聯(lián)關(guān)系,并轉(zhuǎn)發(fā)相應(yīng)的頭端設(shè)備通道的音視頻媒體流。
8.根據(jù)權(quán)利要求7所述的視頻監(jiān)控會話方法,其特征在于通過流媒體服務(wù)器向頭端設(shè)備發(fā)送REINVITE消息改變媒體屬性,頭端設(shè)備與流媒體服務(wù)器建立會話連接后,若此時 沒有監(jiān)控客戶端或者錄像設(shè)備訪問流媒體服務(wù)器獲取該設(shè)備的媒體轉(zhuǎn)發(fā)流,則可以將頭端 設(shè)備的媒體流發(fā)送暫停,在REINVITE消息的SMD會話媒體描述中,可以將IP地址設(shè)定為 “0. 0. 0. 0”,則頭端設(shè)備將停止向該地址發(fā)送媒體流,但會話并不拆除,恢復(fù)媒體流發(fā)送時, 只需再次通過發(fā)送REINVITE消息,將SMD中的IP地址恢復(fù)為初始有效值。
9.根據(jù)權(quán)利要求7所述的視頻監(jiān)控會話方法,其特征在于監(jiān)控客戶端與頭端設(shè)備之 間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù)器以代理方式轉(zhuǎn)發(fā)MESSAGE消息, MESSAGE消息的發(fā)送是獨(dú)立于任何一個會話的,MESSAGE消息本身也不會引起一個新的 VSSP會話的創(chuàng)建,MESSAGE消息的發(fā)送采用獨(dú)立的Call-ID,不與任何會話關(guān)聯(lián),每個新的 MESSAGE消息采用新的Call-ID,200消息響應(yīng)使用MESSAGE請求的Call-ID,以下是流媒體 服務(wù)器代理模式下的MESSAGE消息通話過程(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容可以是文本內(nèi)容也可 以是任何自定義格式的2進(jìn)制內(nèi)容;(2)流媒體服務(wù)器收到MESSAGE消息后,根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè) 備轉(zhuǎn)發(fā)MESSAGE消息,流媒體服務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消 息,同時將該去話TCP連接與之前的來話TCP連接建立關(guān)聯(lián),該MESSAGE消息的Call-ID與 收到的MESSAGE消息的Call-ID相同;(3)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息響應(yīng),200消息響應(yīng)不攜帶消息體 Body ;(4)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息相到主叫監(jiān)控客戶端,主叫監(jiān)控客戶端收到200消 息后結(jié)束本次即時消息通話,關(guān)閉TCP連接,或者保持此TCP連接,用于發(fā)送和接收新的 MESSAGE 消息;(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;(6)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息轉(zhuǎn)發(fā)至監(jiān)控客戶端;(7)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200消息響應(yīng),當(dāng)監(jiān)控客戶端認(rèn)為可以結(jié)束 本次即時消息通話,即關(guān)閉該TCP連接;(8)流媒體服務(wù)器轉(zhuǎn)發(fā)200消息響應(yīng),當(dāng)發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,隨即關(guān)閉 與頭端設(shè)備的TCP連接。
10.根據(jù)權(quán)利要求7所述的視頻監(jiān)控會話方法,其特征在于監(jiān)控客戶端與頭端設(shè)備之 間的MESSAGE消息通過流媒體服務(wù)器轉(zhuǎn)發(fā),流媒體服務(wù)器以網(wǎng)關(guān)轉(zhuǎn)發(fā)模式轉(zhuǎn)發(fā)MESSAGE消 息,流媒體服務(wù)器收到主叫的MESSAGE消息后,立即回復(fù)200響應(yīng),然后拷貝MESSAGE消息 內(nèi)容和消息類型,復(fù)制到一個新的MESSAGE消息發(fā)送到被叫,以下是流媒體服務(wù)器網(wǎng)關(guān)轉(zhuǎn) 發(fā)模式下的MESSAGE消息通話過程(1)監(jiān)控客戶端發(fā)起一個新的MESSAGE消息,在監(jiān)控客戶端和流媒體服務(wù)器間會創(chuàng)建 一個新的TCP連接,MESSAGE消息可以攜帶消息體Body,消息體的內(nèi)容為文本內(nèi)容或其他二 進(jìn)制內(nèi)容;(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客 戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),至此,監(jiān)控客戶端結(jié)束本次即時消 息通話,即可關(guān)閉該TCP連接,流媒體服務(wù)器發(fā)現(xiàn)監(jiān)控客戶端的TCP連接關(guān)閉后,也隨即關(guān) 閉與頭端設(shè)備的TCP連接。
11.根據(jù)權(quán)利要求7所述的視頻監(jiān)控會話方法,其特征在于流媒體服務(wù)器始終處于監(jiān) 聽狀態(tài),頭端設(shè)備預(yù)先創(chuàng)建一個MESSAGE通信連接,該MESSAGE消息并不被轉(zhuǎn)發(fā),只起TCP 通信鏈路建立的作用,流媒體服務(wù)器會記錄該MESSAGE的消息體類型,發(fā)往該頭端設(shè)備的 所有此類型的MESSAGE消息全部從此TCP連接進(jìn)行轉(zhuǎn)發(fā),MESSAGE消息通話過程為(1)頭端設(shè)備首先向流媒體服務(wù)器發(fā)送MESSAGE消息,消息體類型為1,表示來自監(jiān)控 客戶端的向該頭端設(shè)備發(fā)起的所有MESSAGE消息,只要消息體類型為1,則MESSAGE消息將 被轉(zhuǎn)發(fā)至該頭端設(shè)備,頭端設(shè)備會周期性發(fā)送MESSAGE消息,以檢測通信鏈路的是否正常 連接,如果鏈路因故障終端連接,則頭端設(shè)備會周期性主動發(fā)起新的該類型的MESSAGE消 息以重新建立連接;(2)流媒體服務(wù)器收到MESSAGE消息后,立即向監(jiān)控客戶端回復(fù)200響應(yīng);(3)流媒體服務(wù)器根據(jù)TO字段的頭端設(shè)備被叫號碼,向該頭端設(shè)備轉(zhuǎn)發(fā)一個新的 MESSAGE消息,流媒體服務(wù)器會將監(jiān)控客戶端發(fā)送的MESSAGE消息體內(nèi)容Body及其它字段 參數(shù)值復(fù)制到新的MESSAGE中,且在新的MESSAGE消息中使用一個新的Call-ID,流媒體服 務(wù)器會向頭端設(shè)備發(fā)起一個新的TCP連接轉(zhuǎn)發(fā)MESSAGE消息,同時將該去話TCP連接與之 前的來話TCP連接建立關(guān)聯(lián);(4)頭端設(shè)備收到MESSAGE消息后,回復(fù)200消息相應(yīng),200消息相應(yīng)不能攜帶消息體 Body ;(5)頭端設(shè)備在之前創(chuàng)建的TCP連接上向監(jiān)控客戶端發(fā)起了一個新的MESSAGE消息,此 時被叫號碼為監(jiān)控客戶端的會話ID號碼,MESSAGE消息采用一個新的Call-ID ;(6)流媒體服務(wù)器收到MESSAGE消息后,立即向頭端設(shè)備回復(fù)200響應(yīng);(7)流媒體服務(wù)器根據(jù)監(jiān)控客戶端被叫號碼,通過連接管理機(jī)制,找到之前對應(yīng)的監(jiān)控 客戶端創(chuàng)建的TCP連接,將該MESSAGE消息復(fù)制到一個新的MESSAGE消息中轉(zhuǎn)發(fā)至監(jiān)控客戶端,流媒體服務(wù)器會在MESSAGE消息中使用一個新的Call-ID ;(8)監(jiān)控客戶端收到MESSAGE消息后,回復(fù)200響應(yīng),監(jiān)控客戶端關(guān)閉此TCP通信連接, 流媒體服務(wù)器檢測到此連接關(guān)閉后并不試圖關(guān)閉與頭端設(shè)備的連接,僅解除客戶端TCP連 接與頭端TCP連接的對應(yīng)關(guān)系,并清除相關(guān)資源。
全文摘要
一種視頻監(jiān)控會話方法,包括以下步驟(1)監(jiān)控客戶端發(fā)送會話邀請,(2)頭端設(shè)備回復(fù)200響應(yīng),(3)頭端設(shè)備發(fā)送音頻媒體流;(4)監(jiān)控客戶端發(fā)送BYE消息終止會話,(5)頭端設(shè)備回復(fù)BYE消息的200響應(yīng),頭端設(shè)備收到監(jiān)控客戶端的BYE消息后,即可準(zhǔn)備結(jié)束本次會話。本發(fā)明的視頻監(jiān)控會話方法能夠?qū)崿F(xiàn)對頭端設(shè)備與監(jiān)控客戶端直聯(lián)時的控制,同時能夠?qū)崿F(xiàn)多臺監(jiān)控客戶端同時訪問頭端設(shè)備并采用流媒體服務(wù)器時的設(shè)備間的連接控制。本發(fā)明的視頻監(jiān)控會話方法對應(yīng)于具有功能邏輯獨(dú)立、易于擴(kuò)展的、具有高可伸縮性視頻監(jiān)控平臺架構(gòu),從而能夠滿足大規(guī)模高清網(wǎng)絡(luò)視頻監(jiān)控應(yīng)用的需求。
文檔編號H04L29/06GK102075737SQ20111004836
公開日2011年5月25日 申請日期2011年3月1日 優(yōu)先權(quán)日2011年3月1日
發(fā)明者于新強(qiáng), 馮雪松, 黃博 申請人:天津市天祥世聯(lián)網(wǎng)絡(luò)科技有限公司