專利名稱::動(dòng)態(tài)多方、多個(gè)媒體通信自動(dòng)協(xié)調(diào)的方法與裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及因特網(wǎng)電話,具體地涉及對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào)。
背景技術(shù):
:各電話公司正投資于創(chuàng)建與部署因特網(wǎng)協(xié)議上的話音(voiceoverInternetProtocol,VoIP)基礎(chǔ)設(shè)施。會(huì)話啟動(dòng)協(xié)議(Sessioninitiationprotocol,SIP)已作為設(shè)備間信令的開放的、事實(shí)上的標(biāo)準(zhǔn)出現(xiàn),并且提供了一種用于啟動(dòng)與切斷兩個(gè)端點(diǎn)之間的媒體會(huì)話,以及協(xié)商兩個(gè)端點(diǎn)所支持的媒體類型的機(jī)制。SIP還考慮到媒體信息包源和接收器(sink)的網(wǎng)絡(luò)位置以及媒體會(huì)話的通話中(midpcall)變化。由于使能SIP的數(shù)目上的預(yù)期激增、SIP設(shè)備所提供的功能的增多,相比于傳統(tǒng)的公共交換電話網(wǎng)絡(luò)(PSTN)線路,以及諸如視頻會(huì)議、語音-至-文本、文本-至-語音等技術(shù)所提供的傳統(tǒng)通信媒體中的缺陷,VoIP技術(shù)規(guī)模和復(fù)雜度上正在迅速發(fā)展。與在因特網(wǎng)協(xié)議(IP)上部承載電路服務(wù)相反,IP多媒體子系統(tǒng)(IPMultimetidaSubsystem,IMS)向操作員提供了建造一種開放的、基于IP的服務(wù)基礎(chǔ)設(shè)施的機(jī)會(huì),這將實(shí)現(xiàn)對(duì)混合電信和數(shù)據(jù)服務(wù)的、新的、豐富的多媒體通信服務(wù)的容易的部署。AlcatelIMS方案基于3GPP規(guī)范,但也能夠提供針對(duì)移動(dòng)和包括固定網(wǎng)絡(luò)的其它存取網(wǎng)絡(luò)的公共IMS服務(wù)。在試圖仿效電路變換的域之前,IMS首先提供了不過多要求基礎(chǔ)存取網(wǎng)絡(luò)的新的服務(wù)。盡管單個(gè)媒體合作,例如話音會(huì)議或群組即時(shí)消息處理(instantmessaging,IM)聊天可以實(shí)時(shí)地(onthefly)進(jìn)行,但在一組動(dòng)態(tài)的參與者之間協(xié)調(diào)多個(gè)媒體合作,除了手工的強(qiáng)行干預(yù)方法外,在很大程度上仍未得以解決。例如,如果用戶希望與兩或兩個(gè)以上其他參與者召開話音會(huì)議時(shí),則可以啟動(dòng)簡(jiǎn)單的單個(gè)媒體會(huì)話。然而,如果參與者具有不同的媒體能力,則協(xié)調(diào)會(huì)話要求啟動(dòng)者協(xié)調(diào)會(huì)話的多條“腿(leg)”。例如,一個(gè)參與者可能具有話音能力,而第二個(gè)參與者可能具有唯文本能力。于是,啟動(dòng)者必須針對(duì)參與會(huì)話的唯文本設(shè)備建立文本-至-話音和話音-至-文本的轉(zhuǎn)換。必須建立和協(xié)調(diào)所有這些不同的服務(wù),才能使會(huì)話得以進(jìn)行。
發(fā)明內(nèi)容本發(fā)明認(rèn)識(shí)到現(xiàn)有技術(shù)的缺點(diǎn),并提供了一種用于在通信網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信自動(dòng)進(jìn)行協(xié)調(diào)的機(jī)制?;谀繕?biāo)的搜尋引擎接收通信會(huì)話的目標(biāo),并且執(zhí)行基于目標(biāo)的搜尋,以識(shí)別實(shí)現(xiàn)這一目標(biāo)的一組分立的操作。連接管理器判斷是否資源可用于這組分立的操作。當(dāng)所有資源都可用于這組分立的操作時(shí),連接管理器執(zhí)行該組分立的操作,以啟動(dòng)通信會(huì)話。所附權(quán)利要求中闡述了被視為本發(fā)明特性的新特征。然而,通過參照以下對(duì)說明性實(shí)施例的詳細(xì)描述并結(jié)合附圖,將可最佳地理解本發(fā)明本身、以及使用的優(yōu)選方式、本發(fā)明進(jìn)一步的目的與優(yōu)點(diǎn),在所述附圖中圖1描繪了其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖形表示;圖2為其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3圖示根據(jù)本發(fā)明的各示范性方面的示例通信環(huán)境,該通信環(huán)境具有對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào);圖4A是圖示根據(jù)本發(fā)明的各示范性方面的同一域中SIP用戶之間的交互的圖;圖4B是圖示根據(jù)本發(fā)明的各示范性方面的不同域中SIP用戶之間的交互的圖;圖5為根據(jù)本發(fā)明的各示范性方面的SIP應(yīng)用設(shè)計(jì)、部署以及執(zhí)行的框架的構(gòu)件的交互情況的圖;圖6是描繪根據(jù)本發(fā)明的各示范性方面的通信協(xié)調(diào)服務(wù)的方框圖;以及圖7是圖示根據(jù)本發(fā)明的各示范性方面的動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào)操作的流程圖。具體實(shí)施例方式圖1~2被提供作為其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的數(shù)據(jù)處理環(huán)境的示例性圖。應(yīng)該認(rèn)識(shí)到,圖1~2僅為示范性的,并不旨在表明或暗示對(duì)其中可以實(shí)現(xiàn)本發(fā)明的方面或?qū)嵤├沫h(huán)境的任何限制。在不背離本發(fā)明的精神與范圍的情況下,可以對(duì)所描述的環(huán)境進(jìn)行許多修改。現(xiàn)在,參照這些附圖,圖1描繪了其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)的圖形表示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是其中可以實(shí)現(xiàn)本發(fā)明的各實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包括網(wǎng)絡(luò)102,網(wǎng)絡(luò)102是用于在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100中連接在一起的各種設(shè)備和計(jì)算機(jī)之間提供通信鏈接的媒體。網(wǎng)絡(luò)102可以包括諸如有線、無線通信鏈接或光纖纜的連接。在所描繪的示例中,服務(wù)器104和服務(wù)器106與存儲(chǔ)單元108一起連接到網(wǎng)絡(luò)102。另外,客戶機(jī)110、112以及114也連接到網(wǎng)絡(luò)102。這些客戶機(jī)110、112以及114可以為例如個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)。在所描繪的示例中,服務(wù)器104向客戶機(jī)110、112以及114提供數(shù)據(jù),例如引導(dǎo)文件、操作系統(tǒng)映像以及應(yīng)用。在這一例子中,客戶機(jī)110、112以及114是服務(wù)器104的客戶機(jī)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可以包括未示出的附加的服務(wù)器、客戶機(jī)以及其它設(shè)備。根據(jù)本發(fā)明的各個(gè)示范性的方面,客戶機(jī)110、112以及114可以是參與因特網(wǎng)電話或更具體地基于SIP的電話的設(shè)備。IP多媒體子系統(tǒng)(IMS)可以使用SIP建立終端之間的IP連接。IP連接然后可以用于承載任何IP業(yè)務(wù),例如交互游戲會(huì)話或按鍵通話通信。在基于SIP的通信中,設(shè)備具有不同的媒體能力。例如,客戶機(jī)110和112可以具有話音能力,而客戶機(jī)114可以具有唯文本能力。其它設(shè)備(未示出)可以具有例如視頻或應(yīng)用共享能力。SIP為一種啟動(dòng)和切斷兩個(gè)端點(diǎn)之間的會(huì)話的協(xié)議。SIPOPTIONS(選項(xiàng))請(qǐng)求允許一方的設(shè)備查詢另一方的能力,而無需警告或“呼喚(ring)”第二方。按如下處理OPTIONS請(qǐng)求“如果假設(shè)一個(gè)設(shè)備呼叫另一個(gè)設(shè)備,那么第二個(gè)設(shè)備將如何響應(yīng)?”。除了OPTIONS請(qǐng)求,或取代OPTIONS請(qǐng)求,也可以使用存在性信息(presenceinformation)確定關(guān)于設(shè)備的信息。例如,存在性信息可以識(shí)別一終端為在線且具有給定的能力集合。SIPREGISTER(登記)請(qǐng)求允許用戶針對(duì)他或她可達(dá)到的設(shè)備列表添加或去除設(shè)備。會(huì)話描述協(xié)議(Sessiondescriptionprotocol,SDP)描述了設(shè)備所支持的媒體類型。SDP用于針對(duì)兩個(gè)使能SIP的設(shè)備之間的數(shù)據(jù)交換的所支持媒體類型和網(wǎng)絡(luò)參數(shù)的協(xié)商。針對(duì)即時(shí)消息和存在性調(diào)節(jié)范圍的SIP(SIPforinstantmessagingandpresenceleveragingextensions,SIPMPL)是一種傳遞兩種存在性(在線對(duì)離線狀態(tài))以及向/從使能SIMPLE的SIP設(shè)備發(fā)送/接收即時(shí)消息的途徑。如以上所描述的,IMS是用于協(xié)商針對(duì)數(shù)據(jù)交換所支持的媒體類型和網(wǎng)絡(luò)參數(shù)的另一種機(jī)制的例子。在以上的例子中,客戶機(jī)110可以以REGISTER請(qǐng)求登記話音能力,客戶機(jī)112可以使用OPTIONS請(qǐng)求查詢客戶機(jī)110的能力??蛻魴C(jī)110和客戶機(jī)112然后可以使用SIP啟動(dòng)和維護(hù)媒體會(huì)話。例如,該會(huì)話可以使用話音會(huì)議服務(wù)。這樣的服務(wù)可以被具體化在服務(wù)器諸如服務(wù)器106上。盡管以上的例子包括兩個(gè)參與設(shè)備,但話音會(huì)議將典型地在給定的會(huì)話中擁有三個(gè)或三個(gè)以上的端點(diǎn)。各供應(yīng)商提供基于SIP的服務(wù)器和應(yīng)用以執(zhí)行單個(gè)媒體動(dòng)態(tài)會(huì)議。簡(jiǎn)單的例子是基于VoIP的電話會(huì)議和多用戶文本聊天會(huì)話。更復(fù)雜的例子可以是像共享桌面合作那樣的視頻包容(video-inclusive)技術(shù)。也可以提供用于媒體合作或處理的如交互話音響應(yīng)(interactivevoiceresponse,IVR)、話音可擴(kuò)展置標(biāo)語言(VXML)、文本-至-語音以及語音-至-文本技術(shù)的基于話音的技術(shù),以及相關(guān)的服務(wù)器??梢允褂眯》?wù)程序(servlet)模式將基于JavaTM的SIP應(yīng)用開發(fā)并且部署在SIP應(yīng)用服務(wù)器上。SIP小服務(wù)程序類似于超文本傳輸協(xié)議(HTTP)小服務(wù)程序,但定義了相應(yīng)于SIP中的消息的不同的“do{Action}”風(fēng)格的方法。例如,將由“DoOptions”方法處理OPTIONS請(qǐng)求。SIP應(yīng)用可以包含與適當(dāng)?shù)牟渴鹈枋龇壴谝黄鸬囊换蚨鄠€(gè)SIP小服務(wù)程序,其中所述部署描述符指出應(yīng)加以引用以處理具體SIP消息類型的SIP小服務(wù)程序??梢栽贘avaTM規(guī)范請(qǐng)求(JSR)116中找到關(guān)于SIP小服務(wù)程序應(yīng)用編程接口(API)的更多信息。雖然針對(duì)端點(diǎn)-至-端點(diǎn)的會(huì)話很好地建立了基于SIP的技術(shù),但具有多個(gè)媒體類型的多個(gè)參與者之間的會(huì)話很難協(xié)調(diào)。例如,在以上所提到的例子中,客戶機(jī)110可能具有話音和文本能力,客戶機(jī)112可能僅具有話音能力,而客戶機(jī)114可能僅具有文本能力。于是,為了在客戶機(jī)110、112以及114之間建立通信會(huì)話,必須協(xié)調(diào)幾個(gè)媒體類型。根據(jù)本發(fā)明的各示范性方面,一種通信協(xié)調(diào)機(jī)制降低了與協(xié)調(diào)動(dòng)態(tài)多用戶、多個(gè)媒體通信和合作相關(guān)聯(lián)的復(fù)雜度。該機(jī)制把小的、分立的SIP通信范型(paradigm)映像為一組結(jié)構(gòu)單元(buildingblock)邏輯謂詞(predicate)。用戶以一或多個(gè)高級(jí)目標(biāo)的形式表達(dá)他或她的通信需求?;谀繕?biāo)的搜尋找到可以用來滿足用戶需求的結(jié)構(gòu)單元邏輯謂詞的組合。該搜尋過程通過使用可用的服務(wù)考慮媒體類型之間的必要轉(zhuǎn)換。例如,可以把通信協(xié)調(diào)機(jī)制具體化為運(yùn)行在服務(wù)器106上的服務(wù)。與搜尋過程相結(jié)合,該機(jī)制在搜尋期間使用SIPOPTIONS請(qǐng)求積極地(actively)查詢?cè)O(shè)備狀態(tài)和能力。如以上所陳述的,IMS可用于建立終端之間的IP連接以及查詢?cè)O(shè)備狀態(tài)和能力。這使得搜尋可以在運(yùn)行時(shí)間積極地調(diào)查(explore)通信環(huán)境。整個(gè)搜尋過程可以運(yùn)行在假設(shè)的假定推測(cè)(what-if)層上。一旦找到了一個(gè)方案,就可以接觸所需方,可以提供資源,以及可以啟動(dòng)多個(gè)媒體、多用戶合作/會(huì)議。在所描繪的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),其中網(wǎng)絡(luò)102代表使用傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)協(xié)議組互相通信的網(wǎng)絡(luò)與網(wǎng)關(guān)的世界范圍的集合。這一因特網(wǎng)的核心處,是包括路由數(shù)據(jù)和消息的成千上萬商業(yè)、政府、教育以及其它計(jì)算機(jī)系統(tǒng)的主結(jié)點(diǎn)或主計(jì)算機(jī)之間的高速數(shù)據(jù)通信線路的主干。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100也可以被實(shí)現(xiàn)為眾多不同類型的網(wǎng)絡(luò),諸如企業(yè)內(nèi)部互聯(lián)網(wǎng)(Intranet)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)等。圖1旨在作為一個(gè)例子,而不作為對(duì)本發(fā)明的不同的實(shí)施例的體系結(jié)構(gòu)上的限制?,F(xiàn)在,參照?qǐng)D2,示出了其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務(wù)器104或客戶機(jī)110的計(jì)算機(jī)的示例,其中可以放置實(shí)現(xiàn)針對(duì)本發(fā)明各實(shí)施例的過程的計(jì)算機(jī)可用的代碼或指令。在所描繪的例子中,數(shù)據(jù)處理系統(tǒng)200使用了包括北橋與存儲(chǔ)器控制器集線器(MCH)208和南橋與輸入/輸出(I/O)控制器集線器(ICH)204的集線器體系結(jié)構(gòu)。處理器202、主存儲(chǔ)器204以及圖形處理器218連接到北橋與存儲(chǔ)器控制器集線器208??梢园褕D形處理器218通過加速圖形端口(AGP)連接到北橋與存儲(chǔ)器控制器集線器208。在所描繪的例子中,把局域網(wǎng)(LAN)適配器212連接到南橋與I/O控制器集線器204。把音頻適配器216、鍵盤與鼠標(biāo)器適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM)224、硬盤驅(qū)動(dòng)器(HDD)226、CD-ROM驅(qū)動(dòng)器230、通用串行總線(USB)端口與其它通信端口232以及PCI/PCIe設(shè)備234通過總線連接到南橋與I/O控制器集線器204。PCI/PCIe設(shè)備可以包括例如Ethernet適配器、添加卡以及針對(duì)筆記本計(jì)算機(jī)的PC卡。PCI使用了卡總線控制器,而PCIe沒有使用。ROM224可以為例如閃速二進(jìn)制輸入/輸出系統(tǒng)(binaryinput/outputsystem,BIOS)。硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230通過總線連接于南橋與I/O控制器集線器204。硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230可以使用例如集成的驅(qū)動(dòng)電子(IDE)或串行先進(jìn)技術(shù)附接(SATA)接口??梢园殉?jí)I/O(SIO)設(shè)備236連接于南橋與I/O控制器集線器204。操作系統(tǒng)運(yùn)行在處理器202上,并且協(xié)調(diào)圖2中數(shù)據(jù)處理系統(tǒng)200中的各種部件,并且提供對(duì)它們的控制。作為客戶機(jī),操作系統(tǒng)可以為一種商業(yè)可得的操作系統(tǒng),例如Microsoft、WindowsXP(Microsoft和Windows均為Microsoft公司在美國(guó)、其它國(guó)家,或美國(guó)與其它國(guó)家的商標(biāo))。面向?qū)ο蟮某绦蛟O(shè)計(jì)系統(tǒng),例如JavaTM程序設(shè)計(jì)系統(tǒng),可以與所述操作系統(tǒng)一起運(yùn)行,并提供從運(yùn)行在數(shù)據(jù)處理系統(tǒng)200上的Java程序或應(yīng)用對(duì)所述操作系統(tǒng)的調(diào)用(Java是SunMicrosystems公司在美國(guó)、其它國(guó)家,或美國(guó)與其它國(guó)家的商標(biāo))。作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以為,例如運(yùn)行先進(jìn)的交互執(zhí)行(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)的IBMeServerTMpSeries計(jì)算機(jī)系統(tǒng)(eServer、pSeries和AIX均為國(guó)際商業(yè)機(jī)器公司在美國(guó)、其它國(guó)家,或美國(guó)與其它國(guó)家的商標(biāo),而Linux是LinusTorvalds在美國(guó)、其它國(guó)家,或美國(guó)與其它國(guó)家的商標(biāo))。數(shù)據(jù)處理系統(tǒng)200可以為對(duì)稱多處理器(SMP)系統(tǒng),包括處理器202中的多個(gè)處理器。作為選擇,也可以使用單處理器系統(tǒng)??梢园巡僮飨到y(tǒng)、面向?qū)ο蟮某绦蛟O(shè)計(jì)系統(tǒng)以及應(yīng)用或程序的指令放置在存儲(chǔ)設(shè)備上,例如放置在硬盤驅(qū)動(dòng)器226上,并且可以把它們加載到主存儲(chǔ)器204中,以由處理器202加以執(zhí)行。處理器202使用計(jì)算機(jī)可用程序代碼,執(zhí)行針對(duì)本發(fā)明的實(shí)施例的過程,可以把計(jì)算機(jī)可用程序代碼放置在存儲(chǔ)器中,例如放置在主存儲(chǔ)器204、只讀存儲(chǔ)器224或一或多個(gè)外部設(shè)備226和230中。本領(lǐng)域普通技術(shù)人員將會(huì)意識(shí)到,圖1~2中的硬件可以依賴于實(shí)現(xiàn)而不同。除了圖1~2中所描述的硬件,還可以使用其它的內(nèi)部硬件或外部設(shè)備,例如閃存、等效的非易失存儲(chǔ)器或光盤驅(qū)動(dòng)器等,或者用它們?nèi)〈鷪D1~2中所描述的硬件。另外,也可以把本發(fā)明的過程應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。在某些說明性的例子中,數(shù)據(jù)處理系統(tǒng)200可以為個(gè)人數(shù)字助手(PDA),該P(yáng)DA配備有閃存以提供用于存儲(chǔ)操作系統(tǒng)文件與/或用戶生成的數(shù)據(jù)的非易失存儲(chǔ)器。總線系統(tǒng)可以包括一或多條總線。當(dāng)然,可以使用在附接于結(jié)構(gòu)或體系結(jié)構(gòu)的不同部件或設(shè)備之間提供數(shù)據(jù)傳送的任何類型的通信結(jié)構(gòu)或體系結(jié)構(gòu)來實(shí)現(xiàn)總線系統(tǒng)。通信單元可以包括用于傳輸和接收數(shù)據(jù)的一或多個(gè)設(shè)備,例如圖2的調(diào)制解調(diào)器222或網(wǎng)絡(luò)適配器212。存儲(chǔ)器可以為例如圖2中的主存儲(chǔ)器204、只讀存儲(chǔ)器224或超高速緩沖存儲(chǔ)器,例如可在北橋與存儲(chǔ)器控制器集線器208中發(fā)現(xiàn)的。圖1~2中所描述的例子,以及以上所描述的例子,并不意味著體系結(jié)構(gòu)上的限制。例如,除呈PDA的形式外,數(shù)據(jù)處理系統(tǒng)200也可以為平板(tablet)計(jì)算機(jī)、膝上機(jī)、或者電話設(shè)備。圖3說明了根據(jù)本發(fā)明的示范性方面的、具有對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào)的示例通信環(huán)境??蛻魴C(jī)1302試圖與客戶機(jī)2304和客戶機(jī)3306建立通信會(huì)話??蛻魴C(jī)1302處的用戶向通信協(xié)調(diào)服務(wù)310發(fā)送目標(biāo)。例如,通信協(xié)調(diào)服務(wù)310可以為運(yùn)行在一個(gè)服務(wù)器上的應(yīng)用。一個(gè)示例可以如下客戶機(jī)1302處的用戶Frank需要與客戶機(jī)2304處的Bob和客戶機(jī)3306處的Jim談話。目前,Bob是空閑的,但Jim正在開會(huì),或者已處于通話中,并且僅可以經(jīng)由基于文本的即時(shí)消息進(jìn)行通信。由于客戶機(jī)1302和客戶機(jī)2304的能力,F(xiàn)rank和Bob能夠參與話音通話。通信協(xié)調(diào)服務(wù)310向客戶機(jī)1302、客戶機(jī)2304以及客戶機(jī)3306發(fā)出SIPOPTIONS請(qǐng)求,并確定不能通過電話與Jim聯(lián)系,但可通過即時(shí)消息與其聯(lián)系。根據(jù)OPTIONS請(qǐng)求的結(jié)果,通信協(xié)調(diào)服務(wù)310確定Frank和Bob可以談話。通信協(xié)調(diào)服務(wù)310搜尋針對(duì)所提交的目標(biāo)的解決方案。根據(jù)搜尋的結(jié)果,通信協(xié)調(diào)服務(wù)310提供用于話音通信的話音會(huì)議服務(wù)312,并且提供語音-至-文本服務(wù)314和文本-至-語音服務(wù)316,為了把Jim的客戶機(jī)3306的即時(shí)消息能力鏈接到Frank和Bob的話音通話中,語音-至-文本服務(wù)314和文本-至-語音服務(wù)316是必需的。會(huì)議的接下來的動(dòng)態(tài)變化,例如網(wǎng)絡(luò)故障、個(gè)體進(jìn)入或離開通話、個(gè)體的媒體能力的變化等,導(dǎo)致通信協(xié)調(diào)服務(wù)310重新開始搜尋針對(duì)該目標(biāo)的解決方案。然而,此時(shí),不是以“我如何完成這一合作?”的目標(biāo)開始,該動(dòng)態(tài)變化導(dǎo)致通信協(xié)調(diào)服務(wù)310使用“我如何把這一合作轉(zhuǎn)變?yōu)槲宜M暮献鳎俊钡哪繕?biāo)。可以經(jīng)由OPTIONS請(qǐng)求、SIMPLE存在性以及SIP設(shè)備REGISTER請(qǐng)求監(jiān)聽,把不能立即完成的通話目標(biāo)延遲到晚些時(shí)候。如果僅可通過聊天(chat)與Jim聯(lián)系,則諸如“我需要使Bob和Jim同時(shí)在電話上”的目標(biāo)可能是不可能的,但如果Jim登記(REGISTER)了使能SIP的可進(jìn)行話音的設(shè)備,則可以重新喚醒該目標(biāo)。可以把類似的事件想像為用戶的在線或離線狀態(tài)發(fā)生變化,或者用戶掛起(hangup)使能SIP的電話,以及不再忙。目標(biāo)可以具有一個(gè)屆滿時(shí)間(expiration)。例如,“今天我需要與某人談話”的目標(biāo)屆滿于當(dāng)天結(jié)束時(shí)。在一個(gè)說明性的實(shí)施例中,通信協(xié)調(diào)服務(wù)310可以使用會(huì)話啟動(dòng)協(xié)議(SIP)應(yīng)用設(shè)計(jì)、開發(fā)以及執(zhí)行的框架。通信協(xié)調(diào)服務(wù)310可以把SIP應(yīng)用分割成模塊化構(gòu)件,以及用于裝配和管理這些構(gòu)件的執(zhí)行的框架。該框架把SIP應(yīng)用建模為狀態(tài)機(jī),該狀態(tài)機(jī)接收輸入標(biāo)記語言模型,該輸入標(biāo)記語言模型描述了應(yīng)用的各種狀態(tài)和狀態(tài)變化期間出現(xiàn)的應(yīng)用執(zhí)行流。在本發(fā)明的情境下,可以使用JSR116規(guī)范實(shí)現(xiàn)SIP應(yīng)用,JSR116規(guī)范是一種基于可得于SunMicrosystem公司的現(xiàn)有ServletAPI模型的SIP小服務(wù)應(yīng)用編程接口(API)。所述框架不僅管理SIP應(yīng)用的執(zhí)行流,而且還代表SIP應(yīng)用存儲(chǔ)和檢索全程應(yīng)用狀態(tài)。該框架還確定哪些模塊化構(gòu)件應(yīng)接收流控制。這使能了應(yīng)用構(gòu)件的更大的重用,并且減小了應(yīng)用的復(fù)雜度。該框架包括專門針對(duì)每一應(yīng)用的4個(gè)主要構(gòu)件應(yīng)用數(shù)據(jù)、前置條件(precondtion)處理器、轉(zhuǎn)移處理器以及后置條件處理器。應(yīng)用數(shù)據(jù)包括保持全程應(yīng)用狀態(tài)和整個(gè)應(yīng)用生命期所需的數(shù)據(jù)的對(duì)象。應(yīng)用數(shù)據(jù)還被傳送到各個(gè)構(gòu)件,以提供公共數(shù)據(jù)容器。當(dāng)接收到消息時(shí),應(yīng)用數(shù)據(jù)解析消息體,并且按內(nèi)部格式存儲(chǔ)數(shù)據(jù),以供隨后的構(gòu)件使用。前置條件處理器檢查應(yīng)用數(shù)據(jù)對(duì)象,以判斷是否滿足特定的前置條件。前置條件代表狀態(tài)轉(zhuǎn)移之前應(yīng)用數(shù)據(jù)的狀態(tài)。通過檢查前置條件,當(dāng)處理處于給定狀態(tài)的進(jìn)入消息時(shí),所述框架可以確定將進(jìn)行的下一狀態(tài)轉(zhuǎn)移。轉(zhuǎn)移處理器是包含用于處理SIP應(yīng)用的一個(gè)方面的邏輯的模件(modular)或‘小型的(mini)’SIP應(yīng)用。轉(zhuǎn)移處理器接收和處理SIP消息,并且把信息存儲(chǔ)在它們自己的即時(shí)變量中。轉(zhuǎn)移處理器的范圍由應(yīng)用開發(fā)方定義??梢园艳D(zhuǎn)移處理器鏈接在一起,以構(gòu)造針對(duì)SIP應(yīng)用的狀態(tài)轉(zhuǎn)移。可以由框架控制器處理轉(zhuǎn)移處理器之間的流控制。松散粒度的、魯棒的、通用的轉(zhuǎn)移處理器,可以有助于轉(zhuǎn)移處理器重用。后置條件(Postcondition)處理器檢查應(yīng)用數(shù)據(jù)對(duì)象,以判斷是否滿足具體的后置條件。后置條件代表狀態(tài)轉(zhuǎn)移之后應(yīng)用數(shù)據(jù)的狀態(tài)。通過檢查后置條件,該框架可以判斷狀態(tài)轉(zhuǎn)移是否成功。框架控制器管理SIP應(yīng)用在其整個(gè)生命期內(nèi)的執(zhí)行流??蚣芸刂破鞑捎昧艘环N描述下述信息的輸入置標(biāo)語言,該信息包括應(yīng)用數(shù)據(jù)對(duì)象、應(yīng)用流以及應(yīng)用中狀態(tài)轉(zhuǎn)移列表。輸入置標(biāo)語言模型可以為一種針對(duì)特定SIP應(yīng)用部署的可擴(kuò)展標(biāo)記語言(XML)部署描述符。應(yīng)用數(shù)據(jù)對(duì)象包括專門針對(duì)應(yīng)用的數(shù)據(jù)。應(yīng)用流包括應(yīng)用的各種狀態(tài),以及每一狀態(tài)可訪問的未來狀態(tài)。因此,應(yīng)用流呈狀態(tài)機(jī)格式。在狀態(tài)轉(zhuǎn)移列表中,每一狀態(tài)轉(zhuǎn)移包括必要的前置條件處理器、必要的后置條件處理器、以及為狀態(tài)轉(zhuǎn)移將執(zhí)行的轉(zhuǎn)移處理器的列表?,F(xiàn)在轉(zhuǎn)向圖4A,說明了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的同一域中SIP用戶之間的交互。如圖4A中所描述的,域1包括兩個(gè)用戶即PC軟客戶機(jī)402以及電話403。PC軟客戶機(jī)402可以實(shí)現(xiàn)為數(shù)據(jù)處理系統(tǒng),例如圖2中的數(shù)據(jù)處理系統(tǒng)200。當(dāng)加電時(shí),PC軟客戶機(jī)402和電話403向域1中的SIP代理服務(wù)器404登記它們的可用性和它們的IP地址。當(dāng)PC軟客戶機(jī)402的用戶啟動(dòng)與電話403的用戶進(jìn)行通信的請(qǐng)求時(shí),PC軟客戶機(jī)402使用會(huì)話啟動(dòng)協(xié)議通知代理服務(wù)器404。接下來,代理服務(wù)器404進(jìn)而向登記服務(wù)器405請(qǐng)求電話403的IP地址,并從登記服務(wù)器405那里接收電話403的IP地址。接下來,代理服務(wù)器404把來自PC軟客戶機(jī)402的通信邀請(qǐng),包括其媒體類型傳遞于電話403。電話403的用戶告知代理服務(wù)器404是否接受這一邀請(qǐng),以及用戶是否準(zhǔn)備好接收消息。如果接受邀請(qǐng),則代理服務(wù)器404把該接受傳送回PC軟客戶機(jī)402的用戶。于是,建立了SIP會(huì)話。接下來,可以在PC軟客戶機(jī)402和電話403之間直接發(fā)送后繼的消息,而無需代理服務(wù)器404的干預(yù)。現(xiàn)在,轉(zhuǎn)向圖4B,圖4B說明了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的不同域中SIP用戶之間的交互。如圖4B中所描述的,PC軟客戶機(jī)410的用戶啟動(dòng)與個(gè)人數(shù)字助手(PDA)420的用戶進(jìn)行通信的請(qǐng)求。然而,取代域1,PDA420屬于一個(gè)不同的域,即域2。在這一情況下,當(dāng)代理服務(wù)器412從PC軟客戶機(jī)410接收到通信請(qǐng)求時(shí),代理服務(wù)器412識(shí)別出PDA420處于域2中,并且向重新導(dǎo)向(redirect)服務(wù)器424查詢PDA420的IP地址。重新導(dǎo)向服務(wù)器424可以駐留在域1或域2中。然后,重新導(dǎo)向服務(wù)器424把PDA420的IP地址提供于代理服務(wù)器412。當(dāng)接收到IP地址時(shí),代理服務(wù)器412經(jīng)由因特網(wǎng)416把SIP會(huì)話邀請(qǐng)轉(zhuǎn)發(fā)于域2中的代理服務(wù)器418,域2中的代理服務(wù)器418把這一邀請(qǐng)轉(zhuǎn)發(fā)于PDA420的用戶。接下來,PDA420的用戶可以接受這一邀請(qǐng),而且代理服務(wù)器418把這一接受發(fā)送回PC軟客戶機(jī)410的用戶?,F(xiàn)在,轉(zhuǎn)向圖5,根據(jù)本發(fā)明的各示范性方面描繪了SIP應(yīng)用的設(shè)計(jì)、部署以及執(zhí)行的框架的各構(gòu)件的交互情況。如圖5中所描述的,框架500包括框架控制器502、應(yīng)用數(shù)據(jù)504、前置條件處理器506、后置條件處理器508以及轉(zhuǎn)移處理器510。當(dāng)把SIP應(yīng)用部署于用戶環(huán)境時(shí),也部署例如XML部署描述符512的部署描述,以配置用于執(zhí)行的SIP應(yīng)用。XML部署描述符512描述了關(guān)于SIP應(yīng)用的信息,包括專門針對(duì)應(yīng)用的數(shù)據(jù)、應(yīng)用流以及應(yīng)用中的轉(zhuǎn)移列表。當(dāng)用戶經(jīng)由SIP應(yīng)用向另一個(gè)用戶發(fā)送請(qǐng)求消息514時(shí),框架控制器502把XML部署描述符512用作向框架500的輸入。然后,框架控制器502對(duì)消息514進(jìn)行解析,并且使用消息內(nèi)容更新應(yīng)用數(shù)據(jù)504。接下來,框架控制器502從應(yīng)用數(shù)據(jù)504檢索應(yīng)用狀態(tài),并且判斷應(yīng)用是否處于狀態(tài)的開始。如果應(yīng)用處于狀態(tài)的開始,則框架控制器502通過檢查應(yīng)用數(shù)據(jù)504評(píng)估前置條件,以確定進(jìn)行哪一狀態(tài)轉(zhuǎn)移。如果沒有定義前置條件,則框架控制器502把消息代轉(zhuǎn)于下一個(gè)轉(zhuǎn)移處理器510,以進(jìn)行狀態(tài)轉(zhuǎn)移。如果定義了前置條件,則框架控制器502加載前置條件處理器506的下一個(gè)集合,以判斷是否滿足具體的前置條件。在每一前置條件處理器506確定滿足前置條件之后,框架控制器502根據(jù)XML部署描述符512引用(invoke)每一轉(zhuǎn)移處理器510的方法,并且傳入消息514和應(yīng)用數(shù)據(jù)對(duì)象504作為輸入變?cè)?argument)。然后,每一轉(zhuǎn)移處理器510修改應(yīng)用的狀態(tài)的結(jié)果,包括使用后置條件處理器508估計(jì)后置條件。這樣,使用框架500,用戶可以代表SIP應(yīng)用保持對(duì)所有狀態(tài)的追蹤。圖6是根據(jù)本發(fā)明的各示范性方面的通信協(xié)調(diào)服務(wù)的方框圖。通信協(xié)調(diào)服務(wù)600包括基于目標(biāo)的搜尋引擎610、映像構(gòu)件620以及連接管理器630。相應(yīng)于有用的結(jié)構(gòu)單元事件,建造一組分立的SIP應(yīng)用框架轉(zhuǎn)移,以及前置和后置條件,以形成轉(zhuǎn)移庫(kù)622。這樣的轉(zhuǎn)移可以包括電話任務(wù),諸如呼叫用戶、結(jié)束與用戶的通話、分配話音會(huì)議的資源、協(xié)商一組公共的媒體類型、執(zhí)行文本-至-語音的翻譯、等待到另一個(gè)用戶變?yōu)榭傻玫?。另外,每一轉(zhuǎn)移的前置條件和后置條件使用SIPOPTIONS命令或存在性信息,以實(shí)時(shí)判斷是否引用前或后置條件,是否將成功。與用戶通話的前置條件將要求對(duì)用戶電話的SIPOPTIONS請(qǐng)求答復(fù)以“200OK”,表示用戶當(dāng)前能夠回話。在不滿足前置條件的情況下,轉(zhuǎn)移的前置條件和后置條件可以提供監(jiān)聽器632,監(jiān)聽器632監(jiān)視用戶的設(shè)備,并且指示何時(shí)滿足條件。繼續(xù)以上的例子,如果因?yàn)橛脩裘Χ粷M足與用戶通話的前置條件,則前置條件可提供監(jiān)聽器632中的一個(gè)監(jiān)聽器,當(dāng)用戶的設(shè)備可用時(shí),其將啟用。建立分立的基于目標(biāo)的搜尋謂詞(predicate)的并行庫(kù),以形成謂詞庫(kù)612。這些謂詞具有與轉(zhuǎn)移庫(kù)622的一對(duì)一的映像關(guān)系,并且不需要提交以上所提到的可選的SIPOPTIONS或監(jiān)聽器功能。例如,一個(gè)謂詞可以相應(yīng)于與用戶通話、分配話音會(huì)議資源等。轉(zhuǎn)移庫(kù)622中轉(zhuǎn)移處理器數(shù)目的增加,導(dǎo)致通信系統(tǒng)中可完成的與SIP相關(guān)的信令的更大的覆蓋。轉(zhuǎn)移庫(kù)622的所增加的覆蓋,提供了對(duì)謂詞庫(kù)612中更大數(shù)目的謂詞的支持,這允許更易表達(dá)和更靈活的目標(biāo)。另外,還定義了代表更高水平“元(meta)”任務(wù)和目標(biāo)的謂詞。一個(gè)例子是,可以通過話音連接、文本/聊天連接、這兩者的組合、或者某一其它連接或組合,滿足與某人的“接觸”。作為另一示例,如果用戶A具有唯話音設(shè)備,而用戶B具有唯文本設(shè)備,則用戶A“接觸”用戶B要求必須提供兩路文本-至-語音和語音-至-文本的網(wǎng)關(guān),并且用戶A和用戶B每個(gè)必須通過網(wǎng)關(guān)發(fā)送他或她的數(shù)據(jù)。在最高一級(jí)上,將是適合于討論諸如“我需要同時(shí)與Frank和Bob通電話”的目標(biāo)的一般化的謂詞。用戶向通信協(xié)調(diào)服務(wù)600中的基于目標(biāo)的搜尋引擎610提供基于謂詞的目標(biāo)602?;谀繕?biāo)的搜尋引擎610使用一種說明性(declarative)、關(guān)系編程語言。說明性語言用于使用事實(shí)和規(guī)則描述問題。事實(shí)敘述了系統(tǒng)的真實(shí)的特性。規(guī)則提供了根據(jù)現(xiàn)存事實(shí)推導(dǎo)新事實(shí)的方法。因?yàn)檎f明性程序給出了關(guān)于系統(tǒng)的信息,所以通常將其稱為知識(shí)庫(kù)。因此,人們不是“運(yùn)行程序”,而是查詢知識(shí)庫(kù)。Prolog是可為基于目標(biāo)的搜尋引擎610所使用的一種標(biāo)準(zhǔn)化的說明性程序設(shè)計(jì)語言。在所描繪的例子中,基于謂詞的目標(biāo)602陳述一個(gè)問題,而基于目標(biāo)的搜尋引擎610提供解決這一問題的、來自謂詞庫(kù)612的謂詞?;谀繕?biāo)的搜尋引擎610試圖組合來自謂詞庫(kù)612的謂詞,以致它們可以滿足目標(biāo)602。一個(gè)中間/最終結(jié)果為實(shí)現(xiàn)目標(biāo)602的一組可行的謂詞。把這些謂詞提供于映像構(gòu)件620。映像構(gòu)件620把謂詞映像到來自轉(zhuǎn)移庫(kù)622的轉(zhuǎn)移的相應(yīng)序列。由于這些轉(zhuǎn)移具有經(jīng)由SIPOPTIONS請(qǐng)求操作的前置條件和后置條件。所以可以判斷如果執(zhí)行的話可能的方案是否將能成功。連接管理器630接收這一轉(zhuǎn)移序列,并且發(fā)布SIPOPTIONS請(qǐng)求,以判斷給定的方案是否將成功。如果給定的方案成功,則由連接管理器630進(jìn)行轉(zhuǎn)移,以把適當(dāng)方連接到動(dòng)態(tài)的多個(gè)媒體、多用戶合作/通信環(huán)境。SIPOPTIONS請(qǐng)求和前置條件處理器可能指出給定當(dāng)前SIP電話網(wǎng)絡(luò)和可用設(shè)備,連接管理器630不滿足該轉(zhuǎn)移。如果給定的方案不成功,則基于目標(biāo)的搜尋引擎610可以提供更多可能的方案作為謂詞組。如果搜尋終止和可能的方案無一可以成功,則連接管理器630可以針對(duì)每一可能的方案檢查可用的前置條件監(jiān)聽器632??梢葬槍?duì)每一可能的方案,確定在一個(gè)不成功的方案變?yōu)榭尚兄氨仨殕⒂玫那爸脳l件監(jiān)聽器的關(guān)鍵序列。監(jiān)聽器632等待被適當(dāng)?shù)腟IP電話事件觸發(fā),諸如用戶變?yōu)榭傻?、用戶登記了電話、媒體服務(wù)器具有自由連接等。在前置條件的第一個(gè)完整的關(guān)鍵序列出現(xiàn)之后,連接管理器630經(jīng)由SIPOPTIONS檢查前置條件,并且執(zhí)行該方案。圖7是根據(jù)本發(fā)明的各示范性方面的動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào)操作的流程圖。應(yīng)該認(rèn)識(shí)到,這一流程圖說明的每一框以及這一流程圖說明的各框的組合,可以由計(jì)算機(jī)程序指令加以實(shí)現(xiàn)??梢园堰@些計(jì)算機(jī)程序指令提供于一個(gè)處理器的或者其它可編程數(shù)據(jù)處理裝置,以產(chǎn)生一個(gè)機(jī)器,以致在處理器或其它可編程數(shù)據(jù)處理裝置上執(zhí)行的指令可創(chuàng)建用于實(shí)現(xiàn)在一或多個(gè)流程圖框中所指出的功能的機(jī)制。也可以把這些計(jì)算機(jī)程序指令包含在可以指導(dǎo)處理器或其它可編程數(shù)據(jù)處理裝置按特定方式運(yùn)作的計(jì)算機(jī)可讀存儲(chǔ)器、存儲(chǔ)器或傳輸媒體中,以致存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器或存儲(chǔ)媒體中的指令可以產(chǎn)生一種產(chǎn)品,包括實(shí)現(xiàn)流程圖一或多個(gè)框中所指出的功能。因此,這一流程圖說明的這些框,支持用于執(zhí)行所指出功能的機(jī)制的組合、用于執(zhí)行所指出功能的步驟的組合、以及用于執(zhí)行所指出功能的計(jì)算機(jī)可用程序代碼。還應(yīng)該認(rèn)識(shí)到,流程圖說明的每一框,以及流程圖說明中這些框的組合,可以由執(zhí)行所指出功能或步驟的基于專用硬件的計(jì)算機(jī)系統(tǒng),或者由專用硬件和計(jì)算機(jī)指令的組合,加以實(shí)現(xiàn)。特別參照?qǐng)D7,圖7描述了動(dòng)態(tài)多方、多個(gè)媒體通信的自動(dòng)協(xié)調(diào)操作。操作開始,通信協(xié)調(diào)服務(wù)接收面向目標(biāo)的請(qǐng)求(框702)。通信協(xié)調(diào)服務(wù)識(shí)別所涉及的用戶(框704),并且識(shí)別潛在的資源(框706)。對(duì)用戶的識(shí)別可以包括識(shí)別用戶的記錄的SIP地址。識(shí)別潛在資源可以包括查找針對(duì)每一用戶的SIP登記的設(shè)備,經(jīng)由OPTIONS請(qǐng)求確定這些設(shè)備的能力,并且確定可用的會(huì)議資源。通信協(xié)調(diào)服務(wù)還可以確定可用的媒體轉(zhuǎn)換資源。接下來,通信協(xié)調(diào)服務(wù)搜尋可行的方案(框708),并且保存可行的方案(框710)。通信協(xié)調(diào)服務(wù)使用面向目標(biāo)的請(qǐng)求、用戶以及潛在設(shè)備在基于謂詞的搜尋系統(tǒng)中搜尋可行的方案。搜尋的結(jié)果可以包括一組謂詞,這組謂詞代表了以允許所有所涉及的用戶進(jìn)行通信的方式連接上述的方案。該搜尋不考慮任何設(shè)備或服務(wù)的當(dāng)前可得性。相反,給定對(duì)所有元件的準(zhǔn)備好的存取,該搜尋找到什么樣的SIP拓樸將解決問題。可以把可行的方案根據(jù)例如復(fù)雜度或開銷的順序保存在隊(duì)列中。對(duì)于每一可行的方案(框712),通信協(xié)調(diào)服務(wù)判斷是否所有資源當(dāng)前可用(框714)。使用SIPOPTIONS請(qǐng)求,可能與加載于會(huì)議系統(tǒng)的詢問鉤子(hook)相結(jié)合,例如,通信協(xié)調(diào)服務(wù)可確定設(shè)備的當(dāng)前狀態(tài)。這可以包括,例如,哪些用戶簽字了、哪些設(shè)備忙、當(dāng)前日時(shí)使用一個(gè)會(huì)議橋(conferencingbridge)是否在開銷策略的范圍內(nèi)等。如果所有資源當(dāng)前都不可用,則通信協(xié)調(diào)服務(wù)識(shí)別一或多個(gè)不可用但必須用的資源,換句話說,識(shí)別什么樣的資源狀態(tài)防礙了方案的立即成功(框716)。接下來,通信協(xié)調(diào)服務(wù)等待(campon)所需的一或多個(gè)資源(框718)。使用SIPSIMPLE的SUBSCRIBE/NOTIFY(預(yù)訂/通知)系統(tǒng),例如,通信協(xié)調(diào)服務(wù)可以SUBSCRIBE(預(yù)訂)資源的狀態(tài)。當(dāng)資源狀態(tài)改變時(shí),SIP存在性服務(wù)器將異步地NOTIFY(通知)通信協(xié)調(diào)服務(wù)??梢园堰@一預(yù)訂僅施加于一個(gè)特定的方案。返回到框714,如果所有資源均當(dāng)前可用,則通信協(xié)調(diào)服務(wù)經(jīng)由資源連接用戶(框720)。在一個(gè)說明性的實(shí)施例中,可能通過背對(duì)背的用戶代理(back-to-backuseragent,B2BUA)連接具體的SIP端點(diǎn)。當(dāng)需要時(shí),B2BUA允許系統(tǒng)建立/切斷所有的通話話程(callleg)。B2BUA還允許系統(tǒng)監(jiān)視通話狀態(tài),并且允許執(zhí)行傳統(tǒng)的會(huì)議仲裁(moderator)功能,例如把某人從通話中驅(qū)逐、把對(duì)白板的控制權(quán)給予某一特定的用戶等。此后,通信協(xié)調(diào)服務(wù)等待(campon)所連接的會(huì)話中的變化(框722)。通信協(xié)調(diào)服務(wù)監(jiān)視進(jìn)行中的會(huì)話,并且可以對(duì)會(huì)話中的事件采取行動(dòng)。通信協(xié)調(diào)服務(wù)判斷所連接會(huì)話中是否發(fā)生變化(框724)。如果沒有發(fā)生變化,則操作返回到框722,以等待所連接的會(huì)話中的變化。此處,描述了兩種變化,但其它的變化也可能是有用的,并且將很清楚。作為一個(gè)特例,所有用戶都可登記(REGISTER)視頻會(huì)議能力或共享的白板功能。在所描述的這一例子中,如以上所描述的,在框724中,如果資源變得可用,則操作前進(jìn)至框716,以識(shí)別不可用但必須使用的一或多個(gè)資源。例如,或許會(huì)議橋中斷,網(wǎng)絡(luò)的某一部分變得不可使用,或一個(gè)參與者的計(jì)算機(jī)死機(jī)。通信協(xié)調(diào)服務(wù)返回到可行方案的隊(duì)列,要么等待資源變得可用,要么試圖選擇一種可以使用不同的資源實(shí)現(xiàn)同樣目標(biāo)的新的方案。在框724中,如果用戶終止了會(huì)話,則通信協(xié)調(diào)服務(wù)切斷會(huì)話(框726),然后操作結(jié)束。通信協(xié)調(diào)服務(wù)切斷所有會(huì)話話程,并且釋放使用中的服務(wù)和轉(zhuǎn)換資源。返回到框718,當(dāng)通信協(xié)調(diào)服務(wù)等待所需的一或多個(gè)資源時(shí),通信協(xié)調(diào)服務(wù)判斷先前不可用的一或多個(gè)資源現(xiàn)在是否可用(框728)。例如,當(dāng)接收到一個(gè)NOTYFY事件時(shí),可以“重新喚醒”具體方案,并且重新檢查立即可用性。如果無當(dāng)前可執(zhí)行的可行的方案,則這一通知特別有用。例如,用戶可能希望盡快開始包括所有參與者的一個(gè)多方通話。如果先前不可用的一或多個(gè)資源現(xiàn)在可用,則操作返回到框714,以判斷所有資源現(xiàn)在是否可用。在框728中,如果先前不可用的一或多個(gè)資源不可用,則通信協(xié)調(diào)服務(wù)判斷當(dāng)前方案是否失敗(框730)。在框730中,如果通信協(xié)調(diào)服務(wù)斷定當(dāng)前方案來失敗,則操作返回到框718,以等待所需的一或多個(gè)資源。在框730中,如果當(dāng)前方案失敗,則通信協(xié)調(diào)服務(wù)返回可行方案的隊(duì)列,并且考慮下一個(gè)可行的方案(框732)。接下來,操作針對(duì)下一個(gè)可行的方案返回到框712。然而,在框732中,如果所有可行的方案已考慮殆盡,從而無方案可加以考慮,則操作前進(jìn)到框726以1切斷會(huì)話,然后操作結(jié)束。一個(gè)方案的失敗將不局限于一種不可能的方案。例如,通信協(xié)調(diào)服務(wù)可以等待所需的資源一段預(yù)先確定的時(shí)間周期。在框730中,通信協(xié)調(diào)服務(wù)可能確定一個(gè)方案已經(jīng)失敗,并且前進(jìn)到框732,以考慮下一個(gè)可行的方案,并且并行地等待當(dāng)前方案所需的資源(框718)。在這一方式下,通信協(xié)調(diào)服務(wù)可以并行地嘗試多個(gè)方案,直至一個(gè)方案成功。因此,本發(fā)明的各示范性方面通過提供一種自動(dòng)協(xié)調(diào)動(dòng)態(tài)多方、多個(gè)媒體通信的通信協(xié)調(diào)服務(wù),克服了現(xiàn)有技術(shù)的缺點(diǎn)??蛻粢砸换蚨鄠€(gè)高級(jí)目標(biāo)的形式表達(dá)他或她的通信需求。一個(gè)基于目標(biāo)的搜尋找出可用于滿足客戶需求的結(jié)構(gòu)單元謂詞的一個(gè)組合。與搜尋過程相結(jié)合,該機(jī)制在搜尋期間使用SIPOPTIONS請(qǐng)求主動(dòng)地查詢?cè)O(shè)備狀態(tài)與能力。這使得搜尋能夠在運(yùn)行時(shí)間主動(dòng)地利用通信環(huán)境。一旦找到了一個(gè)方案,便可以與所需方進(jìn)行接觸,可以提供資源,并且能夠啟動(dòng)多個(gè)媒體、多用戶合作/會(huì)議。本發(fā)明可以呈完整硬件實(shí)施例、完整軟件實(shí)施例、或者既包含硬件成分也包含軟件成分的實(shí)施例。在優(yōu)選實(shí)施例中,按軟件的形式實(shí)現(xiàn)本發(fā)明,其包括,但不局限于固件、駐留軟件、微代碼等。而且,本發(fā)明還能夠呈從一個(gè)提供由計(jì)算機(jī)或者任何指令執(zhí)行系統(tǒng)所使用的,或者與計(jì)算機(jī)或者任何指令執(zhí)行系統(tǒng)相結(jié)合所使用的程序代碼的計(jì)算機(jī)可用或者計(jì)算機(jī)可讀媒體加以存取的計(jì)算機(jī)程序產(chǎn)品的形式。為了進(jìn)行這一描述,計(jì)算機(jī)可用或者計(jì)算機(jī)可讀媒體可以為任何能夠包含、存儲(chǔ)、傳送、傳播或者傳輸供指令執(zhí)行系統(tǒng)、裝置、或設(shè)備所使用或者與指令執(zhí)行系統(tǒng)、裝置、或設(shè)備相結(jié)合所使用的程序的可觸摸裝置。所述媒體可以為一種電子、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或一種傳播媒體。計(jì)算機(jī)可讀媒體的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可拆卸計(jì)算機(jī)軟盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤以及光盤。光盤的當(dāng)前的例子包括緊致盤--只讀存儲(chǔ)器(CD-ROM)、緊致盤--讀/寫(CD-R/W)以及DVD。一種適合于存儲(chǔ)與/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),將包括至少一個(gè)通過系統(tǒng)總線直接或間接耦合于存儲(chǔ)器元件的處理器。存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間所使用的局部存儲(chǔ)器、大容量存儲(chǔ)器以及超高速緩沖存儲(chǔ)器,超高速緩沖存儲(chǔ)器為至少某些程序代碼提供了臨時(shí)存儲(chǔ)器,以減少執(zhí)行期間必須從大容量存儲(chǔ)器加以檢索的代碼的次數(shù)??梢灾苯踊蛲ㄟ^對(duì)I/O控制器的干預(yù),把輸入/輸出,即I/O設(shè)備(包括,但不局限于鍵盤、顯示器、定位設(shè)備等)耦合于系統(tǒng)。也可以把網(wǎng)絡(luò)適配器耦合于系統(tǒng),以使數(shù)據(jù)處理系統(tǒng)能夠通過對(duì)私有或者公共網(wǎng)絡(luò)的干預(yù)變?yōu)轳詈嫌谄渌鼣?shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程定位器或者存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器以及Ethernet卡,只是少數(shù)幾種當(dāng)前可用類型網(wǎng)絡(luò)適配器。已說明性地和描述性地對(duì)本發(fā)明進(jìn)行了描述,但并不旨在窮舉性地描述本發(fā)明,也不旨在把本發(fā)明限制于所公開的形式。這一
技術(shù)領(lǐng)域:
中的普通技術(shù)人員將會(huì)明顯意識(shí)到,可以對(duì)本發(fā)明進(jìn)行眾多的修改與變通。對(duì)實(shí)施例的選擇與描述,旨在針對(duì)各種實(shí)施例,充分地解釋本發(fā)明的原理、實(shí)際的應(yīng)用,以及旨在使這一
技術(shù)領(lǐng)域:
中的其他普通技術(shù)人員也能夠理解本發(fā)明,其中所述各種實(shí)施例具有適用于所考慮的具體應(yīng)用的各種修改。權(quán)利要求1.一種用于在通信網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信進(jìn)行自動(dòng)協(xié)調(diào)的計(jì)算機(jī)實(shí)現(xiàn)的方法,該計(jì)算機(jī)實(shí)現(xiàn)的方法包括接收對(duì)于通信會(huì)話的目標(biāo);執(zhí)行基于目標(biāo)的搜尋,以識(shí)別實(shí)現(xiàn)該目標(biāo)的至少第一組分立的操作;判斷資源是否可用于該第一組分立的操作;以及響應(yīng)于資源可用于該第一組分立的操作,執(zhí)行該第一組分立的操作,以啟動(dòng)通信會(huì)話。2.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括基于該目標(biāo)識(shí)別對(duì)于該通信會(huì)話所涉及的用戶;以及基于該目標(biāo)識(shí)別對(duì)于該通信會(huì)話的潛在資源。3.根據(jù)權(quán)利要求2的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,識(shí)別所涉及的用戶包括識(shí)別針對(duì)每一所涉及的用戶的記錄的會(huì)話啟動(dòng)協(xié)議地址。4.根據(jù)權(quán)利要求2的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,識(shí)別潛在資源包括查找針對(duì)每一所涉及的用戶的會(huì)話啟動(dòng)協(xié)議登記的設(shè)備;確定該會(huì)話啟動(dòng)協(xié)議登記的設(shè)備的能力;以及確定通信網(wǎng)絡(luò)中可用的服務(wù)。5.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,執(zhí)行基于目標(biāo)的搜尋包括搜尋基于目標(biāo)的搜尋謂詞庫(kù),以識(shí)別滿足目標(biāo)的謂詞組合;以及把該謂詞組合映像于來自會(huì)話啟動(dòng)協(xié)議應(yīng)用框架轉(zhuǎn)移的庫(kù)的轉(zhuǎn)移集合,其中,該轉(zhuǎn)移集合形成了該第一組分立的操作。6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,該轉(zhuǎn)移集合中的給定的轉(zhuǎn)移具有前置條件,該計(jì)算機(jī)實(shí)現(xiàn)的方法還包括提供監(jiān)聽器,該監(jiān)聽器檢測(cè)何時(shí)滿足前置條件。7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括把該至少第一組分立的操作存儲(chǔ)在隊(duì)列中。8.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于資源不可用于該第一組分立的操作,考慮來自該隊(duì)列的第二組分立的操作。9.根據(jù)權(quán)利要求8的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括判斷資源是否可用于該第一組分立的操作,以及并行地判斷資源是否可用于該第二組分立的操作。10.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于所需的資源變得不可用,判斷所需的資源是否變得可用于該第一組分立的操作;以及響應(yīng)于所需的資源變得可用,執(zhí)行該第一組分立的操作,以繼續(xù)通信會(huì)話。11.一種用于在通信網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信進(jìn)行自動(dòng)協(xié)調(diào)的裝置,該裝置包括基于目標(biāo)的搜尋引擎,其接收通信會(huì)話的目標(biāo),并且搜尋基于目標(biāo)的搜尋謂詞庫(kù),以識(shí)別滿足該目標(biāo)的謂詞組合;映像構(gòu)件,其把該謂詞組合映像于來自會(huì)話啟動(dòng)協(xié)議應(yīng)用框架轉(zhuǎn)移的庫(kù)的轉(zhuǎn)移集合,其中,該轉(zhuǎn)移集合形成了第一組分立的操作;連接管理器,其響應(yīng)于資源可用于第一組分立的操作,執(zhí)行該第一組分立的操作,以啟動(dòng)通信會(huì)話。12.根據(jù)權(quán)利要求11的裝置,其中,該連接管理器根據(jù)目標(biāo),識(shí)別通信會(huì)話的所涉及的用戶;以及根據(jù)目標(biāo),識(shí)別用于通信會(huì)話的潛在資源。13.根據(jù)權(quán)利要求11的裝置,其中,該轉(zhuǎn)移集合中的給定轉(zhuǎn)移具有前置條件,該裝置還包括監(jiān)聽器,該監(jiān)聽器檢測(cè)何時(shí)滿足前置條件。14.根據(jù)權(quán)利要求11的裝置,其中,該基于目標(biāo)的搜尋引擎識(shí)別滿足目標(biāo)的謂詞的多個(gè)組合,而且其中,該映像構(gòu)件把所述多個(gè)組合映像于多個(gè)轉(zhuǎn)移集合。15.根據(jù)權(quán)利要求14的裝置,其中,該連接管理器并行地判斷資源是否可用于兩或兩個(gè)以上的轉(zhuǎn)移集合。16.一種用于在通信網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)多方、多個(gè)媒體通信進(jìn)行自動(dòng)協(xié)調(diào)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可用媒體,具有包含于其中的計(jì)算機(jī)可用程序代碼;計(jì)算機(jī)可用程序代碼,其被配置為能夠執(zhí)行權(quán)利要求1~10的任何一個(gè)權(quán)利要求的方法中的步驟。全文摘要一種自動(dòng)協(xié)調(diào)動(dòng)態(tài)多方、多個(gè)媒體通信的通信協(xié)調(diào)服務(wù)??蛻粢砸换蚨鄠€(gè)高級(jí)目標(biāo)的形式表達(dá)他或她的通信需求?;谀繕?biāo)的搜尋找出可用于滿足客戶需求的結(jié)構(gòu)單元謂詞的組合。與搜尋過程相結(jié)合,該機(jī)制在搜尋期間使用SIPOPTIONS請(qǐng)求或存在性信息主動(dòng)地查詢?cè)O(shè)備狀態(tài)與能力。這使得搜尋能夠在運(yùn)行時(shí)間主動(dòng)地利用通信環(huán)境。一旦找到了一個(gè)方案,便可以與所需方進(jìn)行接觸,可以提供資源,并且能夠啟動(dòng)多個(gè)媒體、多用戶合作/會(huì)議。文檔編號(hào)H04L29/08GK1968123SQ20061014450公開日2007年5月23日申請(qǐng)日期2006年11月8日優(yōu)先權(quán)日2005年11月8日發(fā)明者里斯·D·烏萊里奇,邁克爾·A·吉爾菲克斯申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司