專利名稱:在sip網(wǎng)絡(luò)配置中使用sip信令的可存活電話行為的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及通信網(wǎng)絡(luò),更具體地,涉及可存活的會(huì)話發(fā)起協(xié)
議(SIP)可存活網(wǎng)絡(luò)。
背景技術(shù):
會(huì)話發(fā)起協(xié)議(SIP)是用于建立多種實(shí)時(shí)通信會(huì)話的開放信令
協(xié)議??梢允褂脮?huì)話發(fā)起協(xié)議來建立的通信會(huì)話類型的例子包括話 音、視頻、游戲、應(yīng)用和/或即時(shí)消息。這些通信會(huì)話可以在任何類型 的通信設(shè)備上實(shí)現(xiàn),例如個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)、個(gè)人數(shù)字助理
(PDA)、蜂窩電話、IM客戶機(jī)、IP電話、傳統(tǒng)電話機(jī)、服務(wù)器應(yīng) 用、應(yīng)用集合、桌上應(yīng)用等。
SIP的一個(gè)重要特征是使用記錄地址(AOR)作為到終端用戶、 應(yīng)用和服務(wù)提供商網(wǎng)絡(luò)的所有通信的單個(gè)統(tǒng)一公共地址。因此,在SIP 增強(qiáng)型通信環(huán)境下,用戶的AOR變成將用戶鏈接到所有與該用戶相 關(guān)聯(lián)的通信設(shè)備的唯一地址。使用這個(gè)AOR,呼叫者不必知道唯一 設(shè)備地址或電話號(hào)碼就可以到達(dá)用戶的任何一個(gè)通信設(shè)備,這些通信 設(shè)備也稱為用戶代理(UA)。
很多SIP應(yīng)用服務(wù)器的存在是為了在SIP環(huán)境中實(shí)現(xiàn)通信應(yīng)用 以及用作UA的外出代理服務(wù)器(outbound proxies),從而允許建立復(fù) 雜的網(wǎng)絡(luò),同時(shí)通過設(shè)備用來連接到網(wǎng)絡(luò)的代理服務(wù)器隱藏復(fù)雜性。 上述通信應(yīng)用的一個(gè)主要領(lǐng)域是SIP UA的呼叫控制。當(dāng)前,對(duì)于提 供可存活SIP網(wǎng)絡(luò)配置的問題幾乎沒有什么解決方案。過去一種提供 存活能力的方式是通過使用在對(duì)SIP信令沒有響應(yīng)時(shí)采用的SIP代理 服務(wù)器。代理服務(wù)器可用于經(jīng)由網(wǎng)絡(luò)中 一條或多條替換路線來路由所 述信令。由于需要除呼叫控制器或網(wǎng)關(guān)之外的額外網(wǎng)絡(luò)元件來提供存活能力,所以使用單獨(dú)的代理服務(wù)器變得昂貴。
其它網(wǎng)絡(luò)服務(wù)器產(chǎn)品提供地理冗余的配置,使得網(wǎng)關(guān)由于網(wǎng)絡(luò)服 務(wù)器的高可用性而不太可能遇到網(wǎng)絡(luò)服務(wù)器故障。象使用代理服務(wù)器 一樣,這種特定的解決方案也是比較昂貴的,因?yàn)樾枰徺I高可用性 服務(wù)器并將其分配到整個(gè)網(wǎng)絡(luò)。當(dāng)前已知的解決方案的其它缺點(diǎn)包
括即使在主sip信令路徑不可用時(shí),也不允許網(wǎng)絡(luò)元件(如網(wǎng)關(guān)) 使用替代的路徑;這樣的解決方案需要在服務(wù)器間進(jìn)行數(shù)據(jù)復(fù)制的熱 備份配置;并且它們還要求主、次級(jí)呼叫控制器使用完全相同的sip 版本并向sip端點(diǎn)提供完全相同的sip特征集合。
發(fā)明內(nèi)容
除了這些缺點(diǎn)之外,確定何時(shí)出現(xiàn)網(wǎng)絡(luò)故障的邏輯傳統(tǒng)上被置于 路由器中,這些路由器能夠檢查網(wǎng)絡(luò)的ip層從而確定各種網(wǎng)絡(luò)元件 是否正常工作。該故障/故障恢復(fù)檢測(cè)邏輯已被置于路由器中以減輕其 余網(wǎng)絡(luò)組件上的處理負(fù)擔(dān)。這種特定配置的一個(gè)主要缺點(diǎn)是路由器不 能在sip應(yīng)用級(jí)檢測(cè)服務(wù)器或其它網(wǎng)絡(luò)元件是否在工作??赡茉诤芏?br>
情況下,服務(wù)器在ip層級(jí)運(yùn)行時(shí)sip控制器卻不工作。迄今為止現(xiàn) 有技術(shù)的路由器和其它網(wǎng)絡(luò)元件都不能識(shí)別這樣的故障條件并將這 樣的服務(wù)器注冊(cè)為工作的。
本發(fā)明的各種實(shí)施例和配置解決這些和其它需要。本發(fā)明一般涉 及用于分析部分或全部通信網(wǎng)絡(luò)的可用性的系統(tǒng)、設(shè)備以及方法。所
述方法一般包括
觸發(fā)用戶代理監(jiān)視通信系統(tǒng)中至少 一個(gè)組件的狀態(tài),其中所述至
少 一個(gè)組件包括所述用戶代理的第 一控制器;
由用戶代理發(fā)送會(huì)話發(fā)起協(xié)議(sip)消息到所述至少一個(gè)組件;
以及
基于在用戶代理處接收的響應(yīng)來確定所述至少一個(gè)組件的狀態(tài)。 根據(jù)本發(fā)明的至少一些實(shí)施例,可以觸發(fā)用戶代理通過其內(nèi)部邏 輯和/或通過從網(wǎng)絡(luò)中另 一組件(如網(wǎng)關(guān)或服務(wù)器)接收提示消息來監(jiān)視通信系統(tǒng)中的組件的狀態(tài)。提示端點(diǎn)來監(jiān)視通信系統(tǒng)狀態(tài)的組件也可以包括允許其單獨(dú)地監(jiān)^L通信系統(tǒng)狀態(tài)的邏輯。因此,所述組件可 以響應(yīng)于它檢測(cè)到系統(tǒng)運(yùn)行中的某種故障或其它類型的異常,提示用 戶代理監(jiān)視通信系統(tǒng)的狀態(tài)。通過組合其它組件和用戶代理的邏輯來 監(jiān)視通信系統(tǒng)的狀態(tài),可以獲得對(duì)系統(tǒng)的更多了解,這意味著可以復(fù) 原更準(zhǔn)確的系統(tǒng)狀態(tài)圖像。并非試圖將與系統(tǒng)監(jiān)視活動(dòng)相關(guān)的處理負(fù)擔(dān)從用戶代理卸載到 其它系統(tǒng)組件,本發(fā)明的實(shí)施例利用用戶代理輔助系統(tǒng)監(jiān)視過程。這 允許用戶代理保持其自身對(duì)通信系統(tǒng)狀態(tài)的了解。在另 一個(gè)組件因?yàn)?認(rèn)為控制器已經(jīng)發(fā)生故障而嘗試迫使用戶代理切換控制器時(shí),用戶代 理可以具有檢查控制器的狀態(tài)和拒絕切換的能力,因?yàn)槠浔旧砟軌驒z 驗(yàn)控制器的工作狀態(tài)。換句話說,用戶代理不必依賴其它組件的可能 是錯(cuò)的觀點(diǎn)。根據(jù)本發(fā)明的至少一些實(shí)施例, 一旦用戶代理被觸發(fā)來監(jiān)視通信 系統(tǒng)的狀態(tài),它就可以嘗試向其所有的活動(dòng)控制器及其任何不活動(dòng)的 控制器重新注冊(cè)。另外,用戶代理可以被提示來向其知曉的任何其它 控制器重新注冊(cè),而不管該特定控制器當(dāng)前是否正被該用戶代理使 用。用戶代理可以從其內(nèi)部保留的、在發(fā)現(xiàn)階段填寫的控制器列表中 識(shí)別這樣的控制器。根據(jù)本發(fā)明的至少一個(gè)實(shí)施例,所述組件可以指 定用戶代理應(yīng)向哪個(gè)控制器重新注冊(cè)??刂破骺梢杂砂趶乃鼋M 件發(fā)送到用戶代理的通知信息中的指令來指定。包含在所述通知信息 中的指令還可以包括使用戶代理執(zhí)行預(yù)定動(dòng)作序列的可執(zhí)行指令。所 述指令還可以包含與正在發(fā)送的組件有關(guān)的健康信息。本文中使用的"監(jiān)視"包括與用儀器來觀察、記錄或檢測(cè)有關(guān)的任 何類型的功能,這些儀器對(duì)被監(jiān)視的元件或元件組的操作或狀態(tài)沒有 任何影響。本文中使用的"至少一個(gè)"、"一個(gè)或多個(gè)"以及"和/或"是開放式 的表述,在使用時(shí)可以是聯(lián)合的和分離的。例如,"A、 B和C中的至 少一個(gè)","A、 B或C中的至少一個(gè)","A、 B和C中的一個(gè)或多個(gè)"6以及"A、 B或C中的一個(gè)或多個(gè)"指僅有A、僅有B、僅有C、 A和 B—起、A和C一起、B和C一起或A、 B和C一起。術(shù)語"一個(gè)"實(shí)體是指一個(gè)或多個(gè)所述實(shí)體。由此術(shù)語"一個(gè)"、"一 個(gè)或多個(gè)"和"至少一個(gè)"在本文中是可以互換使用的。還應(yīng)注意到術(shù) 語"包括"、"包含"和"具有,,也是可以互換使用的。本文中使用的術(shù)語"自動(dòng)的"及其變型是指在執(zhí)行處理或操作時(shí) 沒有實(shí)質(zhì)的人為輸入的情況下完成的任何處理或操作。然而,即使在非實(shí)質(zhì)的人為輸入,所述處理或操作也可以是自動(dòng)的。如果輸入影響 所述處理或操作將怎樣進(jìn)行,則視該人為輸入是實(shí)質(zhì)的。不影響所述 處理或操作進(jìn)行的人為輸入不視為是實(shí)質(zhì)的。本文中使用的術(shù)語"計(jì)算機(jī)可讀介質(zhì)"是指參與將指令提供給處 理器執(zhí)行的任何有形存儲(chǔ)設(shè)備和/或傳輸介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是 在IP網(wǎng)絡(luò)上的網(wǎng)絡(luò)傳輸(如SOAP)中編碼的串行指令集。這樣的介 質(zhì)可以釆取^f艮多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳 輸介質(zhì)。非易失性介質(zhì)包括例如NVRAM或者磁或光盤。易失性介質(zhì) 包括諸如主存儲(chǔ)器的動(dòng)態(tài)存儲(chǔ)器(如RAM)。計(jì)算機(jī)可讀介質(zhì)的常 見形式包括例如軟盤、柔性盤、硬盤、磁帶或任何其它磁介質(zhì)、磁光 介質(zhì)、CD-ROM、任何其它光介質(zhì)、穿孔卡、紙帶、任何其它具有孔 形圖案的物理介質(zhì)、RAM、 PROM、 EPROM、 FLASH-EPROM、諸 如存儲(chǔ)卡的固態(tài)介質(zhì)、任何其它存儲(chǔ)芯片或磁帶盒、后面描述的載波、 或計(jì)算機(jī)可以讀取的任何其它介質(zhì)。電子郵件的數(shù)字文件附件或其它 自含信息檔案或檔案集被認(rèn)為是相當(dāng)于有形存儲(chǔ)介質(zhì)的分發(fā)介質(zhì)。當(dāng) 計(jì)算機(jī)可讀介質(zhì)被配置為數(shù)據(jù)庫時(shí),應(yīng)該理解該^:據(jù)庫可以是任何類 型的數(shù)據(jù)庫,例如關(guān)系數(shù)據(jù)庫、層級(jí)數(shù)據(jù)庫、面向?qū)ο蟮臄?shù)據(jù)庫等等。 相應(yīng)地,認(rèn)為本發(fā)明包括有形存儲(chǔ)介質(zhì)或分發(fā)介質(zhì)和現(xiàn)有技術(shù)公知的 等同物以及未來開發(fā)的介質(zhì),在這些介質(zhì)中存儲(chǔ)本發(fā)明的軟件實(shí)施。本文中使用的術(shù)語"確定"、"運(yùn)算,,和"計(jì)算,,及其變型可以互換使 用,并且包括任何類型的方法、處理、數(shù)學(xué)運(yùn)算或技術(shù)。更具體地,這樣的術(shù)語可以包括諸如BPEL的解釋規(guī)則或規(guī)則語言,其中邏輯不 是硬編碼的而是在可以被讀、解釋、編譯和執(zhí)行的規(guī)則文件中表示。本文中使用的術(shù)語"模塊"或"工具"是指任何已知的或以后發(fā)展 的硬件、軟件、固件、人工智能、模糊邏輯或能夠執(zhí)行與該元件相關(guān) 的功能的硬件和軟件的組合。另外,雖然用示例性實(shí)施方式來描述本 發(fā)明,但應(yīng)當(dāng)理解本發(fā)明的各方面可以單獨(dú)要求保護(hù)。前面是提供對(duì)本發(fā)明一些方面的理解的簡要發(fā)明內(nèi)容。這個(gè)部分 既不是本發(fā)明及其各種實(shí)施例的詳盡表述也不是窮舉的表述。它既不 用于識(shí)別本發(fā)明的重要或關(guān)鍵特征也不限定本發(fā)明的范圍,而是以一 種簡化形式給出本發(fā)明的所選原理,作為對(duì)下面給出的更具體的描述 的簡介。應(yīng)當(dāng)理解,單獨(dú)地或者組合地利用上面闡述或下面具體描述 的一個(gè)或多個(gè)特征,本發(fā)明的其它實(shí)施例也是可能的。
圖1是示出根據(jù)本發(fā)明的至少 一些實(shí)施例的通信系統(tǒng)的框圖; 圖2是示出根據(jù)本發(fā)明的至少一些實(shí)施例的SIP控制器發(fā)現(xiàn)和注 冊(cè)方法的流程圖;圖3是示出根據(jù)本發(fā)明的至少一些實(shí)施例的狀態(tài)確定方法的流程圖;圖4是示出根據(jù)本發(fā)明的至少一些實(shí)施例的被動(dòng)狀態(tài)確定方法 的流程圖;圖5是示出根據(jù)本發(fā)明的至少一些實(shí)施例的網(wǎng)關(guān)操作方法的流程圖;圖6是示出根據(jù)本發(fā)明的至少一些實(shí)施例的端點(diǎn)的狀態(tài)確定方 法的流程圖;圖7是示出根據(jù)本發(fā)明的至少一些實(shí)施例的狀態(tài)通知方法的流程圖。
具體實(shí)施方式
下面將結(jié)合示例性的通信系統(tǒng)描述本發(fā)明。盡管很適合用于如使 用服務(wù)器和/或數(shù)據(jù)庫的系統(tǒng),但本發(fā)明不限于用于任何特定類型的通 信系統(tǒng)或系統(tǒng)元件配置。此外,本文中使用的術(shù)語"數(shù)據(jù)庫"可以不僅包括關(guān)系數(shù)據(jù)庫系統(tǒng)而且包括軟件和硬件形式的、RAM中或硬盤上 的任何計(jì)算機(jī)存儲(chǔ)機(jī)制。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到已經(jīng)公開的技術(shù) 可以用于需要維護(hù)SIP可存活網(wǎng)絡(luò)的任何通信應(yīng)用中。本發(fā)明的示例性系統(tǒng)和方法也將結(jié)合分析軟件、模塊和相關(guān)的分 析硬件來描述。但是,為了避免不必要地使本發(fā)明變得不清楚,以下 描述省略公知的結(jié)構(gòu),組件和設(shè)備,它們可以用框圖形式示出、是公 知的或以其它方式概述。上述公知結(jié)構(gòu)的例子包括但不限于IP基礎(chǔ) 設(shè)施、第2層交換機(jī)、IP層路由器、IP級(jí)防火墻、網(wǎng)絡(luò)地址翻譯(NAT) 設(shè)備、SIP會(huì)話邊界控制器(SBC)等。為了解釋的目的,眾多的細(xì)節(jié)被闡明以提供對(duì)本發(fā)明的全面理解。然而,應(yīng)當(dāng)意識(shí)到本發(fā)明可以用本文闡明的具體細(xì)節(jié)之外的多種 方式實(shí)施。首先參考圖1,將根據(jù)本發(fā)明的至少一些實(shí)施例描述示例性的通 信系統(tǒng)100結(jié)構(gòu)。通信系統(tǒng)100包括第一網(wǎng)絡(luò)104,第一網(wǎng)絡(luò)104將 諸如SIP用戶代理(UA )108的端點(diǎn)連接到許多其它通信設(shè)備。UA 108 可被配置為與也連接到第 一 網(wǎng)絡(luò)104的端點(diǎn)以及在第 一 網(wǎng)絡(luò)104外部 的其它端點(diǎn)進(jìn)行通信。例如,UA 108可被配置為與連接到第二網(wǎng)絡(luò) 152的外部端點(diǎn)156進(jìn)行通信。第一網(wǎng)絡(luò)104和第二網(wǎng)絡(luò)152可以對(duì)應(yīng)于任何已知的通信網(wǎng)絡(luò)或 通信設(shè)備的集合。第一網(wǎng)絡(luò)104可以包括局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)或由OSI模型定義的任何類型的第3層和第4層網(wǎng)絡(luò)。第二網(wǎng)絡(luò)152可以包括任何類型的信息傳輸介質(zhì),并且可以使用 任何類型的協(xié)議在端點(diǎn)之間傳送消息。因特網(wǎng)是通信網(wǎng)絡(luò)104的一個(gè) 例子,它構(gòu)成由位于全世界的、通過許多電話系統(tǒng)和其它方式連接的 很多計(jì)算機(jī)和其它通信設(shè)備組成的IP網(wǎng)絡(luò)。第二網(wǎng)絡(luò)152的其它例 子包括但不限于標(biāo)準(zhǔn)普通老式電話系統(tǒng)(POTS)、綜合業(yè)務(wù)數(shù)字網(wǎng)9(ISDN)、公共交換電話網(wǎng)(PSTN)、 LAN、 WAN、蜂窩通信網(wǎng)絡(luò)以及 本領(lǐng)域已知的其它任何類型的包交換或電路交換網(wǎng)絡(luò)。通信網(wǎng)絡(luò)104 和152都可以包括有線和/或無線通信技術(shù)。UA 108的SIP功能可以由也連接到第一網(wǎng)絡(luò)104的一個(gè)或多個(gè) 服務(wù)器136來提供。UA 108也可以由在第一網(wǎng)絡(luò)104外部的其它服 務(wù)器或通信設(shè)備來控制。例如,連接第一網(wǎng)絡(luò)104和第二網(wǎng)絡(luò)152的 網(wǎng)關(guān)148也可以被配置向UA108提供SIP控制能力。除了提供SIP功能之外,服務(wù)器136也可以包括語音呼叫軟件(如 VoIP軟件)、視頻呼叫軟件、IM軟件、語音消息軟件(如多媒體消 息,例如音頻和視頻消息、IM消息等)、記錄軟件、IP語言服務(wù)器、 傳真服務(wù)器、萬維網(wǎng)服務(wù)器、電子郵件服務(wù)器、呼叫中心應(yīng)用等等。根據(jù)本發(fā)明的實(shí)施例,服務(wù)器136可以包括用于各種其它協(xié)議的 接口,例如輕量級(jí)目錄訪問協(xié)議(LDAP) 、 H.248、 H.323、簡單郵 件傳輸協(xié)議(SMTP)、因特網(wǎng)消息訪問協(xié)議4 (IMAP4)、綜合業(yè) 務(wù)數(shù)字網(wǎng)絡(luò)(ISDN) 、 E1/T1、 HTTP、 SOAP、 XCAP、 STUN以及 模擬線路或干線。服務(wù)器136也可以包括PBX,自動(dòng)呼叫分配(ACD),企業(yè)交換 機(jī)或其它類型的通信系統(tǒng)交換機(jī)(如能夠?qū)⒑艚袕囊粋€(gè)電話路由到另 一個(gè)電話的設(shè)備,例如在中央交換局中通過將兩個(gè)或更多電路連接到 一起工作的復(fù)雜機(jī)器(或它們的串聯(lián)),其中每個(gè)電路根據(jù)所撥的電 話號(hào)碼連接到用戶電話)或服務(wù)器,以及其它類型基于處理器的通信 控制設(shè)備,例如媒體服務(wù)器、計(jì)算機(jī)、附件等等。提供網(wǎng)關(guān)148用作在諸如PSTN;下一代網(wǎng)絡(luò);2G、 2.5G和3G 無線接入網(wǎng);或PBX等不同類型的電信網(wǎng)絡(luò)之間的翻譯單元。網(wǎng)關(guān) 148的一個(gè)功能是在各種網(wǎng)絡(luò)的不同傳輸和編碼技術(shù)之間進(jìn)行轉(zhuǎn)換。 網(wǎng)關(guān)148也支持諸如回波消除、DTMF和音頻記發(fā)器的媒體流功能。 網(wǎng)關(guān)148還可以將信號(hào)/消息從一個(gè)網(wǎng)絡(luò)運(yùn)行范例轉(zhuǎn)換到另一個(gè)網(wǎng)絡(luò) 運(yùn)行范例(如傳輸協(xié)議)。為了向UA108提供SIP功能,服務(wù)器136和/或網(wǎng)關(guān)148可以包括一個(gè)或多個(gè)控制器140a-N。 UA 108可被配置為每次向一個(gè)或多個(gè) 控制器140a-N注冊(cè)。本文中使用的術(shù)語"注冊(cè),,是指SIP注冊(cè)以及網(wǎng) 絡(luò)連接方法和處理,包括但不限于SIP REGISTER (注冊(cè))消息的發(fā) 送和確i/w,并且可以包括其它^L制,例如用于預(yù)訂的SUBSCRIBE消 息、使用OPTIONS消息的查詢,以及其它非SIP機(jī)制,例如防火墻 和使用STUN協(xié)議的NAT檢測(cè)、HTTP查詢等??刂破?40a-N可以對(duì)應(yīng)于駐留在服務(wù)器136上的應(yīng)用或固件, 并且控制器140a-N可以用于處理發(fā)往受控UA 108或從受控UA 108 接收的SIP消息。由控制器140a-N處理的SIP消息可以對(duì)應(yīng)于由UA 108發(fā)起并發(fā)往另一個(gè)端點(diǎn)156的外出SIP消息或由另一個(gè)端點(diǎn)156 發(fā)起并發(fā)往UA 108的進(jìn)入SIP消息。控制器140a-N可以在通信系統(tǒng) 100的應(yīng)用層工作。根據(jù)本發(fā)明的至少 一個(gè)實(shí)施例,UA 108能夠同時(shí)向兩個(gè)或更多控 制器140注冊(cè)。UA 108同時(shí)注冊(cè)到的每個(gè)控制器140可以包括不同 屬性,因此能夠向UA108提供不同的SIP功能。例如,UA108可以 同時(shí)向第一控制器140a和第二控制器140b注冊(cè),第一控制器140a 使用擴(kuò)充的擴(kuò)展(即高級(jí)特征集),第二控制器140b使用服從標(biāo)準(zhǔn) 因特網(wǎng)工程任務(wù)組(IETF)的SIP擴(kuò)展來根據(jù)SIP協(xié)議的一個(gè)或多 個(gè)IETF RFC進(jìn)行呼叫處理,所述IETF RFC包括但不限于RFC 3261。在同時(shí)注冊(cè)配置中,UA 108能夠進(jìn)行活動(dòng)-活動(dòng)注冊(cè)或活動(dòng) -備 用注冊(cè)。在活動(dòng)-活動(dòng)注冊(cè)中,UA108可以接受來自任一控制器140 的SIP消息以及將SIP消息發(fā)送到任一控制器140,而不用確定SIP 消息是發(fā)送到還是來自于主控制器140。然而,在活動(dòng)-備用注冊(cè)配 置中,UA 108僅可以使用活動(dòng)的控制器140用于SIP信令目的,除 非活動(dòng)的控制器140變得不工作。在這樣的配置中,如果從備用控制 器140接收到消息并且UA108認(rèn)為主控制器140在工作,則UA108 可以將SIP消息發(fā)送回備用控制器140以經(jīng)由主控制器140重新路由。根據(jù)本發(fā)明的其它實(shí)施例,UA108可以向控制器140a-N執(zhí)行優(yōu)先級(jí)注冊(cè),因此UA 108被注冊(cè)到第一控制器140a,除非UA 108確 定第一控制器140a不在服務(wù)中或由于其它原因不能用來提供SIP功 能,在這種情況下,UA108可以注冊(cè)到第二控制器140b。根據(jù)本發(fā)明的其它實(shí)施例,可以采用對(duì)等SIP網(wǎng)絡(luò)配置,在這種 情況下,UA 108可以注冊(cè)到在另外一個(gè)端點(diǎn)或多個(gè)端點(diǎn)上的控制器 140。UA 108可以包括存儲(chǔ)器112和處理器124,所述處理器124用 于執(zhí)行存儲(chǔ)在存儲(chǔ)器112中的例程和處理輸入/輸出的SIP消息和媒: 體。存儲(chǔ)器112可以包括發(fā)現(xiàn)模塊116和控制器列表120。發(fā)現(xiàn)模塊 116可以用來發(fā)現(xiàn)系統(tǒng)100中的設(shè)備,這些設(shè)備包括能夠控制UA 108 的控制器140。根據(jù)本發(fā)明的至少一些實(shí)施例,發(fā)現(xiàn)模塊116可被配 置為發(fā)出可用控制器140能夠響應(yīng)的發(fā)現(xiàn)請(qǐng)求?;趶目刂破?40接 收的響應(yīng)(或沒有響應(yīng)),發(fā)現(xiàn)模塊116可以用多個(gè)控制器140填充 列表120。接著發(fā)現(xiàn)模塊116可以創(chuàng)建有序列表128,該有序列表128 包括基于各自屬性132的控制器140的優(yōu)先級(jí)列表項(xiàng)。接著UA 108 可以基于有序列表128中控制器140的順序來確定向哪個(gè)(些)控制 器140注冊(cè)。除了提供在控制器140之間發(fā)現(xiàn)和仲裁的能力外,發(fā)現(xiàn)模塊116 還可凈皮配置為監(jiān)視通信系統(tǒng)100的狀態(tài)以確定是否有當(dāng)前網(wǎng)絡(luò)104故 障、服務(wù)器136故障、網(wǎng)關(guān)148故障或可以影響UA 108及其控制器 140之間關(guān)系的其它任何類型的故障存在。如本文中將更詳細(xì)討論的, 發(fā)現(xiàn)模塊116可被配置為主動(dòng)地和被動(dòng)地監(jiān)視系統(tǒng)100及其組件的狀 態(tài)。在主動(dòng)監(jiān)視系統(tǒng)100的狀態(tài)時(shí),發(fā)現(xiàn)模塊116可以采用非對(duì)話SIP 消息和預(yù)定邏輯來確定系統(tǒng)100的狀態(tài)。UA 108另外也可以被另一 個(gè)系統(tǒng)100組件(如網(wǎng)關(guān)148)提示開始被動(dòng)監(jiān)視系統(tǒng)100的狀態(tài)。 向UA 108提供監(jiān)視系統(tǒng)100的狀態(tài)的能力是一種對(duì)現(xiàn)有技術(shù)的網(wǎng)絡(luò) 監(jiān)視技術(shù)的偏離,因?yàn)槭褂昧薝A 108的邏輯而不是將處理負(fù)擔(dān)轉(zhuǎn)移 給諸如路由器的另外組件。這提供了驚人的優(yōu)點(diǎn),允許每個(gè)UA 108 獨(dú)立地監(jiān)視系統(tǒng)100的狀態(tài),這提供了對(duì)系統(tǒng)100的更多觀測(cè),并且允許每個(gè)UA 108保留對(duì)其自己的控制器140的個(gè)人記錄。換句話說, 通過使用來自系統(tǒng)100中的UA 108和其它組件(如網(wǎng)關(guān)148和/或服 務(wù)器136)的情報(bào)的組合,可以獲得系統(tǒng)100的狀態(tài)的更準(zhǔn)確的最新 圖像。允許UA108檢查網(wǎng)絡(luò)層(如通過在系統(tǒng)IOO上發(fā)送IP包)、 SIP應(yīng)用層(如通過在系統(tǒng)IOO上發(fā)送SIP消息)以及上述兩者集合 的運(yùn)行情況,可以進(jìn)一步增加關(guān)于系統(tǒng)健康情況的圖像的準(zhǔn)確性。服務(wù)器136和網(wǎng)關(guān)148也可以包括用于評(píng)估系統(tǒng)100的狀態(tài)的發(fā) 現(xiàn)模塊144。更具體地,每個(gè)發(fā)現(xiàn)模塊144可以用于獨(dú)立地監(jiān)視各種 對(duì)等組件(如與包括發(fā)現(xiàn)模塊144的設(shè)備相鄰的系統(tǒng)100組件)和遠(yuǎn) 端組件(如與包括發(fā)現(xiàn)模塊144的設(shè)備不相鄰的系統(tǒng)100組件)的狀 態(tài)。每個(gè)發(fā)現(xiàn)才莫塊144可以用于獨(dú)立地評(píng)估系統(tǒng)100及其組件的狀態(tài)。根據(jù)本發(fā)明的至少一些實(shí)施例,發(fā)現(xiàn)模塊144可以包括能夠被用 戶代理108或其它端點(diǎn)156以簇生(cluster)方式(即多個(gè)服務(wù)器136 能夠回答來自一個(gè)端點(diǎn)的有關(guān)"我使用哪個(gè)控制器"的問題)或作為單 態(tài)(singleton)來訪問的軟件模塊。發(fā)現(xiàn)模塊144可以使用多種協(xié)議 來實(shí)現(xiàn)并且還可以同時(shí)支持多種協(xié)議。更具體地,每個(gè)發(fā)現(xiàn)模塊144 可被配置為支持SOAP/HTTP、 SXAP(另 一個(gè)象SOAP的、基于HTTP 標(biāo)準(zhǔn)的XML)、甚至SIP (如通過在SIP消息的主體中提供控制器 140的列表)中的一種或多種。發(fā)現(xiàn)模塊144可被配置為經(jīng)由規(guī)則處理確定其自己的對(duì)于給定 用戶代理108的控制器列表(可以應(yīng)請(qǐng)求最終提供給用戶代理108)。 所述規(guī)則處理可以是硬編碼的(如Java碼)或可以包括規(guī)則引擎, 該規(guī)則引擎在想要確定對(duì)于請(qǐng)求控制器列表的用戶代理108來說哪個(gè) 是最適合的控制器140時(shí),取得諸如XML的腳本,解析并執(zhí)行該腳 本??梢园ㄔ谒惴ㄖ械囊?guī)則的類型包括但不限于(1)網(wǎng)絡(luò)局部性檢查,其分析原始網(wǎng)絡(luò)拓樸(如分析網(wǎng)絡(luò)中傳 輸?shù)腎P包)以確定對(duì)于用戶代理108最適合的控制器140。這樣的規(guī) 則集合可以包括帶寬管理功能,其中發(fā)現(xiàn)模塊144檢查發(fā)出請(qǐng)求的用 戶代理108的IP,接著對(duì)列出最佳可用帶寬的帶寬存儲(chǔ)庫進(jìn)行查找,然后選擇對(duì)于用戶代理108的最佳匹配控制器140。在這種情況下, 最佳匹配可能對(duì)應(yīng)于包括最靠近用戶代理108的并且具有可用帶寬的 控制器140的服務(wù)器136;
(2) 安全檢查算法,由于可能存在某些情形為了安全起見用戶 代理108應(yīng)連接到特定的服務(wù)器136/控制器140。例如,CEO的電話 可能想僅連接到最安全的服務(wù)器,所述最安全的服務(wù)器被持續(xù)監(jiān)視并 在幾秒內(nèi)修補(bǔ)。另一方面,可以允許技術(shù)支持電話連接到形成服務(wù)器 群的一組服務(wù)器136中的任何一個(gè),其中安全補(bǔ)丁在24小時(shí)內(nèi)處理。
(3) 用戶分配算法,其中發(fā)現(xiàn)模塊144可以檢查哪個(gè)(些)服 務(wù)器136可為特定用戶提供服務(wù)的映射。例如在地理冗余配置中如果 存在多個(gè)服務(wù)器,可以在響應(yīng)中返回多個(gè)控制器140;
(4) 業(yè)務(wù)規(guī)則算法,其中發(fā)現(xiàn)模塊144在腳本中可以具有消費(fèi) 者提供的鉤子(異常分支,hook),所述腳本記載所有銷售人員使用 一個(gè)服務(wù)器136而所有技術(shù)支持人員使用另 一個(gè)服務(wù)器;
(5) 設(shè)備形態(tài)算法,可以在發(fā)出請(qǐng)求的用戶代理108表示其尋 找控制器140時(shí)的模式(如語音、即時(shí)消息(IM)、視頻等)的時(shí)候 啟用。當(dāng)采用這種算法時(shí),發(fā)現(xiàn)模塊144可以查找內(nèi)部能力分配以選 擇為用戶提供最多模式類型的最佳控制器140。例如,可處理語音和 IM的用戶代理108偏好能夠支持這兩種功能的服務(wù)器136而非僅語 音服務(wù)器;以及
(6) 協(xié)議兼容性算法,可以在發(fā)出請(qǐng)求的用戶代理108識(shí)別其 支持的特定協(xié)議集時(shí)啟用。因?yàn)镾IP是多種協(xié)議擴(kuò)展,所以這在SIP 中特別有用。當(dāng)發(fā)出請(qǐng)求的用戶代理108尋找控制器140時(shí),它可以 表示其支持的協(xié)議特征(如存在性預(yù)訂或一般意義的預(yù)訂)并且服務(wù) 器可以為該類型的用戶代理108找到最佳匹配。
參考圖2,將根據(jù)本發(fā)明的至少一些實(shí)施例描述SIP控制器140 發(fā)現(xiàn)和注冊(cè)方法。所述方法可以由通信系統(tǒng)100中的一個(gè)端點(diǎn)例如 UA 108來執(zhí)行。通信系統(tǒng)中的每個(gè)UA 108可被配置為發(fā)現(xiàn)不同的控 制器140并向不同的控制器140注冊(cè)。所述方法從端點(diǎn)發(fā)出發(fā)現(xiàn)消息
14(步驟204)時(shí)開始。根據(jù)本發(fā)明的至少一個(gè)實(shí)施例,所述發(fā)現(xiàn)消息 包括任何已知類型的發(fā)現(xiàn)消息,包括可以,皮發(fā)送到通信系統(tǒng)100中的 一個(gè)或多個(gè)其它組件用來測(cè)試/查詢?cè)摻M件的SIP功能的SIP消息(如 OPTIONS消息、NOTIFY消息或SUBSCRIBE消息)。
當(dāng)發(fā)現(xiàn)消息被系統(tǒng)100中包括控制器140的其它組件(如服務(wù)器 136和/或網(wǎng)關(guān)148 )接收時(shí),該組件用響應(yīng)消息對(duì)發(fā)現(xiàn)消息作出響應(yīng)。 替代地,如果沒有組件當(dāng)前可用于響應(yīng)所述發(fā)現(xiàn)消息,則沒有響應(yīng)消 息被發(fā)送回起始端點(diǎn)。接著,控制器140的響應(yīng)消息在起始端點(diǎn)處被 接收(步驟208)。當(dāng)端點(diǎn)接收到這些響應(yīng)、或?qū)魉偷陌l(fā)現(xiàn)消息沒 有響應(yīng)時(shí),端點(diǎn)將采用其發(fā)現(xiàn)模塊116來填充控制器列表120。
響應(yīng)消息也可以包括每個(gè)作出響應(yīng)的控制器140的屬性132。包 含在響應(yīng)消息中的屬性信息的例子包括但不限于相應(yīng)的服務(wù)器136或 網(wǎng)關(guān)148的處理能力、由控制器140提供的SIP擴(kuò)展(即SIP功能)、 當(dāng)前注冊(cè)到控制器140的UA的數(shù)量、控制器140與端點(diǎn)的接近程度 (如端點(diǎn)和相應(yīng)設(shè)備之間的跳數(shù))等等。端點(diǎn)的發(fā)現(xiàn)模塊116可以利 用所述屬性信息仲裁控制器140在有序列表128中的順序(步驟212 )。 發(fā)現(xiàn)模塊116可以采用任何已知類型的仲裁算法來確定控制器140的 順序。例如,發(fā)現(xiàn)模塊116可以嘗試優(yōu)化對(duì)于所有控制器140列出的 所有屬性。替代地,發(fā)現(xiàn)模塊116可以將具有最適合端點(diǎn)需要的選擇 屬性的控制器140置于順序列表128的最高處。
在端點(diǎn)的發(fā)現(xiàn)模塊116已經(jīng)生成控制器的有序列表128之后,發(fā) 現(xiàn)模塊116選擇端點(diǎn)將會(huì)注冊(cè)的一個(gè)或多個(gè)控制器140 (步驟216)。 可以基于它們?cè)诳刂破鞯挠行蛄斜?28中各自的順序來選擇控制器 140。根據(jù)本發(fā)明的至少一個(gè)實(shí)施例,發(fā)現(xiàn)模塊116可以選擇來自服 務(wù)器136的控制器140和來自網(wǎng)關(guān)148的控制器140同時(shí)注冊(cè)。在活 動(dòng) -備用配置中,端點(diǎn)可以選擇服務(wù)器136的控制器140作為主控制 器,并且將網(wǎng)關(guān)148的控制器140作為次級(jí)控制器或備份控制器。
在選擇控制器140后,端點(diǎn)能夠向所選的控制器140注冊(cè)(步驟 220 )。根據(jù)本發(fā)明的至少一些實(shí)施例,端點(diǎn)可被配置為向具有不同能力和SIP特征的控制器140注冊(cè)。例如,可以允許端點(diǎn)同時(shí)向使用 擴(kuò)充的SIP擴(kuò)展的第一控制器140和使用標(biāo)準(zhǔn)SIP擴(kuò)展的第二控制器 140注冊(cè)。所述擴(kuò)充的SIP擴(kuò)展可以由第一控制器140用來提供通過 第二控制器140不能實(shí)現(xiàn)的附加特征??梢园l(fā)送SIPREGISTER、 SUBSCRIBE、或OPTIONS消息或 其它SIP信令以檢測(cè)主控制器140是否還在線并可用于協(xié)助SIP消息 傳送。例如,可以由端點(diǎn)將SIP REGISTER消息發(fā)送到選擇的控制 器140以開始注冊(cè)過程。除了向端點(diǎn)提供向其控制器140注冊(cè)的能力 之外,SIP REGISTER消息還可以用作控制器140的心跳(heartbeat )。 SIP REGISTER消息的發(fā)送頻率可以由用戶基于系統(tǒng)需要來配置。換 句話說,端點(diǎn)可以向其注冊(cè)到的任何控制器140發(fā)送刷新注冊(cè)。在活動(dòng)-備用和活動(dòng)-活動(dòng)兩種配置中,端點(diǎn)可以同時(shí)向其選擇 的所有控制器140注冊(cè)。在操作中,端點(diǎn)可以嘗試保持向控制器140 的并發(fā)活動(dòng)注冊(cè)(如通過周期性發(fā)送隨后的SIP REGISTER消息)。 在活動(dòng)-活動(dòng)配置中,可以允許端點(diǎn)向/從其注冊(cè)到的任何控制器140 發(fā)送/接收SIP消息。在上述配置中,端點(diǎn)將同時(shí)向兩個(gè)或更多控制器 140注冊(cè)。這種雙重注冊(cè)將允許來自端點(diǎn)注冊(cè)到的任何控制器140(如 第一控制器140a、第二控制器140b、第三控制器140c等等之一)的 進(jìn)入SIP請(qǐng)求(如SIP INVITE消息)。如果端點(diǎn)被配置以使用活動(dòng) -活動(dòng)控制器模型的策略,則端點(diǎn)可以將來自先前發(fā)生故障的控制器 140的呼入認(rèn)為是來自服務(wù)中的控制器140。當(dāng)其發(fā)生時(shí),端點(diǎn)可以 重試算法以檢測(cè)發(fā)生故障的服務(wù)器是否已經(jīng)回到服務(wù)狀態(tài)。端點(diǎn)將被 配置為允許接收來自任何控制器140的這樣的SIP消息。根據(jù)本發(fā)明 的至少一些實(shí)施例,端點(diǎn)將多個(gè)注冊(cè)視作相互獨(dú)立的注冊(cè),以本文中討論的注冊(cè)邏輯來對(duì)待每個(gè)注冊(cè)。更具體地,允許端點(diǎn)向每個(gè)控制器 注冊(cè)相同的AOR,但端點(diǎn)實(shí)現(xiàn)可以靈活釆用不同的AOR。這對(duì)于活 動(dòng)-備用配置也是適用的。另一方面,在活動(dòng)-備用配置中可以僅允許端點(diǎn)路由來自其主控 制器140的呼出以及接收來自其主控制器140的呼入。在操作時(shí),該16主控制器140也可以被稱為活動(dòng)的呼叫控制器140。端點(diǎn)注冊(cè)的其它 控制器140可以被稱為不活動(dòng)的或者備用控制器。
在活動(dòng)-備用配置中,如果當(dāng)端點(diǎn)在其主模式(即端點(diǎn)認(rèn)為主控 制器140是活動(dòng)的)時(shí)端點(diǎn)接收到來自次級(jí)或者備用控制器140的呼 入,則端點(diǎn)將
(1) 用100 Trying消息響應(yīng)次級(jí)控制器"0;
(2) 發(fā)送REGISTRATION刷新到主控制器140以查看主控制 器是否仍然在線并且可用于協(xié)助SIP消息傳送;
(3) 如果主控制器140仍然在線,則端點(diǎn)將發(fā)送305重定向響 應(yīng)(即使用代理服務(wù)器)到次級(jí)控制器140。所述305重定向響應(yīng)將 拒絕經(jīng)由次級(jí)呼叫控制器的呼叫,并且請(qǐng)求次級(jí)控制器140經(jīng)由主控 制器140重路由信令;以及
(4) 如果主控制器不再在線,則端點(diǎn)將為接收的呼叫提供標(biāo)準(zhǔn) 呼叫處理。作為該處理的一部分,端點(diǎn)將從主控制器140故障轉(zhuǎn)移到 次級(jí)控制器140,并且刷新其向次級(jí)控制器140的注冊(cè)。
在活動(dòng)-備用配置中,如果端點(diǎn)在其工作于故障轉(zhuǎn)移模式(即假 定其主控制器140的狀態(tài)是不在服務(wù)中則使用次級(jí)控制器140作為活 動(dòng)的控制器)時(shí)接收到來自其主控制器140的呼入,則該呼叫可以被 拒絕。
在故障條件期間或當(dāng)端點(diǎn)認(rèn)為系統(tǒng)100組件不在服務(wù)中的任何 時(shí)候,端點(diǎn)將不嘗試與主控制器140建立實(shí)時(shí)通信會(huì)話。另外,端點(diǎn) 將故障轉(zhuǎn)移到控制器的有序列表128上的第二個(gè)或下一個(gè)控制器140。 經(jīng)由可存活(即次級(jí)、再次級(jí)或備份)控制器140路由的呼叫信令將 允許端點(diǎn)的用戶在故障期間發(fā)出和接收新呼叫。
作為將在下面更具體地描述的故障轉(zhuǎn)移/故障恢復(fù)過程的一部 分,端點(diǎn)將識(shí)別活動(dòng)的控制器140的地址,并且進(jìn)一步獲得控制器140 支持的屬性和相關(guān)特征。換句話說,端點(diǎn)可被配置為導(dǎo)出其注冊(cè)到的 控制器140被指定為例如"擴(kuò)充的/私有的"還是"基本SIP"。端點(diǎn)的發(fā) 現(xiàn)模塊116可被配置為使用下列邏輯來發(fā)現(xiàn)控制器使用擴(kuò)充SIP還是
17基本SIP:
(1) 一旦故障轉(zhuǎn)移或故障恢復(fù),端點(diǎn)將刷新或更新其向每個(gè)控 制器140的注冊(cè);
(2) 作為該過程的一部分,端點(diǎn)將嘗試用次級(jí)控制器140向所 有主控制器140重新預(yù)訂特征包;
(3) 當(dāng)端點(diǎn)向次級(jí)控制器140發(fā)送SUBSCRIBE請(qǐng)求時(shí),如果 次級(jí)控制器僅支持基本SIP操作,則其將不識(shí)別該特征預(yù)訂請(qǐng)求;接 著
(4 )簡單次級(jí)控制器140將以"客戶端錯(cuò)誤405方法不允許使用 (Client Error 405 Method Not Allowed ),,作出響應(yīng)。
端點(diǎn)可以使用該信息將次級(jí)控制器140識(shí)別為服從標(biāo)準(zhǔn)IETF SIP的控制器140。接著,端點(diǎn)在其工作于故障轉(zhuǎn)移模式時(shí)將在其用 戶界面(UI)上僅顯示基本SIP特征。如果活動(dòng)的控制器140被指定 為"擴(kuò)充的,,(如因?yàn)槠鋵?duì)SUBSCRIBE請(qǐng)求作出了正確的響應(yīng)),則 端點(diǎn)將使用具有擴(kuò)充擴(kuò)展的SIP用于呼叫和特征處理,并顯示兼容的
UIo
在活動(dòng)-備用配置中可以提供的附加特征包括但不限于
(1) 端點(diǎn)絕不會(huì)將呼出路由到不活動(dòng)的控制器140;
(2) 當(dāng)端點(diǎn)從活動(dòng)的控制器140故降轉(zhuǎn)移到不活動(dòng)的控制器140 時(shí),先前活動(dòng)的控制器140將被指定為不活動(dòng)的并且先前不活動(dòng)的控 制器140將被指定為活動(dòng)的;
(3) 端點(diǎn)將一直等待,直到所有活動(dòng)的呼叫在故障轉(zhuǎn)移到指定 的控制器140之前結(jié)束為止。換句話說,直到所述活動(dòng)的呼叫結(jié)束(即 直到端點(diǎn)從網(wǎng)絡(luò)104接收到對(duì)于活動(dòng)呼叫的BYE消息或呼叫者已經(jīng) 掛斷),端點(diǎn)才會(huì)從新指定的活動(dòng)控制器140接受新的呼入。類似地, 在故障轉(zhuǎn)移結(jié)束之前,不允許新的呼出。
(4) 如果端點(diǎn)在其使用次級(jí)控制器140時(shí)接收到來自不在服務(wù) 中的主控制器140的任何信令消息,則將忽略來自被標(biāo)記為不在服務(wù) 中的主控制器140的信令消息。然而,這個(gè)規(guī)則有一個(gè)特例。也就是如果端點(diǎn)接收到來自其主控制器140告知其重新注冊(cè)的NOTIFY消 息,則端點(diǎn)將開始刷新或者嘗試刷新其注冊(cè)。在這種情況下,端點(diǎn)將 z使用上面描述的標(biāo)準(zhǔn)SIP處理來響應(yīng)該NOTIFY消息。在端點(diǎn)已經(jīng)向其各自的控制器140注冊(cè)后,所述方法結(jié)束(步驟 224)?,F(xiàn)在參考圖3,將根據(jù)本發(fā)明的至少一些實(shí)施例描述通信系統(tǒng) 100狀態(tài)確定方法。在可存活配置中,配備網(wǎng)關(guān)148檢測(cè)何時(shí)經(jīng)由主 或次級(jí)信令路徑路由呼叫信令很重要。該方法從網(wǎng)關(guān)148發(fā)送SIP OPTIONS消息到通信系統(tǒng)100中的另一組件時(shí)開始(步驟304)。 這樣的組件可以對(duì)應(yīng)于啟用SIP的組件。所述組件還可以對(duì)應(yīng)于對(duì)等 組件(即與網(wǎng)關(guān)148相鄰的組件)和/或遠(yuǎn)端組件(即在它們和網(wǎng)關(guān) 148之間有至少一個(gè)中間組件)。4艮據(jù)本發(fā)明的至少一些實(shí)施例,SIP 遠(yuǎn)端組件的主動(dòng)監(jiān)視應(yīng)當(dāng)少量進(jìn)行,通常僅在系統(tǒng)100管理員知道中 間組件不能監(jiān)視它們的對(duì)等組件時(shí)進(jìn)行。根據(jù)本發(fā)明的實(shí)施例,網(wǎng)關(guān) 148可以發(fā)送設(shè)有Max-Forwards-O的SIP OPTIONS消息,從而保 證OPTIONS消息不經(jīng)過多于一次單跳(即其目標(biāo)朝向?qū)Φ冉M件)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,盡管已經(jīng)在本文中描述了采用SIP OPTIONS消息的監(jiān)視技術(shù),但是仍然可以使用任何其它類型的非對(duì) 話SIP事務(wù)來監(jiān)視本文中通信系統(tǒng)100及其組件的狀態(tài)。更具體地, 可以發(fā)送一般SIP消息(如INFO METHOD 、 MESSAGE METHOD 或甚至空SIP消息)來激活任何類型的基于SIP的響應(yīng)。由網(wǎng)關(guān)148 發(fā)送的SIP消息還可以包括要由消息接收者執(zhí)行的指令。例如,SIP 消息可以被生成為包括報(bào)告網(wǎng)關(guān)148和由網(wǎng)關(guān)148監(jiān)視的其它任何組 件(例如對(duì)等組件)的健康程度的可擴(kuò)展標(biāo)記語言(XML)消息,以 及將由接收者基于報(bào)告的網(wǎng)關(guān)148的健康程度所釆取的動(dòng)作。網(wǎng)關(guān)148在發(fā)出SIP OPTIONS消息后,等待響應(yīng)的接收(步驟 308和312)。網(wǎng)關(guān)148等待響應(yīng)接收的時(shí)間量可以視系統(tǒng)100特性 而變化。根據(jù)本發(fā)明的至少一個(gè)實(shí)施例,網(wǎng)關(guān)148等待的時(shí)間長度可 以通過執(zhí)行諸如SIP計(jì)時(shí)器B或SIP計(jì)時(shí)器F( SIP計(jì)時(shí)器B或F是19RFC 3261中定義的標(biāo)準(zhǔn)SIP計(jì)時(shí)器,通過引用將RFC 3261整體并入 本文中)的SIP計(jì)時(shí)器函數(shù)來確定,如果在請(qǐng)求發(fā)送后的預(yù)定秒數(shù)內(nèi) 沒有SIP響應(yīng)被接收,則所述計(jì)時(shí)器將取消SIP信令事務(wù)(例如SIP INVITE消息)。如果有SIP響應(yīng)(即使100 Trying )被接收,則計(jì) 時(shí)器B或計(jì)時(shí)器F被取消或短路。然而,如果計(jì)時(shí)器B激發(fā)(fire), 則可以要求網(wǎng)關(guān)148取消有問題的SIP事務(wù)并嘗試使用替代的路線來 路由所述請(qǐng)求。根據(jù)本發(fā)明的至少一些實(shí)施例,如果網(wǎng)關(guān)148已知的 所有路由地址都已經(jīng)用完,則SIP網(wǎng)關(guān)148可以用408請(qǐng)求超時(shí)(408 Request Timeout)來響應(yīng)初始的SIP信令事務(wù)。
一旦響應(yīng)被接收(如實(shí)際的響應(yīng)或確定在預(yù)定量的時(shí)間內(nèi)沒有響 應(yīng)被接收),則所迷方法繼續(xù),網(wǎng)關(guān)148采用發(fā)現(xiàn)模塊144來確定響 應(yīng)是否對(duì)應(yīng)于故障條件(步驟316)。只要滿足下列任何條件,響應(yīng) 就可以指示網(wǎng)絡(luò)104或系統(tǒng)IOO組件已經(jīng)發(fā)生故障
(1)由于超時(shí),OPTIONS監(jiān)視請(qǐng)求失敗;
(2 )由于事務(wù)超時(shí)和/或SIP計(jì)時(shí)器B超時(shí)(對(duì)于INVITE事務(wù)), 出現(xiàn)預(yù)定數(shù)量(如5)的連續(xù)SIP請(qǐng)求事務(wù)失??;或
(3 )當(dāng)且僅當(dāng)所述監(jiān)視是逐跳(即Max-Forward=l)而不是逐 端(即Max-Forward>l )執(zhí)4亍時(shí),以Retry-After頭部接收對(duì)OPTIONS 監(jiān)一見請(qǐng)求的任何400或500類響應(yīng),此外至少對(duì)于在Retry-After頭 部中指定的持續(xù)時(shí)間,地址被標(biāo)記為"過載"。
對(duì)于條件(3),包括地址的IP地址的已有對(duì)話應(yīng)繼續(xù)使用該地 址,除非出現(xiàn)故障,但是端點(diǎn)在故障恢復(fù)前對(duì)于新對(duì)話不應(yīng)使用該地 址。在已有對(duì)話使用主機(jī)名代替IP地址的情況下,對(duì)于每個(gè)事務(wù)將 進(jìn)行主機(jī)名解析,并且返回的地址將是可用的最高優(yōu)先級(jí)地址。如果 主機(jī)名僅解析為單IP地址并且該地址被標(biāo)記為"過載",則應(yīng)當(dāng)發(fā)送 請(qǐng)求。條件(3)的凈效應(yīng)是網(wǎng)關(guān)148的發(fā)現(xiàn)模塊144應(yīng)該知道三種 狀態(tài)可用的、不在服務(wù)中和過載。標(biāo)記為過載的地址繼續(xù)接收對(duì)話 內(nèi)隨后的請(qǐng)求,但不接收新對(duì)話請(qǐng)求。
如果基于對(duì)OPTIONS消息的響應(yīng),網(wǎng)關(guān)148的發(fā)現(xiàn)模塊144確定沒有故障條件并且系統(tǒng)100處于工作的正常狀態(tài),則發(fā)現(xiàn)模塊144 接下來確定指令是否包括在響應(yīng)中(步驟320)。發(fā)現(xiàn)模塊144可以 分析響應(yīng)以得到包括在所述響應(yīng)中或附在所述響應(yīng)上(即在消息的頭 部或尾部)的可執(zhí)行指令。如果指令包括在響應(yīng)中,則執(zhí)行所述指令 (步驟324)。此后,或者如果響應(yīng)沒有包括指令,則發(fā)現(xiàn)模塊144 接下來更新其對(duì)系統(tǒng)IOO狀態(tài)的記錄以反映作出響應(yīng)的組件(例如服 務(wù)器136)的運(yùn)行情況(步驟328)。更新網(wǎng)絡(luò)狀態(tài)后,所迷方法接 下來由發(fā)現(xiàn)模塊144確定是否是時(shí)候發(fā)送新消息(步驟332)。更具 體地,網(wǎng)關(guān)148可以將SIP OPTIONS消息周期地發(fā)送到其它SIP服 務(wù)器136作為心跳機(jī)制,以確定其它SIP服務(wù)器136是否是活動(dòng)的。 可以以預(yù)定的時(shí)間間隔將OPTIONS消息發(fā)送到其它系統(tǒng)100組件。 預(yù)定時(shí)間間隔的長度可以通過執(zhí)行SIP計(jì)時(shí)器B或其變體來確定。更 具體地,OPTIONS監(jiān)浮見可以以不同的時(shí)間間隔進(jìn)行,這取決于網(wǎng)關(guān) 148是否檢測(cè)到故障條件。根據(jù)本發(fā)明的至少一些實(shí)施例,對(duì)SIP OPTIONS消息的主動(dòng)監(jiān) -f見時(shí)間間隔可以凈皮配置為從約600到約100000秒的范圍內(nèi),并且在 隨后的監(jiān)視嘗試中應(yīng)該使用在配置值的75%到125%之間的統(tǒng)一隨機(jī) 時(shí)間。例如,如果主動(dòng)監(jiān)視時(shí)間間隔被設(shè)置為60秒,則發(fā)送OPTIONS 消息之間的實(shí)際間隔可以均勻分布在45到75秒之間。在主動(dòng)監(jiān)視過 程中故意引入抖動(dòng)允許請(qǐng)求保持非同步,從而將負(fù)擔(dān)在時(shí)間上均勻地 分?jǐn)傇诒槐O(jiān)視的組件(即服務(wù)器136)上。在一個(gè)實(shí)施例中,主動(dòng)監(jiān) 浮見時(shí)間間隔可以,皮配置為約900秒或15分鐘。根據(jù)本發(fā)明的至少一些實(shí)施例,對(duì)SIP OPTIONS消息的被動(dòng)監(jiān) 視時(shí)間間隔可以,皮配置為從約10到約3600秒的范圍內(nèi),并且在隨后 的監(jiān)視嘗試中可以具有在配置值的75%到125%之間的統(tǒng)一隨機(jī)時(shí) 間。為被動(dòng)監(jiān)視提供單獨(dú)的計(jì)時(shí)器(與主動(dòng)監(jiān)視相反)允許網(wǎng)關(guān)148一個(gè)實(shí)施例中,;故動(dòng)監(jiān)視時(shí)間間隔可以凈皮配置為約120秒。雖然結(jié)合SIP計(jì)時(shí)器B的使用描述本發(fā)明的示例性實(shí)施例,但任何范圍的值,無論該值是否具有統(tǒng)一隨機(jī)時(shí)間修正,都可以在不背 離本發(fā)明的原則下實(shí)現(xiàn)。另外,監(jiān)視時(shí)間間隔可以基于外部業(yè)務(wù)邏輯
鉤子(異常分支)進(jìn)行修改。例如,如果監(jiān)視機(jī)制被鉤連到帶寬管理 系統(tǒng),監(jiān)視系統(tǒng)可以通過一些代表網(wǎng)絡(luò)中可用帶寬的系數(shù)進(jìn)一步調(diào)整
監(jiān)視時(shí)間間隔。
再參考步驟316,如果發(fā)現(xiàn)模塊144確定響應(yīng)對(duì)應(yīng)于故障條件, 則發(fā)現(xiàn)模塊144將更新其對(duì)于系統(tǒng)100狀態(tài)的記錄以反映故障(步驟 336)。作為檢測(cè)該組件故障的結(jié)果,尤其是如果發(fā)生故障的組件在 主通信路徑中,則網(wǎng)關(guān)148將進(jìn)行故障轉(zhuǎn)移并且開始工作在故障轉(zhuǎn)移 狀態(tài)。
在故障轉(zhuǎn)移期間,網(wǎng)關(guān)148的發(fā)現(xiàn)模塊144將通過繼續(xù)發(fā)送 OPTIONS消息到被識(shí)別為不在服務(wù)中的組件以開始被動(dòng)監(jiān)視系統(tǒng) 100中的組件(步驟340)。這種被動(dòng)監(jiān)視允許網(wǎng)關(guān)148的發(fā)現(xiàn)模塊 144檢測(cè)該組件何時(shí)重回在線狀態(tài)。當(dāng)凈皮動(dòng)監(jiān)視開始時(shí),網(wǎng)關(guān)148將 停止主動(dòng)監(jiān)視組件,并且開始采用被動(dòng)監(jiān)視規(guī)則。更具體地,在被動(dòng) 監(jiān)視期間,網(wǎng)關(guān)148的發(fā)現(xiàn)模塊144可以開始維護(hù)測(cè)試以確定被監(jiān)視 的組件是可用的還是不在服務(wù)中(步驟344)。該維護(hù)測(cè)試可以采用 類似于主動(dòng)監(jiān)視算法的監(jiān)視算法。網(wǎng)關(guān)148的發(fā)現(xiàn)模塊144將繼續(xù)采 用該維護(hù)測(cè)試直到故障恢復(fù)為止(即直到組件的狀態(tài)從不在服務(wù)中變 為可用的)(步驟348)。在維護(hù)測(cè)試期間,網(wǎng)關(guān)M8可以發(fā)送任何類 型的SIP請(qǐng)求(如INVITE, SUBSCRIBE, NOTIFY等)到當(dāng)前被 標(biāo)記為不在服務(wù)中的組件。如果一個(gè)或多個(gè)下列條件成立,則網(wǎng)關(guān)148 的發(fā)現(xiàn)模塊144將繼續(xù)標(biāo)記所述組件為不在服務(wù)中
(1) SIP計(jì)時(shí)器B在INVITE消息已被發(fā)送后激發(fā)(fire);
(2) 網(wǎng)關(guān)148接收到408請(qǐng)求超時(shí)響應(yīng);
(3) SIP請(qǐng)求事務(wù)超時(shí);或
(4) 在嘗試發(fā)送請(qǐng)求時(shí),發(fā)生網(wǎng)絡(luò)104或傳輸層錯(cuò)誤。 如果在維護(hù)測(cè)試期間沒有上面列出的條件成立,則網(wǎng)關(guān)148的
發(fā)現(xiàn)模塊144將確定故障恢復(fù)已經(jīng)發(fā)生,并且所述方法將繼續(xù)到步驟328。根據(jù)本發(fā)明的至少一些實(shí)施例,將繼續(xù)應(yīng)用被動(dòng)監(jiān)視和維護(hù)測(cè) 試,直到被監(jiān)視的組件用除503服務(wù)不可用之外的任何SIP響應(yīng)回答 兩個(gè)連續(xù)的OPTIONS請(qǐng)求嘗試為止。 一旦滿足這些條件,網(wǎng)關(guān)148 就可以認(rèn)為所述組件已經(jīng)回到服務(wù)中,可以恢復(fù)主動(dòng)監(jiān)視算法,可以 生成合適的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)事件,并且如果適用的話開 始利用現(xiàn)在活動(dòng)的組件。
本領(lǐng)域的技術(shù)人員可以理解的是,網(wǎng)關(guān)148不是系統(tǒng)100中僅有 的可以保留路徑再分配信息的組件。而是任何SIP網(wǎng)絡(luò)元件都可^J己 置為包括路徑再分配信息等。例如諸如UA 108的端點(diǎn)也可以保留路 徑再分配表,該表列出在某些組件被識(shí)別為不在服務(wù)中時(shí)可以使用的 通信路徑。
現(xiàn)在將參考圖4描述根據(jù)本發(fā)明的至少一些實(shí)施例的被動(dòng)監(jiān)視 方法。所述方法從網(wǎng)關(guān)148接收到來自服務(wù)器136或類似的系統(tǒng)100 組件的請(qǐng)求時(shí)開始(步驟404)。網(wǎng)關(guān)148以正常方式處理接收的請(qǐng) 求(步驟408)。更具體地,網(wǎng)關(guān)148可以按照發(fā)送組件處于服務(wù)中 來處理該請(qǐng)求,而不需首先確定該姐件實(shí)際上是否處于服務(wù)中。
此后,網(wǎng)關(guān)148基于其內(nèi)部保留的狀態(tài)表來確定發(fā)送組件實(shí)際上 是否被標(biāo)記為不在服務(wù)中(步驟412)。如果所述組件沒有被標(biāo)記為 不在服務(wù)中,則結(jié)束所述方法(步驟424)。否則,網(wǎng)關(guān)148將通過 發(fā)送SIP OPTIONS消息到所述組件以開始其維護(hù)測(cè)試(步驟416)。 接著網(wǎng)關(guān)148可以更新其對(duì)于所述組件狀態(tài)的記錄(步驟420)。重 復(fù)該維護(hù)測(cè)試和狀態(tài)更新處理,直到所述組件被確定為重回服務(wù)中為 止,并在該時(shí)刻結(jié)束所述方法(步驟424)。
參考圖5描述根據(jù)本發(fā)明的至少一些實(shí)施例的網(wǎng)關(guān)148在故障轉(zhuǎn) 移和故障恢復(fù)狀態(tài)期間的操作。在這種特定方法中,與網(wǎng)關(guān)148相關(guān) 的控制器140可以對(duì)應(yīng)于可存活端點(diǎn)的次級(jí)或備份控制器140。所述 方法從網(wǎng)關(guān)148接收可存活端點(diǎn)的呼入時(shí)開始(步驟504)。接著網(wǎng) 關(guān)148確定主信令路徑是否可供使用(步驟508)。根據(jù)本發(fā)明的至 少一些實(shí)施例,在這一步驟中,網(wǎng)關(guān)148可以參考其內(nèi)部組件狀態(tài)表。
23如果主信令路徑被確定為可用,則網(wǎng)關(guān)148將接收的信號(hào)經(jīng)由主 路徑路由到目標(biāo)端點(diǎn)(步驟512),隨后,結(jié)束該方法(步驟536)。 然而,如果網(wǎng)關(guān)148確定主信令路徑由于一些原因(如網(wǎng)絡(luò)104、月良 務(wù)器136或主信令路徑中的其它組件不在服務(wù)中)不可用,則所述方 法接下來由網(wǎng)關(guān)148將信號(hào)經(jīng)由次級(jí)信令路徑發(fā)送到目標(biāo)端點(diǎn)(步驟 516)。這個(gè)特定步驟是基于次級(jí)信令路徑不是也不可用的假設(shè)來執(zhí) 行的。如果網(wǎng)關(guān)確定次級(jí)信令路徑也不可用,則選擇繞過發(fā)生故障的 組件的另一個(gè)備份信令路徑,并且用其發(fā)送信號(hào)到端點(diǎn)。
在呼叫信號(hào)已經(jīng)經(jīng)由次級(jí)信令路徑發(fā)送到目標(biāo)端點(diǎn)之后,網(wǎng)關(guān) 148等待確定是否從所述端點(diǎn)接收到305重定向響應(yīng)(使用代理服務(wù) 器)消息(步驟520)。在活動(dòng)-備用配置中,如果經(jīng)由次級(jí)路徑接 收呼叫信號(hào)的端點(diǎn)認(rèn)為主信令路徑可用,則所述端點(diǎn)可以發(fā)送305重 定向響應(yīng)。這種認(rèn)為是基于在所述端點(diǎn)而不是在網(wǎng)關(guān)148處執(zhí)行的狀 態(tài)監(jiān)視操作。因此,基于對(duì)系統(tǒng)100的不同看法,端點(diǎn)對(duì)于系統(tǒng)IOO 中一個(gè)或多個(gè)組件可能標(biāo)記不同的狀態(tài)。相應(yīng)地,如果網(wǎng)關(guān)H8基于 其呼叫信號(hào)經(jīng)由次級(jí)路徑的重定向接收到305重定向響應(yīng),則網(wǎng)關(guān)148 將嘗試經(jīng)由主信令路徑重定向呼叫信號(hào)(步驟524)。如果因?yàn)楹艚?信號(hào)的成功傳輸,主信令路徑被確定為可用(步驟528),則在步驟 536中結(jié)束所述方法。如果呼叫由于主信令路徑不可用而被拒絕,則 該呼叫可以被拒絕或經(jīng)由次級(jí)信令路徑^皮發(fā)回(步驟532)。另外, 網(wǎng)關(guān)148可以發(fā)送NOTIFY消息到目標(biāo)端點(diǎn),指示其重新檢查其對(duì)主 信令路徑狀態(tài)的觀測(cè)。此后,或者如果沒有從端點(diǎn)接收到重定向響應(yīng) 信息,則結(jié)束所述方法(步驟536)。
現(xiàn)在將參考圖6描述根據(jù)本發(fā)明的至少一些實(shí)施例的系統(tǒng)100 狀態(tài)確定的端點(diǎn)方法。首先,端點(diǎn)(如可存活UA108 )工作于正常 狀態(tài)(步驟604)。接著,端點(diǎn)采用其發(fā)現(xiàn)模塊116的邏輯來確定是 否檢測(cè)到網(wǎng)絡(luò)故障(步驟608)。在可存活配置中,端點(diǎn)能夠檢測(cè)何 時(shí)故障轉(zhuǎn)移或故障恢復(fù)是非常有用的。根據(jù)本發(fā)明的至少一些實(shí)施 例,如果發(fā)生下列事件中的一個(gè)或多個(gè),則端點(diǎn)使用的發(fā)現(xiàn)模塊116邏輯將確定出現(xiàn)網(wǎng)絡(luò)故障
(1) 端點(diǎn)沒有從其正嘗試注冊(cè)的所有控制器140 (如主、次級(jí) 控制器140)接收到作為心跳的、對(duì)SIP REGISTER消息的響應(yīng);
(2) 端點(diǎn)沒有接收到對(duì)SIP INVITE消息的響應(yīng),其中所述SIP INVITE消息可能在嘗試建立呼出的正常處理中已被發(fā)送;
(3) 端點(diǎn)沒有接收到對(duì)SIP信令消息的響應(yīng),所述SIP信令消 息:故發(fā)送用于正常建立新SIP對(duì)話或?qū)υ捴械淖兓?;?br>
(4) 端點(diǎn)沒有從其配置服務(wù)器接收到對(duì)重要請(qǐng)求(可以由不同 類型的協(xié)議攜帶,例如TCP/IP、 HTTP、 XML或SOAP)的成功響 應(yīng),或其它任何帶外非通信業(yè)務(wù),例如用于獲取與故障相關(guān)的數(shù)據(jù)的 數(shù)據(jù)業(yè)務(wù)。
如果端點(diǎn)本身沒有檢測(cè)到故障,則所述方法接下來由該端點(diǎn)確定 是否已被通知有故障(步驟612)。通知可以在端點(diǎn)處以從網(wǎng)關(guān)148、 服務(wù)器136或系統(tǒng)100中能夠監(jiān)視系統(tǒng)100狀態(tài)的某個(gè)其它組件發(fā)送 的SIP NOTIFY消息的形式接收。SIP NOTIFY消息可以指示端點(diǎn)應(yīng) 進(jìn)行故障轉(zhuǎn)移、重新啟動(dòng)或刷新/更新向其所有控制器140的注冊(cè)(由 此規(guī)避端點(diǎn)的邏輯)。如果沒有通知被接收,則所述方法返回到步驟 604。
然而,如果端點(diǎn)被通知在系統(tǒng)100中有故障(如通過接收SIP NOTIFY消息),則端點(diǎn)確定故障通知是否正確(步驟616)。更具 體地,端點(diǎn)可以檢查其內(nèi)部保留的控制器列表120、 128以確定是否 有控制器140被標(biāo)記為不活動(dòng)的或不在服務(wù)中。大多數(shù)時(shí)候端點(diǎn)將只 是服從NOTIFY消息的指導(dǎo)。但是,在某些情況下,端點(diǎn)也可以確定 其對(duì)系統(tǒng)100的觀測(cè)是正確的并且可以用重定向響應(yīng)消息來響應(yīng) NOTIFY消息(步驟620)。這種重定向響應(yīng)可以使NOTIFY消息的 發(fā)起組件檢查其對(duì)系統(tǒng)100的觀測(cè)。接著所述方法返回到步驟604。
如果端點(diǎn)判斷故障通知是正確的或者決定服從NOTIFY消息的 指導(dǎo),則端點(diǎn)確定NOTIFY消息是否包含指令(步驟624)。所述指 令可以是相對(duì)籠統(tǒng)的指令,例如嘗試向所有的控制器140重新注冊(cè)。替代地,所述指令可以包括要求端點(diǎn)嘗試向特定控制器140重新注冊(cè) 的指令集。端點(diǎn)可以嘗試以長或短的時(shí)間間隔進(jìn)行刷新或向控制器 140注冊(cè)。刷新/注冊(cè)時(shí)間間隔的長度可以隨指令集中的指令或其它因 素而變化。所述指令還可以包含由發(fā)送NOTIFY消息的組件所感知的 整個(gè)系統(tǒng)100的健康程度信息。如果所述消息確實(shí)包含指令,則端點(diǎn) 將執(zhí)行這些指令(步驟628 )。
在端點(diǎn)已經(jīng)執(zhí)行指令之后或如果所述消息不包含指令,則所述方 法接下來由端點(diǎn)執(zhí)行故障轉(zhuǎn)移,因此端點(diǎn)開始在備份狀態(tài)下工作(步 驟632)。這個(gè)步驟也在端點(diǎn)本身檢測(cè)到系統(tǒng)100故障時(shí)進(jìn)行。在以 故障轉(zhuǎn)移模式工作期間,端點(diǎn)將利用其備份控制器140和/或利用次級(jí)
信令路徑。除了以故障轉(zhuǎn)移模式工作之外,端點(diǎn)還可以監(jiān)視系統(tǒng)100 故障恢復(fù)(步驟636 )。如果發(fā)現(xiàn)模塊116檢測(cè)到其主控制器140可 重新開始用作活動(dòng)控制器,則端點(diǎn)將確定故障恢復(fù)已經(jīng)發(fā)生。這個(gè)內(nèi) 部端點(diǎn)邏輯可以由周期性地發(fā)送到端點(diǎn)注冊(cè)到的所有控制器140的心 跳/SIP REGISTER消息來支配,不依賴于控制器140在給定時(shí)間是 否為活動(dòng)的。
如果端點(diǎn)本身沒有檢測(cè)到故障恢復(fù),則所述方法接下來由端點(diǎn)確 定是否另一個(gè)組件已經(jīng)將故障恢復(fù)通知給它(如通過從網(wǎng)關(guān)148、服 務(wù)器136等接收NOTIFY消息)(步驟640 )。如果端點(diǎn)沒有被通知 故障恢復(fù),則所述方法返回到步驟632。但是,如果端點(diǎn)確實(shí)接收到 指示故障恢復(fù)的NOTIFY消息,則所述方法接下來確定NOTIFY消 息是否包含供端點(diǎn)執(zhí)行的指令(步驟644 )。如果指令包括在NOTIFY 消息中,則由端點(diǎn)執(zhí)行指令(步驟648)。執(zhí)行這些指令后,如果沒 有指令了,或者如果端點(diǎn)本身檢測(cè)到故障恢復(fù),則所述方法返回到步 驟604。
根據(jù)本發(fā)明的至少一些實(shí)施例,發(fā)現(xiàn)模塊116可以包括管理從主 控制器140到次級(jí)控制器140的故障轉(zhuǎn)移或故障恢復(fù)是由自動(dòng)端點(diǎn)檢 測(cè)觸發(fā)還是僅手動(dòng)觸發(fā)(即通過接收SIP NOTIFY消息)的可配置參 數(shù)。發(fā)現(xiàn)模塊116采用的心跳監(jiān)視機(jī)制可以以不同的時(shí)間間隔進(jìn)行, 其取決于端點(diǎn)是否檢測(cè)到故障條件。現(xiàn)在將參考圖7描述根據(jù)本發(fā)明的至少一些實(shí)施例的狀態(tài)通知方 法。所述方法開始于系統(tǒng)IOO組件(如服務(wù)器136、網(wǎng)關(guān)148或其它 任何包括發(fā)現(xiàn)模塊144的設(shè)備)確定其是否應(yīng)將關(guān)于系統(tǒng)100的消息 通知諸如UA 108的端點(diǎn)(步驟704)。典型地,所述組件將發(fā)送 NOTIFY消息到端點(diǎn),通知該端點(diǎn)系統(tǒng)100狀態(tài)的某些方面已經(jīng)改變。 例如,NOTIFY消息可以通知端點(diǎn)系統(tǒng)中的一個(gè)組件已經(jīng)注冊(cè)為不 在服務(wù)中。替代地,NOTIFY消息可以將發(fā)送組件的健康程度告知端 點(diǎn)。
所述方法保持在步驟704,直到其確定應(yīng)向端點(diǎn)發(fā)送通知消息為
止。做出這樣的決定之后,所述方法接下來由所述組件生成消息(如
NOTIFY消息)(步驟708)。然而,應(yīng)當(dāng)理解所述組件可以采用任
何其它類型的SIP或非SIP消息來通知端點(diǎn)。所述通知可以允許所述
組件觸發(fā)端點(diǎn)在系統(tǒng)100故障或恢復(fù)條件下進(jìn)行故障轉(zhuǎn)移或故障恢
復(fù)。由于端點(diǎn)可以保留控制器的有序列表128并且端點(diǎn)能夠保持向所
有這些控制器的活動(dòng)注冊(cè),系統(tǒng)100組件可以觸發(fā)端點(diǎn)在其檢測(cè)到系
統(tǒng)100故障條件時(shí)采取行動(dòng)。所述行動(dòng)可以通過發(fā)送標(biāo)準(zhǔn)通知消息(如
月良從標(biāo)準(zhǔn)SIP IETF的NOTIFY消息)或包含例如特定指令集的擴(kuò)展
消息來觸發(fā)。相應(yīng)地,所述方法接下來由所述組件確定通知消息中是
否應(yīng)包括指令(步驟712)。
如果沒有特定指令被確定為是必需的,則所述組件可以命令端點(diǎn)
向控制器的有序列表128中的所有控制器140重新注冊(cè),并且發(fā)送一
般性的通知消息到端點(diǎn)(步驟720)。這樣,接收到上述通知的任何
端點(diǎn)將嘗試向其列表中的每一個(gè)控制器140重新注冊(cè)?;谶@個(gè)嘗試
的重新注冊(cè)的成功,端點(diǎn)將能夠獲知哪些控制器140可用于處理SIP
事務(wù)(如支持SIP呼入和呼出)。接著端點(diǎn)根據(jù)這個(gè)自我確定的信息
使用控制器的有序列表128上最高優(yōu)先級(jí)的控制器140作為其主控制
器來運(yùn)轉(zhuǎn)。這個(gè)特定的機(jī)制可以使用服從標(biāo)準(zhǔn)SIP IETF的NOTIFY
消息。該消息可以服從關(guān)于NOTIFY消息的SIP標(biāo)準(zhǔn),NOTIFY參
數(shù)為"event(事件),,-"probation (查驗(yàn)),,。提供上述NOTIFY消息 的一個(gè)例子力口下-^registration aor="sip:joe@example.com" id="a7" state="active"> <contact id="76" state="active" evem-"probation" expires="0"
q="0.8" retry-after="0">
然而,如果所述組件確定特定指令應(yīng)包括在通知消息中,則所述 組件可以在向端點(diǎn)發(fā)送消息前加入一個(gè)或多個(gè)指令集到消息中(步驟 720)。通過將指令并入到通知消息中,所述組件可以命令端點(diǎn)開始 使用在端點(diǎn)的控制器列表120上的特定控制器140。在這樣的情形下, 端點(diǎn)依賴于所述組件告知其應(yīng)該使用哪個(gè)控制器140,而不是依賴于 其自己的判斷。這個(gè)特殊的機(jī)制可以使用具有擴(kuò)充擴(kuò)展的標(biāo)準(zhǔn)SIP NOTIFY消息。該NOTIFY消息一般服從NOTIFY消息的SIP標(biāo)準(zhǔn); 另外,如果端點(diǎn)應(yīng)進(jìn)行故障轉(zhuǎn)移或故障恢復(fù),則其可以使用具有諸如 〈eventNamOchangeServer〈/eveiitName〉的事件名的示例性的簡檔事 件包(profile event package )格式。所述消息還可以包括時(shí)間戳和包 含端點(diǎn)應(yīng)該故障轉(zhuǎn)移或故障恢復(fù)到的特定控制器140的服務(wù)器136的 地址。用XML指令集提供上述擴(kuò)充的SIP NOTIFY消息的一個(gè)例子 如下
NOTIFY sip:l 111@10.0.75.2 SIP/2.0 Call-ID: cid-,0.0.75.2 CSeq: 2 NOTIFY
From: <sip:l 11 l@atler.com>; tag=random2 To: <sip: 1111 @atler.com>; tag=randoml
Via: SIP/2.0謡P 10.0.0.100;branch-id=z9hG4bk-random-the primary call controller
SIP/2.0/TLS 10.0.0.200;branch-id=z9hG4bK-random-cm 1 Content-Length: 22
Content-Type: application/prof"e+xml Contact: <sip:l 11 l@10.0.0.200;transport=tls/
Max-Forwards: 69
User-Agent: Communication Manager v 1.0 Event: ccs-profile
Subscription-State: active;expires=3600 Record-Route: <sip:10.0.0.100:5060;lr;transport=UDP>
< xml version-" 1.0"> <event>
<eventName>changeServer</eventName> <eventTime>{time stamp}</eventTime> <eventData> {ip address ^ </eventData> </event>本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,所述指令可以采取除XML指令集 以外的許多不同形式。例如,所述指令可以包括對(duì)應(yīng)于并且導(dǎo)致已經(jīng) 存儲(chǔ)在端點(diǎn)的存儲(chǔ)器112中的應(yīng)用或算法執(zhí)行的預(yù)定觸發(fā)器。另外, 盡管上面的NOTIFY消息例子將其指令集包括在消息主體中,但所述 指令集也可以置于通知消息的頭部或尾部。這隨著采用的通知消息的 類型而變化。所述指令可以用于完成很多不同的動(dòng)作,例如傳送發(fā)送 組件的健康信息和系統(tǒng)100的其余組件的狀態(tài)信息,以及觸發(fā)端點(diǎn)執(zhí) 行特定的任務(wù)。
雖然已經(jīng)結(jié)合特定的事件順序討論了上述流程圖,應(yīng)該理解在不 實(shí)質(zhì)影響本發(fā)明操作的情況下可以改變這個(gè)順序。另外,不必嚴(yán)格按 照示例性實(shí)施方式中闡明的事件順序。本文中示出的示例性技術(shù)不限 于具體示出的實(shí)施例,也可以用于其它示例性的實(shí)施方式,并且每個(gè)
描述的特征是獨(dú)立的且單獨(dú)要求保護(hù)的。
本發(fā)明的系統(tǒng)、方法和協(xié)議可以在專用計(jì)算機(jī)上實(shí)施,和下列裝 置一起或代替下列裝置所描述的通信設(shè)備,編程的微處理器或微控 制器和外圍集成電路元件,ASIC或其它集成電路,數(shù)字信號(hào)處理器, 諸如離散元件電路的硬連線電子或邏輯電路,諸如PLD、PLA、FPGA、 PAL的可編程邏輯器件,諸如服務(wù)器的通信設(shè)備,個(gè)人計(jì)算機(jī),任何 相當(dāng)?shù)难b置等等??傊?,任何能夠?qū)崿F(xiàn)狀態(tài)機(jī),進(jìn)而能夠?qū)崿F(xiàn)這里描 述的方法的設(shè)備都可以用來實(shí)施根據(jù)本發(fā)明的各種通信方法、協(xié)議和 技術(shù)。
此外,公開的方法可以使用過程的或面向?qū)ο蟮能浖_發(fā)環(huán)境用 軟件實(shí)施,所述軟件開發(fā)環(huán)境提供可用于多種計(jì)算機(jī)或工作站平臺(tái)上 的便攜源代碼。替代地,公開的系統(tǒng)可以使用標(biāo)準(zhǔn)邏輯電路或VLSI 設(shè)計(jì)部分地或全部地用硬件實(shí)現(xiàn)。使用軟件還是硬件來實(shí)現(xiàn)根據(jù)本發(fā) 明的系統(tǒng)取決于系統(tǒng)的速度和/或效率要求、特定功能和所采用的特定 軟件或硬件系統(tǒng)或微處理器或微計(jì)算機(jī)系統(tǒng)。本相關(guān)領(lǐng)域的技術(shù)人員 可以基于本文提供的功能性說明和通信領(lǐng)域的一般常識(shí),使用任何已 知的或后發(fā)展的系統(tǒng)或結(jié)構(gòu)、設(shè)備和/或軟件用硬件和/或軟件便捷地
29實(shí)施本文示出的分析系統(tǒng)、方法和協(xié)議。
此外,公開的方法可以用可存儲(chǔ)在存儲(chǔ)介質(zhì)中、在含有控制器和 存儲(chǔ)器的編程的通用計(jì)算機(jī)、專用計(jì)算機(jī)、微處理器等上執(zhí)行的軟件 來實(shí)現(xiàn)。在這些實(shí)例中,本發(fā)明的系統(tǒng)和方法可以實(shí)現(xiàn)為嵌入到個(gè)人
計(jì)算機(jī)的程序,例如Java程序(applet)/JAVA⑧或CGI腳本,駐留在 服務(wù)器或計(jì)算機(jī)工作站上的資源、嵌入到專用通信系統(tǒng)或系統(tǒng)組件的 例程等等。所述系統(tǒng)也可以通過將系統(tǒng)和/或方法實(shí)體合并到軟件和/ 或硬件系統(tǒng),例如通信設(shè)備或系統(tǒng)的硬件和軟件系統(tǒng)中來實(shí)現(xiàn)。
因此,根據(jù)本發(fā)明可以提供用于維護(hù)SIP可存活網(wǎng)絡(luò)和網(wǎng)絡(luò)組件 的系統(tǒng)、設(shè)備和方法。已經(jīng)結(jié)合許多實(shí)施例描述本發(fā)明,眾多替換、 修改和變形是清楚的,這一點(diǎn)對(duì)于相關(guān)領(lǐng)域的技術(shù)人員來說是顯而易 見的。因此,本發(fā)明意在包括在本發(fā)明的精神和范圍內(nèi)的所有這些替 換、修改、等同和變形。
權(quán)利要求
1.一種方法,包括觸發(fā)通信端點(diǎn)監(jiān)視通信系統(tǒng)中至少一個(gè)組件的狀態(tài),其中所述至少一個(gè)組件包括所述通信端點(diǎn)的第一控制器;所述端點(diǎn)發(fā)送會(huì)話發(fā)起協(xié)議SIP消息到所述至少一個(gè)組件;以及基于在所述端點(diǎn)處接收的響應(yīng)來確定所述至少一個(gè)組件的狀態(tài)。
2. —種通信端點(diǎn),用于在被觸發(fā)監(jiān)視通信系統(tǒng)中至少一個(gè)組件 的狀態(tài)后發(fā)送會(huì)話發(fā)起協(xié)議SIP消息到所述至少一個(gè)組件,然后基于 接收的響應(yīng)來確定所述至少一個(gè)組件的狀態(tài),其中所述至少一個(gè)組件 包括所述端點(diǎn)的第 一控制器。
3. —種通信系統(tǒng),包括通過使通信端點(diǎn)發(fā)送會(huì)話發(fā)起協(xié)議SIP消息到至少一個(gè)組件來 觸發(fā)該通信端點(diǎn)監(jiān)視所述至少一個(gè)組件的狀態(tài)的裝置;以及基于在所述端點(diǎn)處接收的響應(yīng)來確定所述至少一個(gè)組件的狀態(tài) 的裝置。
4. 根據(jù)權(quán)利要求l、 2或3所述的發(fā)明,其中所述響應(yīng)包括(i) 由所述至少一個(gè)組件發(fā)送并在所述端點(diǎn)處接收的SIP消息以及(ii) 在預(yù)定的時(shí)間量內(nèi)在所述端點(diǎn)處沒有接收到響應(yīng)消息這兩種情形中 的至少一種。
5. 根據(jù)權(quán)利要求l、 2或3所述的發(fā)明,其中所述端點(diǎn)通過接收 通知消息被觸發(fā)監(jiān)視所述至少 一個(gè)組件的狀態(tài)。
6. 根據(jù)權(quán)利要求5所述的發(fā)明,其中所述端點(diǎn)還用于在接收所 述通知消息后參考控制器列表,從該控制器列表識(shí)別要進(jìn)行狀態(tài)檢查 的至少一個(gè)控制器,并且發(fā)送SIP消息到與所述至少一個(gè)控制器相關(guān) 聯(lián)的組件,其中所述至少一個(gè)控制器包括第一控制器。
7. 根據(jù)權(quán)利要求6所述的發(fā)明,其中所述通知消息包括標(biāo)準(zhǔn)SIP NOTIFY消息,并且其中所述控制器列表中的所有控制器都被包括在 所識(shí)別的至少 一個(gè)控制器中。
8. 根據(jù)權(quán)利要求6所述的發(fā)明,其中所述通知消息包括擴(kuò)充的 SIP NOTIFY消息,并且其中所識(shí)別的至少一個(gè)控制器包括比所述控 制器列表中的所有控制器少的控制器。
9. 根據(jù)權(quán)利要求8所述的發(fā)明,其中所述擴(kuò)充的SIP NOTIFY 消息包括由所述端點(diǎn)執(zhí)行的指令集,并且其中該指令集識(shí)別要進(jìn)行狀 態(tài)檢查的至少一個(gè)控制器。
10. —種計(jì)算機(jī)可讀介質(zhì),包括在被執(zhí)行時(shí)用于實(shí)現(xiàn)權(quán)利要求1 的步驟的處理器可執(zhí)行指令。
全文摘要
提供用于維護(hù)SIP可存活用戶代理的方法、設(shè)備和系統(tǒng)。本發(fā)明被配置為允許用戶代理檢測(cè)網(wǎng)絡(luò)的狀態(tài),從而使用戶代理執(zhí)行故障轉(zhuǎn)移/故障恢復(fù)操作。用戶代理可被配置為基于其自身的監(jiān)視機(jī)制和/或基于從其它網(wǎng)絡(luò)組件接收的消息來確定網(wǎng)絡(luò)的狀態(tài)。
文檔編號(hào)H04L12/24GK101557305SQ20081018219
公開日2009年10月14日 申請(qǐng)日期2008年11月24日 優(yōu)先權(quán)日2008年3月26日
發(fā)明者A·貝克, B·詹金斯, F·J·波義耳, G·布倫森, M·C·巴拉薩伊甘, P·J·勞伯, T·A·佩切 申請(qǐng)人:阿瓦亞公司