專利名稱:一種控制傳輸層連接的方法和通信裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電通信技術(shù)領(lǐng)域,尤其涉及一種控制傳輸層連接的方法和通信 裝置。
背景技術(shù):
MRCPv2 (Media Resource Control Protocol Version 2 , i某體資源控制協(xié)議 第二版)協(xié)議主要給客戶端提供控制諸如語音合成和語音識(shí)別等服務(wù)器資源的 通用機(jī)制。MRCPv2不是一個(gè)獨(dú)立的協(xié)議,必須依靠會(huì)話管理協(xié)議在客戶端和 服務(wù)器之間建立MRCP控制會(huì)話。會(huì)話建立后,MRCP消息作為獨(dú)立的消息 進(jìn)行傳輸。為了互通便利,MRCPv2選擇SIP(Session Initiation Protocol,會(huì)話 發(fā)起協(xié)議)作為其基本的會(huì)話管理協(xié)議,通過在客戶端和服務(wù)器之間的SIP消 息交互,協(xié)商出MRCP消息傳輸所需要的傳輸層連接信息。其中,MRCP會(huì) 話參數(shù)用SIP消息體部分的SDP( Session Description Protocol,會(huì)話描述協(xié)議) 來描述。按照當(dāng)前的MRCPv2草案,MRCPv2需要支持TCP (Transmission Control Protocol,傳輸控制協(xié)議)和TLS ( Transport Layer Security,傳輸層安 全)。
當(dāng)前MRCPv2草案在SDP的a行對(duì)會(huì)話所在傳輸層連接的屬性做了擴(kuò)展, 通過設(shè)定屬性值為新建的或現(xiàn)有的,來表示新建會(huì)話所在傳輸層連接是新建的 還是與已有會(huì)話共享一條傳輸層連接。
問題在于,當(dāng)一個(gè)會(huì)話結(jié)束后,客戶端或服務(wù)器均可拆除該條傳輸層連接, 而一條傳輸層連接上可能有多個(gè)會(huì)話,如果客戶端在一個(gè)會(huì)話結(jié)束后將該傳輸 層連接拆除的話,將會(huì)使這條傳輸層連接上的所有會(huì)話受到影響。而如果會(huì)話 在結(jié)束后,不拆除傳輸層連接的話,則會(huì)浪費(fèi)大量的傳輸層連接,尤其當(dāng)有很 多個(gè)MRCP客戶端通過獨(dú)立的傳輸層連接與服務(wù)器相連時(shí),可能導(dǎo)致服務(wù)器 端傳輸層連接資源的不足,使得許多用戶無法建立傳輸層連接。由于現(xiàn)有 MRCPv2草案未對(duì)會(huì)話所在傳輸層連接的生存期進(jìn)行描述,當(dāng)會(huì)話結(jié)束后,客 戶端與服務(wù)器不知是否拆除傳輸層連接,因而造成了上述問題。
MRCPv2也沒有規(guī)定傳輸層連接異常斷開時(shí)服務(wù)器和客戶端如何處理。而 現(xiàn)有技術(shù)所采取的策略是當(dāng)傳輸層連接異常斷開時(shí),釋放這條傳輸層連接上的 所有上層業(yè)務(wù)。在一條傳輸層連接上會(huì)有很多會(huì)話,如果斷開傳輸層連接后把 這些會(huì)話都釋放的話,將會(huì)對(duì)用戶造成很大影響。
綜上,由于目前MRCPv2草案未對(duì)傳輸層連接的生存期以及傳輸層連接 異常斷開時(shí)如何處理進(jìn)行描述,在實(shí)際應(yīng)用中會(huì)對(duì)傳輸層連接上的運(yùn)行的業(yè)務(wù) 造成很大影響。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種控制傳輸層連接 的方法,以實(shí)現(xiàn)對(duì)會(huì)話所在傳輸層連接的生存期的控制。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種控制傳輸層連接的方法, 該方法包4舌
協(xié)商傳輸層連接的生存期屬性并建立傳輸層連接;
當(dāng)傳輸層連接上的任意一個(gè)會(huì)話結(jié)束時(shí),判斷所協(xié)商的傳輸層連接的生存
期屬性,如果是暫時(shí)的,則拆除該傳輸層連接;如果為永久的,則保持該傳輸 層連接。
在上述技術(shù)方案中,所述協(xié)商傳輸層連接生存期屬性的步驟為
客戶端設(shè)置傳輸層連接的生存期屬性并發(fā)送包含傳輸層連接生存期屬性
的消息到服務(wù)器;
服務(wù)器接收到客戶端發(fā)送的消息后設(shè)置傳輸層連接的生存期屬性并返回 第一響應(yīng)消息。
其中,在所述傳輸層連接建立后,還包括
客戶端發(fā)起一個(gè)新的會(huì)話,發(fā)送消息請(qǐng)求共享所述已建立的傳輸層連接; 服務(wù)器接收到客戶端發(fā)送的消息后,確定出所述已建立的傳輸層連接的生
存期屬性為暫時(shí)的,并返回第二響應(yīng)消息請(qǐng)求客戶端建立一條新的傳輸層連 接。
優(yōu)選的,建立傳輸層連接之前進(jìn)一步協(xié)商傳輸層連接異常斷開時(shí)是否選擇
建立一條新的傳輸層連接;
當(dāng)傳輸層連接異常斷開時(shí),如果所協(xié)商的結(jié)果是傳輸層連接異常斷開時(shí)選 擇建立一條新的傳輸層連接,服務(wù)器保持所述傳輸層連接上的上層業(yè)務(wù),客戶 端與服務(wù)器協(xié)商并建立一條新的傳輸層連接。
上述技術(shù)方案中,所述協(xié)商傳輸層連接異常斷開時(shí)是否選擇建立一條新的 傳輸層連接的步驟具體為
客戶端設(shè)置傳輸層連接的可靠性屬性并發(fā)送到服務(wù)器;
服務(wù)器接收到所述客戶端發(fā)送的可靠性屬性后設(shè)置傳輸層連接的可靠性 屬性并返回第三響應(yīng)消息;
其中,當(dāng)所述可靠性屬性設(shè)置為更新時(shí),表示傳輸層連接異常斷開時(shí)選擇 建立一條新的連接;當(dāng)所述可靠性屬性設(shè)置為空時(shí),表示由服務(wù)器釋放所述傳 輸層連接上的上層業(yè)務(wù)。
在上述技術(shù)方案中,服務(wù)器保持所述傳輸層連接上的上層業(yè)務(wù)的時(shí)間為5 秒至30秒。
其中,在所述傳輸層連接異常斷開,創(chuàng)建該傳輸層連接的會(huì)話重新協(xié)商并 建立一條新的傳輸層連接后進(jìn)一步包括
共享原來傳輸層連接的會(huì)話在客戶端發(fā)送消息請(qǐng)求共享所述新建的傳輸
層連接;
服務(wù)器接收到該消息后,更新所述新的傳輸層連接上MRCP通道里的 MRCP消息。
其中,在所述傳輸層連接異常斷開,創(chuàng)建該傳輸層連接的會(huì)話重新協(xié)商并 建立一條新的傳輸層連接后進(jìn)一步包括
Channel-Identifier頭域的SET-PARAMS消息;
服務(wù)器接收到該消息后,更新所述新的傳輸層連接上MRCP通道里的 MRCP消息。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種通信裝置,該裝置包括 第一判斷單元、第一存儲(chǔ)單元、第一發(fā)送單元、接收單元,其中
第一存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的傳輸層連接第一參數(shù);所述第一參數(shù)
表示傳輸層連接生存期屬性為暫時(shí)的還是永久的;
接收單元,接收到會(huì)話結(jié)束的消息時(shí),通知第一判斷單元; 第一判斷單元,當(dāng)接收到會(huì)話結(jié)束的消息時(shí),判斷存儲(chǔ)單元中的第一參數(shù)
所表示的生存期屬性為暫時(shí)的還是永久的,并將判斷結(jié)果發(fā)送到第一發(fā)送單
元;
第一發(fā)送單元,當(dāng)所述第一參數(shù)為暫時(shí)的時(shí),將拆除傳輸層連接的消息發(fā) 送出去。
該通信裝置進(jìn)一步包括檢測(cè)單元、業(yè)務(wù)處理單元、第二判斷單元、第二 發(fā)送單元、第二存儲(chǔ)單元,其中
第二存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的傳輸層連接第二參數(shù);所述第二參數(shù) 設(shè)置為更新時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇重新建立一條新的連接; 所述第二參數(shù)設(shè)置為空時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇釋放傳輸層連 接;
檢測(cè)單元,用于檢測(cè)傳輸層連接是否異常斷開,并將檢測(cè)結(jié)果發(fā)送到第二 判斷單元;
第二判斷單元,用于當(dāng)檢測(cè)結(jié)果為連接異常斷開時(shí),判斷第二存儲(chǔ)單元存 儲(chǔ)的所述第二參數(shù)是否設(shè)置為更新,并將判斷結(jié)果發(fā)送到第二發(fā)送單元與業(yè)務(wù) 處理單元;
業(yè)務(wù)處理單元,用于當(dāng)^^測(cè)結(jié)果為異常斷開時(shí),若接收到的所述第二參數(shù) 為更新,則將傳輸層連接上層業(yè)務(wù)存入第二存儲(chǔ)單元;若接收到的所述第二參 數(shù)為空,則釋放所述傳輸層連接上的上層業(yè)務(wù);
第二發(fā)送單元,當(dāng)所述第二參數(shù)為更新時(shí),發(fā)送消息重新協(xié)商并建立一條新的傳輸層連接。
該通信裝置還包括第三發(fā)送單元,用于在所述客戶端與所述服務(wù)器之間建 立新的傳輸層連接后,通過所述新的傳輸層連接發(fā)送一條僅包含
Channel-Identifier頭域的SET-PARAMS消息。
可見,在一個(gè)會(huì)話結(jié)束時(shí),通過判斷預(yù)先協(xié)商的傳輸層連接生存期屬性是 否為暫時(shí)的,并當(dāng)該連接生存期屬性為暫時(shí)的時(shí),拆除該傳輸層連接;如果是 永久的,則不拆除。在不同的場(chǎng)景下,可以滿足不同的業(yè)務(wù)對(duì)生存期的要求。 例如,對(duì)于支持MRCP的移動(dòng)終端訪問MRCP服務(wù)器上的語音控制資源的應(yīng) 用場(chǎng)景,通過設(shè)置傳輸層連接的生存期屬性為暫時(shí)的,當(dāng)一個(gè)會(huì)話結(jié)束時(shí)拆除 該連接,可以節(jié)約服務(wù)器端的傳輸層連接數(shù),避免了用戶較多而服務(wù)器端傳輸 層連接數(shù)不足時(shí)其他用戶無法訪問服務(wù)器的情況發(fā)生,節(jié)約了傳輸層資源,提 高了用戶滿意度。對(duì)于大型設(shè)備之間的通信,通過設(shè)置傳輸層連接的生存期屬 性為永久的,避免了客戶端與服務(wù)器之間頻繁建立和拆除連接對(duì)業(yè)務(wù)性能造成 的影響??傊?,通過預(yù)先對(duì)傳輸層連接的生存期進(jìn)行協(xié)商,避免了會(huì)話的沖突, 節(jié)約了傳輸層資源,提高了傳輸性能。
進(jìn)一步,通過設(shè)置傳輸層連接的可靠性屬性為更新,當(dāng)傳輸層連接異常斷 開時(shí),服務(wù)器暫不釋放傳輸層連接上的上層業(yè)務(wù),并由客戶端重新發(fā)起會(huì)話協(xié) 商出一條新的連接,從而將連接異常斷開情況下對(duì)用戶的影響降到最小。尤其 對(duì)于有很多個(gè)會(huì)話共享一條連接時(shí),該方法可以顯著提高傳輸性能。
圖l為本發(fā)明實(shí)施例在一種場(chǎng)景應(yīng)用中的系統(tǒng)結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例在另 一種場(chǎng)景應(yīng)用中的系統(tǒng)結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例中控制傳輸層連接的工作流程圖; 圖4為本發(fā)明實(shí)施例中控制傳輸層連接的另一工作流程圖; 圖5為本發(fā)明實(shí)施例在會(huì)話欲共享現(xiàn)有連接時(shí)的部分工作流程圖; 圖6為本發(fā)明實(shí)施例中控制傳輸層連接的又一工作流程圖;圖7為本發(fā)明實(shí)施例中控制傳輸層連接的又一工作流程圖; 圖8為本發(fā)明實(shí)施例中在會(huì)話共享現(xiàn)有傳輸層連接時(shí)的部分工作流程圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供了一種控制傳輸層連接的方法,其主要思想為通過預(yù) 先對(duì)會(huì)話所在傳輸層連接的生存期進(jìn)行協(xié)商,當(dāng)一個(gè)會(huì)話結(jié)束時(shí),判斷所述預(yù) 先協(xié)商的傳輸層連接的生存期為暫時(shí)的還是永久的,如果是暫時(shí)的,則拆除該 傳輸層連接;如果是永久的,則不拆除。根據(jù)不同的應(yīng)用場(chǎng)景,協(xié)商出不同的 生存期,可以避免不同會(huì)話的沖突,節(jié)約傳輸層資源,提高傳輸性能。以下參 照附圖,對(duì)本發(fā)明實(shí)施例進(jìn)一步詳細(xì)i兌明。
實(shí)施例一,如圖1所示,有很多個(gè)MRCP客戶端通過獨(dú)立的傳輸層連接 與服務(wù)器相連,每個(gè)客戶端只在一個(gè)會(huì)話內(nèi)使用這個(gè)傳輸層連接。最普通的應(yīng) 用場(chǎng)景是支持MRCP的移動(dòng)終端訪問MRCP服務(wù)器上的語音控制資源。參照 圖3,以下具體說明在這種場(chǎng)景下本發(fā)明控制傳輸層連接的方法。
步驟301:客戶端發(fā)送一個(gè)SIP請(qǐng)求rNVITE給服務(wù)器,請(qǐng)求創(chuàng)建一條新 的傳輸層連接并設(shè)置該傳輸層連接的生存期屬性為暫時(shí)的。
為了節(jié)約服務(wù)器端的傳輸層連接數(shù),MRCP客戶端在沒有執(zhí)行業(yè)務(wù)時(shí)需要 把傳輸層連接關(guān)閉,為此,在SDP中設(shè)置新建傳輸層連接的生存期屬性為暫 時(shí)的,表明傳輸層連接只在當(dāng)前會(huì)話內(nèi)有效。
步驟302:服務(wù)器接受客戶端所發(fā)送的請(qǐng)求及設(shè)置的傳輸層連接屬性信 息,發(fā)送200 OK消息做出響應(yīng)。
步驟303:客戶端和服務(wù)器按照協(xié)商好的傳輸層連接屬性創(chuàng)建傳輸層連接。
步驟304:在創(chuàng)建好的傳輸層連接上傳輸MRCP消息。 步驟305:客戶端發(fā)送BYE消息給服務(wù)器以拆除會(huì)話。 步驟306:服務(wù)器響應(yīng)200 OK消息拆除會(huì)話。
步驟307:客戶端接收到步驟306所述服務(wù)器發(fā)來的200 OK消息后判斷 該傳輸層連接的生存期為暫時(shí)的還是永久的,發(fā)現(xiàn)預(yù)先協(xié)商的傳輸層連接的生 存期為暫時(shí)的,主動(dòng)拆除所述傳輸層連接。
實(shí)施例二,如圖2所示,很多個(gè)用戶通過一個(gè)共同的MRCP客戶端連接 到服務(wù)器上,客戶端和服務(wù)器之間只需建立少量的傳輸層連接,給所有的這些 用戶提供服務(wù)。在這種應(yīng)用場(chǎng)景下,本發(fā)明實(shí)施例控制傳輸層連接的方法如下, 參照?qǐng)D4。
步驟401:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,請(qǐng)求創(chuàng)建一條新 的傳輸層連接并設(shè)置該傳輸層連接的生存期屬性為永久的。
在這種場(chǎng)景下,由于多個(gè)會(huì)話共享連接,如果一個(gè)會(huì)話結(jié)束就拆除該連接, 則會(huì)對(duì)該連接上的所有用戶造成影響,為了避免在客戶端和服務(wù)器之間頻繁地 建立和拆除連接對(duì)業(yè)務(wù)造成的影響,這些連接可以永久存在。為此,在SDP 中設(shè)置傳輸層連接為新建的,其生存期屬性為永久的,表明傳輸層連接是新建 的、跨會(huì)話的永久連接。
步驟402:服務(wù)器,接受客戶端發(fā)送的請(qǐng)求及所設(shè)置的傳輸層連接屬性信 息,發(fā)送200 OK消息做出響應(yīng)。
步驟403:客戶端和服務(wù)器按照協(xié)商好的傳輸層連接屬性創(chuàng)建傳輸層連接。
步驟404:在創(chuàng)建好的傳輸層連接上傳輸MRCP消息。 步驟405:客戶端要拆除會(huì)話時(shí),發(fā)送BYE消息到服務(wù)器。 步驟406:服務(wù)器響應(yīng)200 OK消息后,會(huì)話拆除。
步驟407:客戶端接收到步驟406所述響應(yīng)消息后,判斷該傳輸層連接的 生存期屬性為暫時(shí)的還是永久的,發(fā)現(xiàn)預(yù)先協(xié)商的傳輸層連接的生存期屬性為 永久的,保持所述傳輸層連接。
實(shí)施例三,如果所發(fā)起的會(huì)話期望共享現(xiàn)有的連接,本發(fā)明可以采用下述 方法控制傳輸層連接,參照?qǐng)D5。
步驟501:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,請(qǐng)求共享現(xiàn)有的 傳輸層連接。其中,在SDP中設(shè)置傳輸層連接屬性為現(xiàn)有的,以與其他會(huì)話 共享該傳輸層連接。
步驟502:服務(wù)器收到INVITE消息后發(fā)現(xiàn)客戶端期望使用現(xiàn)有的傳輸層
連接,且服務(wù)器發(fā)現(xiàn)現(xiàn)有的傳輸層連接的生存期屬性為暫時(shí)的,已有的業(yè)務(wù)可 能隨時(shí)拆除該連接。如果共享該連接,所建立的會(huì)話會(huì)有隨時(shí)中斷的可能,因
此,該連接不適于共享,故服務(wù)器可以在INVITE的200 OK響應(yīng)消息中的SDP 中返回傳輸層連接屬性為新建的以令客戶端重新建立一條新的連接。
客戶端可以按照實(shí)施例一、實(shí)施例二所示的步驟進(jìn)行協(xié)商并建立一條新的 傳輸層連接,不再贅述。
如果客戶端與服務(wù)器協(xié)商傳輸層連接屬性為現(xiàn)有的,即使用別的會(huì)話建立 的連接時(shí),當(dāng)會(huì)話結(jié)束時(shí),不能拆除連接,否則會(huì)對(duì)別的會(huì)話造成影響。
為了避免在會(huì)話進(jìn)行中,傳輸層連接的異常中斷對(duì)該連接上的所有業(yè)務(wù)造 成影響,本發(fā)明實(shí)施例進(jìn)一步解決了傳輸層連接異常斷開時(shí)如何處理,具體為 當(dāng)檢測(cè)到傳輸層連接異常斷開時(shí),判斷預(yù)先協(xié)商的傳輸層連接可靠性屬性為更 新還是空,如果可靠性屬性為更新,則服務(wù)器并不立即釋放使用這個(gè)連接的上 層業(yè)務(wù),同時(shí)客戶端通過SIP的會(huì)話更新機(jī)制重新建立連接來繼續(xù)執(zhí)行未完成 的業(yè)務(wù)。以下以具體的實(shí)施例為例進(jìn)行詳細(xì)說明。
實(shí)施例四,仍以圖l所示場(chǎng)景為例,詳細(xì)說明本發(fā)明控制傳輸層連接的方 法。參照?qǐng)D6,以下為具體流程。
步驟601:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,其中在SDP中設(shè) 置傳輸層連接為新建的,其生存期屬性為暫時(shí)的,可靠性屬性為更新。
步驟602:服務(wù)器接受請(qǐng)求,并發(fā)送200 OK消息進(jìn)行響應(yīng),其中在SDP 中設(shè)置傳輸層連接為新建的,其生存期屬性為暫時(shí)的,可靠性屬性為更新,表 明會(huì)話是在新建的一條傳輸層連接上進(jìn)行,且當(dāng)一個(gè)會(huì)話結(jié)束時(shí)會(huì)自動(dòng)拆除該 連接,如果傳輸層連接異常中斷,則客戶端重新建立一條新的傳輸層連接。至 此,客戶端和服務(wù)器就傳輸層連接的屬性協(xié)商完成。
步驟603:客戶端與服務(wù)器按照協(xié)商好的傳輸層連接屬性創(chuàng)建傳輸層連接。
步驟604:在創(chuàng)建好的傳輸層連接上傳輸MRCP消息。 步驟605:服務(wù)器檢測(cè)到傳輸層連接異常中斷,保持使用這個(gè)連接的上層 業(yè)務(wù),等待客戶端重新建立連接,等待時(shí)間為10秒鐘。由于語音業(yè)務(wù)對(duì)時(shí)間比較敏感,等待時(shí)間不應(yīng)過久,同時(shí)也不能太短,以 給客戶端充足的時(shí)間重新建立連接,因此,建議等待時(shí)間為5至30秒鐘。不過,
并不排除等待時(shí)間為所述建議范圍之外的時(shí)間,并且最好還是根據(jù)客戶端和服
務(wù)器雙方的意愿來設(shè)置。例如,客戶端可能5秒鐘就主動(dòng)拆除會(huì)話,而服務(wù)器 可以等待IO秒鐘。
步驟606:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,其中在SIP的消 息內(nèi)容SDP中設(shè)置傳輸層連接為新建的,其生存期屬性為暫時(shí)的,可靠性屬 性為更新。
步驟607:服務(wù)器接受請(qǐng)求并響應(yīng)200OK消息,其中,在SDP中設(shè)置傳 輸層連接為新建的,其生存期屬性為暫時(shí)的,可靠性屬性為更新。
步驟608:客戶端與服務(wù)器按照協(xié)商好的傳輸層連接屬性建立一條新的連接。
步驟609:在新創(chuàng)建的傳輸層連接上傳輸MRCP消息。 步驟610:客戶端發(fā)送BYE消息給服務(wù)器以拆除會(huì)話。 步驟611:服務(wù)器響應(yīng)200OK消息,會(huì)話拆除。
步驟612:客戶端收到步驟611所述服務(wù)器發(fā)來的200 OK消息后判斷該 傳輸層連接的生存期為暫時(shí)的還是永久的,發(fā)現(xiàn)預(yù)先協(xié)商的傳輸層連接的生存 期為暫時(shí)的,主動(dòng)拆除所述傳輸層連接。
可見,步驟606、步驟607在連接異常中斷后協(xié)商出一條新的傳輸層連接, 且由于服務(wù)器暫未釋放連接上的上層業(yè)務(wù),因此,暫時(shí)中斷的業(yè)務(wù)可以繼續(xù)進(jìn) 行。
實(shí)施例五,仍以圖2所示場(chǎng)景為例,詳細(xì)說明本發(fā)明控制傳輸層連接的方 法。參照?qǐng)D7,以下為具體流程。
步驟701:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,其中在SDP中設(shè) 置傳輸層連接為新建的,其生存期屬性為永久的,可靠性屬性為更新。
步驟702:服務(wù)器接受請(qǐng)求,并響應(yīng)200 OK消息給客戶端,其中在SDP 中設(shè)置傳輸層連接為為新建的,其生存期屬性為永久的,可靠性屬性為更新, 表明會(huì)話是在新建的一條傳輸層連接上進(jìn)行,且該傳輸層連接是跨會(huì)話的永久
連接,如果連接異常中斷,則客戶端重新建立一條新的連接。至此,客戶端和 服務(wù)器就傳輸層連接的屬性協(xié)商完成。
步驟703:客戶端與服務(wù)器按照協(xié)商好的傳輸層連接屬性創(chuàng)建傳輸層連接。
步驟704:在創(chuàng)建好的傳輸層連接上傳輸MRCP消息。 步驟705:服務(wù)器檢測(cè)到傳輸層連接異常中斷,保持使用這個(gè)連接的上層 業(yè)務(wù),等待客戶端重新建立連接,等待時(shí)間為30秒鐘。
由于語音業(yè)務(wù)對(duì)時(shí)間比較敏感,等待時(shí)間不應(yīng)過久,同時(shí)也不能太短,以 給客戶端充足的時(shí)間重新建立連接,因此,建議等待時(shí)間為5至30秒鐘。不過, 并不排除等待時(shí)間為所述建議范圍之外的時(shí)間,并且最好還是根據(jù)客戶端和服 務(wù)器雙方的意愿來設(shè)置。例如,客戶端可能5秒就主動(dòng)拆除會(huì)話,而服務(wù)器可 以等待IO秒鐘。
步驟706:客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,其中在SIP的消 息內(nèi)容SDP中設(shè)置傳輸層連接為新建的,其生存期屬性為永久的,可靠性屬 性為更新。
步驟707:服務(wù)器接受請(qǐng)求并響應(yīng)200 OK消息,其中,在SDP中設(shè)置傳 輸層連接為新建的,其生存期屬性為永久的,可靠性屬性為更新。
步驟708:客戶端與服務(wù)器按照協(xié)商好的傳輸層連接屬性建立一條新的連接。
步驟709:在新創(chuàng)建的傳輸層連接上傳輸MRCP消息。 步驟710:發(fā)送BYE消息到服務(wù)器以拆除會(huì)話。 步驟711:服務(wù)器響應(yīng)200 0K消息后,會(huì)話拆除。
步驟712:客戶端接收到步驟711所述響應(yīng)消息后,判斷該傳輸層連接的 生存期為暫時(shí)的還是永久的,發(fā)現(xiàn)預(yù)先協(xié)商的傳輸層連接的生存期為永久的, 保持所述傳輸層連接。
當(dāng)然,在客戶端與服務(wù)器協(xié)商建立一條新的傳輸層連接時(shí),也可以設(shè)置 會(huì)話所在傳輸層連接的可靠性屬性為空,這樣,當(dāng)連接建立后,在業(yè)務(wù)執(zhí)行過 程中如果連接異常斷開,服務(wù)器和客戶端把使用這個(gè)連接的所有業(yè)務(wù)實(shí)例銷毀
即可。
在實(shí)施例四和實(shí)施例五中,在檢測(cè)到傳輸層連接異常中斷后,客戶端及服 務(wù)器協(xié)商出一條新的傳輸層連接。由于服務(wù)器在傳輸層連接異常中斷后并不急 于釋放這個(gè)傳輸層連接的上層業(yè)務(wù),同時(shí)客戶端可以重新發(fā)起建立一條新的傳 輸層連接,因此將傳輸層連接異常中斷對(duì)用戶的影響降到最小。
如果服務(wù)器知道會(huì)話何時(shí)結(jié)束,在上述各實(shí)施例中,也可由服務(wù)器發(fā)起拆 除傳輸層連接。
一般情況下,對(duì)于很多個(gè)會(huì)話共享一條傳輸層連接的場(chǎng)景,例如兩個(gè)大型 的電信設(shè)備之間,為了避免傳輸層連接異常中斷時(shí)對(duì)大量的用戶造成影響,客
戶端與服務(wù)器進(jìn)行協(xié)商時(shí),在客戶端發(fā)送的SIP消息中,傳輸層連接的可靠性
屬性設(shè)置為更新。而對(duì)于會(huì)話內(nèi)的臨時(shí)連接,根據(jù)具體場(chǎng)景的不同,所述傳輸 層連接可以設(shè)置為空,也可以設(shè)置為更新。
實(shí)施例六、以圖2所示場(chǎng)景為例,說明多個(gè)會(huì)話共享一條傳輸層連接時(shí), 如果傳輸層連接異常斷開,在創(chuàng)建該傳輸層連接的會(huì)話重新建立起一條新的傳 輸層連接后,其余共享原傳輸層連接的會(huì)話是如何共享新建的傳輸層連接的, 參見圖8。
步驟801:服務(wù)器端檢測(cè)到傳輸層連接異常斷開,保持使用這個(gè)連接的上 層業(yè)務(wù),等待客戶端重新建立連接,等待時(shí)間為30秒鐘。
由于語音業(yè)務(wù)對(duì)時(shí)間比較敏感,等待時(shí)間不應(yīng)過久,同時(shí)也不能太短,以 給客戶端充足的時(shí)間重新建立連接,因此,建議等待時(shí)間為5至30秒鐘。不過, 并不排除等待時(shí)間為所述建議范圍之外的時(shí)間,并且最好還是根據(jù)客戶端和服
務(wù)器雙方的意愿來設(shè)置。例如,客戶端可能5秒就主動(dòng)拆除會(huì)話,而服務(wù)器可 以等待IO秒鐘。
步驟802:創(chuàng)建該傳輸層連接的原始會(huì)話請(qǐng)求建立一條新的傳輸層連接。 客戶端發(fā)送一個(gè)SIP請(qǐng)求INVITE給服務(wù)器,其中在SDP中設(shè)置傳輸層連接為 新建的,其生存期屬性為永久的,可靠性屬性為更新。
步驟803:服務(wù)器接受請(qǐng)求并返回響應(yīng)消息200 OK消息。 步驟804:客戶端與服務(wù)器創(chuàng)建好一條新的傳輸層連接。步驟805:客戶端共享原來傳輸層連接的會(huì)話發(fā)送SIP請(qǐng)求,重新請(qǐng)求共 享傳輸層連接。
步驟806:服務(wù)器接受請(qǐng)求并返回響應(yīng)消息。
服務(wù)器接收到該消息,根據(jù)存儲(chǔ)的傳輸層連接的已用資源及未用資源狀 況,選擇新建傳輸層連接作為共享連接。因?yàn)樾陆▊鬏攲舆B接屬性為永久的, 可以共享,且其上只有一個(gè)會(huì)話控制的MRCP消息運(yùn)行,根據(jù)資源配置策略, 應(yīng)該選取較為空閑的傳輸層連接,故選擇新建傳輸層連接。
步驟807:客戶端與服務(wù)器在新建的傳輸層連接上傳輸MRCP消息。 步驟808: —個(gè)共享該傳輸層連接的會(huì)話結(jié)束,客戶端發(fā)送BYE消息拆 除會(huì)話。
步驟809:服務(wù)器響應(yīng)200 0K消息,會(huì)話拆除。
步驟810:非創(chuàng)建該傳輸層連接的會(huì)話沒有拆除該傳輸層連接的權(quán)限,因 此,客戶端保持所述傳輸層連接。
對(duì)于共享的傳輸層連接異常斷開,新的傳輸層連接建立后,如何保證共享
原來傳輸層連接的會(huì)話在新的傳輸層連接上運(yùn)行,還有另一種方法,可以更新 傳輸層連接與其上運(yùn)行的業(yè)務(wù)的綁定關(guān)系。舉例說明有多個(gè)會(huì)話共享原來的 傳輸層連接,每個(gè)會(huì)話通過一個(gè)或多個(gè)MRCP通道傳輸MRCP信息。當(dāng)創(chuàng)建 原來傳輸層連接的會(huì)話建立起新的傳輸層連接后,客戶端發(fā)送SET-PARAMS 消息,該消息只有 一個(gè)Channel-Identifier頭域,Channel-Identifier中的字符串 標(biāo)識(shí)會(huì)話所用MRCP通道。當(dāng)服務(wù)器接收到該消息后,就可以更新新建傳輸 層連接與MRCP通道的綁定關(guān)系,共享原來傳輸層連接的各會(huì)話的MRCP通 道就與新的傳輸層連接建立了綁定關(guān)系。服務(wù)器接收到客戶端發(fā)送的消息時(shí), 不會(huì)通過原來的傳輸層連接,而是通過新的傳輸層連接響應(yīng)消息。
在以上各實(shí)施例中,客戶端與服務(wù)器在傳輸層連接建立之前,對(duì)傳輸層連 接屬性進(jìn)行了協(xié)商。例如,步驟301和步驟302對(duì)傳輸層連接的生存期屬性進(jìn) 行了協(xié)商??蛻舳藢⒃O(shè)置的傳輸層連接屬性發(fā)送到服務(wù)器后,服務(wù)器也對(duì)傳輸 層連接屬性進(jìn)行設(shè)置并返回響應(yīng)消息,如果客戶端接受服務(wù)器的設(shè)置,則按常 規(guī)發(fā)起和接收后續(xù)的消息;如果不接受,可以拆除會(huì)話,比如,用SIP發(fā)送
BYE消息給對(duì)端即可發(fā)起拆除會(huì)話。其中,客戶端所接受的設(shè)置,可能與自
身設(shè)置的生存期屬性參數(shù)相同,也可以不同。客戶端與服務(wù)器可以根據(jù)自身的 策略,決定是否接受對(duì)端選擇。
本發(fā)明實(shí)施例還提供了 一種通信裝置,該通信裝置可以通過對(duì)傳輸層連接
進(jìn)行控制,從而提高傳輸性能。該裝置包括第一判斷單元、第一存儲(chǔ)單元、 第一發(fā)送單元、接收單元,其中
第一存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的第一參數(shù);所述第一參數(shù)表示傳輸層 連接生存期屬性為暫時(shí)的還是永久的;
接收單元,用于接收消息,并當(dāng)接收到會(huì)話結(jié)束的消息時(shí),通知第一判斷 單元;
第 一判斷單元,當(dāng)接收到會(huì)話結(jié)束的消息時(shí)判斷存儲(chǔ)單元中的第 一參數(shù)所 表示的傳輸層連接生存期屬性為暫時(shí)的還是永久的,并將判斷結(jié)果發(fā)送到發(fā)送 單元;
第一發(fā)送單元,當(dāng)所述第一參數(shù)為暫時(shí)的時(shí),發(fā)送消息拆除所述傳輸層連接。
為了解決連接異常斷開對(duì)業(yè)務(wù)造成影響,該通信裝置進(jìn)一步包括檢測(cè)單 元、業(yè)務(wù)處理單元、第二判斷單元、第二發(fā)送單元、第二存儲(chǔ)單元,其中
第二存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的第二參數(shù);所述第二參數(shù)設(shè)置為更新 時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇重新建立一條新的連接;所述第二參 數(shù)設(shè)置為空時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇釋放傳輸層連接;
檢測(cè)單元,用于檢測(cè)傳輸層連接是否異常斷開,并將檢測(cè)結(jié)果發(fā)送到第二 判斷單元;
第二判斷單元,用于當(dāng)檢測(cè)結(jié)果為連接異常斷開時(shí),判斷第二存儲(chǔ)單元存 儲(chǔ)的所述第二參數(shù)是否設(shè)置為更新,并將判斷結(jié)果發(fā)送到第二發(fā)送單元與業(yè)務(wù) 處理單元;
業(yè)務(wù)處理單元,用于當(dāng)檢測(cè)結(jié)果為異常斷開時(shí),若接收到的所述第二參數(shù) 為更新,則將傳輸層連接上層業(yè)務(wù)存入第二存儲(chǔ)單元;若接收到的所述第二參 數(shù)為空,則釋放所述傳輸層連接上的上層業(yè)務(wù);
第二發(fā)送單元,當(dāng)所述第二參數(shù)為更新時(shí),發(fā)送消息重新協(xié)商并建立一條 新的傳輸層連接。
可以根據(jù)實(shí)際情況配置第二存儲(chǔ)單元保存上層業(yè)務(wù)的時(shí)間,這時(shí),本發(fā)明 實(shí)施例所述通信裝置還包括定時(shí)單元,當(dāng)?shù)皆O(shè)定的時(shí)間后,所述業(yè)務(wù)處理單元 釋放存儲(chǔ)單元中的傳輸層連接上的上層業(yè)務(wù)。
對(duì)于一個(gè)會(huì)話,可能通過一個(gè)或多個(gè)MRCP通道傳輸MRCP消息,此時(shí), 傳輸層連接就和其上多個(gè)會(huì)話的MRCP通道綁定在一起。當(dāng)原來的傳輸層連 接中斷后,建立起一條新的傳輸層連接時(shí),如果不更新傳輸層連接和MRCP 通道的綁定關(guān)系,MRCP消息仍會(huì)用原來的傳輸層連接,由于原來的已經(jīng)中斷, 因此必然失敗。為了解決這個(gè)問題,本發(fā)明實(shí)施例所述通信裝置進(jìn)一步包括第 三發(fā)送單元,用于通過所述新的傳輸層連接發(fā)送一條僅包含Channel-Identifier 頭域的SET-PARAMS消息。這樣就可更新新建傳輸層連接與所述MRCP通道 的綁定消息,不會(huì)影響之前運(yùn)行的業(yè)務(wù)。
以上對(duì)本發(fā)明所提供的一種控制傳輸層連接的方法和通信裝置進(jìn)行了詳 細(xì)的介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以
對(duì)于本領(lǐng)域的一4殳技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍 上均會(huì)由改變之處,例如本發(fā)明實(shí)施例以客戶端與服務(wù)器進(jìn)行SIP消息的交互 來說明雙方是如何完成傳輸層連接屬性的協(xié)商的,但并不限于SIP協(xié)議,其他 使用SDP的協(xié)議也可以。綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限 制。
權(quán)利要求
1. 一種控制傳輸層連接的方法,其特征在于,包括協(xié)商傳輸層連接的生存期屬性并建立傳輸層連接;當(dāng)傳輸層連接上的任意一個(gè)會(huì)話結(jié)束時(shí),判斷所協(xié)商的傳輸層連接的生存期屬性,如果是暫時(shí)的,則拆除該傳輸層連接;如果為永久的,則保持該傳輸層連接。
2. 如權(quán)利要求1所述的控制傳輸層連接的方法,其特征在于,所述協(xié)商 傳輸層連接生存期屬性的步驟為客戶端設(shè)置傳輸層連接的生存期屬性并發(fā)送包含傳輸層連接生存期屬性 的消息到服務(wù)器;服務(wù)器接收到客戶端發(fā)送的消息后設(shè)置傳輸層連接的生存期屬性并返回 第一響應(yīng)消息。
3. 如權(quán)利要求2所述的控制傳輸層連接的方法,其特征在于,在所述傳 輸層連接建立后,還包括客戶端發(fā)起一個(gè)新的會(huì)話,發(fā)送消息請(qǐng)求共享所述已建立的傳輸層連接;服務(wù)器接收到客戶端發(fā)送的消息后,確定出所述已建立的傳輸層連接的生 存期屬性為暫時(shí)的,并返回第二響應(yīng)消息請(qǐng)求客戶端建立一條新的傳輸層連 接。
4. 如權(quán)利要求1所述的控制傳輸層連接的方法,其特征在于,建立傳輸 層連接之前進(jìn)一步協(xié)商傳輸層連接異常斷開時(shí)是否選擇建立一條新的傳輸層 連接;當(dāng)傳輸層連接異常斷開時(shí),如果所協(xié)商的結(jié)果是傳輸層連接異常斷開時(shí)選 擇建立一條新的傳輸層連接,服務(wù)器保持所述傳輸層連接上的上層業(yè)務(wù),客戶 端與服務(wù)器協(xié)商并建立一條新的傳輸層連接。
5. 如權(quán)利要求4所述的控制傳輸層連接的方法,其特征在于,所述協(xié)商 傳輸層連接異常斷開時(shí)是否選擇建立一條新的傳輸層連接的步驟具體為客戶端設(shè)置傳輸層連接的可靠性屬性并發(fā)送到服務(wù)器; 服務(wù)器接收到所述客戶端發(fā)送的可靠性屬性后設(shè)置傳輸層連接的可靠性屬性并返回第三響應(yīng)消息;其中,當(dāng)所述可靠性屬性設(shè)置為更新時(shí),表示傳輸層連接異常斷開時(shí)選擇建立一條新的連接;當(dāng)所述可靠性屬性設(shè)置為空時(shí),表示由服務(wù)器釋放所述傳 輸層連接上的上層業(yè)務(wù)。
6. 如權(quán)利要求4所述的控制傳輸層連接的方法,其特征在于,服務(wù)器保 持所述傳輸層連接上的上層業(yè)務(wù)的時(shí)間為5秒至30秒。
7. 如權(quán)利要求4所述的控制傳輸層連接的方法,其特征在于,在所述傳 輸層連接異常斷開,創(chuàng)建該傳輸層連接的會(huì)話重新協(xié)商并建立一條新的傳輸層 連接后進(jìn)一步包括共享原來傳輸層連接的會(huì)話在客戶端發(fā)送消息請(qǐng)求共享所述新建的傳輸 層連接;服務(wù)器接收到該消息后,更新所述新的傳輸層連接上MRCP通道里的 MRCP消息。
8. 如權(quán)利要求4所述的控制傳輸層連接的方法,其特征在于,在所述傳 輸層連接異常斷開,創(chuàng)建該傳輸層連接的會(huì)話重新協(xié)商并建立一條新的傳輸層 連接后進(jìn)一步包括客戶端通過所述新的傳輸層連接向服務(wù)器發(fā)送 一 條僅包含 Channel-Identifier頭域的SET-PARAMS消息;服務(wù)器接收到該消息后,更新所述新的傳輸層連接上MRCP通道里的 MRCP消息。
9. 一種通信裝置,其特征在于,包括第一判斷單元、第一存儲(chǔ)單元、 第一發(fā)送單元、接收單元,其中第一存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的傳輸層連接第一參數(shù);所述第一參數(shù)表示傳輸層連接生存期屬性為暫時(shí)的還是永久的;接收單元,接收到會(huì)話結(jié)束的消息時(shí),通知第一判斷單元; 第一判斷單元,當(dāng)接收到會(huì)話結(jié)束的消息時(shí),判斷存儲(chǔ)單元中的第一參數(shù)所表示的生存期屬性為暫時(shí)的還是永久的,并將判斷結(jié)果發(fā)送到第一發(fā)送單元;第一發(fā)送單元,當(dāng)所迷第一參數(shù)為暫時(shí)的時(shí),將拆除傳輸層連接的消息發(fā) 送出去。
10. 如權(quán)利要求9所述的通信裝置,其特征在于,進(jìn)一步包括檢測(cè)單元、 業(yè)務(wù)處理單元、第二判斷單元、第二發(fā)送單元、第二存儲(chǔ)單元,其中第二存儲(chǔ)單元,用于存儲(chǔ)已協(xié)商好的傳輸層連接第二參數(shù);所述第二參數(shù)設(shè)置為更新時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇重新建立一條新的連接; 所述第二參數(shù)設(shè)置為空時(shí),表示當(dāng)傳輸層連接異常斷開時(shí),選擇釋放傳輸層連接;檢測(cè)單元,用于檢測(cè)傳輸層連接是否異常斷開,并將檢測(cè)結(jié)果發(fā)送到第二判斷單元;第二判斷單元,用于當(dāng)檢測(cè)結(jié)果為連接異常斷開時(shí),判斷第二存儲(chǔ)單元存 儲(chǔ)的所述第二參數(shù)是否設(shè)置為更新,并將判斷結(jié)杲發(fā)送到第二發(fā)送單元與業(yè)務(wù) 處理單元;業(yè)務(wù)處理單元,用于當(dāng)檢測(cè)結(jié)果為異常斷開時(shí),若接收到的所述第二參數(shù) 為更新,則將傳輸層連接上層業(yè)務(wù)存入第二存儲(chǔ)單元;若接收到的所述第二參 數(shù)為空,則釋放所述傳輸層連接上的上層業(yè)務(wù);第二發(fā)送單元,當(dāng)所述第二參數(shù)為更新時(shí),發(fā)送消息重新協(xié)商并建立一條 新的傳輸層連接。
11. 如權(quán)利要求IO所述的通信裝置,其特征在于,還包括第三發(fā)送單元, 用于在所述客戶端與所述服務(wù)器之間建立新的傳輸層連接后,通過所述新的傳輸層連接發(fā)送一條僅包含Channel-Identifier頭域的SET-PARAMS消息。
全文摘要
本發(fā)明屬于電通信技術(shù)領(lǐng)域,公開了一種控制傳輸層連接的方法和通信裝置。本發(fā)明的核心思想是通過預(yù)先對(duì)會(huì)話所在傳輸層連接的生存期進(jìn)行協(xié)商,當(dāng)傳輸層連接上的任意一個(gè)會(huì)話結(jié)束時(shí),判斷所述預(yù)先協(xié)商的傳輸層連接的生存期為暫時(shí)的還是永久的,如果是暫時(shí)的,則拆除該傳輸層連接;如果是永久的,則不拆除。根據(jù)不同的應(yīng)用場(chǎng)景,協(xié)商出不同的生存期,可以避免不同會(huì)話的沖突,節(jié)約傳輸層資源,提高傳輸性能。更進(jìn)一步,當(dāng)傳輸層連接異常斷開時(shí),暫不釋放上層業(yè)務(wù),并重新建立一條新的連接,從而將連接異常斷開對(duì)用戶的影響降到最小。
文檔編號(hào)H04L29/08GK101207631SQ20061016785
公開日2008年6月25日 申請(qǐng)日期2006年12月20日 優(yōu)先權(quán)日2006年12月20日
發(fā)明者奇 王 申請(qǐng)人:華為技術(shù)有限公司