相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求2014年12月19日提交的題為“negotiationofchunksizeformessagesessionrelayprotocol”的在先提交的美國(guó)臨時(shí)專利申請(qǐng)?zhí)?2/094,227的優(yōu)先權(quán),其內(nèi)容通過引用并入本文。
本公開大體上涉及在端點(diǎn)之間對(duì)消息會(huì)話中繼協(xié)議msrp塊大小的協(xié)商。
背景技術(shù):
消息會(huì)話中繼協(xié)議msrp是通過通信網(wǎng)絡(luò)在端點(diǎn)之間使用以用于在會(huì)合會(huì)話的上下文中通過互聯(lián)網(wǎng)協(xié)議ip網(wǎng)絡(luò)交換一系列相關(guān)的即時(shí)消息的標(biāo)準(zhǔn)媒體平面協(xié)議。它由互聯(lián)網(wǎng)工程任務(wù)組ietf在“請(qǐng)求注釋”rfc4975中定義。即時(shí)消息中的內(nèi)容可以是文本消息、超文本傳輸協(xié)議html頁(yè)面、包含視頻剪輯、圖像、歌曲的文件或只是通用文件。該內(nèi)容還可以與共享遠(yuǎn)端桌面或白板有關(guān)。
msrp是一種基于文本的協(xié)議,其通過傳輸協(xié)議(如傳輸控制協(xié)議tcp、ietfrfc793、流控制傳輸協(xié)議sctp、ietfrfc2690、tcp承載傳輸層安全tls、ietfrfc2246等)承載在媒體平面上。換句話說,提供擁塞控制的任何傳輸協(xié)議。如當(dāng)前指定的,msrp不對(duì)消息大小或內(nèi)容類型施加限制。
也可以按照ietfrfc4976所定義的使用msrp中繼。當(dāng)端點(diǎn)之一位于網(wǎng)絡(luò)地址轉(zhuǎn)換器nat后面(更具體地,如果msrp會(huì)話必須跨越多個(gè)管理域)時(shí),使用msrp中繼。msrp中繼還用于支持批量消息收發(fā),并通過少量中繼間連接而承載用于大量msrp會(huì)話的消息。
msrp消息由請(qǐng)求和響應(yīng)組成,并且并非每個(gè)msrp請(qǐng)求都通過msrp響應(yīng)應(yīng)答。msrp定義了方法,并且目前有三種指定的方法:
用于發(fā)送任意長(zhǎng)度的即時(shí)消息或文件等的send(發(fā)送)方法。
用于提供消息傳送通知的report(報(bào)告)方法。
用于使用中繼認(rèn)證端點(diǎn)的auth(認(rèn)證)方法。
msrp無(wú)法獨(dú)立設(shè)置會(huì)話,并且為了在端點(diǎn)之間建立msrp會(huì)話,通過外部會(huì)合機(jī)制協(xié)商msrp會(huì)話。用于建立msrp會(huì)話的典型會(huì)合機(jī)制是利用會(huì)話描述協(xié)議sdp供應(yīng)/應(yīng)答模型的會(huì)話發(fā)起協(xié)議sip。當(dāng)然可以使用而不排除其他會(huì)合協(xié)議。目前,會(huì)話發(fā)起協(xié)議sipietfrfc3261和會(huì)話描述sdp供應(yīng)/應(yīng)答ietfrfc3264是用于建立msrp會(huì)話的唯一已知的標(biāo)準(zhǔn)化機(jī)制。sip是一種ietf標(biāo)準(zhǔn)協(xié)議,其允許建立涉及多媒體元素(如視頻、語(yǔ)音、聊天、游戲和虛擬現(xiàn)實(shí))的交互式用戶會(huì)話。它還用于建立用于交換即時(shí)消息或文件的基于會(huì)話的消息收發(fā)會(huì)話,即msrp會(huì)話。根據(jù)sdp應(yīng)答/供應(yīng)模型交換msrp會(huì)話參數(shù)。
在sdp供應(yīng)/應(yīng)答交換中通過sip在端點(diǎn)之間交換以下sdp屬性,以建立msrp會(huì)話:
接受類型:包含端點(diǎn)愿意接收的媒體類型的列表。
包裝類型:包含端點(diǎn)在具有多部分內(nèi)容的msrp消息中愿意接收的媒體類型的列表。
最大大?。褐甘径它c(diǎn)愿意接收的msrp消息或最大消息的八位字節(jié)的最大數(shù)量。最大大小是指完整消息,而不是任何一個(gè)塊的大小。發(fā)送方不應(yīng)當(dāng)超過在得到的會(huì)話中發(fā)送的任何消息的最大大小限制。
路徑:指示在會(huì)話中發(fā)送的消息必須訪問的一系列msrp設(shè)備(包括最終端點(diǎn))。
通常,托管sip用戶代理的起始端點(diǎn)100向也托管sip用戶代理的遠(yuǎn)端端點(diǎn)發(fā)送包括sdp供應(yīng)的sipinvite(邀請(qǐng))。sdp供應(yīng)包括消息媒體類型和路徑屬性中的起始端點(diǎn)100的msrpuri。如果遠(yuǎn)端端點(diǎn)接受邀請(qǐng),則以200ok進(jìn)行響應(yīng)以確認(rèn)對(duì)媒體的選擇并包括接收msrpuri。此時(shí),建立msrp會(huì)話,并且端點(diǎn)可以開始交換即時(shí)消息或文件等。當(dāng)任一端點(diǎn)發(fā)送sipbye請(qǐng)求時(shí),msrp會(huì)話終止。
一旦建立了msrp會(huì)話,起始端點(diǎn)100就發(fā)送send請(qǐng)求以傳送完整消息,或者如果消息非常大,則起始端點(diǎn)100可以使用幾個(gè)send請(qǐng)求以塊的形式傳送該消息,其中每個(gè)send請(qǐng)求包含整個(gè)消息的一個(gè)塊、與整個(gè)消息相對(duì)應(yīng)的消息id、標(biāo)識(shí)send請(qǐng)求中承載的消息的部分的字節(jié)范圍首部字段和消息的總大小。遠(yuǎn)端端點(diǎn)使用接收到的信息來對(duì)消息進(jìn)行重新組合,并確定哪些塊屬于哪個(gè)消息。遠(yuǎn)端端點(diǎn)將塊重新組合成完整消息。
send請(qǐng)求可以由來自對(duì)等節(jié)點(diǎn)或端點(diǎn)節(jié)點(diǎn)的msrp200ok和/或來自端點(diǎn)的指示成功地傳送了完整消息的report請(qǐng)求來應(yīng)答。也可以在接收到消息塊時(shí)由遠(yuǎn)端端點(diǎn)生成逐步成功report請(qǐng)求。
目前,當(dāng)從起始端點(diǎn)100向遠(yuǎn)端端點(diǎn)發(fā)送消息時(shí),起始端點(diǎn)100基于例如其內(nèi)部配置來確定msrp塊大小。msrp中繼還可以將msrp消息重新分段為與它接收到的塊大小不同的塊大小。在msrp中繼處執(zhí)行的重新分段通常基于內(nèi)部配置。
如果它從高容量接入網(wǎng)移動(dòng)到低容量接入網(wǎng),或者反之亦然,或者如果遠(yuǎn)端端點(diǎn)中的網(wǎng)絡(luò)/鏈路狀況已發(fā)生變化,則塊大小的確定未考慮遠(yuǎn)端端點(diǎn)能力、接收網(wǎng)絡(luò)能力和遠(yuǎn)端端點(diǎn)移動(dòng)性。這可能會(huì)在消息傳送中導(dǎo)致可能無(wú)法傳送的消息塊或缺少優(yōu)化。雖然msrp通過提供擁塞控制的傳輸協(xié)議承載,但是起始端點(diǎn)沒有指示對(duì)于遠(yuǎn)端端點(diǎn)可接受的最佳塊大小。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是通過使端點(diǎn)能夠與遠(yuǎn)端端點(diǎn)或接收端點(diǎn)協(xié)商msrp塊大小或與中間服務(wù)器(諸如背靠背用戶代理b2bua或中繼)協(xié)商msrp塊大小來消除或減輕現(xiàn)有技術(shù)的至少一個(gè)缺點(diǎn)。然后,b2bua或中繼將與遠(yuǎn)端端點(diǎn)協(xié)商塊大小。然后,起始端點(diǎn)將考慮起始端點(diǎn)和遠(yuǎn)端端點(diǎn)或b2bua限制和能力(包括接入網(wǎng)類型、網(wǎng)絡(luò)和鏈路狀況和配置)確定要使用的最佳塊大小。
在一個(gè)實(shí)施例中,端點(diǎn)與遠(yuǎn)端端點(diǎn)協(xié)商用于msrp媒體會(huì)話的msrp塊大小。端點(diǎn)確定其為msrp媒體會(huì)話提出的優(yōu)選msrp塊大小,并向遠(yuǎn)端端點(diǎn)發(fā)送包括優(yōu)選msrp塊大小的消息。當(dāng)端點(diǎn)接收到包括遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小的響應(yīng)消息時(shí),它將基于端點(diǎn)的優(yōu)選msrp塊大小和所接收的遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小來確定用于msrp媒體會(huì)話的msrp塊大小。然后,端點(diǎn)將使用確定的msrp塊大小來對(duì)通過msrp媒體會(huì)話傳送的消息或文件或內(nèi)容進(jìn)行分段。遠(yuǎn)端端點(diǎn)可以是消息所去往的最終目的地遠(yuǎn)端端點(diǎn)或者駐留在網(wǎng)絡(luò)中的服務(wù)器中的用于向最終目的地遠(yuǎn)端端點(diǎn)轉(zhuǎn)發(fā)或中繼消息的中間遠(yuǎn)端端點(diǎn)。
在一個(gè)實(shí)施例中,端點(diǎn)的優(yōu)選msrp塊大小和/或遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小對(duì)應(yīng)于針對(duì)該端點(diǎn)的最大允許塊大小。
在一個(gè)實(shí)施例中,端點(diǎn)基于所使用的端點(diǎn)的接入網(wǎng)類型(例如,長(zhǎng)期演進(jìn)ltetm、wifitm)和/或本地端點(diǎn)配置和/或端點(diǎn)能力來確定優(yōu)選msrp塊大小。優(yōu)選msrp塊大小被編碼在sdp屬性中并以sdp供應(yīng)和sdp應(yīng)答進(jìn)行交換。使用諸如sip協(xié)議(例如,使用sipinvite、sip200ok、sipre-invite和sipupdate消息等)的會(huì)合協(xié)議來傳輸sdp供應(yīng)和sdp應(yīng)答。
在另一個(gè)實(shí)施例中,端點(diǎn)在sdp屬性中發(fā)送按偏好或優(yōu)先級(jí)順序列出的優(yōu)選msrp塊大小的列表。
在一個(gè)實(shí)施例中,端點(diǎn)通過選擇端點(diǎn)的優(yōu)選msrp塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小中的較小者來確定用于msrp媒體會(huì)話的msrp塊大小。如果端點(diǎn)僅支持預(yù)配置的塊大小的集合,并且接收到比端點(diǎn)的優(yōu)選msrp塊大小更小并且端點(diǎn)不能選擇并用于msrp會(huì)話的遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小,則端點(diǎn)選擇更接近并小于遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小的配置的msrp塊大小。
端點(diǎn)向遠(yuǎn)端端點(diǎn)發(fā)送msrpsend請(qǐng)求,每個(gè)send請(qǐng)求包括要發(fā)送的文件或內(nèi)容或消息的塊,并且其中,塊的大小依據(jù)由端點(diǎn)在協(xié)商之后確定的msrp塊大小。
在一個(gè)實(shí)施例中,使用服務(wù)器來與起始端點(diǎn)(也稱為第一端點(diǎn))和遠(yuǎn)端端點(diǎn)(也稱為第二端點(diǎn))協(xié)商msrp塊大小。當(dāng)在第一端點(diǎn)與第二端點(diǎn)之間通過服務(wù)器傳輸消息時(shí),服務(wù)器確定要用于第一(起始)端點(diǎn)與服務(wù)器之間以及服務(wù)器與第二(遠(yuǎn)端)端點(diǎn)之間的msrp會(huì)話的msrp塊大小。服務(wù)器在第一消息(例如,sipinvite)中從第一端點(diǎn)接收包括第一端點(diǎn)的優(yōu)選msrp塊大小的sdp供應(yīng)。在向第二端點(diǎn)轉(zhuǎn)發(fā)具有sdp供應(yīng)的第一消息之前,服務(wù)器可以使用本地策略和/或服務(wù)器與沿著通信路徑的對(duì)等網(wǎng)絡(luò)或第二端點(diǎn)所在的網(wǎng)絡(luò)之間的服務(wù)級(jí)別協(xié)議來確定第一服務(wù)器優(yōu)選msrp塊大小。服務(wù)器在sdp供應(yīng)中使用第一服務(wù)器優(yōu)選msrp塊大小替換從第一端點(diǎn)接收的第一端點(diǎn)的優(yōu)選msrp塊大小,并向第二端點(diǎn)轉(zhuǎn)發(fā)具有更新的sdp供應(yīng)的第一消息。當(dāng)服務(wù)器在第二消息(例如,sip200ok)中接收到包括sdp應(yīng)答屬性中的第二端點(diǎn)的優(yōu)選msrp塊大小的sdp應(yīng)答時(shí),它可以使用本地策略和/或服務(wù)器與沿著朝向第一端點(diǎn)的通信路徑的對(duì)等網(wǎng)絡(luò)節(jié)點(diǎn)之間的服務(wù)級(jí)別協(xié)議來確定將在服務(wù)器與第一端點(diǎn)之間使用的第二服務(wù)器優(yōu)選msrp塊大小。然后,服務(wù)器在sdp應(yīng)答中使用第二服務(wù)器優(yōu)選msrp塊大小來替換從第二端點(diǎn)接收的第二端點(diǎn)的優(yōu)選msrp塊大小。然后,服務(wù)器向第一端點(diǎn)轉(zhuǎn)發(fā)第二消息中的更新的sdp應(yīng)答。
在一個(gè)實(shí)施例中,第一服務(wù)器優(yōu)選msrp塊大小可以對(duì)應(yīng)于在服務(wù)器與第二端點(diǎn)之間允許的最大msrp塊大小。類似地,第二服務(wù)器優(yōu)選msrp塊大小可以對(duì)應(yīng)于在服務(wù)器與第一端點(diǎn)之間允許的最大msrp塊大小。
在一個(gè)實(shí)施例中,服務(wù)器基于第二端點(diǎn)的優(yōu)選msrp塊大小和第一服務(wù)器優(yōu)選msrp塊大小來確定要用于對(duì)從服務(wù)器到第二端點(diǎn)的消息進(jìn)行分段的第一服務(wù)器msrp塊大小。服務(wù)器可以通過選擇第一服務(wù)器優(yōu)選msrp塊大小和第二端點(diǎn)的優(yōu)選msrp塊大小中的較小者來確定第一服務(wù)器msrp塊大小。對(duì)于服務(wù)器與第一個(gè)端點(diǎn)之間的msrp會(huì)話,服務(wù)器基于第一端點(diǎn)的優(yōu)選msrp塊大小和第二服務(wù)器優(yōu)選msrp塊大小來確定第二服務(wù)器msrp塊大小。類似地,服務(wù)器可以通過選擇第二服務(wù)器優(yōu)選msrp塊大小和第一端點(diǎn)的優(yōu)選msrp塊大小中的較小者來確定第二服務(wù)器msrp塊大小。
在一個(gè)實(shí)施例中,當(dāng)服務(wù)器從第一端點(diǎn)接收到去往第二端點(diǎn)的大消息或文件或其他大內(nèi)容的塊時(shí),服務(wù)器可以在轉(zhuǎn)發(fā)根據(jù)第一服務(wù)器msrp塊大小重新分段的消息之前存儲(chǔ)從第一端點(diǎn)接收到的所有消息塊。同樣地,在另一個(gè)方向上,如果服務(wù)器從第二端點(diǎn)接收到大消息或文件或其他大內(nèi)容的塊,則服務(wù)器可以在轉(zhuǎn)發(fā)根據(jù)第二服務(wù)器msrp塊大小重新分段的消息之前存儲(chǔ)從第二端點(diǎn)接收到的所有消息塊。備選地,一接收到消息塊,服務(wù)器就向任一端點(diǎn)發(fā)送重新分段的消息塊。
在一個(gè)實(shí)施例中,服務(wù)器在sdp屬性中向第二端點(diǎn)發(fā)送第一服務(wù)器優(yōu)選msrp塊大小的列表。可以按照偏好或優(yōu)先級(jí)順序列出第一服務(wù)器優(yōu)選msrp塊大小。本發(fā)明的另一個(gè)目的在于在sdp屬性中提供最小塊大小和最大塊大小,從而提供允許的msrp塊大小的范圍。
附圖說明
現(xiàn)在將僅通過舉例的方式參考附圖來描述本發(fā)明的實(shí)施例,其中:
圖1是起始端點(diǎn)與遠(yuǎn)端端點(diǎn)之間的簡(jiǎn)化msrp會(huì)話建立的示例性實(shí)施例。
圖2是在始發(fā)端點(diǎn)與遠(yuǎn)端端點(diǎn)之間經(jīng)由諸如b2bua的服務(wù)器的簡(jiǎn)化msrp會(huì)話建立的示例性實(shí)施例。
圖3是在端點(diǎn)處執(zhí)行的協(xié)商msrp塊大小的方法的示例性實(shí)施例。
圖4是在服務(wù)器處執(zhí)行的用于協(xié)商塊大小的方法的示例性實(shí)施例。
圖5是根據(jù)實(shí)施例的端點(diǎn)的示意圖。
圖6是根據(jù)實(shí)施例的服務(wù)器的示意圖。
圖7是根據(jù)另一實(shí)施例的端點(diǎn)的示意圖。
具體實(shí)施方式
縮略詞和定義
貫穿本公開使用以下首字母縮略詞和術(shù)語(yǔ)
abnf:ietfrfc5234中所規(guī)定的擴(kuò)充巴科斯諾爾范式。
端點(diǎn):可以是手持設(shè)備、移動(dòng)設(shè)備(例如,智能電話或平板電腦)。備選地,它可以是物聯(lián)網(wǎng)iot設(shè)備、ip電話、便攜式計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、網(wǎng)關(guān)或交互功能。端點(diǎn)支持任何媒體格式,例如文本、圖像、音頻、視頻、八位字節(jié)流、mime格式等,并且能夠使用諸如sip用戶代理等的通信用戶代理來協(xié)商msrp會(huì)話以用于發(fā)送和接收msrp消息的目的。msrp消息可以包含可以通過建立的msrp會(huì)話傳送的文本、文件和任何類型的多媒體內(nèi)容。在本公開中呈現(xiàn)的實(shí)施例使用起始端點(diǎn)和遠(yuǎn)端端點(diǎn)或接收端點(diǎn)。起始端點(diǎn)對(duì)應(yīng)于發(fā)起msrp會(huì)話的協(xié)商的端點(diǎn),并且遠(yuǎn)端端點(diǎn)或接收端點(diǎn)對(duì)應(yīng)于與其執(zhí)行msrp會(huì)話協(xié)商的端點(diǎn)。端點(diǎn)可以直接或通過網(wǎng)絡(luò)中的服務(wù)器協(xié)商msrp會(huì)話參數(shù)。當(dāng)使用服務(wù)器時(shí),服務(wù)器充當(dāng)針對(duì)起始端點(diǎn)的中間遠(yuǎn)端端點(diǎn)和針對(duì)遠(yuǎn)端端點(diǎn)的中間起始端點(diǎn)。
ietf:互聯(lián)網(wǎng)工程任務(wù)組。
msrp:對(duì)應(yīng)于ietfrfc4975中規(guī)定的消息會(huì)話中繼協(xié)議。
nni:網(wǎng)絡(luò)到網(wǎng)絡(luò)接口,它是網(wǎng)絡(luò)中的兩個(gè)節(jié)點(diǎn)之間的接口。
oma:開放移動(dòng)聯(lián)盟
rfc:請(qǐng)求注釋。
服務(wù)器:在所描述的實(shí)施例中使用的服務(wù)器被定義為起始端點(diǎn)與遠(yuǎn)端端點(diǎn)或接收端點(diǎn)之間的網(wǎng)絡(luò)節(jié)點(diǎn)或軟件實(shí)體。服務(wù)器可以是msrp背靠背用戶代理b2bua(例如在ietfrfc6714中描述的背靠背用戶代理)、中繼(例如,在ietfrfc4976中規(guī)定的中繼)、應(yīng)用消息收發(fā)服務(wù)器等。服務(wù)器用于與起始端點(diǎn)和遠(yuǎn)端端點(diǎn)或接收端點(diǎn)中的每一個(gè)協(xié)商msrp會(huì)話,在這種情況下,服務(wù)器充當(dāng)針對(duì)起始端點(diǎn)的中間遠(yuǎn)端端點(diǎn),并且充當(dāng)針對(duì)遠(yuǎn)端端點(diǎn)的中間起始端點(diǎn)。起始端點(diǎn)與遠(yuǎn)端端點(diǎn)之間的所有消息都通過服務(wù)器傳輸。
sdp:在ietfrfc3264中規(guī)定的會(huì)話描述協(xié)議。
sip:在ietfrfc3261中規(guī)定的會(huì)話發(fā)起協(xié)議。
uri:統(tǒng)一資源標(biāo)識(shí)符
uni:用戶到網(wǎng)絡(luò)接口,其是也對(duì)應(yīng)于端點(diǎn)設(shè)備的用戶設(shè)備與網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的接口。當(dāng)端點(diǎn)是諸如智能電話或平板電腦的用戶便攜式設(shè)備時(shí),uni的示例可以是端點(diǎn)到服務(wù)器(b2bua)接口。
現(xiàn)在將參考附圖描述本發(fā)明的各種特征。下面將結(jié)合示例性實(shí)施例和示例更詳細(xì)地描述這些各個(gè)方面,以便于理解本發(fā)明,但不應(yīng)被解釋為限于這些實(shí)施例。更確切地,這些實(shí)施例被提供,使得本公開將是徹底和完整的,并且將向本領(lǐng)域技術(shù)人員充分地傳達(dá)本發(fā)明的范圍。
圍繞由計(jì)算機(jī)系統(tǒng)的元件或能夠執(zhí)行編程指令的其他硬件執(zhí)行的動(dòng)作序列或功能來描述本發(fā)明的多個(gè)方面。將認(rèn)識(shí)到,各種動(dòng)作可以由專用電路來執(zhí)行,通過由一個(gè)或多個(gè)處理器執(zhí)行程序指令來執(zhí)行,或者由兩者的組合執(zhí)行。此外,本發(fā)明還可以被認(rèn)為完全體現(xiàn)在任何形式的計(jì)算機(jī)可讀載體或載波中,所述任何形式的計(jì)算機(jī)可讀載體或載波包含將使處理器執(zhí)行本文所述技術(shù)的適當(dāng)?shù)挠?jì)算機(jī)指令集合。
圖1示出了起始端點(diǎn)100和遠(yuǎn)端端點(diǎn)101之間的簡(jiǎn)化msrp會(huì)話建立的示例性實(shí)施例,其中僅示出了相關(guān)步驟。為了建立msrp會(huì)話,在步驟102,起始端點(diǎn)100發(fā)送sipinvite,并且包括包含公知的路徑屬性的sdp供應(yīng)。如果起始端點(diǎn)100確定必須以塊的形式傳送消息或文件,則指示起始端點(diǎn)的優(yōu)選塊大小的新sdp屬性被包括在sdp供應(yīng)中。起始端點(diǎn)100至少部分地基于接入網(wǎng)類型、接入網(wǎng)/接入鏈路狀況、內(nèi)部配置和/或起始端點(diǎn)100能力來確定優(yōu)選塊大小。備選地,起始端點(diǎn)100可以提供優(yōu)選塊大小的列表。遠(yuǎn)端端點(diǎn)101以sip200ok進(jìn)行響應(yīng),sip200ok包括包含公知路徑屬性在內(nèi)的sdp應(yīng)答和指示遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的新屬性。備選地,遠(yuǎn)端端點(diǎn)101可以提供其優(yōu)選塊大小的列表。如果遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小與起始端點(diǎn)的優(yōu)選塊大小相同,則遠(yuǎn)端端點(diǎn)101可以省略在sdp應(yīng)答中向起始端點(diǎn)100發(fā)送遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。
起始端點(diǎn)100的優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小可以指示端點(diǎn)針對(duì)msrp會(huì)話允許的最大塊大小。另外,如果sdp屬性包含優(yōu)選塊大小的列表,則列表中的每個(gè)塊大小可以指示絕對(duì)塊大小值,在這種情況下,塊大小按偏好或優(yōu)先級(jí)順序列出??蛇x地,列表可以包括指示最小塊大小值和最大塊大小值的兩個(gè)值,從而提供可以用于msrp會(huì)話的可允許的塊大小范圍。
起始端點(diǎn)使用起始端點(diǎn)的優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小來確定當(dāng)向遠(yuǎn)端端點(diǎn)101發(fā)送消息塊時(shí)使用的最佳塊大小。在優(yōu)選實(shí)施例中,起始端點(diǎn)100選擇并使用起始端點(diǎn)的優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小中的最小塊大小。圖1示出了可以以兩個(gè)塊發(fā)送消息。步驟104示出了起始端點(diǎn)100在send請(qǐng)求中向遠(yuǎn)端端點(diǎn)101發(fā)送完整消息的第一段或塊,在步驟105,遠(yuǎn)端端點(diǎn)101以msrp200ok進(jìn)行響應(yīng)。send請(qǐng)求中的消息塊的大小是起始端點(diǎn)100確定的用于起始端點(diǎn)和遠(yuǎn)端端點(diǎn)的最佳塊大小。在步驟106,起始端點(diǎn)100在第二send請(qǐng)求中向遠(yuǎn)端端點(diǎn)101發(fā)送完整消息的第二和最后一個(gè)段或塊,在步驟107,遠(yuǎn)端端點(diǎn)101以msrp200ok進(jìn)行響應(yīng)。一旦遠(yuǎn)端端點(diǎn)101確定接收到所有塊,它就可選地發(fā)送report請(qǐng)求以指示成功地傳送了消息,如步驟108所示。為了終止msrp會(huì)話,起始端點(diǎn)100發(fā)送sipbye消息,并從遠(yuǎn)端端點(diǎn)101接收sip200ok,如捆綁步驟109所示。
圖2示出了在起始端點(diǎn)100和遠(yuǎn)端端點(diǎn)101之間通過諸如b2bua200的服務(wù)器的簡(jiǎn)化msrp會(huì)話建立的示例性實(shí)施例。還可以使用其他服務(wù)器,例如消息收發(fā)應(yīng)用服務(wù)器或msrp中繼。在圖2中示出了b2bua200。為了簡(jiǎn)單起見,圖2沒有示出諸如sip代理和服務(wù)呼叫會(huì)話控制功能s-cscf等的中間節(jié)點(diǎn)。僅示出了端點(diǎn)與b2bua200之間的相關(guān)步驟。為了通過b2bua200建立msrp會(huì)話,在步驟201,起始端點(diǎn)100通過b2bua200向遠(yuǎn)端端點(diǎn)101發(fā)送sipinvite,并且包括包含公知的路徑屬性在內(nèi)的sdp供應(yīng)。如果起始端點(diǎn)100確定必須以塊的形式傳送消息或文件,則指示起始端點(diǎn)的優(yōu)選塊大小的新sdp屬性被包括在sipinvite的sdp供應(yīng)中。備選地,起始端點(diǎn)100可以在sdp屬性中提供優(yōu)選塊大小的列表。
b2bua200接收包括新sdp屬性的sipinvite,并且當(dāng)在步驟202向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)或中繼sipinvite之前,b2bua200確定sdp屬性中的起始端點(diǎn)的優(yōu)選塊大小是否應(yīng)該用其自己的優(yōu)選塊大小替換。如果b2bua200確定應(yīng)該替換起始端點(diǎn)的優(yōu)選塊大小,則b2bua200確定其自己的優(yōu)選msrp塊大小,即要與遠(yuǎn)端端點(diǎn)101協(xié)商的第一服務(wù)器msrp優(yōu)選塊大小。b2bua200可以根據(jù)其內(nèi)部配置或網(wǎng)絡(luò)/鏈路狀況、能力和/或與遠(yuǎn)端端點(diǎn)網(wǎng)絡(luò)的服務(wù)級(jí)別協(xié)議來確定第一服務(wù)器msrp優(yōu)選塊大小。b2bua200向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)修改的sipinvite,其中它已經(jīng)在sdp供應(yīng)屬性中用第一服務(wù)器msrp優(yōu)選塊大小替換了起始端點(diǎn)的優(yōu)選塊大小。備選地,b2bua200可以用b2bua優(yōu)選塊大小的列表來替換起始端點(diǎn)的優(yōu)選塊大小,并向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)sipinvite。在接收到包括第一服務(wù)器msrp優(yōu)選塊大小的修改的sipinvite時(shí),遠(yuǎn)端端點(diǎn)101可以基于接入網(wǎng)類型、網(wǎng)絡(luò)狀況/鏈路和內(nèi)部配置來確定其優(yōu)選塊大小。在步驟203,遠(yuǎn)端端點(diǎn)101通過b2bua200向起始端點(diǎn)100發(fā)送sip200ok,其中它包括包含公知路徑屬性在內(nèi)的sdp應(yīng)答和指示遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的新sdp屬性。備選地,遠(yuǎn)端端點(diǎn)101可以在新sdp屬性中提供優(yōu)選塊大小的列表。
b2bua200從遠(yuǎn)端端點(diǎn)接收sip200ok消息。當(dāng)在步驟204向起始端點(diǎn)100轉(zhuǎn)發(fā)或中繼sip200ok之前,b2bua200可以用其可能愿意針對(duì)起始端點(diǎn)100使用的第二服務(wù)器msrp優(yōu)選塊大小代替遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小來替換遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。b2bua200可以根據(jù)其內(nèi)部配置、能力、網(wǎng)絡(luò)/鏈路狀況和/或與起始端點(diǎn)100的服務(wù)級(jí)別協(xié)議來確定第二服務(wù)器msrp優(yōu)選塊大小。b2bua200向起始端點(diǎn)100發(fā)送修改的sip200ok,其中它已經(jīng)用其自己的優(yōu)選塊大小,即第二服務(wù)器msrp優(yōu)選塊大小替換了遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。備選地,在向起始端點(diǎn)100轉(zhuǎn)發(fā)修改的sip200ok之前,b2bua200可以用b2bua優(yōu)選塊大小的列表來替換遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。b2bua200可以針對(duì)遠(yuǎn)端端點(diǎn)101和起始端點(diǎn)100使用不同的第一服務(wù)器msrp優(yōu)選塊大小和第二服務(wù)器msrp優(yōu)選塊大小或不同的b2bua優(yōu)選塊大小的列表。
對(duì)于從起始端點(diǎn)100向遠(yuǎn)端端點(diǎn)101發(fā)送的消息,如圖2所示,起始端點(diǎn)100使用其優(yōu)選塊大小和第二服務(wù)器msrp優(yōu)選塊大小來確定當(dāng)針對(duì)遠(yuǎn)端端點(diǎn)101向b2bua200發(fā)送消息塊時(shí)要使用的最佳塊大小。在一個(gè)實(shí)施例中,起始端點(diǎn)100選擇并使用起始端點(diǎn)的優(yōu)選塊大小和第二服務(wù)器msrp優(yōu)選塊大小中的最小塊大小作為最佳端點(diǎn)塊大小。
最佳端點(diǎn)塊大?。絤in(起始端點(diǎn)優(yōu)選塊大小、服務(wù)器(例如,b2bua200)的第二msrp優(yōu)選塊大小)
在步驟204,b2bua200使用其已經(jīng)向遠(yuǎn)端端點(diǎn)101發(fā)送的第一服務(wù)器msrp優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小來確定在向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)起始端點(diǎn)100的消息時(shí)要使用的最佳塊大小。在一個(gè)實(shí)施例中,b2bua200選擇并使用第一服務(wù)器msrp優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小中的最小塊大小作為最佳服務(wù)器塊大小。
最佳服務(wù)器塊大小=min(遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小、第一服務(wù)器msrp優(yōu)選塊大小)
圖2示出了起始端點(diǎn)100使用最佳端點(diǎn)塊大小以使用兩個(gè)塊:塊1和塊2通過b2bua200向遠(yuǎn)端端點(diǎn)101發(fā)送完整消息的實(shí)施例。b2bua200將使用最佳服務(wù)器塊大小(也可以被稱為第一服務(wù)器msrp塊大小)在三個(gè)塊(塊1′、塊2′和塊3′)中向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)從起始端點(diǎn)100接收到的完整消息。圖2示出了當(dāng)消息塊被接收時(shí)b2bua200向遠(yuǎn)端端點(diǎn)101發(fā)送消息塊。在所示實(shí)施例中,最佳端點(diǎn)塊大小大于(>)最佳服務(wù)器塊大小/第一服務(wù)器msrp塊大小,因此塊1′小于塊1。因此,b2bua200需要針對(duì)遠(yuǎn)端端點(diǎn)101使用更多的send請(qǐng)求來轉(zhuǎn)發(fā)從起始端點(diǎn)100接收的消息。
步驟205示出了起始端點(diǎn)100使用確定的最佳端點(diǎn)塊大小在send請(qǐng)求中向b2bua200發(fā)送完整消息的第一段或塊1。當(dāng)塊1′小于塊1時(shí),b2bua200存儲(chǔ)消息的塊1,并且在步驟206向遠(yuǎn)端端點(diǎn)101發(fā)送包括消息的塊1′的send請(qǐng)求。在步驟207,b2bua200從遠(yuǎn)端端點(diǎn)101接收msrp200ok,以確認(rèn)接收到塊1′。在步驟208,b2bua200向起始端點(diǎn)100發(fā)送msrp200ok以確認(rèn)在步驟205接收到send消息。注意,步驟208可以在步驟207或步驟206之前發(fā)生。在步驟209,起始端點(diǎn)100在第二send請(qǐng)求中向b2bua200發(fā)送第二和最后一個(gè)消息段或塊2。b2bua200存儲(chǔ)接收到的消息的塊2,并確定塊2是完整消息的最后一個(gè)塊。在步驟210,b2bua200向遠(yuǎn)端端點(diǎn)101發(fā)送包括完整消息的塊2′的send請(qǐng)求。在步驟211,遠(yuǎn)端端點(diǎn)101在msrp200ok消息中確認(rèn)接收到send請(qǐng)求。在步驟212,b2bua200向遠(yuǎn)端端點(diǎn)101發(fā)送包括完整消息的塊3′的最后一個(gè)send請(qǐng)求。在步驟213,遠(yuǎn)端端點(diǎn)101使用msrp200ok消息確認(rèn)接收到send請(qǐng)求。注意,b2bua200不需要等待步驟211的塊2′的msrp200ok來執(zhí)行步驟212。步驟214示出了b2bua200向起始端點(diǎn)100發(fā)送msrp200ok以確認(rèn)接收到塊2。類似地,步驟214可以在步驟209之后立刻發(fā)生。
可以使用其他實(shí)施例,其中最佳端點(diǎn)塊大小小于(<)最佳服務(wù)器塊大小(第一服務(wù)器msrp塊大小),在這種情況下,b2bua200在消息塊到達(dá)時(shí)存儲(chǔ)接收到的消息塊,在它針對(duì)遠(yuǎn)端端點(diǎn)101使用第一服務(wù)器msrp塊大小對(duì)消息進(jìn)行重新分段之前等待直到接收到所有消息塊為止。即使最佳端點(diǎn)塊大小大于(>)第一服務(wù)器msrp塊大小,作為圖2所示實(shí)施例的替代方案,b2bua200可以在消息塊到達(dá)時(shí)存儲(chǔ)接收到的消息塊,在它針對(duì)遠(yuǎn)端端點(diǎn)101使用也被稱為最佳服務(wù)器塊大小的第一服務(wù)器msrp塊大小對(duì)消息進(jìn)行重新分段之前等待直到接收到所有消息塊為止。
一旦遠(yuǎn)端端點(diǎn)101確定接收到所有塊,它就可選地向b2bua200發(fā)送report請(qǐng)求以指示成功地傳送了完整消息,如步驟215所示。然后,b2bua200向起始端點(diǎn)100發(fā)送report請(qǐng)求以指示成功地傳送了完整消息,如步驟216所示。當(dāng)msrp會(huì)話終止時(shí),起始端點(diǎn)100然后可以通過發(fā)送sipbye消息并從b2bua200接收sip200ok來終止會(huì)話,如捆綁的步驟217所示。然后,b2bua200通過發(fā)送sipbye消息并從遠(yuǎn)端端點(diǎn)101接收sip200ok來終止會(huì)話,如捆綁的步驟218所示。
注意,起始端點(diǎn)的優(yōu)選塊大小、第一個(gè)服務(wù)器msrp優(yōu)選塊大小和遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小可以指示每個(gè)實(shí)體支持的最大塊大小。另外,如果使用了優(yōu)選塊大小的列表,則它可以指示絕對(duì)塊大小值,在這種情況下,它們按偏好或優(yōu)先級(jí)順序列出??蛇x地,列表可以包括指示最小塊大小和最大塊大小的兩個(gè)值,從而提供可允許的塊大小范圍。
圖3示出了在端點(diǎn)處執(zhí)行的方法30的實(shí)施例,該端點(diǎn)向遠(yuǎn)端端點(diǎn)發(fā)出即時(shí)消息。遠(yuǎn)端端點(diǎn)可以是msrp消息的目的地/接收方端點(diǎn),在這種情況下,端點(diǎn)與作為目的地/接收方端點(diǎn)的遠(yuǎn)端直接進(jìn)行通信。備選地,遠(yuǎn)端端點(diǎn)可以是作為針對(duì)端點(diǎn)的中間遠(yuǎn)端端點(diǎn)的服務(wù)器。服務(wù)器用于代表端點(diǎn)與目的地/接收方遠(yuǎn)端端點(diǎn)進(jìn)行通信或互通。因此,從端點(diǎn)到目的地端點(diǎn)的包括msrp消息的所有通信都通過服務(wù)器(例如,b2bua)。無(wú)論它是作為中間遠(yuǎn)端端點(diǎn)的服務(wù)器還是目的地/接收方端點(diǎn),這里將其稱為遠(yuǎn)端端點(diǎn)。
在步驟31,端點(diǎn)確定即時(shí)消息或文件或內(nèi)容將以塊的形式發(fā)送,并進(jìn)一步確定消息的優(yōu)選塊大小。優(yōu)選塊大小作為sdp供應(yīng)在sipinvite中發(fā)送。在另一實(shí)施例中,端點(diǎn)可以替代地發(fā)送按偏好或優(yōu)先級(jí)順序列出的優(yōu)選塊大小的列表。在另一實(shí)施例中,端點(diǎn)可以發(fā)送指示最小塊大小和最大塊大小的兩個(gè)塊大小值,從而提供可允許的塊大小范圍。端點(diǎn)至少部分地基于包括以下項(xiàng)的標(biāo)準(zhǔn)來確定優(yōu)選塊大?。憾它c(diǎn)接入網(wǎng)類型、端點(diǎn)接入網(wǎng)/接入鏈路狀況和/或內(nèi)部配置。
在步驟32,端點(diǎn)在sip200ok中從遠(yuǎn)端端點(diǎn)101接收sdp應(yīng)答。如果遠(yuǎn)端端點(diǎn)101支持協(xié)商消息塊大小,則sip200ok包括遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。遠(yuǎn)端端點(diǎn)101可以基于遠(yuǎn)端端點(diǎn)接入網(wǎng)類型、遠(yuǎn)端端點(diǎn)接入網(wǎng)/接入鏈路狀況和/或內(nèi)部配置來確定其優(yōu)選塊大小。備選地,遠(yuǎn)端端點(diǎn)101可以替代地在sdp應(yīng)答中包括按偏好或優(yōu)先級(jí)順序列出的優(yōu)選塊大小的列表。在另一實(shí)施例中,遠(yuǎn)端端點(diǎn)101可以替代地在sdp應(yīng)答中包括指示最小塊大小和最大塊大小的兩個(gè)塊大小值,從而提供可允許的塊大小范圍。
一旦端點(diǎn)已經(jīng)在sdp應(yīng)答中接收到遠(yuǎn)端端點(diǎn)優(yōu)選塊大小,則它確定要用于msrp會(huì)話的最佳塊大小。確定最佳塊大小的實(shí)施例如下:
-如果端點(diǎn)的優(yōu)選塊大小小于遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小,則最佳塊大小是端點(diǎn)的優(yōu)選塊大小。
-如果遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小小于端點(diǎn)的優(yōu)選塊大小并且它可以由端點(diǎn)支持,則最佳塊大小是遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。
-如果遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小小于優(yōu)選端點(diǎn)塊大小,并且由于端點(diǎn)被配置為僅使用一些預(yù)配置的msrp塊大小因而端點(diǎn)不能支持遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小,則端點(diǎn)將最佳塊大小選擇為小于遠(yuǎn)端端點(diǎn)優(yōu)選快大小的最接近的預(yù)配置的msrp塊大小或遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。
除了上述實(shí)施例以外,如果遠(yuǎn)端端點(diǎn)101不支持對(duì)塊大小的協(xié)商,則端點(diǎn)應(yīng)該假設(shè)如今的已知行為,即,對(duì)于塊大小沒有限制,并且它可以使用其自己配置的值或甚至其自己確定的優(yōu)選塊大小。
在步驟33,msrp會(huì)話開始,其中端點(diǎn)使用上面在步驟32確定的會(huì)話的最佳塊大小來發(fā)送包括完整消息的第一塊的send請(qǐng)求。端點(diǎn)可以從遠(yuǎn)端端點(diǎn)101接收msrp200ok以確認(rèn)接收到send請(qǐng)求。端點(diǎn)在完整消息被發(fā)送和傳送之前繼續(xù)發(fā)送包括后續(xù)消息塊的后續(xù)send請(qǐng)求。一旦遠(yuǎn)端端點(diǎn)101已經(jīng)接收到完整消息并重新組合了所有塊,就可以接收到指示成功傳送的報(bào)告消息。
在一個(gè)實(shí)施例中,在活動(dòng)msrp會(huì)話期間,端點(diǎn)和/或遠(yuǎn)端端點(diǎn)101可以從一個(gè)接入網(wǎng)類型移動(dòng)到另一個(gè)不同容量的接入網(wǎng)類型,或者一個(gè)或兩個(gè)端點(diǎn)的接入網(wǎng)/接入鏈路狀況已經(jīng)發(fā)生了改變。當(dāng)上述任何一種情況發(fā)生時(shí),端點(diǎn)和/或遠(yuǎn)端端點(diǎn)101可以在正在進(jìn)行的msrp會(huì)話期間在sipre-invite或sipupdate中發(fā)送更新的sdp供應(yīng)。更新的sdp供應(yīng)將包括針對(duì)一個(gè)端點(diǎn)的更新的優(yōu)選塊大小值,并且返回sdp應(yīng)答,sdp應(yīng)答可以包括針對(duì)另一端點(diǎn)的更新的優(yōu)選塊大小。然后,發(fā)送消息的端點(diǎn)可以基于更新的sdp供應(yīng)/應(yīng)答中的更新的優(yōu)選塊大小來對(duì)最佳塊大小值進(jìn)行新的確定,并使用新確定的最佳塊大小值繼續(xù)msrp會(huì)話。
圖4示出了在服務(wù)器200處執(zhí)行的示例性方法40,服務(wù)器200將即時(shí)消息從起始端點(diǎn)100中繼或轉(zhuǎn)發(fā)到遠(yuǎn)端端點(diǎn)101。服務(wù)器200可以是具有在起始端點(diǎn)100和遠(yuǎn)端端點(diǎn)101之間建立msrp會(huì)話并且按需要根據(jù)定義或動(dòng)態(tài)的服務(wù)器標(biāo)準(zhǔn)對(duì)在起始端點(diǎn)100和遠(yuǎn)端端點(diǎn)101之間發(fā)送的即時(shí)消息進(jìn)行重新分段的能力的b2bua、中繼或消息中心。服務(wù)器200與每個(gè)端點(diǎn)協(xié)商msrp會(huì)話的參數(shù)。msrp會(huì)話建立在步驟41開始,當(dāng)服務(wù)器200在sipinvite消息中接收sdp供應(yīng)時(shí),sdp供應(yīng)包括傳統(tǒng)的msrp參數(shù),例如路徑、最大大小等以及當(dāng)可以從起始端點(diǎn)100以塊的形式傳送消息時(shí)指示消息的起始端點(diǎn)的優(yōu)選塊大小的新sdp屬性。在步驟42,服務(wù)器200根據(jù)路徑參數(shù)確定遠(yuǎn)端端點(diǎn)101,針對(duì)遠(yuǎn)端端點(diǎn)101確定第一服務(wù)器優(yōu)選msrp塊大小。如果第一服務(wù)器優(yōu)選msrp塊大小與接收到的起始端點(diǎn)的優(yōu)選塊大小值不同,則其通過用其自己的優(yōu)選msrp塊大小(即,第一服務(wù)器優(yōu)選msrp塊大小)替換接收的sdp供應(yīng)中指示起始端點(diǎn)的優(yōu)選塊大小的新sdp屬性值來進(jìn)一步修改sipinvite消息。然后,服務(wù)器200向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)具有sdp供應(yīng)的修改的sipinvite。在步驟43,服務(wù)器200在sip200ok中從遠(yuǎn)端端點(diǎn)101接收sdp應(yīng)答,sdp應(yīng)答包括傳統(tǒng)msrp參數(shù)和指示遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的新sdp參數(shù)。此外,服務(wù)器200確定第二服務(wù)器優(yōu)選msrp塊大小,但是這一次針對(duì)起始端點(diǎn)100。如果第二服務(wù)器優(yōu)選msrp塊大小不同于遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小值,則它進(jìn)一步修改sip200ok,其中它用其自己的優(yōu)選msrp塊大小(即,第二服務(wù)器優(yōu)選msrp塊大小)替換sdp應(yīng)答中指示遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的新sdp屬性值,并且向起始端點(diǎn)100轉(zhuǎn)發(fā)具有sdp應(yīng)答的修改的sip200ok。如果第二服務(wù)器優(yōu)選msrp塊大小與遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小相同,則服務(wù)器200可以不用其自己的優(yōu)選msrp塊大小(即,第二服務(wù)器優(yōu)選msrp塊大小)替換sdp應(yīng)答中指示遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的新sdp屬性值。
在一個(gè)實(shí)施例中,服務(wù)器200基于標(biāo)準(zhǔn)來確定第一服務(wù)器優(yōu)選msrp塊大小和第二服務(wù)器優(yōu)選msrp塊大小,該標(biāo)準(zhǔn)包括內(nèi)部配置或配置的策略和/或服務(wù)器與沿著路徑(例如,網(wǎng)絡(luò)到網(wǎng)絡(luò)互連nni或者甚至用戶到網(wǎng)絡(luò)互連uni(如果服務(wù)器200在沒有其他中間節(jié)點(diǎn)的情況下直接與一個(gè)或兩個(gè)端點(diǎn)進(jìn)行通信的話))的下一個(gè)節(jié)點(diǎn)之間的服務(wù)級(jí)別協(xié)議。
在圖4的步驟44,服務(wù)器200確定針對(duì)從起始端點(diǎn)100接收的消息的第一服務(wù)器msrp塊大小,其是要針對(duì)遠(yuǎn)端端點(diǎn)101使用的最佳塊大小。服務(wù)器200還確定針對(duì)同一msrp會(huì)話上在從遠(yuǎn)端端點(diǎn)101到起始端點(diǎn)100的另一方向上接收的消息的第二服務(wù)器msrp塊大小,其是要針對(duì)起始端點(diǎn)100使用的最佳塊大小。描述了確定第一服務(wù)器msrp塊大小的實(shí)施例。相同的實(shí)施例可應(yīng)用于關(guān)于起始端點(diǎn)100確定第二服務(wù)器msrp塊大?。?/p>
-如果在步驟42確定的第一服務(wù)器優(yōu)選msrp塊大小小于遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小,則第一服務(wù)器msrp塊大小(即要在服務(wù)器200與遠(yuǎn)端端點(diǎn)101之間使用的塊大小)是第一服務(wù)器優(yōu)選msrp塊大小。
-如果遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小小于第一服務(wù)器優(yōu)選msrp塊大小,并且它可以被服務(wù)器200支持,則第一服務(wù)器msrp塊大小是遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小。
-如果遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小小于第一服務(wù)器優(yōu)選msrp塊大小,并且由于服務(wù)器200被配置為僅使用一些預(yù)配置的msrp塊大小因而服務(wù)器200不能支持遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小,則服務(wù)器200將第一服務(wù)器msrp塊大小(或最佳塊大小)選擇為小于遠(yuǎn)端端點(diǎn)的優(yōu)選塊大小的最接近的預(yù)配置的服務(wù)器msrp塊大小。
除了上述實(shí)施例之外,如果服務(wù)器200(例如,b2bua)和遠(yuǎn)端端點(diǎn)101不能協(xié)商塊大小,則服務(wù)器200應(yīng)該假定如今的已知行為,即,對(duì)塊大小可以沒有限制并且對(duì)于從服務(wù)器200轉(zhuǎn)發(fā)到遠(yuǎn)端端點(diǎn)101的消息,其可以使用其自己的配置值或甚至其自己確定的優(yōu)選塊大小??赡艽嬖诜?wù)器200(例如,b2bua)能夠與遠(yuǎn)端端點(diǎn)101而不是與起始端點(diǎn)100(反之亦然)協(xié)商塊大小的情況。當(dāng)塊大小的協(xié)商不能與端點(diǎn)中的任一個(gè)協(xié)商時(shí),有關(guān)的端點(diǎn)和服務(wù)器200將根據(jù)現(xiàn)有技術(shù)在相應(yīng)鏈路上使用默認(rèn)塊大小。
在步驟45,建立msrp會(huì)話。服務(wù)器200使用第一服務(wù)器msrp塊大小和第二服務(wù)器msrp塊大小在起始端點(diǎn)100和遠(yuǎn)端端點(diǎn)101之間傳輸消息。當(dāng)服務(wù)器200從起始端點(diǎn)100接收到消息塊時(shí),它可能需要在接收到完整消息之前存儲(chǔ)所有消息塊,然后開始向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)根據(jù)第一服務(wù)器msrp塊大小重新分段的消息。備選地,服務(wù)器200一接收到并存儲(chǔ)了足夠的消息字節(jié)或八位字節(jié)以允許根據(jù)第一服務(wù)器msrp塊大小進(jìn)行重新分段,服務(wù)器200就可以開始向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)重新分段的消息。在該后一種備選方案中,服務(wù)器200在其開始向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)之前可能僅需要存儲(chǔ)消息的少量塊而不需要等待從起始端點(diǎn)100接收并存儲(chǔ)完整消息。
例如,如果來自起始端點(diǎn)100的msrpsend請(qǐng)求中使用的消息塊大小小于第一服務(wù)器msrp塊大小,則服務(wù)器200存儲(chǔ)消息塊,并在其開始向遠(yuǎn)端端點(diǎn)101轉(zhuǎn)發(fā)并根據(jù)第一服務(wù)器msrp塊大小進(jìn)行重新分段之前等待更多的消息塊從起始端點(diǎn)100到達(dá)。
方法40的步驟45對(duì)于從遠(yuǎn)端端點(diǎn)101接收的消息被等同地執(zhí)行,其中在朝向起始端點(diǎn)100的相反方向上根據(jù)第二msrp塊大小對(duì)消息塊進(jìn)行重新分段。
此外,在正在進(jìn)行的msrp會(huì)話期間,起始端點(diǎn)100和/或遠(yuǎn)端端點(diǎn)101可以隨時(shí)更新其對(duì)應(yīng)的優(yōu)選msrp塊大小。端點(diǎn)可以隨時(shí)在sipre-invite或sipupdate消息中發(fā)送sdp供應(yīng)。如果例如網(wǎng)絡(luò)/鏈路狀況已經(jīng)改變或端點(diǎn)之一或兩個(gè)端點(diǎn)已經(jīng)移動(dòng)到不同容量的不同接入網(wǎng)類型(不同的帶寬策略可能適用),則可能發(fā)生這種情況。然而,如果從一個(gè)端點(diǎn)接收到更新的sdp供應(yīng)的服務(wù)器200確定它應(yīng)該保持其先前確定的第一服務(wù)器優(yōu)選msrp塊大小或第二服務(wù)器優(yōu)選msrp塊大小,則它對(duì)該端點(diǎn)進(jìn)行響應(yīng)而不向另一端點(diǎn)轉(zhuǎn)發(fā)sdp供應(yīng)。
以下實(shí)施例示出了當(dāng)包含在sdp供應(yīng)和sdp應(yīng)答中的新sdp屬性用于承載優(yōu)選塊大小時(shí)該屬性的格式。屬性的定義和語(yǔ)法的示例如下:
sdp——行屬性“a=chunk-size:”可以取例如100千字節(jié)開始的以kb為單位的值。
塊大小可以是最大塊大小。
為了與rfc4975的向后兼容性,在sdp供應(yīng)或sdp應(yīng)答中未接收到msrp塊大小屬性的端點(diǎn)應(yīng)該假定如今的行為,即對(duì)塊大小沒有限制,并且它可以使用其自己配置的值。
針對(duì)新sdp屬性的擴(kuò)充巴科斯諾爾范式abnf語(yǔ)法可以是:
chunk-size=chunk-size-label“:”chunk-size-value
chunk-size-label=“chunk-size”
chunk-size-value=1*(digit);塊大小(千字節(jié))
當(dāng)屬性用于承載按照偏好或優(yōu)先級(jí)順序列出的優(yōu)選塊大小的列表時(shí),可以使用類似的實(shí)施例。備選地,屬性可以被格式化為承載優(yōu)選塊大小的最小值和最大值。
圖5所示的實(shí)施例示出了包括電路50的端點(diǎn),其中除了在此描述的其它實(shí)施例之外,電路50還執(zhí)行根據(jù)如圖1和圖3所述的實(shí)施例的方法步驟。在一個(gè)實(shí)施例中,電路50可以包括處理器51和包含指令的存儲(chǔ)設(shè)備52(也稱為存儲(chǔ)器),指令在被執(zhí)行時(shí)使處理器51執(zhí)行根據(jù)本文描述的實(shí)施例的方法中的步驟。電路50還可以包括通信接口53以與外部實(shí)體通信。
圖6所示的實(shí)施例示出了包括電路60的服務(wù)器200,除了本文所述的其它實(shí)施例之外,電路60還執(zhí)行根據(jù)如圖2和圖4所述的實(shí)施例的方法步驟。在一個(gè)實(shí)施例中,電路50可以包括處理器61和包含指令的存儲(chǔ)設(shè)備62(也稱為存儲(chǔ)器),指令在被執(zhí)行時(shí)使處理器61執(zhí)行根據(jù)本文所描述的實(shí)施例的方法中的步驟。電路60還可以包括通信接口63以與外部實(shí)體和端點(diǎn)通信。
在圖7中示出了端點(diǎn)的另一個(gè)實(shí)施例。圖7示出了包括處理模塊71的電路70,處理模塊71被配置為確定用于msrp會(huì)話的優(yōu)選msrp塊大小,并且通過通信模塊73發(fā)送包括端點(diǎn)的優(yōu)選msrp塊大小在內(nèi)的消息。該消息可以是sip-invite消息。處理模塊71還被配置為通過通信模塊73接收響應(yīng)消息,其中響應(yīng)消息包括遠(yuǎn)端端點(diǎn)的優(yōu)選msrp塊大小。處理模塊71被配置為確定要用于msrp媒體會(huì)話的msrp塊大小。當(dāng)通過通信模塊73向遠(yuǎn)端端點(diǎn)發(fā)送msrp會(huì)話消息時(shí),處理模塊71還被配置為根據(jù)存儲(chǔ)在存儲(chǔ)器模塊(72)中的確定的msrp塊大小來對(duì)msrp會(huì)話消息進(jìn)行分段。
圖7中的電路70還包括通信模塊73,被配置為發(fā)送和接收用于建立msrp會(huì)話的通信消息,并協(xié)商用于端點(diǎn)之間的msrp會(huì)話的msrp塊大小。通信模塊73還被配置為發(fā)送根據(jù)確定的msrp塊大小被分段的分段的msrp會(huì)話消息。通信模塊73還被配置為從遠(yuǎn)端端點(diǎn)接收msrp會(huì)話消息,其中可能根據(jù)遠(yuǎn)端端點(diǎn)確定的msrp塊大小對(duì)msrp會(huì)話消息進(jìn)行了分段。存儲(chǔ)器模塊72維持由端點(diǎn)確定的msrp塊大小,該確定的msrp塊大小用于對(duì)從端點(diǎn)到遠(yuǎn)端端點(diǎn)的msrp消息進(jìn)行分段。
已經(jīng)參考特定實(shí)施例描述了本發(fā)明。然而,對(duì)于本領(lǐng)域技術(shù)人員顯而易見的是,可以以與上述實(shí)施例不同的具體形式不同的具體形式來體現(xiàn)本發(fā)明。所描述的實(shí)施例僅僅是說明性的,而不應(yīng)被認(rèn)為是任何限制性的。本發(fā)明的范圍由所附權(quán)利要求而不是前面的描述給出,并且落入權(quán)利要求的范圍內(nèi)的所有變化和等同物旨在被包含在其中。