專利名稱:在sip使能的終端中提供多客戶機(jī)支持的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計(jì)算和通信裝置,更具體地說(shuō),涉及用于在多客戶機(jī)設(shè)置中采用會(huì)話發(fā)起協(xié)議或類似協(xié)議的方法和設(shè)備。
背景技術(shù):
個(gè)人通信裝置變得越來(lái)越廣泛地由公眾所使用。個(gè)人通信裝置諸如蜂窩電話、個(gè)人數(shù)字助理以及膝上型計(jì)算機(jī)賦予用戶各種移動(dòng)通信和計(jì)算機(jī)聯(lián)網(wǎng)能力。這些裝置逐漸地能夠采用種類廣泛的數(shù)字多媒體格式包括語(yǔ)音、音樂(lè)、視頻、文本消息傳送等進(jìn)行通信。
允許向移動(dòng)裝置和其它計(jì)算裝置提供數(shù)字多媒體的一個(gè)重要標(biāo)準(zhǔn)是會(huì)話發(fā)起協(xié)議(SIP)。SIP是協(xié)助數(shù)字裝置建立端到端的多媒體會(huì)話的信令協(xié)議。SIP提供類似由公共交換電話網(wǎng)絡(luò)(RSTN)以及網(wǎng)際協(xié)議如傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)和超文本傳輸協(xié)議(HTIP)提供的那些特征。
SIP工作類似于HTTP,因?yàn)樗窃诒娝苤木W(wǎng)絡(luò)端口上運(yùn)行的基于文本的消息協(xié)議。從終端的角度來(lái)看,SIP不同于HTTP,因?yàn)榻K端必須具有偵聽(tīng)進(jìn)程以被告知輸入通信。相反,使用HTTP的web瀏覽器純粹是客戶機(jī),該瀏覽器在用戶請(qǐng)求下發(fā)起到偵聽(tīng)服務(wù)器的連接,并且不等著偵聽(tīng)輸入連接。
當(dāng)裝置如移動(dòng)電話和個(gè)人數(shù)字助理(PDA)變得更加完善時(shí),這些裝置將允許用戶同時(shí)運(yùn)行更多的多媒體感知應(yīng)用。這些應(yīng)用可能將采用SIP協(xié)議。因此,可能是高度冗余的,因?yàn)槊總€(gè)應(yīng)用將包括其自己的SIP協(xié)議棧。就用戶而言,具有多個(gè)SIP感知應(yīng)用可導(dǎo)致混淆,因?yàn)閷?duì)于裝置上眾所周知的TCP/IP偵聽(tīng)端口可能存在爭(zhēng)用。該爭(zhēng)用可導(dǎo)致錯(cuò)誤,并需要用戶專門(mén)配置軟件以同時(shí)工作。這是不利的,因?yàn)橛脩粢话悴幻靼兹鏣CP/IP端口的概念,并在由用戶選擇備選的公知端口(如用于HTTP或telnet的端口)來(lái)接收SIP的情況下可能導(dǎo)致問(wèn)題。
需要一種向通信裝置上多個(gè)客戶機(jī)應(yīng)用提供SIP功能的途徑。本發(fā)明針對(duì)這些需要和其它需要,并提供優(yōu)于現(xiàn)有技術(shù)方法的其它優(yōu)點(diǎn)。
發(fā)明內(nèi)容
為克服上述現(xiàn)有技術(shù)中的限制,以及為克服在閱讀并理解本說(shuō)明后將顯而易見(jiàn)的其它限制,本發(fā)明公開(kāi)一種用于在多客戶機(jī)環(huán)境中處理會(huì)話建立過(guò)程的方法和設(shè)備。在一個(gè)實(shí)施例中,用計(jì)算機(jī)實(shí)現(xiàn)的會(huì)話建立處理的方法涉及將多個(gè)客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到消息處理?xiàng)?。在消息處理?xiàng)I辖邮諄?lái)自網(wǎng)絡(luò)接口的消息。基于該消息和客戶機(jī)性能從多個(gè)客戶機(jī)中判斷目標(biāo)客戶機(jī)。隨后將該消息從消息處理?xiàng)鬟f到目標(biāo)客戶機(jī)。
在一種設(shè)置中,會(huì)話建立過(guò)程包括會(huì)話發(fā)起協(xié)議(SIP)。消息處理?xiàng)?稍O(shè)置成在目標(biāo)客戶機(jī)未運(yùn)行的情況下啟動(dòng)目標(biāo)客戶機(jī)??蛻魴C(jī)性能可通過(guò)檢查客戶機(jī)在較早時(shí)候已填充的永久存儲(chǔ)中的描述而傳遞到消息處理?xiàng)#蛘呖筛鶕?jù)在運(yùn)行期的客戶機(jī)來(lái)判斷。該消息處理?xiàng)?赏ㄟ^(guò)檢查SIP消息請(qǐng)求行、一個(gè)或多個(gè)SIP消息首部以及消息主體來(lái)判斷目標(biāo)客戶機(jī)。該主體可由SDP首部組成。
在本發(fā)明的另一實(shí)施例中,在數(shù)據(jù)處理裝置上處理SIP消息的方法涉及在數(shù)據(jù)處理裝置的SIP處理?xiàng)I辖邮誗IP消息。SIP處理?xiàng)Ec數(shù)據(jù)處理裝置的網(wǎng)絡(luò)接口的預(yù)定端口相關(guān)聯(lián)?;赟IP消息的數(shù)據(jù)選擇數(shù)據(jù)處理裝置的目標(biāo)客戶機(jī)應(yīng)用?;谶x擇目標(biāo)客戶機(jī)應(yīng)用是否成功來(lái)將SIP響應(yīng)消息從SIP處理?xiàng)0l(fā)送到網(wǎng)絡(luò)接口。該SIP消息從SIP處理?xiàng)鬟f到目標(biāo)客戶機(jī)應(yīng)用。
根據(jù)本發(fā)明的另一實(shí)施例,提供了設(shè)置成與網(wǎng)絡(luò)接口的設(shè)備。該設(shè)備包括配置成接收來(lái)自網(wǎng)絡(luò)的會(huì)話建立消息的網(wǎng)絡(luò)接口和用于存儲(chǔ)多個(gè)客戶機(jī)應(yīng)用的客戶機(jī)性能的數(shù)據(jù)存儲(chǔ)。該設(shè)備包括設(shè)置成接收來(lái)自網(wǎng)絡(luò)接口的會(huì)話建立消息、基于會(huì)話建立消息和數(shù)據(jù)存儲(chǔ)中的客戶機(jī)性能從多個(gè)客戶機(jī)應(yīng)用中識(shí)別目標(biāo)客戶機(jī)應(yīng)用以及將會(huì)話建立消息傳遞到目標(biāo)客戶機(jī)應(yīng)用的處理器。
本發(fā)明的以上概述用意不在于描述本發(fā)明的每個(gè)所示的實(shí)施例或?qū)崿F(xiàn)方式。而以下的圖和相關(guān)討論卻用于此目的。
結(jié)合以下附圖中所示的實(shí)施例來(lái)描述本發(fā)明。
圖1說(shuō)明其中可運(yùn)用本發(fā)明的原理的典型系統(tǒng)環(huán)境;圖2是顯示根據(jù)本發(fā)明的實(shí)施例的SIP處理?xiàng):涂蛻魴C(jī)應(yīng)用的設(shè)置的圖;圖3是顯示根據(jù)本發(fā)明的實(shí)施例初始化和采用SIP棧的序列的消息流圖;圖4是顯示根據(jù)本發(fā)明的實(shí)施例的SIP客戶機(jī)選擇的流程圖;圖5是顯示根據(jù)本發(fā)明的實(shí)施例用于選擇SIP客戶機(jī)的進(jìn)一步處理的流程圖。
具體實(shí)施例方式
在以下對(duì)示范性實(shí)施例的描述中,參照構(gòu)成本發(fā)明一部分的附圖,并且圖中通過(guò)舉例顯示可實(shí)踐本發(fā)明的各種方式。將會(huì)理解,可以利用其它實(shí)施例,因?yàn)榭稍诓槐畴x本發(fā)明的范圍的情況下進(jìn)行結(jié)構(gòu)以及操作上的改變。
一般地,本發(fā)明提供對(duì)于利用公共的會(huì)話建立過(guò)程的多個(gè)客戶機(jī)應(yīng)用利用共享處理?xiàng)5姆椒ê驮O(shè)備。一種具體說(shuō)可用于建立會(huì)話的協(xié)議是會(huì)話發(fā)起協(xié)議(SIP)。各個(gè)客戶機(jī)建立用來(lái)發(fā)送和接收出入SIP處理?xiàng)5腟IP消息的連接。這些客戶機(jī)還將它們的性能傳遞到SIP棧。SIP處理?xiàng)=邮账休斎隨IP消息,并基于消息類型和客戶機(jī)性能將消息轉(zhuǎn)發(fā)給適當(dāng)?shù)目蛻魴C(jī)。SIP處理?xiàng)_€可發(fā)送輸出SIP消息,以及處理SIP所要求的多個(gè)請(qǐng)求-響應(yīng)交換。采用SIP處理?xiàng)J箍蛻魴C(jī)不必處理這些交換的狀態(tài)和時(shí)序。
會(huì)話協(xié)議如SIP的主要目的是建立聯(lián)網(wǎng)裝置之間的端到端的數(shù)據(jù)通信的會(huì)話。SIP還可用于這類應(yīng)用如事件通知、即時(shí)消息傳送和存在(presence)。一個(gè)或多個(gè)端點(diǎn)可以是移動(dòng)的,例如從一個(gè)位置移動(dòng)到另一個(gè)位置以及從一個(gè)網(wǎng)絡(luò)移動(dòng)到另一個(gè)網(wǎng)絡(luò)。移動(dòng)端點(diǎn)包括各種數(shù)字通信裝置。雖然本發(fā)明是針對(duì)SIP而描述的,但是可以理解可采用任何形式的會(huì)話建立過(guò)程來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明的概念,并且提供如由IETF定義的SIP的使用的描述是用于舉例而非限制目的。
通常,數(shù)字通信裝置是可與其它裝置交換數(shù)據(jù)的電子設(shè)備。數(shù)據(jù)可通過(guò)各種通信媒體如線、光纖或通過(guò)空氣如電磁波或光波傳送。逐漸地,通信裝置包括某類計(jì)算硬件如微處理器。微處理器控制的裝置的發(fā)展在移動(dòng)通信裝置(蜂窩電話、PDA等)的領(lǐng)域中穩(wěn)步增長(zhǎng)。大體上,多數(shù)移動(dòng)通信裝置采用微處理器,并且因此可將其視為移動(dòng)數(shù)據(jù)處理裝置。
圖1說(shuō)明其中可運(yùn)用本發(fā)明的原理的典型系統(tǒng)環(huán)境100。在典型系統(tǒng)環(huán)境100中,SIP消息102可在裝置之間以任何數(shù)量的已知方式傳遞。這些方式包括經(jīng)由陸線網(wǎng)絡(luò)104,它可包括全局區(qū)域網(wǎng)絡(luò)(GAN)如因特網(wǎng)、一個(gè)或多個(gè)廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)等。任何支持SIP消息102的計(jì)算裝置或其它電子裝置可以是使用本發(fā)明的目標(biāo)系統(tǒng),如服務(wù)器106、桌上型計(jì)算機(jī)108或工作站、膝上型或其它便攜式計(jì)算機(jī)110,或任何其它類似的能夠經(jīng)由網(wǎng)絡(luò)104通信的計(jì)算裝置,如用一般裝置112所表示。
數(shù)據(jù)102可經(jīng)由一個(gè)或多個(gè)無(wú)線網(wǎng)絡(luò)114如全球移動(dòng)通信系統(tǒng)(GSM)、通用移動(dòng)電信系統(tǒng)(UMTS)、個(gè)人通信服務(wù)(PCS)、時(shí)分多址(TDMA)、碼分多址(CDMA)或其它移動(dòng)網(wǎng)絡(luò)傳輸技術(shù)提供。此外,任何可用于采用SIP進(jìn)行通信的移動(dòng)電子裝置可與使用根據(jù)本發(fā)明的概念的目標(biāo)系統(tǒng)接口,如膝上型或其它便攜式計(jì)算機(jī)116、移動(dòng)電話118A及其它移動(dòng)通信裝置、個(gè)人數(shù)字助理(PDA)120或任何其它類似的能夠經(jīng)由無(wú)線網(wǎng)絡(luò)114通信的計(jì)算裝置,如用一般裝置122所表示。
可采用短距離無(wú)線技術(shù)124如藍(lán)牙、無(wú)線局域網(wǎng)絡(luò)(WLAN)、紅外(IR)等在裝置之間傳送SIP消息102。也可采用如連接路徑126所示的直接有線連接來(lái)分發(fā)SIP消息102??蓱?yīng)用本發(fā)明,而不管在目標(biāo)裝置之間提供或分發(fā)SIP消息102的方式。
利用根據(jù)本發(fā)明的概念的目標(biāo)裝置的示例如移動(dòng)電話118B所示。裝置118B包括例如無(wú)線電收發(fā)器134和耦合到操作系統(tǒng)(OS)130的硬件(包括處理器)。本發(fā)明可包括實(shí)現(xiàn)為固件、模塊或運(yùn)行于OS 130上的程序的SIP處理?xiàng)?32。
現(xiàn)在參照?qǐng)D2,顯示說(shuō)明本發(fā)明的概念的示范性通信裝置200。通信裝置200包括用于與網(wǎng)絡(luò)204通信的網(wǎng)絡(luò)接口202。網(wǎng)絡(luò)204可以是任何類型的數(shù)字通信網(wǎng)絡(luò)。本示例中的網(wǎng)絡(luò)204一般通過(guò)在網(wǎng)絡(luò)204上具有一個(gè)或多個(gè)SIP服務(wù)器220和客戶機(jī)222、224、226來(lái)提供某一方式的SIP服務(wù)。
當(dāng)前版本的SIP規(guī)范在2002年6月的因特網(wǎng)工程任務(wù)組(IETF)RFC 3261中定義。RFC 3261定義可由根據(jù)本發(fā)明的實(shí)施例的通信裝置使用的行為和數(shù)據(jù)格式。SIP規(guī)范包括用于創(chuàng)建、修改和終止與一個(gè)或多個(gè)參與者的會(huì)話的協(xié)議。SIP也可用于這類應(yīng)用如事件通知、即時(shí)消息傳送以及存在。SIP設(shè)計(jì)成用于與聯(lián)網(wǎng)的數(shù)據(jù)處理裝置配合使用;因此,根據(jù)本發(fā)明的裝置200將在網(wǎng)絡(luò)接口202上處理SIP通信。
網(wǎng)絡(luò)接口202可以是任何允許與其它聯(lián)網(wǎng)裝置通信的物理或邏輯接口。網(wǎng)絡(luò)接口通常使用在國(guó)際標(biāo)準(zhǔn)化組織(ISO)聯(lián)網(wǎng)協(xié)議棧的網(wǎng)絡(luò)層上的網(wǎng)際協(xié)議(IP)。通常與IP耦合的是在OSI棧的傳輸層上的傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。然而,可以理解SIP規(guī)范與任何類型的聯(lián)網(wǎng)協(xié)議無(wú)關(guān),并可與本領(lǐng)域中已知的各種其它網(wǎng)絡(luò)技術(shù)配合使用。
通信裝置200包括SIP處理?xiàng)?06(這里也稱為“SIP棧”),它通過(guò)網(wǎng)絡(luò)接口202與網(wǎng)絡(luò)204通信。SIP棧206可設(shè)置成處理通信裝置200的所有SIP通信。
SIP棧206還與通信裝置200上的客戶機(jī)210通信??蛻魴C(jī)210(也稱為“客戶機(jī)應(yīng)用”)通常是運(yùn)行于通信裝置200上的應(yīng)用。客戶機(jī)210用于格式化數(shù)據(jù)并向用戶提供該數(shù)據(jù)等。客戶機(jī)210可包括處理如語(yǔ)音/視頻通信、文本消息傳送、web服務(wù)等的程序。
SIP棧200可配置成與不一定在通信裝置200上運(yùn)行的外部客戶機(jī)212通信。外部客戶機(jī)212可經(jīng)由如網(wǎng)絡(luò)接口或由插入式外圍裝置所使用的數(shù)據(jù)I/O總線連接到通信裝置200。這類外圍裝置可包括存儲(chǔ)裝置如智能卡、PC卡、RAM/ROM模塊、盤(pán)驅(qū)動(dòng)器。自主裝置如電話、PDA、計(jì)算機(jī)等也可作為外設(shè)或者經(jīng)由網(wǎng)絡(luò)附加到通信裝置200,以使外部客戶機(jī)212與SIP棧200接口。
本領(lǐng)域中已知的各種技術(shù)可用于在客戶機(jī)210、212和SIP處理?xiàng)?06之間進(jìn)行通信。SIP處理?xiàng)?06和客戶機(jī)210、212可以是獨(dú)立運(yùn)行的進(jìn)程。對(duì)于一個(gè)或多個(gè)客戶機(jī),也可以通過(guò)利用輕型進(jìn)程(LWP)或線程與SIP棧206或者相互在單個(gè)進(jìn)程中運(yùn)行。根據(jù)本發(fā)明的裝置200可采用獨(dú)立進(jìn)程和/或在進(jìn)程內(nèi)部執(zhí)行的線程的任何組合??蛻魴C(jī)進(jìn)程或線程之間的通信可通過(guò)進(jìn)程間通信(IPC)完成。
IPC機(jī)制允許獨(dú)立的進(jìn)程進(jìn)行交互。這類交互可以是同步的或異步的。計(jì)算機(jī)體系結(jié)構(gòu)提供各種方法和機(jī)制如網(wǎng)絡(luò)套接字(socket)、共享存儲(chǔ)、信號(hào)、信號(hào)機(jī)(semaphore)、管道(pipe)、消息傳送等來(lái)使得IPC容易進(jìn)行。在本領(lǐng)域中已知各種標(biāo)準(zhǔn)IPC協(xié)議,包括Java RMI、CORBA、COM/DCOM、遠(yuǎn)程過(guò)程調(diào)用(RPC)等。各種操作系統(tǒng)和開(kāi)發(fā)環(huán)境提供特定的IPC特征,如在移動(dòng)裝置的Symbian操作系統(tǒng)內(nèi)的IPC。
IPC協(xié)議通常允許程序員通過(guò)進(jìn)行功能調(diào)用來(lái)透明地調(diào)用遠(yuǎn)程進(jìn)程上的方法。這些進(jìn)程可定義可由另一IPC感知進(jìn)程所用的應(yīng)用程序接口(API)方法。這些API方法可用來(lái)發(fā)起事件、傳送數(shù)據(jù)、處理查詢等。參照?qǐng)D2,客戶機(jī)210、212和SIP棧206可采用預(yù)定義的API方法來(lái)交換與SIP有關(guān)的數(shù)據(jù)。
在客戶機(jī)210、212和SIP棧206之間交換的一類數(shù)據(jù)是客戶機(jī)性能。這些性能可由SIP棧206使用以便判斷用于接收輸入SIP消息的目標(biāo)客戶機(jī)。這些性能可在運(yùn)行期從客戶機(jī)210、212傳遞到SIP棧206。這些性能也可裝入到永久存儲(chǔ)215中,以便在任何時(shí)候由SIP棧206檢索。
SIP棧206也可用于采用特定于裝置200所包含的操作系統(tǒng)的各種機(jī)制來(lái)啟動(dòng)和停止客戶機(jī)210、212。例如,許多庫(kù)提供標(biāo)準(zhǔn)C語(yǔ)言過(guò)程fork()和exec()的實(shí)現(xiàn)。其它啟動(dòng)客戶機(jī)210、212的方式可包括調(diào)用對(duì)操作系統(tǒng)的系統(tǒng)調(diào)用,以啟動(dòng)可執(zhí)行文件或批處理文件??蛻魴C(jī)也可通過(guò)進(jìn)行系統(tǒng)調(diào)用或使用C函數(shù)如kill()來(lái)停止。有利的是,客戶機(jī)210、212的自動(dòng)啟動(dòng)和停止允許裝置通過(guò)只運(yùn)行針對(duì)當(dāng)前通信會(huì)話所需要的那些客戶機(jī)來(lái)節(jié)約存儲(chǔ)周期和處理周期。
可以理解,為實(shí)施在通信期間所用的數(shù)據(jù)傳送,客戶機(jī)210、212可包含它們自己的網(wǎng)絡(luò)連接(未顯示)。SIP與其它協(xié)議如會(huì)話描述協(xié)議(SDP)一起使用,以提供面向會(huì)話的參數(shù)如數(shù)據(jù)路徑定義、用戶可用性以及在會(huì)話兩端支持的可允許的數(shù)據(jù)類型。在SIP和SDP(或類似協(xié)議)已建立會(huì)話之后,便輪到客戶機(jī)210、212來(lái)執(zhí)行傳送數(shù)據(jù)和向用戶提供數(shù)據(jù)的功能。
現(xiàn)在參照?qǐng)D3,顯示如何可在SIP棧304和客戶機(jī)306、308之間建立會(huì)話的示例。網(wǎng)絡(luò)接口302將SIP棧304和客戶機(jī)306、308連接到SIP網(wǎng)絡(luò)(未顯示)??蛻魴C(jī)308(客戶機(jī)2)首先把其性能傳遞310到SIP棧304。在圖3中,將這種傳遞310示為從客戶機(jī)2308調(diào)用的示范性API調(diào)用、SetSIPCapabilities()。SIP棧304采用稱為SetClient()的示范性方法將此客戶機(jī)的性能增加312到內(nèi)狀態(tài)。對(duì)客戶機(jī)1306重復(fù)進(jìn)行傳遞性能314和增加客戶機(jī)316的類似進(jìn)程。
客戶機(jī)306、308與SIP棧304之間傳遞的性能可包括如各種IETFRFC中定義的SIP首部的標(biāo)準(zhǔn)分量??蛻魴C(jī)所支持的眾所周知的性能如SIP版本、SIP方法、語(yǔ)言、編碼、內(nèi)容部署、媒體類型、內(nèi)容類型等嵌入在SIP消息中。其它客戶機(jī)性能可嵌入到SIP消息中的任何位置,包括啟動(dòng)行、首部和消息主體。SIP棧304所使用的API通常具有靈活的傳遞這些性能的方式,由此允許支持未來(lái)的SIP擴(kuò)展,而不必改變API方法。
客戶機(jī)性能的傳遞310、314可出現(xiàn)在通信裝置工作期間的任何時(shí)候。在一種設(shè)置中,客戶機(jī)306、308可在安裝客戶機(jī)306、308的時(shí)候僅傳遞它們的性能一次。這類傳遞可通過(guò)將數(shù)據(jù)寫(xiě)到永久存儲(chǔ)如文件或系統(tǒng)注冊(cè)中來(lái)完成。通過(guò)訪問(wèn)永久存儲(chǔ),SIP棧304在啟動(dòng)時(shí)發(fā)現(xiàn)并設(shè)置312、316當(dāng)前的客戶機(jī)性能,并且因此客戶機(jī)306、308不必運(yùn)行。還可希望在運(yùn)行期使客戶機(jī)306、308動(dòng)態(tài)增加和刪去。在此情形中,客戶機(jī)306、308將在每個(gè)客戶機(jī)啟動(dòng)時(shí)傳遞310、314性能,并在客戶機(jī)關(guān)閉時(shí)刪去那些性能。
SIP棧304可設(shè)置成處理網(wǎng)絡(luò)接口302上的所有SIP相關(guān)的通信。例如,登記REGISTER請(qǐng)求317可由SIP棧304發(fā)送,以向SIP相關(guān)的主機(jī)通知當(dāng)前的系統(tǒng)性能。通過(guò)SIP棧304處理所有的SIP通信有許多優(yōu)點(diǎn)。例如,客戶機(jī)應(yīng)用的開(kāi)發(fā)者不必使每個(gè)客戶機(jī)包括SIP棧。為所有客戶機(jī)應(yīng)用的利益,更新和修正可單獨(dú)應(yīng)用到SIP棧。對(duì)于SIP消息具有中央處理點(diǎn)還減少對(duì)網(wǎng)絡(luò)資源的潛在爭(zhēng)用。
SIP棧304可用于采用SIP進(jìn)行輸出連接以及等著偵聽(tīng)輸入連接。輸出連接涉及發(fā)現(xiàn)網(wǎng)絡(luò)上的主機(jī)并連接到其上。偵聽(tīng)輸入連接涉及在預(yù)定網(wǎng)絡(luò)端口上等待連接嘗試。雖然網(wǎng)絡(luò)端口的概念一般用于TCP/IP和UDP/IP,但如這里所使用的端口的概念指用于在傳輸層上隔離輸入連接的任何唯一標(biāo)識(shí)符。當(dāng)用于TCP/IP和UDP/IP時(shí),這些端口是嵌入?yún)f(xié)議首部的16位無(wú)符號(hào)整數(shù)。TCP和UPD端口可以是“眾所周知”的,如用于SIP的5060,或者可以是預(yù)先安排的由兩個(gè)或多個(gè)主機(jī)使用的某一其它數(shù)字。
當(dāng)處理輸入連接時(shí),SIP棧304維持各種客戶機(jī)性能的內(nèi)狀態(tài)。此內(nèi)狀態(tài)可用來(lái)響應(yīng)請(qǐng)求如SIP選項(xiàng)SIP OPTIONS請(qǐng)求。選項(xiàng)OPTIONS請(qǐng)求可由SIP網(wǎng)絡(luò)上的另一用戶發(fā)起,以查詢用戶裝置的性能。SIP棧304可用棧的內(nèi)狀態(tài)來(lái)利用當(dāng)前狀態(tài)的所有客戶機(jī)性能響應(yīng)選項(xiàng)OPTIONS請(qǐng)求。
內(nèi)狀態(tài)還用來(lái)將輸入消息導(dǎo)向適當(dāng)?shù)目蛻魴C(jī)。通過(guò)從網(wǎng)絡(luò)接口302接收318的邀請(qǐng)INVITE消息顯示輸入連接的示例。邀請(qǐng)INVITE消息通常由網(wǎng)絡(luò)上嘗試發(fā)起會(huì)話的SIP感知主機(jī)來(lái)發(fā)送。SIP棧304分析消息并選擇320最適合處理邀請(qǐng)INVITE請(qǐng)求所需要的性能的客戶機(jī)。此選擇320用稱為GetClient()的示范性方法來(lái)指示。
在此示例中,邀請(qǐng)INVITE消息通過(guò)API調(diào)用、SIPIncomingMessage()轉(zhuǎn)發(fā)322給客戶機(jī)1306。雖然術(shù)語(yǔ)“轉(zhuǎn)發(fā)”常用來(lái)指消息不經(jīng)過(guò)改變便被發(fā)送,但在本上下文中,“轉(zhuǎn)發(fā)”用來(lái)表示在客戶機(jī)和SIP棧304之間傳遞直接(substantive)數(shù)據(jù)??梢岳斫?,當(dāng)采用API時(shí),可以改變包含在SIP消息中的數(shù)據(jù)的一部分以符合API。通常,SIP消息的轉(zhuǎn)發(fā)或傳遞涉及傳遞API或其它IPC設(shè)置所需要的那種SIP數(shù)據(jù),這可包括不作變化地發(fā)送該消息。
SIP棧304可處理SIP協(xié)議的各種響應(yīng),如響應(yīng)于邀請(qǐng)INVITE消息發(fā)送“100嘗試”324和“180振鈴”326。當(dāng)客戶機(jī)1306準(zhǔn)備建立會(huì)話時(shí),它采用API調(diào)用如SIPSession()將此傳遞328給SIP棧304。SIPSession()調(diào)用可用來(lái)將SIP會(huì)話的建立、改變和終止傳遞到SIP棧304。
在通知SIP棧304將要建立會(huì)話后,所需要的同意OK響應(yīng)330和確認(rèn)332響應(yīng)可由SIP棧304發(fā)送,以結(jié)束該交換。在此點(diǎn)上,客戶機(jī)1306經(jīng)由網(wǎng)絡(luò)接口302建立334媒體會(huì)話??衫每蛻魴C(jī)2308建立其它媒體會(huì)話,如通過(guò)處理另一邀請(qǐng)INVITE請(qǐng)求336、選擇客戶機(jī)338以及轉(zhuǎn)發(fā)消息340所示。
如前所述,SIP棧304將處理輸入SIP消息,并將那些消息轉(zhuǎn)發(fā)給適當(dāng)?shù)目蛻魴C(jī)。SIP棧304可查看SIP消息的各個(gè)部分,包括啟動(dòng)行和首部。而且,SIP消息主體可包含可由SIP棧304檢查以判斷對(duì)于SIP消息適當(dāng)?shù)目蛻魴C(jī)的數(shù)據(jù)(如SDP首部)。在另一示例中,主體可包含提供用于分類會(huì)話數(shù)據(jù)的模式的可擴(kuò)展標(biāo)記語(yǔ)言(XML)標(biāo)簽。當(dāng)判斷針對(duì)SIP消息適當(dāng)?shù)哪繕?biāo)客戶機(jī)時(shí),SIP消息首部、啟動(dòng)行和消息主體內(nèi)容的任何組合可由SIP棧304所用。
圖4和5示出此處理的部分如何可以發(fā)生的示例。圖4是顯示各種SIP消息啟動(dòng)行和首部值的分析以判斷用于接收消息的適當(dāng)?shù)目蛻魴C(jī)的流程圖,如圖3的GetClient()過(guò)程320中所示。該過(guò)程以SIP消息和所有客戶機(jī)以及關(guān)聯(lián)性能的列表啟動(dòng)402。檢查404SIP版本,如果有客戶機(jī)不支持此版本的話,便將客戶機(jī)從列表中刪除406。通過(guò)檢查各個(gè)客戶機(jī)性能如SIP方法、SIP擴(kuò)展、語(yǔ)言等在過(guò)程的剩余部分408上重復(fù)此進(jìn)程。將任何不支持測(cè)試的性能的客戶機(jī)從列表中刪去。最后,測(cè)試410內(nèi)容類型,如果不是類型SDP,則消息可轉(zhuǎn)發(fā)到客戶機(jī)。為轉(zhuǎn)發(fā)該消息,首先檢查412列表以查看是否還有客戶機(jī)。如果有,則將該消息轉(zhuǎn)發(fā)給客戶機(jī)414,否則向網(wǎng)絡(luò)返回416錯(cuò)誤消息。如果檢查410內(nèi)容類型并發(fā)現(xiàn)是類型SDP,則需要作進(jìn)一步處理412。
圖5是顯示圖4中所指示的繼續(xù)處理412的流程圖。如同圖4中的流程圖一樣,過(guò)程502涉及測(cè)試SDP首部中的各個(gè)字段如SDP版本、網(wǎng)絡(luò)類型、地址類型、帶寬調(diào)節(jié)器、加密、媒體、傳輸?shù)取A斜碇腥魏尾恢С諷DP首部中所指示的那些性能的客戶機(jī)被刪除?!爱?dāng)”循環(huán)504類似地進(jìn)行,測(cè)試SDP首部的各個(gè)屬性行如編碼名稱、白板取向(whiteboard orientation)、會(huì)議類型、字符集、SDP語(yǔ)言、ftmp屬性等。此外,列表中任何不支持這些性能的客戶機(jī)被刪除。在“當(dāng)”循環(huán)504中處理之后,檢查506客戶機(jī)的列表,以查看是否還有客戶機(jī)。如果有的話,則將該消息轉(zhuǎn)發(fā)給客戶機(jī)508,否則向網(wǎng)絡(luò)返回510錯(cuò)誤消息。
可以理解,顯示圖3、4和5中所示的示范性例程用于舉例而非限制目的??蓪?duì)操作和程序流進(jìn)行各種變化,同時(shí)仍保持在本發(fā)明的精神內(nèi)。SIP??梢园凑彰嫦?qū)ο蟮姆椒ǘ皇撬镜倪^(guò)程方法來(lái)處理。例如,每個(gè)客戶機(jī)可由客戶機(jī)對(duì)象表示,并且每個(gè)客戶機(jī)對(duì)象可處理SIP首部和SDP首部,以判斷哪個(gè)客戶機(jī)應(yīng)當(dāng)接收該消息。
利用這里所提供的描述,本發(fā)明可通過(guò)采用標(biāo)準(zhǔn)編程和/或工程技術(shù)來(lái)產(chǎn)生編程軟件、固件、硬件或它們的任何組合來(lái)實(shí)現(xiàn)為機(jī)器、進(jìn)程或制造品。任何所得的包括計(jì)算機(jī)可讀程序代碼的程序可包含在一個(gè)或多個(gè)計(jì)算機(jī)可用媒體如常駐存儲(chǔ)裝置、智能卡或其它可拆除的存儲(chǔ)裝置或傳輸裝置上,由此制造出根據(jù)本發(fā)明的計(jì)算機(jī)程序產(chǎn)品或制造品。同樣,這里所用的“計(jì)算機(jī)可讀媒體”意在包含在任何計(jì)算機(jī)可用媒體上或在傳輸這類程序的任何傳輸媒體中永久或暫時(shí)存在的計(jì)算機(jī)程序。
如上所示,存儲(chǔ)器/存儲(chǔ)裝置包括但不限于盤(pán)、光盤(pán)、可拆除式存儲(chǔ)裝置(如智能卡、SIM、WIM)、半導(dǎo)體存儲(chǔ)器(如RAM、ROM、PROM)等。通信媒體包括但不限于經(jīng)由無(wú)線/無(wú)線電波通信網(wǎng)絡(luò)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、基于電話/調(diào)制解調(diào)器的網(wǎng)絡(luò)通信、硬連線/電纜的通信網(wǎng)絡(luò)、衛(wèi)星通信以及其它固定或移動(dòng)網(wǎng)絡(luò)系統(tǒng)/通信鏈路的通信。
根據(jù)這里所提供的描述,本領(lǐng)域的技術(shù)人員能夠容易地將按照所述產(chǎn)生的軟件與適當(dāng)?shù)耐ㄓ没驅(qū)S糜?jì)算機(jī)硬件組合起來(lái),以產(chǎn)生體現(xiàn)本發(fā)明的數(shù)據(jù)處理裝置和/或計(jì)算機(jī)子部件,以及產(chǎn)生用于實(shí)施本發(fā)明的方法的數(shù)據(jù)處理裝置和/或計(jì)算機(jī)子部件。
為舉例和說(shuō)明目的提供本發(fā)明示范性實(shí)施例的以上描述。這些描述并不意在窮舉或?qū)⒈景l(fā)明限制為所公開(kāi)的確切形式。按照以上示教可以進(jìn)行許多修改和變型。意圖是通過(guò)這里所附的權(quán)利要求而非該詳細(xì)描述來(lái)限制本發(fā)明的范圍。
權(quán)利要求
1.一種處理多個(gè)客戶機(jī)的會(huì)話建立過(guò)程的方法,所述方法包括將所述多個(gè)客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到處理?xiàng)?;在所述消息處理?xiàng)I辖邮諄?lái)自網(wǎng)絡(luò)接口的會(huì)話建立消息;基于所述會(huì)話建立消息和所述客戶機(jī)性能從所述多個(gè)客戶機(jī)中判斷目標(biāo)客戶機(jī);以及將所述會(huì)話建立消息從所述消息處理?xiàng)鬟f到所述目標(biāo)客戶機(jī)。
2.如權(quán)利要求1所述的方法,其特征在于還包括在所述目標(biāo)客戶機(jī)未運(yùn)行的情況下啟動(dòng)所述目標(biāo)客戶機(jī)。
3.如權(quán)利要求1所述的方法,其特征在于,將所述客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到所述消息處理?xiàng)0ㄔ谟谰脭?shù)據(jù)存儲(chǔ)裝置中描述所述客戶機(jī)性能。
4.如權(quán)利要求1所述的方法,其特征在于,將所述客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到所述消息處理?xiàng)0ㄔ谒隹蛻魴C(jī)的運(yùn)行期傳遞所述客戶機(jī)性能。
5.如權(quán)利要求1所述的方法,其特征在于,所述會(huì)話建立過(guò)程包括會(huì)話發(fā)起協(xié)議(SIP)。
6.如權(quán)利要求5所述的方法,其特征在于,判斷所述目標(biāo)客戶機(jī)包括檢查所述會(huì)話建立消息的一個(gè)或多個(gè)SIP首部和SIP啟動(dòng)行。
7.如權(quán)利要求5所述的方法,其特征在于,判斷所述目標(biāo)客戶機(jī)包括檢查所述會(huì)話建立消息的SIP主體。
8.如權(quán)利要求7所述的方法,其特征在于,判斷所述目標(biāo)客戶機(jī)包括檢查所述會(huì)話建立消息的主體的會(huì)話描述協(xié)議(SDP)首部。
9.一種連接到網(wǎng)絡(luò)接口用于處理多個(gè)客戶機(jī)的會(huì)話建立過(guò)程的制造品,包括設(shè)有用于使得計(jì)算機(jī)執(zhí)行以下步驟的指令的計(jì)算機(jī)可讀媒體將所述多個(gè)客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到消息處理?xiàng)?;在所述消息處理?xiàng)I辖邮諄?lái)自所述網(wǎng)絡(luò)接口的消息;基于所述消息和所述客戶機(jī)性能從所述多個(gè)客戶機(jī)中判斷目標(biāo)客戶機(jī);以及將所述消息從所述消息處理?xiàng)鬟f到所述目標(biāo)客戶機(jī)。
10.如權(quán)利要求9所述的制造品,其特征在于,所述計(jì)算機(jī)可讀媒體還設(shè)有用于使得計(jì)算機(jī)執(zhí)行所述步驟即在所述目標(biāo)客戶機(jī)未運(yùn)行的情況下啟動(dòng)所述目標(biāo)客戶機(jī)的指令。
11.如權(quán)利要求9所述的制造品,其特征在于,將所述客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到所述消息處理?xiàng)0ㄔ谟谰脭?shù)據(jù)存儲(chǔ)裝置中描述所述客戶機(jī)性能。
12.如權(quán)利要求9所述的制造品,其特征在于,將所述客戶機(jī)的每個(gè)的客戶機(jī)性能傳遞到所述消息處理?xiàng)0ㄔ谒隹蛻魴C(jī)的運(yùn)行期傳遞所述客戶機(jī)性能。
13.如權(quán)利要求9所述的制造品,其特征在于,所述會(huì)話建立過(guò)程包括會(huì)話發(fā)起協(xié)議(SIP)。
14.如權(quán)利要求13所述的制造品,其特征在于,判斷目標(biāo)客戶機(jī)包括檢查所述消息的一個(gè)或多個(gè)SIP首部和SIP啟動(dòng)行。
15.如權(quán)利要求13所述的制造品,其特征在于,判斷目標(biāo)客戶機(jī)包括檢查所述消息的SIP主體。
16.如權(quán)利要求15所述的制造品,其特征在于,判斷目標(biāo)客戶機(jī)包括檢查所述消息的主體的會(huì)話描述協(xié)議(SDP)首部。
17.如權(quán)利要求9所述的制造品,其特征在于,所述制造品包括移動(dòng)終端。
18.如權(quán)利要求9所述的制造品,其特征在于,所述網(wǎng)絡(luò)接口包括無(wú)線接口。
19.一種在連接到網(wǎng)絡(luò)接口的數(shù)據(jù)處理裝置上處理會(huì)話發(fā)起協(xié)議(SIP)消息的方法,包括在所述數(shù)據(jù)處理裝置的SIP處理?xiàng)I辖邮账鯯IP消息,所述SIP處理?xiàng)Ec所述網(wǎng)絡(luò)接口的預(yù)定端口相關(guān)聯(lián);基于所述SIP消息的數(shù)據(jù)選擇所述數(shù)據(jù)處理裝置的目標(biāo)客戶機(jī)應(yīng)用;基于選擇所述目標(biāo)客戶機(jī)應(yīng)用是否成功將SIP響應(yīng)消息從所述SIP處理?xiàng)0l(fā)送到所述網(wǎng)絡(luò)接口;以及將所述SIP消息從所述SIP處理?xiàng)鬟f到所述目標(biāo)客戶機(jī)應(yīng)用。
20.如權(quán)利要求19所述的方法,其特征在于還包括在所述目標(biāo)客戶機(jī)應(yīng)用未運(yùn)行的情況下啟動(dòng)所述目標(biāo)客戶機(jī)應(yīng)用。
21.如權(quán)利要求19所述的方法,其特征在于,選擇所述數(shù)據(jù)處理裝置的目標(biāo)客戶機(jī)應(yīng)用包括判斷來(lái)自永久數(shù)據(jù)存儲(chǔ)裝置的客戶機(jī)性能。
22.如權(quán)利要求19所述的方法,其特征在于,選擇所述數(shù)據(jù)處理裝置的目標(biāo)客戶機(jī)應(yīng)用包括判斷來(lái)自運(yùn)行的客戶機(jī)的客戶機(jī)性能。
23.如權(quán)利要求19所述的方法,其特征在于,選擇目標(biāo)客戶機(jī)包括檢查所述SIP消息的一個(gè)或多個(gè)SIP首部和SIP啟動(dòng)行。
24.如權(quán)利要求19所述的方法,其特征在于,選擇目標(biāo)客戶機(jī)包括檢查所述SIP消息的主體。
25.如權(quán)利要24所述的方法,其特征在于,選擇目標(biāo)客戶機(jī)包括檢查所述SIP消息的主體的會(huì)話描述協(xié)議(SDP)首部。
26.一種用于處理與網(wǎng)絡(luò)相關(guān)聯(lián)的會(huì)話發(fā)起協(xié)議(SIP)消息的系統(tǒng),包括網(wǎng)絡(luò)接口,用于接收來(lái)自所述網(wǎng)絡(luò)的SIP消息;SIP處理器,用于接收來(lái)自所述網(wǎng)絡(luò)接口裝置的所述SIP消息以及判斷所述SIP消息的目標(biāo)客戶機(jī);進(jìn)程間通信裝置,用于促進(jìn)所述SIP處理器和所述目標(biāo)客戶機(jī)之間的通信;以及其中所述SIP處理器采用所述進(jìn)程間通信裝置將所述SIP消息傳遞到所述目標(biāo)客戶機(jī)。
27.如權(quán)利要求26所述的系統(tǒng),其特征在于還包括進(jìn)程執(zhí)行裝置,并且所述SIP處理器配置成采用所述進(jìn)程執(zhí)行裝置啟動(dòng)所述目標(biāo)客戶機(jī)。
28.如權(quán)利要求26所述的系統(tǒng),其特征在于還包括永久數(shù)據(jù)存儲(chǔ)裝置,并且所述SIP處理器配置成通過(guò)判斷來(lái)自所述永久數(shù)據(jù)存儲(chǔ)裝置的客戶機(jī)性能來(lái)識(shí)別目標(biāo)客戶機(jī)。
29.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述SIP處理器配置成通過(guò)判斷來(lái)自運(yùn)行的客戶機(jī)的客戶機(jī)性能來(lái)識(shí)別目標(biāo)客戶機(jī)。
30.如權(quán)利要求26所述的系統(tǒng),其特征在于還包括耦合到所述網(wǎng)絡(luò)以便傳遞SIP消息的服務(wù)器。
31.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)接口包括無(wú)線網(wǎng)絡(luò)接口。
32.一種設(shè)置用于與網(wǎng)絡(luò)接口的設(shè)備,包括網(wǎng)絡(luò)接口,其配置成接收來(lái)自所述網(wǎng)絡(luò)的會(huì)話建立消息;數(shù)據(jù)存儲(chǔ)裝置,其用于存儲(chǔ)多個(gè)客戶機(jī)應(yīng)用的客戶機(jī)性能;以及處理器,其設(shè)置成接收來(lái)自所述網(wǎng)絡(luò)接口的所述會(huì)話建立消息;基于所述會(huì)話建立消息和所述數(shù)據(jù)存儲(chǔ)裝置的客戶機(jī)性能從所述多個(gè)客戶機(jī)應(yīng)用中識(shí)別目標(biāo)客戶機(jī)應(yīng)用;以及將所述會(huì)話建立消息傳遞到所述目標(biāo)客戶機(jī)應(yīng)用。
33.如權(quán)利要求32所述的設(shè)備,其特征在于,所述處理器還設(shè)置成在所述目標(biāo)客戶機(jī)應(yīng)用未運(yùn)行的情況下啟動(dòng)所述目標(biāo)客戶機(jī)應(yīng)用。
34.如權(quán)利要求32所述的設(shè)備,其特征在于,所述會(huì)話建立消息包括會(huì)話發(fā)起協(xié)議(SIP)消息。
35.如權(quán)利要求34所述的設(shè)備,其特征在于,所述處理器還設(shè)置成通過(guò)檢查所述SIP消息的一個(gè)或多個(gè)SIP首部和SIP啟動(dòng)行來(lái)判斷所述目標(biāo)客戶機(jī)應(yīng)用。
36.如權(quán)利要求34所述的設(shè)備,其特征在于,所述處理器還設(shè)置成通過(guò)檢查所述SIP消息的主體來(lái)判斷所述目標(biāo)客戶機(jī)應(yīng)用。
37.如權(quán)利要求34所述的設(shè)備,其特征在于,所述處理器還設(shè)置成通過(guò)檢查所述SIP消息的會(huì)話描述協(xié)議(SDP)首部來(lái)判斷所述目標(biāo)客戶機(jī)應(yīng)用。
全文摘要
一種在SIP使能的終端中提供多客戶機(jī)支持的方法和設(shè)備涉及在終端(200)上提供SIP處理?xiàng)?206)??蛻魴C(jī)(210)連接到SIP處理?xiàng)?206)以傳遞客戶機(jī)性能和處理SIP消息。SIP處理?xiàng)?206)發(fā)送和接收SIP消息。通過(guò)查看客戶機(jī)性能和SIP消息中的數(shù)據(jù)將輸入SIP消息發(fā)送到適當(dāng)?shù)目蛻魴C(jī)(210)。
文檔編號(hào)G06F9/44GK1761928SQ200480007394
公開(kāi)日2006年4月19日 申請(qǐng)日期2004年3月12日 優(yōu)先權(quán)日2003年3月20日
發(fā)明者H·哈塔比爾 申請(qǐng)人:諾基亞有限公司