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