JP2014235643A - セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法 - Google Patents

セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法 Download PDF

Info

Publication number
JP2014235643A
JP2014235643A JP2013117798A JP2013117798A JP2014235643A JP 2014235643 A JP2014235643 A JP 2014235643A JP 2013117798 A JP2013117798 A JP 2013117798A JP 2013117798 A JP2013117798 A JP 2013117798A JP 2014235643 A JP2014235643 A JP 2014235643A
Authority
JP
Japan
Prior art keywords
sip
identifier
dialog
session border
hash value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013117798A
Other languages
English (en)
Other versions
JP5941434B2 (ja
Inventor
亨 辻河
Toru Tsujikawa
亨 辻河
孝幸 中村
Takayuki Nakamura
孝幸 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013117798A priority Critical patent/JP5941434B2/ja
Publication of JP2014235643A publication Critical patent/JP2014235643A/ja
Application granted granted Critical
Publication of JP5941434B2 publication Critical patent/JP5941434B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】SIPネットワークに於いて関連するSIPダイアログのSIP信号を一元的に処理する。
【解決手段】クラスタシステム1は、SIPダイアログを処理する複数のセッション・ボーダ・コントローラ2と、振分装置3とを備えている。振分装置3は、これらSIPダイアログの識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部32と、ハッシュ値に基づき複数のセッション・ボーダ・コントローラ2のいずれかに、このSIP信号を振り分けるL7スイッチ部31を有する。各セッション・ボーダ・コントローラ2は、第1のSIPダイアログが含む第1識別子とは異なり、かつ、第1識別子の第1ハッシュ値と同一の値がハッシュ演算される第2識別子を算出する識別子算出部21と、第1のSIPダイアログに関連して、第2識別子を含む第2のSIPダイアログを新たに生成するセッション・ボーダ・コントローラ処理部23とを備える。
【選択図】図1

Description

本発明は、複数のSIP(Session Initiation Protocol)ダイアログを関連づけて処理するセッション・ボーダ・コントローラ(SBC:Session Border Controller)のクラスタシステム、アプリケーション・サーバ(AS:Application Server)のクラスタシステム、および、これらクラスタシステムのSIPダイアログ生成方法に関する。
クラスタ技術とは、複数の物理マシンまたは仮想マシンを用いて分散処理を行う技術である。このクラスタ技術によってリクエストを分散処理するためには、分散処理を行う複数の物理マシンや仮想マシンの前段で、リクエストのトラヒックを振り分ける必要がある。リクエストのトラヒックを振り分ける振分装置と、このリクエストを分散処理する複数の物理マシンや仮想マシンとは、クラスタシステムを構成する。
HTTP(Hypertext Transfer Protocol)サーバに対するリクエストは、一般的に、その送信元の端末ごとにIP(Internet Protocol)アドレスが異なっている。そのため、HTTPサーバのクラスタシステムは、リクエストのトラヒックを振り分ける際に、その送信元IPアドレスを鍵として振り分けることができる。よって、レイヤ4スイッチまたはレイヤ3スイッチを、リクエストのトラヒックを振り分ける振分装置として使用することができる。
SIPサーバに対するリクエストは、ネットワーク内の中継サーバを経由する場合もある。これら中継サーバによって送信元IPアドレスが書き換えられるので、SIPサーバのクラスタシステムでは、SIPリクエストを、その送信元IPアドレスを鍵として振り分けることができないという問題がある。そこで、SIPサーバのクラスタシステムでは、SIPリクエストを、そのセッションの識別子を鍵として振り分けを行う方式が提案されている。例えば、特許文献1の段落0002には、「振分装置3は、端末(クライアント)からセッション接続要求などのメッセージを受信すると、そのメッセージに含まれるセッション制御用のデータを分析し、メッセージを所定の方法に従って、処理装置に振り分ける。」と記載されている。
セッション・ボーダ・コントローラは、B2BUA(Back-to-Back User Agent)処理を行い、発側のSIPユーザ・エージェントとの間でSIPダイアログを保持し、着側のSIPユーザ・エージェントとの間でSIPダイアログを保持するものである。
ここでSIPダイアログとは、2つのSIPユーザ・エージェントの間や、サーバとSIPユーザ・エージェントとの間で保持される関係のことをいう。ここでサーバとは、例えば、セッション・ボーダ・コントローラや、アプリケーション・サーバなどである。SIPダイアログは、INVITEリクエストによって生成され、200 OKレスポンスにより確立する。SIPダイアログを一意に識別する識別子は、Call-IDヘッダである。
このとき、発側のSIPダイアログと着側のSIPダイアログとは、異なる場合がある。この場合、セキュリティ上などの理由により、着側のSIPダイアログのセッション識別子(Call-ID)は、発側のSIPダイアログのセッション識別子とは異なる値が設定される。
アプリケーション・サーバでは、フォーキング、フォローミー、転送などのサービスに於いても、発側のSIPダイアログと異なる着側のSIPダイアログを生成する場合がある。この場合も、各ダイアログのセッション識別子は、それぞれ異なる値が設定される。
セッション・ボーダ・コントローラやアプリケーション・サーバでは、関連するダイアログのSIP信号を一元的に処理しなければ適切なサービスを提供できない。よって、SIP信号のセッション識別子を単純に用いるだけでは、セッション・ボーダ・コントローラやアプリケーション・サーバのクラスタシステムを構成し、適切な分散処理を実現することができない。
このため、SIP信号中のRecord-RouteヘッダやContactヘッダなどに、識別子の文字列を埋め込む技術や、識別子の文字列を示す独自パラメータを追加する技術が提案されている。
非特許文献1のアプリケーション構成モデルの章には「たとえば、Request-URIヘッダで指定されているユーザを調べ、ユーザのサブスクリプション・レベルに基づいてアプリケーションを選択するようなコンポーザ・アプリケーションが考えられます。その後、このコンポーザ・アプリケーションは1つまたは複数のRouteヘッダをリクエストに挿入します。このとき、それぞれのRouteヘッダで、リクエストを処理すべきデプロイ済みSIPアプリケーションの名前と場所を指定します。」と記載されている。すなわち、非特許文献1の技術に於いて、セッション識別子は、SIP信号のRecord-Routeヘッダ中のSIP-URI(Uniform Resource Identifier)のuser部に記載される。SIPサーブレットは、SIP信号を受信した際、このSIP信号のRecord-Routeヘッダ中に記載されているセッション識別子を読み取り、これを鍵として物理マシンまたは仮想マシンに振り分ける。
特開2012−252545号公報
BEA Systems、「Web Logic SIP ServerによるSIPサーブレットの開発」、[online]、[平成25年5月8日検索]、インターネット<URL:http://otndnld.oracle.co.jp/document/products/wlcp/wlss21/programming/composition.html>
非特許文献1に記載された技術に於いて、SIP信号は、エンド・ツー・エンドで送受信される間に、セッション・ボーダ・コントローラなどに代表されるSIPサーバを経由する。これらSIPサーバは、SIP信号に独自に挿入された文字列を削除するおそれがある。よって、SIP信号中に独自に挿入された文字列は、クラスタシステムの振分装置3が振り分ける鍵として利用できないという問題がある。
例えば、SIP信号中のRecord-RouteヘッダのSIP-URIのuser部に、識別子として用いる文字列を独自パラメータとして挿入した場合を検討する。Record-RouteヘッダのSIP-URIのuser部は、SIPのルーティングに必須のパラメータではなく、他のセッション・ボーダ・コントローラによって削除される可能性がある。
次に、発側セッション・ボーダ・コントローラが着側セッション・ボーダ・コントローラに送信するSIP信号のContactヘッダに、識別子として用いる文字列を独自パラメータとして埋め込んだ場合を検討する。このSIP信号のContactヘッダに独自に埋め込まれた文字列は、このSIP信号が経由する他のセッション・ボーダ・コントローラによって削除されるおそれがある。
着側セッション・ボーダ・コントローラは、このSIP信号に応答する新たなSIP信号を、発側セッション・ボーダ・コントローラに送信する。当該他のセッション・ボーダ・コントローラは、この新たなSIP信号のContactヘッダに対して、識別子として用いる文字列を追加すればよいが、このような動作は行わない。
次に、発側セッション・ボーダ・コントローラが着側セッション・ボーダ・コントローラに送信するSIP信号に独自ヘッダを設け、識別子として用いる文字列をパラメータとして埋め込んだ場合を検討する。このSIP信号の独自ヘッダに埋め込まれた文字列は、このSIP信号が経由する他のセッション・ボーダ・コントローラによって削除されるおそれがある。
着側セッション・ボーダ・コントローラは、このSIP信号に応答する新たなSIP信号を、発側セッション・ボーダ・コントローラに送信する。当該他のセッション・ボーダ・コントローラは、この新たなSIP信号に対して、独自ヘッダおよび識別子として用いる文字列とを追加すればよいが、このような動作は行わない。
よって、関連するSIPダイアログのSIP信号を一元的に処理するために、SIP信号中のSIP-URIのuser部にセッションIDを埋め込む方式や、セッションIDを設定した独自パラメータを用いる方式や、セッションIDを設定した独自ヘッダを用いる方式は、他のSIPサーバを含むSIPネットワークでは適用できないおそれがある。
本発明は、前記した問題を解決し、SIPネットワークに於いて関連するSIPダイアログのSIP信号を一元的に処理することができるセッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、これらクラスタシステムのSIPダイアログ生成方法を提供することを課題とする。
前記課題を解決するため、請求項1に記載の発明であるセッション・ボーダ・コントローラのクラスタシステムは、IPユーザ・エージェントとの間のSIPダイアログに係るSIP信号を処理する複数のセッション・ボーダ・コントローラと、前記SIPダイアログに係るSIP信号の識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記セッション・ボーダ・コントローラのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置とを備える。各前記セッション・ボーダ・コントローラは、振り分けられた第1のSIPダイアログに係るSIP信号の第1識別子とは異なり、かつ、前記第1識別子の第1ハッシュ値と同一の値がハッシュ演算される第2識別子を算出する識別子算出部と、前記第1のSIPダイアログに関連し、かつ、前記第2識別子で識別される第2のSIPダイアログを新たに生成する処理部とを備える。
このようにすることで、本発明によれば、SIPネットワークに於いて関連するSIPダイアログのSIP信号を、同一のハッシュ値を介して一元的に処理することができる。よって、振分装置は、関連するSIPダイアログに係るリクエストやレスポンスを、同一のセッション・ボーダ・コントローラに振り分けることができる。
請求項2に記載の発明では、請求項1に記載のセッション・ボーダ・コントローラのクラスタシステムに於いて、前記識別子を、前記SIPダイアログに係るSIP信号が含むCall-IDヘッダとした。
Call-IDヘッダはSIPの基本的な識別子であり、必ずSIP信号で使用される。Call-IDヘッダの文字列は、どのSIPサーバでも削除されず、セッション・ボーダ・コントローラなどで書き換えが行われても必ず復元される。これにより、本発明によれば、関連するSIPダイアログのSIP信号をCall-IDヘッダのハッシュ値で関連づけているので、どのようなSIPネットワークに於いても、関連するSIPダイアログを一元的に処理することができる。
請求項3に記載の発明では、請求項1に記載のセッション・ボーダ・コントローラのクラスタシステムに於いて、前記振分装置の前記スイッチ部は、各前記セッション・ボーダ・コントローラから前記SIPダイアログに係るINVITEリクエストを受信したならば、Request-URIまたはRouteヘッダに基づいて転送し、各前記セッション・ボーダ・コントローラから前記SIPダイアログに係るレスポンスを受信したならば、Viaヘッダに基づいて転送する。
このようにすることで、本発明によれば、振分装置は、SIPの規格に準拠してSIP信号を転送している。よって、このSIP信号を、SIPに準拠したネットワークを経由して、SIPユーザ・エージェントに送信することができる。
請求項4に記載の発明では、請求項1に記載のセッション・ボーダ・コントローラのクラスタシステムに於いて、前記識別子算出部は、前記振分装置の前記ハッシュ演算部と同一のハッシュ演算を行う第2ハッシュ演算部を有する。
このようにすることで、本発明によれば、振分装置は、新たなSIPダイアログのSIP信号を、既存のSIPダイアログのSIP信号と同一のセッション・ボーダ・コントローラに振り分けることができる。
請求項5に記載の発明では、請求項1に記載のセッション・ボーダ・コントローラのクラスタシステムに於いて、各前記セッション・ボーダ・コントローラは、それぞれ記憶部を備えている。前記処理部は、振り分けられた前記第1のSIPダイアログに関連する前記第2のSIPダイアログを新たに生成すると共に、前記第1識別子および前記第2識別子の組合せを前記記憶部に記憶した前記第2識別子を含むSIP信号が振り分けられたならば、当該第2識別子に対応する前記第1識別子を含むSIP信号を生成する。
このようにすることで、本発明によれば、処理部は、記憶部に記憶した第2識別子を含むSIP信号が、このセッション・ボーダ・コントローラに振り分けられたならば、この第2識別子に対応する第1識別子を含むSIP信号を生成することができる。
請求項6に記載の発明であるアプリケーション・サーバのクラスタシステムは、SIPユーザ・エージェントとの間のSIPダイアログに係るSIP信号を処理する複数のアプリケーション・サーバと、前記SIPダイアログに係るSIP信号の識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記アプリケーション・サーバのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置とを備える。各前記アプリケーション・サーバは、振り分けられた第1のSIPダイアログに係るSIP信号の第1識別子とは異なり、かつ、前記第1識別子の第1ハッシュ値と同一の値がハッシュ演算される第2識別子を算出する識別子算出部と、前記第1のSIPダイアログに関連して、前記第2識別子を含む第2のSIPダイアログを新たに生成する処理部とを備える。
このようにすることで、本発明によれば、アプリケーション・サーバのクラスタシステム1Aがフォーキング、フォローミー、転送などのサービスを提供する際に、各アプリケーション・サーバで分散処理を行わせることができると共に、複数のSIPダイアログを関連づけて処理することができる。
請求項7に記載の発明は、SIPユーザ・エージェントとの間のSIPダイアログを処理する複数のセッション・ボーダ・コントローラと、前記SIPダイアログに係る識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記セッション・ボーダ・コントローラのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置とを備えるセッション・ボーダ・コントローラのクラスタシステムのSIPダイアログ生成方法である。各前記セッション・ボーダ・コントローラは、振り分けられた第1のSIPダイアログのSIP信号が含む第1識別子をハッシュ演算して第1ハッシュ値を算出するステップと、前記第1識別子とは異なる複数の候補値をハッシュ演算するステップと、前記第1ハッシュ値と同一のハッシュ値が算出される第2識別子を得るステップと、前記第2識別子を含むSIP信号を前記振分装置に送信するステップとを実行する。
このようにすることで、本発明によれば、セッション・ボーダ・コントローラは、このSIP信号による新たな第2のSIPダイアログを生成できる。更に、この第2のSIPダイアログの識別子のハッシュ値は、第1のSIPダイアログの識別子のハッシュ値と同一である。よって、セッション・ボーダ・コントローラは、第1のSIPダイアログと第2のSIPダイアログとを関連づけて処理することができる。
請求項8に記載の発明は、SIPユーザ・エージェントとの間のSIPダイアログを処理する複数のアプリケーション・サーバと、前記SIPダイアログに係る識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記アプリケーション・サーバのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置とを備えるアプリケーション・サーバのクラスタシステムのSIPダイアログ生成方法である。各前記アプリケーション・サーバは、振り分けられた第1のSIPダイアログに係る第1識別子をハッシュ演算して第1ハッシュ値を算出するステップと、前記第1識別子とは異なる複数の候補値をハッシュ演算するステップと、前記第1ハッシュ値と同一のハッシュ値が算出される第2識別子を得るステップと、前記第2識別子を含むSIP信号を前記振分装置に送信するステップとを実行する。
このようにすることで、本発明によれば、アプリケーション・サーバは、このSIP信号による新たな第2のSIPダイアログを生成できる。更に、この第2のSIPダイアログの識別子のハッシュ値は、第1のSIPダイアログの識別子のハッシュ値と同一である。よって、アプリケーション・サーバは、第1のSIPダイアログと第2のSIPダイアログとを関連づけて処理することができる。
本発明によれば、SIPネットワークに於いて関連するSIPダイアログのSIP信号を一元的に処理することができるセッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、これらクラスタシステムのSIPダイアログ生成方法を提供することが可能となる。
第1の実施形態に於けるセッション・ボーダ・コントローラのクラスタシステムを示す概略の構成図である。 第1の実施形態に於けるSIPダイアログの動作を示すシーケンス図である。 INVITEリクエストのリクエスト行とヘッダを示す図である。 200 OK応答のステータス行とヘッダを示す図である。 第1の実施形態に於ける振分装置3の処理を示すフローチャートである。 第1の実施形態に於けるセッション・ボーダ・コントローラの処理を示すフローチャートである。 第2の実施形態に於けるアプリケーション・サーバのクラスタシステムを示す概略の構成図である。 第2の実施形態に於けるフォーキング動作を示す図である。
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
図1は、第1の実施形態に於けるセッション・ボーダ・コントローラのクラスタシステム1を示す概略の構成図である。
セッション・ボーダ・コントローラのクラスタシステム1は、複数のサーバであるセッション・ボーダ・コントローラ2−1〜2−3と、振分装置3とを含んで構成される。セッション・ボーダ・コントローラのクラスタシステム1は、ネットワーク9を介して複数のSIPユーザ・エージェント4−1〜4−4に接続されて、各SIPユーザ・エージェント4−1〜4−4が送信したSIP信号を分散処理するものである。
SIPユーザ・エージェント4−1には、IPアドレス10.63.19.1が払い出されている。SIPユーザ・エージェント4−2には、IPアドレス10.63.19.2が払い出されている。SIPユーザ・エージェント4−3には、IPアドレス10.63.19.3が払い出されている。SIPユーザ・エージェント4−4には、IPアドレス10.63.19.4が払い出されている。振分装置3には、IPアドレス10.72.84.1が払い出されている。これら各装置のSIP-URIは、各装置に付与されたIPアドレスを記載することができる。
以下、セッション・ボーダ・コントローラ2−1〜2−3を特に区別しないときには、単にセッション・ボーダ・コントローラ2と記載する場合があり、「SBC」と図に記載している場合がある。SIPユーザ・エージェント4−1〜4−4も同様に、単にSIPユーザ・エージェント4と記載する場合があり、「SIP−UA」と図に記載している場合がある。
振分装置3は、各SIPユーザ・エージェント4が送信した各SIP信号を、複数のSIPユーザ・エージェント4のうちいずれかに振り分けるものである。振分装置3は、L7スイッチ部31と、ハッシュ演算部32とを含んで構成されている。
L7スイッチ部31は、OSI(Open Systems Interconnection)参照モデルの第7層であるアプリケーション層のデータに基づいてルーティングを行う処理部である。L7スイッチ部31は、アプリケーション層レベルのプロトコルであるSIPの各ヘッダを認識する機能を有し、SIPユーザ・エージェント4が送信した各SIP信号を、複数のSIPユーザ・エージェント4に振り分けるものである。L7スイッチ部31は更に、SIPユーザ・エージェント4から送信されたSIP信号を、対応するSIPユーザ・エージェント4に転送する。L7スイッチ部31の処理は、後記する図5で詳細に説明する。
ハッシュ演算部32は、SIPダイアログに係るSIP信号の識別子から、そのSIP信号の振り分け先を示すハッシュ値を算出する演算部である。L7スイッチ部31は、このハッシュ値に基づき、セッション・ボーダ・コントローラ2のいずれかに、このSIP信号を振り分ける。
セッション・ボーダ・コントローラ2は、SIPユーザ・エージェント4との間のSIPダイアログを生成し、このSIPダイアログに係るSIP信号を処理するものである。セッション・ボーダ・コントローラ2は、異なるIP電話サービス・ネットワークの境界に設置されて、アドレス変換処理やセキュリティ処理などを行う。セッション・ボーダ・コントローラ2は、識別子算出部21と、識別子記憶部22と、セッション・ボーダ・コントローラ処理部23(SBC処理部)とを含んで構成されている。
識別子算出部21は、第2ハッシュ演算部211を含んで構成されている。この第2ハッシュ演算部211は、振分装置3のハッシュ演算部32と同一のハッシュ値を算出する。振分装置3は、ハッシュ演算部32が演算するハッシュ値に基づいて、いずれかのセッション・ボーダ・コントローラ2に振り分けている。よって、振分装置3は、このセッション・ボーダ・コントローラ2が生成した新たな第2のSIPダイアログのSIP信号を、既存の第1のSIPダイアログのSIP信号と同一のセッション・ボーダ・コントローラに振り分けることができる。
識別子算出部21は、第2ハッシュ演算部211により、既存の第1のSIPダイアログの第1識別子から、その振り分け先を示すハッシュ値を算出し、同一の振り分け先を示すハッシュ値が算出される別の識別子を算出する。この別の識別子のうちひとつは、新たに開始する第2のSIPダイアログの第2識別子として用いられる。よって、識別子算出部21は、既存の第1のSIPダイアログと関連する新たな第2のSIPダイアログを、同一のハッシュ値を介して一元的に処理することができる。これにより、新たな第2のSIPダイアログのSIP信号が、既存の第1のSIPダイアログのSIP信号と同一のセッション・ボーダ・コントローラ2に振り分けられるようにすることができる。
セッション・ボーダ・コントローラ処理部23は、第2のSIPダイアログを新たに生成する。セッション・ボーダ・コントローラ処理部23は、識別子算出部21により第2のSIPダイアログの第2識別子を算出し、新たな第2のSIPダイアログのCall-IDヘッダの文字列に設定する。この第2識別子は、第1のSIPダイアログの第1識別子とは異なり、かつ、第1識別子と同一の振り分け先を示すハッシュ値が算出される。第2のSIPダイアログは、第1のSIPダイアログのB2BUA処理に係る反対側のSIPダイアログである。
Call-IDヘッダはSIPの基本的な識別子であり、必ずSIP信号で使用される。Call-IDヘッダの文字列は、どのSIPサーバでも削除されず、セッション・ボーダ・コントローラなどで書き換えが行われても必ず復元される。第1のSIPダイアログと関連する第2のSIPダイアログを、Call-IDヘッダのハッシュ値で関連づけているので、どのようなSIPネットワークに於いても、関連するSIPダイアログを一元的に処理することができる。
識別子記憶部22は、第1のSIPダイアログの第1識別子と、第2のSIPダイアログの第2識別子との組合せを記憶する記憶部である。セッション・ボーダ・コントローラ処理部23は、識別子記憶部22に記憶した第2識別子を含むSIP信号が、このセッション・ボーダ・コントローラ2に振り分けられたならば、この第2識別子に対応する第1識別子を含むSIP信号を生成する。
図2は、第1の実施形態に於けるSIPダイアログの動作を示すシーケンス図である。
図2に示すシーケンスQ10〜Q19は、SIPユーザ・エージェント4−1が発信してSIPユーザ・エージェント4−2が着信するセッションである。シーケンスQ20〜Q29は、SIPユーザ・エージェント4−3が発信してSIPユーザ・エージェント4−4が着信するセッションである。セッション・ボーダ・コントローラのクラスタシステム1は、これらのセッションを複数のサーバで分散処理する。
各SIPユーザ・エージェント4から送信されるSIP信号は、振分装置3にあるL7スイッチ部31により、セッション・ボーダ・コントローラのクラスタシステム1を構成する各サーバに振り分けられる。振り分け先は、振分装置3にあるハッシュ演算部32によってSIP信号中の基本的なダイアログ識別子であるCall-IDヘッダから計算されたハッシュ値によって決定される。振り分けたSIP信号は、それぞれのサーバのセッション・ボーダ・コントローラ処理部23によって処理される。
以下のシーケンスQ10〜Q12と、シーケンスQ18,Q19とは、SIPダイアログD1(第1のSIPダイアログ)に係る処理を示している。SIPダイアログD1(第1のSIPダイアログ)は、SIPユーザ・エージェント4−1と、セッション・ボーダ・コントローラ2−1との間で保持される関係である。
シーケンスQ10に於いて、SIPユーザ・エージェント4−1は、SIPユーザ・エージェント4−2と接続するために、セッション・ボーダ・コントローラのクラスタシステム1の振分装置3にSIP信号であるINVITEリクエストを送信する。このSIP信号中のダイアログ識別子は、Call-IDヘッダの文字列「P1」とする。
シーケンスQ11に於いて、振分装置3は、振分処理を行う。振分装置3は、ハッシュ演算部32により、受信したSIP信号中のダイアログ識別子であるCall-IDヘッダの文字列「P1」からハッシュ値pを算出し、対応する振り分け先のサーバであるセッション・ボーダ・コントローラ2−1を選択する。
シーケンスQ12に於いて、振分装置3は、L7スイッチ部31により、ハッシュ値pに対応するセッション・ボーダ・コントローラ2−1を選択してINVITEリクエストを振り分ける。
その後、セッション・ボーダ・コントローラ2−1のセッション・ボーダ・コントローラ処理部23は、B2BUA処理を行い、SIPダイアログD1(第1のSIPダイアログ)とは異なる新たなSIPダイアログD2(第2のSIPダイアログ)を生成する。SIPダイアログD2(第2のSIPダイアログ)は、セッション・ボーダ・コントローラ2−1と、その接続先であるSIPユーザ・エージェント4−2との間で保持される関係である。セッション・ボーダ・コントローラ処理部23は、識別子算出部21によって、ハッシュ値pであり、かつ、文字列「P1」とは異なる新たな文字列「P2」を生成し、新たなSIPダイアログD2に於ける識別子とする。
以下のシーケンスQ13〜Q17は、SIPダイアログD2(第2のSIPダイアログ)に係る処理を示している。
シーケンスQ13に於いて、セッション・ボーダ・コントローラ2−1は、シーケンスQ12で受信したINVITEリクエストを複製したのちに文字列「P2」をCall-IDヘッダに設定し、このINVITEリクエストを送信する。
シーケンスQ14に於いて、振分装置3は、SIPユーザ・エージェント4−2に対してINVITEリクエストを転送する。SIPユーザ・エージェント4−2は、このINVITEリクエストを受信する。
シーケンスQ15に於いて、SIPユーザ・エージェント4−2は、SIPユーザ・エージェント4−1に向けて、SIP信号を送信する。この例では、SIP信号として、INVITEリクエストに対するレスポンスである200 OKレスポンスを返している。この200 OKレスポンスのCall-IDヘッダは、文字列「P2」である。このSIP信号は、振分装置3に到着する。
シーケンスQ16において、振分装置3は、振分処理に於いて、受信したSIP信号のCall-IDヘッダの文字列「P2」からハッシュ値pを得て、ハッシュ値pに対応するサーバであるセッション・ボーダ・コントローラ2−1を振り分け先として選択する。
シーケンスQ17に於いて、振分装置3は、振り分け先であるセッション・ボーダ・コントローラ2−1に、200 OKレスポンスを送信する。
上記までの動作により、振分装置3は、これら2つのSIPダイアログD1,D2に係るセッション・ボーダ・コントローラ2−1を選択して、SIP信号を振り分けることができる。
シーケンスQ18に於いて、セッション・ボーダ・コントローラ2−1は、振分装置3を介して、SIPユーザ・エージェント4−1に対し、Call-IDヘッダが文字列「P1」である200 OKレスポンスを送信する。振分装置3は、この200 OKレスポンスを受信する。
シーケンスQ19に於いて、振分装置3は、SIPユーザ・エージェント4−1に、200 OKレスポンスを転送する。SIPユーザ・エージェント4−1は、200 OKレスポンスを受信する。これにより、SIPユーザ・エージェント4−1とSIPユーザ・エージェント4−2との間で、呼のセッションが確立する。
以下のシーケンスQ20〜Q22と、シーケンスQ28,Q29とは、SIPダイアログD3(第1のSIPダイアログ)に係る処理を示している。SIPダイアログD3(第1のSIPダイアログ)は、SIPユーザ・エージェント4−3と、セッション・ボーダ・コントローラ2−3との間で保持される関係である。
シーケンスQ20に於いて、SIPユーザ・エージェント4−3は、SIPユーザ・エージェント4−4と接続するために、ネットワーク内の振分装置3にSIP信号であるINVITEリクエストを送信する。このSIP信号中のダイアログ識別子は、Call-IDヘッダの文字列「Q1」とする。
シーケンスQ21に於いて、振分装置3は、振分処理を行い、当該SIP信号が含んでいるCall-IDヘッダの文字列「Q1」からハッシュ値qを得て、対応する振り分け先のサーバであるセッション・ボーダ・コントローラ2−3を選択する。
このように、シーケンスQ20で受信したINVITE信号のCall-IDヘッダの文字列「Q1」と、シーケンスQ10で受信したINVITE信号のCall-IDヘッダの文字列「P1」とは異なっており、かつ、これら文字列のハッシュ値も異なっている。よって、振分装置3は、これらINVITE信号を、それぞれ対応するセッション・ボーダ・コントローラ2−3に振り分けて、処理を分散することができる。
シーケンスQ22に於いて、振分装置3は、L7スイッチ部31により、ハッシュ値qに対応するセッション・ボーダ・コントローラ2−3を選択してINVITEリクエストを振り分ける。
その後、セッション・ボーダ・コントローラ2−3のセッション・ボーダ・コントローラ処理部23は、B2BUA処理を行い、SIPダイアログD3(第1のSIPダイアログ)とは異なる新たなSIPダイアログD4(第2のSIPダイアログ)を生成する。SIPダイアログD4(第2のSIPダイアログ)は、セッション・ボーダ・コントローラ2−3と、その接続先であるSIPユーザ・エージェント4−4との間で保持される関係である。セッション・ボーダ・コントローラ処理部23は、ハッシュ演算部32と連携して、ハッシュ値qであり、かつ、文字列「Q1」とは異なる新たな文字列「Q2」を生成し、新たなSIPダイアログD4に於ける識別子とする。
以下のシーケンスQ23〜Q27は、SIPダイアログD4(第2のSIPダイアログ)に係る処理を示している。
シーケンスQ23に於いて、セッション・ボーダ・コントローラ2−3は、シーケンスQ22で受信したINVITEリクエストを複製したのちに文字列「Q2」をCall-IDヘッダに設定し、このINVITEリクエストを送信する。
シーケンスQ24に於いて、振分装置3は、SIPユーザ・エージェント4−4に対してINVITEリクエストを転送する。SIPユーザ・エージェント4−4は、このINVITEリクエストを受信する。
シーケンスQ25に於いて、SIPユーザ・エージェント4−4は、SIPユーザ・エージェント4−3に向けて、SIP信号を送信する。この例では、SIP信号として、INVITEリクエストに対するレスポンスである200 OKレスポンスを返している。この200 OKレスポンスのCall-IDヘッダは、文字列「Q2」である。このSIP信号は、振分装置3に到着する。
シーケンスQ26において、振分装置3は、受信したSIP信号のCall-IDヘッダの文字列「Q2」からハッシュ値qを得て、ハッシュ値qに対応するサーバであるセッション・ボーダ・コントローラ2−3を振り分け先として選択する。
シーケンスQ27に於いて、振分装置3は、振り分け先であるセッション・ボーダ・コントローラ2−3に、200 OKレスポンスを送信する。
上記までの動作により、振分装置3は、これら2つのSIPダイアログD3,D4を処理すべきセッション・ボーダ・コントローラ2−3を適切に選択して、SIP信号を振り分けることができる。
シーケンスQ28に於いて、セッション・ボーダ・コントローラ2−3は、振分装置3を介して、SIPユーザ・エージェント4−3に対し、Call-IDヘッダが文字列「Q1」である200 OKレスポンスを送信する。振分装置3は、この200 OKレスポンスを受信する。
シーケンスQ29に於いて、振分装置3は、SIPユーザ・エージェント4−3に、200 OKレスポンスを転送する。SIPユーザ・エージェント4−3は、200 OKレスポンスを受信する。これにより、SIPユーザ・エージェント4−3とSIPユーザ・エージェント4−4との間で、呼のセッションが確立する。
図3(a),(b)は、INVITEリクエストのリクエスト行とヘッダを示す図である。図3(a)は、SIPダイアログD1に於いて、SIPユーザ・エージェント4−1から最初に送信されるINVITEリクエストを示している。図3(b)は、SIPダイアログD2に於いて、SIPユーザ・エージェント4−2が受信する、B2BUA処理に係る反対側のINVITEリクエストを示している。
図3(a)に示すように、1行目であるリクエスト行には、リクエストの内容を示す「INVITE」と、送信先のSIPユーザ・エージェント4−2を示すSIP-URI「sip:10.63.19.2」と、SIPのバージョンを示す「SIP/2.0」とが記載されている。
2行目には、Viaヘッダであることを示す「Via:」と、UDP(User Datagram Protocol)であることを示す「SIP/2.0/UDP」と、最初の経由地であり、かつ、送信元のSIPユーザ・エージェント4−1を示すSIP-URI「10.63.19.1」が記載されている。
3行目には、Fromヘッダであることを示す「From:」と、送信元のSIPユーザ・エージェント4−1を示すSIP-URI「Alice<sip:10.63.19.1>」が記載されている。
4行目には、Toヘッダであることを示す「To:」と、送信先のSIPユーザ・エージェント4−2を示すSIP-URI「Bob<sip:10.63.19.2>」が記載されている。
5行目には、Call-IDヘッダであることを示す「Call-ID:」と、このSIPダイアログD1の識別子である文字列「P1」が記載され、更に送信元のSIPユーザ・エージェント4−1のIPアドレスが「@」以降に記載されている。このCall-IDヘッダの文字列「P1」に基づいて、振分装置3は、いずれかのセッション・ボーダ・コントローラ2に、このINVITEリクエストを振り分けることができる。
以下、6行目以降の説明は、省略する。
図3(b)に示すB2BUA処理に係る反対側のINVITEリクエストの1〜5行目は、SIPユーザ・エージェント4−1により最初に送信された図3(a)に示すINVITEリクエストと同様に記載されている。しかし、B2BUA処理に係る反対側のINVITEリクエストの5行目のCall-IDヘッダは、図3(a)に示すINVITEリクエストとは異なっている。
5行目には、Call-IDヘッダであることを示す「Call-ID:」と、このSIPダイアログD2の識別子である文字列「P2」が記載され、更に、このINVITEリクエストを振り分けた振分装置3のIPアドレスが「@」以降に記載されている。文字列「P2」をハッシュ演算した振り分け先は、文字列「P1」をハッシュ演算した振り分け先と同一のセッション・ボーダ・コントローラ2−1である。
図4(a),(b)は、200 OKレスポンスのステータス行とヘッダを示す図である。図4(a)は、SIPダイアログD2に於いて、SIPユーザ・エージェント4−2から応答した、B2BUA処理に係る反対側の200 OKレスポンスを示している。図4(b)は、SIPダイアログD2に於いて、SIPユーザ・エージェント4−1が受信する200 OKレスポンスを示している。
図4(a)に示すように、1行目であるステータス行には、SIPのバージョンを示す「SIP/2.0」と、レスポンスの内容を示す「200 OK」とが記載されている。
2行目には、Viaヘッダであることを示す「Via:」と、UDPであることを示す「SIP/2.0/UDP」と、SIPユーザ・エージェント4−2を示すSIP-URI「10.63.19.2」とが記載されている。
3行目には、Toヘッダであることを示す「To:」と、SIPユーザ・エージェント4−2を示すSIP-URI「Bob<sip:10.63.19.2>」とが記載されている。
4行目には、Fromヘッダであることを示す「From:」と、SIPユーザ・エージェント4−1を示すSIP-URI「Alice<sip:10.63.19.1>」とが記載されている。
5行目には、Call-IDヘッダであることを示す「Call-ID:」と、このSIPダイアログD2の識別子である文字列「P2」が記載され、更にSIPユーザ・エージェント4−2のIPアドレスが「@」以降に記載されている。
このCall-IDヘッダの文字列「P2」に基づいて、振分装置3は、セッション・ボーダ・コントローラ2−1に、この200 OKレスポンスを振り分けることができる。
以下、6行目以降の説明は、省略する。
図4(b)に示す200 OKレスポンスの1〜4行目は、図4(a)に示す200 OKレスポンスと同様に記載されている。しかし、この200 OKレスポンスの5行目のCall-IDヘッダは、図4(a)に示す200 OKレスポンスとは異なっている。
5行目には、Call-IDヘッダであることを示す「Call-ID:」と、このSIPダイアログD1の識別子である文字列「P1」が記載され、更に振分装置3のIPアドレスが「@」以降に記載されている。
図5は、第1の実施形態に於ける振分装置3の振分処理を示すフローチャートである。
いずれかの装置からSIP信号を受信したならば、振分装置3は、振分処理を開始する。
ステップS10に於いて、振分装置3は、送信元がいずれであるかを判断する。振分装置3は、送信元がSIPユーザ・エージェント4ならば、ステップS11の処理を行い、送信元がセッション・ボーダ・コントローラ2ならば、ステップS14の処理を行う。
ステップS11に於いて、振分装置3は、ハッシュ演算部32により、SIPダイアログの識別子であるCall-IDヘッダの文字列のハッシュ値を演算する。
ステップS12に於いて、振分装置3は、ハッシュ値に基づいて振り分け先のセッション・ボーダ・コントローラ2を決定する。
ステップS13に於いて、振分装置3は、L7スイッチ部31により、受信したSIP信号を、決定したセッション・ボーダ・コントローラ2に振り分けて(転送)、図5の処理を終了する。
Call-IDヘッダの文字列は、どのSIPサーバでも削除されない。よって、振分装置3は、SIP信号を、そのCall-IDヘッダの文字列に基づいて、いずれかのセッション・ボーダ・コントローラ2に振り分けることができる。
ステップS14に於いて、振分装置3は、受信したSIP信号(メッセージ)を判断する。振分装置3は、受信したSIP信号がリクエストならば、ステップS15の処理を行い、受信したSIP信号がSIPのレスポンスならば、ステップS16の処理を行う。
ステップS15に於いて、振分装置3は、L7スイッチ部31により、受信したリクエストを、リクエスト行のURI(RequestURI)が示すSIPユーザ・エージェント4に転送し、図5の処理を終了する。なお、振分装置3は、リクエスト行のURIに限定されず、Routeヘッダが示すSIPユーザ・エージェント4に転送してもよい。
ステップS16に於いて、振分装置3は、L7スイッチ部31により、受信したレスポンスを、Viaヘッダが示すSIPユーザ・エージェント4に転送し、図5の処理を終了する。
このように、振分装置3は、セッション・ボーダ・コントローラ2からSIPユーザ・エージェント4に対しては、SIPの規格に準拠してSIP信号を転送している。よって、このSIP信号を、SIPに準拠したネットワーク9を経由して、SIPユーザ・エージェント4に送信することができる。
図6は、第1の実施形態に於けるセッション・ボーダ・コントローラ2の処理を示すフローチャートである。
振分装置3からSIP信号を振り分けられたならば、セッション・ボーダ・コントローラ2は、処理を開始する。
ステップS20に於いて、セッション・ボーダ・コントローラ2は、振り分けられたSIP信号を複製して、第2のSIPダイアログの新たなSIP信号とする。この第2のSIPダイアログは、振り分けられたSIP信号に係る第1のSIPダイアログのB2BUA処理の反対側のSIPダイアログである。これにより、セッション・ボーダ・コントローラ2は、このSIP信号による新たな第2のSIPダイアログを生成できる。
ステップS21に於いて、セッション・ボーダ・コントローラ2は、振り分けられたSIP信号の識別子は、識別子記憶部22に記憶済であるか否かを判断する。SIP信号が含む識別子とは、このSIP信号のCall-IDヘッダの文字列である。セッション・ボーダ・コントローラ2は、当該判断条件が成立しなかったならば(No)、ステップS22の処理を行い、当該判断条件が成立したならば(Yes)、ステップS27の処理を行う。
ステップS22に於いて、セッション・ボーダ・コントローラ2は、第2ハッシュ演算部211により、振り分けられたSIP信号が含む識別子のハッシュ値を演算する。
ステップS23に於いて、セッション・ボーダ・コントローラ2は、第2ハッシュ演算部211により、振り分けられたSIP信号が含む識別子とは異なる複数の候補値をハッシュ演算する。
ステップS24に於いて、セッション・ボーダ・コントローラ2は、振り分けられたSIP信号が含む識別子と同一の振り分け先となる候補値を、新たなSIP信号の識別子に設定する。これにより、セッション・ボーダ・コントローラ2は、振り分けられたSIP信号に係る第1のSIPダイアログと関連する新たなSIP信号を生成できる。
ステップS25に於いて、セッション・ボーダ・コントローラ2は、新たなSIP信号を振分装置3に送信する。この新たなSIP信号は、B2BUA処理に係る反対側のSIPダイアログに係るものである。これにより、セッション・ボーダ・コントローラ2は、このSIP信号による新たな第2のSIPダイアログを生成できる。更にセッション・ボーダ・コントローラ2は、第1のSIPダイアログと第2のSIPダイアログとを関連づけて処理することができる。
ステップS26に於いて、セッション・ボーダ・コントローラ2は、受信したSIP信号の識別子と、B2BUA処理に係る反対側のSIPダイアログ識別子との組合せを、識別子記憶部22に格納し、図6の処理を終了する。
このようにすることで、セッション・ボーダ・コントローラ2は、このSIP信号による新たな第2のSIPダイアログを生成する。この第2のSIPダイアログは、このセッション・ボーダ・コントローラ2と、SIPユーザ・エージェント4との間で保持される。更に、この第2のSIPダイアログの識別子のハッシュ値は、第1のSIPダイアログの識別子のハッシュ値と同一である。このように、セッション・ボーダ・コントローラ2は、第1のSIPダイアログと第2のSIPダイアログとを関連づけて処理することができる。
ステップS27に於いて、セッション・ボーダ・コントローラ2は、振り分けられたSIP信号の識別子に対応する、B2BUA処理に係る反対側のSIPダイアログの識別子を、識別子記憶部22から取得する。
ステップS28に於いて、セッション・ボーダ・コントローラ2は、B2BUA処理に係る反対側のSIPダイアログの識別子を、新たなSIP信号の識別子に設定する。
ステップS29に於いて、セッション・ボーダ・コントローラ2は、新たなSIP信号を振分装置3に送信し、図6の処理を終了する。
(第1の実施形態の効果)
(A) Call-IDヘッダの文字列は、SIPの基本的な識別子であり、必ずSIP信号で使用される。そのため、Call-IDの文字列は、どのSIPサーバでも削除されず、セッション・ボーダ・コントローラ2などで書き換えが行われても必ず復元される。振分装置3は、Call-IDヘッダの文字列に基づく同一のハッシュ値を介して、関連するSIPダイアログに係るリクエストやレスポンスを、同一のセッション・ボーダ・コントローラ2に振り分けることができる。
(B) 第1のSIPダイアログの識別子のハッシュ値と、この第1のダイアログと関連する第2のダイアログの識別子のハッシュ値とは同一である。これにより、セッション・ボーダ・コントローラ2は、第1のSIPダイアログと、この第1のSIPダイアログと関連する第2のSIPダイアログとを関連づけて処理することができる。
(第2の実施形態)
図7は、第2の実施形態に於けるアプリケーション・サーバのクラスタシステム1Aを示す概略の構成図である。
第2の実施形態のアプリケーション・サーバのクラスタシステム1Aは、複数のサーバとして、図1に示すセッション・ボーダ・コントローラ2とは異なるアプリケーション・サーバ2A−1〜2A−3を含んで構成される。以下、アプリケーション・サーバ2A−1〜2A−3を特に区別しないときには、単にアプリケーション・サーバ2Aと記載している場合があり、「AS」と図で記載している場合がある。
第2の実施形態のアプリケーション・サーバ2Aは、図1に示す第1の実施形態のセッション・ボーダ・コントローラ処理部23とは異なるアプリケーション・サーバ処理部23A(AS処理部)を備えている。アプリケーション・サーバ2Aは、アプリケーション・サーバ処理部23Aにより、フォローミー(follow-me)、フォーキング、転送などのサービスを、SIPユーザ・エージェント4に対して提供するものである。
フォローミーとは、複数の端末のいずれか1つから、単一の着信呼に応答可能とするサービスのことをいう。フォローミーのサービスにより、例えば、複数の事業所にオフィスがある場合は、それら複数のオフィスのデスクに内線用のIP電話を置いておき、特定の内線に呼び出しがあると、すべてを同時に鳴動させることができる。
フォーキングとは、単一のリクエストを複数の端末に送信する動作のことをいう。例えばフォローミーのサービスは、着信呼に係るINVITEリクエストを複数の端末に送信するフォーキング動作により、複数のIP電話を同時に鳴らしている。
転送とは、例えば、デスクにある内線のIP電話に出られない時に、別の内線である秘書のIP電話や、携帯電話へと転送するサービスのことをいう。
アプリケーション・サーバのクラスタシステム1Aによれば、これらフォーキング、フォローミー、転送などのサービスを提供する際に、各アプリケーション・サーバ2Aに分散処理を行わせることができると共に、着信呼に係る複数のSIPダイアログを関連づけて処理することができる。
図8は、第2の実施形態に於けるフォーキング動作を示す図である。
図8に示すシーケンスQ40〜Q45は、SIPユーザ・エージェント4−1が発信して、SIPユーザ・エージェント4−2,4−3にそれぞれ着信するものである。アプリケーション・サーバのクラスタシステム1Aは、発信に係るINVITEリクエストをフォーキングして、複数のSIPユーザ・エージェント4に送信する。
シーケンスQ40に於いて、SIPユーザ・エージェント4−1が、アプリケーション・サーバのクラスタシステム1Aの振分装置3にSIP信号(INVITEリクエスト)を送信する。当該SIP信号中のダイアログ識別子は、Call-IDヘッダの文字列「P1」である。当該SIP信号のリクエスト行には、SIPユーザ・エージェント4−2のSIP-URIが示されている。このとき、振分装置3は、受信したSIP信号中のダイアログ識別子であるCall-IDヘッダの文字列「P1」からハッシュ値pを算出する。
シーケンスQ41に於いて、振分装置3は、ハッシュ値pに対応するアプリケーション・サーバ2A−1を選択してSIP信号を振り分ける。
このとき、アプリケーション・サーバ2A−1のアプリケーション・サーバ処理部23Aは、ハッシュ演算部32と連携して、ハッシュ値pであり、かつ、文字列「P1」とは異なる新たな文字列「P2」と、文字列「P3」とを生成する。アプリケーション・サーバ処理部23Aは、受信したSIP信号(INVITEリクエスト)を複製してCall-IDヘッダを文字列「P2」に書き換える。アプリケーション・サーバ処理部23Aは更に、受信したSIP信号(INVITEリクエスト)を複製し、リクエスト行に示されたSIP-URIを、このSIP-URIに関連する端末であるSIPユーザ・エージェント4−3のSIP-URIに書き換える。
シーケンスQ42に於いて、アプリケーション・サーバ2A−1は、INVITEリクエストのCall-IDヘッダに、この文字列「P2」を設定し、振分装置3に送信する。
シーケンスQ43に於いて、振分装置3は、このINVITEリクエストを、リクエスト行に示されたSIP-URIに基づき、SIPユーザ・エージェント4−2に転送する。なお、振分装置3は、リクエスト行に示されたSIP-URIに限定されず、Routeヘッダが示すSIPユーザ・エージェント4に転送してもよい。
このINVITEリクエストのCall-IDヘッダには文字列「P2」が設定されているので、このINVITEリクエストに対するレスポンスのCall-IDヘッダにも文字列「P2」が設定される。これにより、振分装置3は、SIPユーザ・エージェント4−2からのレスポンスをアプリケーション・サーバ2A−1に振り分けることができる。
シーケンスQ44に於いて、アプリケーション・サーバ2A−1は、この文字列「P3」をCall-IDヘッダに設定したINVITEリクエストを、振分装置3に送信する。
シーケンスQ45に於いて、振分装置3は、このINVITEリクエストを、リクエスト行に示されたSIP-URIに基づき、SIPユーザ・エージェント4−3に転送する。なお、振分装置3は、リクエスト行に示されたSIP-URIに限定されず、Routeヘッダが示すSIPユーザ・エージェント4に転送してもよい。
このINVITEリクエストのCall-IDヘッダには文字列「P3」が設定されているので、このINVITEリクエストに対するレスポンスのCall-IDヘッダにも文字列「P3」が設定される。これにより、振分装置3は、SIPユーザ・エージェント4−3からのレスポンスをアプリケーション・サーバ2A−1に振り分けることができる。
アプリケーション・サーバ2AにSIP信号が振り分けられたときの処理は、図6に示す第1の実施形態に於けるセッション・ボーダ・コントローラ2の処理と同様である。
このようにすることで、アプリケーション・サーバ2Aは、第1の実施形態のセッション・ボーダ・コントローラ2と同様に、このSIP信号による新たな第2のSIPダイアログを生成できる。更に、この第2のSIPダイアログの識別子のハッシュ値は、第1のSIPダイアログの識別子のハッシュ値と同一である。よって、アプリケーション・サーバ2Aは、第1のSIPダイアログと第2のSIPダイアログとを関連づけて処理することができる。
(第2の実施形態の効果)
(C) フォローミー、フォーキング、転送などのサービスを提供するアプリケーション・サーバのクラスタシステム1Aは、関連する複数のSIPダイアログを同一のアプリケーション・サーバ2Aで扱えるようになる。
(D) これら複数のSIPダイアログの識別子から同一のハッシュ値が算出されるので、アプリケーション・サーバ2Aは、これら複数のSIPダイアログを関連づけて処理することができる。
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)〜(c)のようなものがある。
(a) ハッシュ演算部32や、第2ハッシュ演算部211が実行するハッシュ関数は、極めて簡単なものでよく、例えば、文字列コードの和をセッション・ボーダ・コントローラ2の数で除算した剰余としてもよい。
(b) ハッシュ演算部32や、第2ハッシュ演算部211が実行するハッシュ関数は、逆関数を有するものとしてもよい。これにより、振り分けられたSIP信号が含む識別子と同一の振り分け先となる候補値を、簡単かつ迅速に算出することができる。
(c) 振分装置3は、SIPの基本的なダイアログ識別子であるCall-IDヘッダの文字列に加えて、FromヘッダやToヘッダを組み合わせて振分処理をおこなってもよい。
1 セッション・ボーダ・コントローラのクラスタシステム
1A アプリケーション・サーバのクラスタシステム
2,2−1〜2−3 セッション・ボーダ・コントローラ
2A,2A−1〜2A−3 アプリケーション・サーバ
21 識別子算出部
211 第2ハッシュ演算部
22 識別子記憶部 (記憶部)
23 セッション・ボーダ・コントローラ処理部 (処理部)
23A アプリケーション・サーバ処理部 (処理部)
3 振分装置
31 L7スイッチ部 (スイッチ部)
32 ハッシュ演算部
4,4−1〜4−4 SIPユーザ・エージェント
9 ネットワーク
D1 SIPダイアログ (第1のSIPダイアログ)
D2 SIPダイアログ (第2のSIPダイアログ)
D3 SIPダイアログ (第1のSIPダイアログ)
D4 SIPダイアログ (第2のSIPダイアログ)

Claims (8)

  1. SIP(Session Initiation Protocol)ユーザ・エージェントとの間のSIPダイアログに係るSIP信号を処理する複数のセッション・ボーダ・コントローラと、
    前記SIPダイアログに係るSIP信号の識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記セッション・ボーダ・コントローラのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置と、
    を備えており、
    各前記セッション・ボーダ・コントローラは、
    振り分けられた第1のSIPダイアログに係るSIP信号の第1識別子とは異なり、かつ、前記第1識別子の第1ハッシュ値と同一の値がハッシュ演算される第2識別子を算出する識別子算出部と、
    前記第1のSIPダイアログに関連し、かつ、前記第2識別子で識別される第2のSIPダイアログを新たに生成する処理部と、
    を備えることを特徴とするセッション・ボーダ・コントローラのクラスタシステム。
  2. 前記識別子は、
    前記SIPダイアログに係るSIP信号が含むCall-IDヘッダである、
    ことを特徴とする請求項1に記載のセッション・ボーダ・コントローラのクラスタシステム。
  3. 前記振分装置の前記スイッチ部は、
    各前記セッション・ボーダ・コントローラから前記SIPダイアログに係るINVITEリクエストを受信したならば、Request-URIまたはRouteヘッダに基づいて転送し、
    各前記セッション・ボーダ・コントローラから前記SIPダイアログに係るレスポンスを受信したならば、Viaヘッダに基づいて転送する、
    ことを特徴とする請求項1に記載のセッション・ボーダ・コントローラのクラスタシステム。
  4. 前記識別子算出部は、
    前記振分装置の前記ハッシュ演算部と同一のハッシュ演算を行う第2ハッシュ演算部を有する、
    ことを特徴とする請求項1に記載のセッション・ボーダ・コントローラのクラスタシステム。
  5. 各前記セッション・ボーダ・コントローラは、それぞれ記憶部を備えており、
    前記処理部は、
    振り分けられた前記第1のSIPダイアログに関連する前記第2のSIPダイアログを新たに生成すると共に、前記第1識別子および前記第2識別子の組合せを前記記憶部に記憶し、
    前記記憶部に記憶した前記第2識別子を含むSIP信号が振り分けられたならば、当該第2識別子に対応する前記第1識別子を含むSIP信号を生成する、
    ことを特徴とする請求項1に記載のセッション・ボーダ・コントローラのクラスタシステム。
  6. SIPユーザ・エージェントとの間のSIPダイアログに係るSIP信号を処理する複数のアプリケーション・サーバと、
    前記SIPダイアログに係るSIP信号の識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記アプリケーション・サーバのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置と、
    を備えており、
    各前記アプリケーション・サーバは、
    振り分けられた第1のSIPダイアログに係るSIP信号の第1識別子とは異なり、かつ、前記第1識別子の第1ハッシュ値と同一の値がハッシュ演算される第2識別子を算出する識別子算出部と、
    前記第1のSIPダイアログに関連して、前記第2識別子を含む第2のSIPダイアログを新たに生成する処理部と、
    を備えることを特徴とするアプリケーション・サーバのクラスタシステム。
  7. SIPユーザ・エージェントとの間のSIPダイアログを処理する複数のセッション・ボーダ・コントローラと、
    前記SIPダイアログに係る識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記セッション・ボーダ・コントローラのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置と、
    を備えており、
    各前記セッション・ボーダ・コントローラは、
    振り分けられた第1のSIPダイアログのSIP信号が含む第1識別子をハッシュ演算して第1ハッシュ値を算出するステップと、
    前記第1識別子とは異なる複数の候補値をハッシュ演算するステップと、
    前記第1ハッシュ値と同一のハッシュ値が算出される第2識別子を得るステップと、
    前記第2識別子を含むSIP信号を前記振分装置に送信するステップと、
    を実行することを特徴とするセッション・ボーダ・コントローラのクラスタシステムのSIPダイアログ生成方法。
  8. SIPユーザ・エージェントとの間のSIPダイアログを処理する複数のアプリケーション・サーバと、
    前記SIPダイアログに係る識別子をハッシュ演算してハッシュ値を算出するハッシュ演算部、および、前記識別子のハッシュ値に基づき、複数の前記アプリケーション・サーバのいずれかに当該SIPダイアログに係るSIP信号を振り分けるスイッチ部を有する振分装置と、
    を備えており、
    各前記アプリケーション・サーバは、
    振り分けられた第1のSIPダイアログに係る第1識別子をハッシュ演算して第1ハッシュ値を算出するステップと、
    前記第1識別子とは異なる複数の候補値をハッシュ演算するステップと、
    前記第1ハッシュ値と同一のハッシュ値が算出される第2識別子を得るステップと、
    前記第2識別子を含むSIP信号を前記振分装置に送信するステップと、
    を実行することを特徴とするアプリケーション・サーバのクラスタシステムのSIPダイアログ生成方法。
JP2013117798A 2013-06-04 2013-06-04 セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法 Expired - Fee Related JP5941434B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013117798A JP5941434B2 (ja) 2013-06-04 2013-06-04 セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013117798A JP5941434B2 (ja) 2013-06-04 2013-06-04 セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法

Publications (2)

Publication Number Publication Date
JP2014235643A true JP2014235643A (ja) 2014-12-15
JP5941434B2 JP5941434B2 (ja) 2016-06-29

Family

ID=52138282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013117798A Expired - Fee Related JP5941434B2 (ja) 2013-06-04 2013-06-04 セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法

Country Status (1)

Country Link
JP (1) JP5941434B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654479B1 (ko) * 2015-09-25 2016-09-05 라인 가부시키가이샤 효율적인 호 처리를 위한 시스템 및 방법
KR101721379B1 (ko) * 2016-08-29 2017-03-29 라인 가부시키가이샤 효율적인 호 처리를 위한 시스템 및 방법
JP2017139645A (ja) * 2016-02-04 2017-08-10 日本電信電話株式会社 分散型呼制御システム、および、分散型呼制御方法
JP2019161603A (ja) * 2018-03-16 2019-09-19 株式会社東芝 負荷分散装置、負荷分散システム、プログラム及び負荷分散方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2900160B1 (fr) 2006-04-21 2008-05-30 Alcan Rhenalu Sa Procede de fabrication d'un element de structure pour construction aeronautique comprenant un ecrouissage differentiel

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
JP2010003273A (ja) * 2008-06-23 2010-01-07 Nippon Telegr & Teleph Corp <Ntt> Sipメッセージ振分方法およびsipメッセージ振分装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
JP2010003273A (ja) * 2008-06-23 2010-01-07 Nippon Telegr & Teleph Corp <Ntt> Sipメッセージ振分方法およびsipメッセージ振分装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654479B1 (ko) * 2015-09-25 2016-09-05 라인 가부시키가이샤 효율적인 호 처리를 위한 시스템 및 방법
JP2017139645A (ja) * 2016-02-04 2017-08-10 日本電信電話株式会社 分散型呼制御システム、および、分散型呼制御方法
KR101721379B1 (ko) * 2016-08-29 2017-03-29 라인 가부시키가이샤 효율적인 호 처리를 위한 시스템 및 방법
JP2019161603A (ja) * 2018-03-16 2019-09-19 株式会社東芝 負荷分散装置、負荷分散システム、プログラム及び負荷分散方法

Also Published As

Publication number Publication date
JP5941434B2 (ja) 2016-06-29

Similar Documents

Publication Publication Date Title
US8335852B2 (en) Contact destination information registration method, network system, node, and contact destination information registration program
CN100531098C (zh) 一种对等网络系统及重叠网间节点的互通方法
JP5941434B2 (ja) セッション・ボーダ・コントローラのクラスタシステム、アプリケーション・サーバのクラスタシステム、および、そのsipダイアログ生成方法
KR20060050710A (ko) 등록 식별자 재사용
KR20060092859A (ko) 루트 정보에 대한 저장 요건 감소 방법
US20080195753A1 (en) Relay apparatus, recording medium containing relay program, and communication system
CN110933180A (zh) 一种通信建立方法、装置、负载设备及存储介质
US20130219070A1 (en) Resolving device specific identifiers to a user identifier to initiate a dialog establishment with devices of a user
JP2017510116A (ja) 第1のユーザが第2のユーザのソーシャル・ネットワーク識別子およびそれらのソーシャル・ネットワークにおけるこの第2のユーザのそれぞれのステータスを自動的に検出できるようにする方法およびサーバ
CN113162865A (zh) 负载均衡方法、服务器和计算机存储介质
JP5444003B2 (ja) 分散ハッシングテーブルを使用したimsアーキテクチャ
JP4537250B2 (ja) ゲートウェイ装置
US20090204715A1 (en) Method and system for acquiring a transmission path of an sip message
JP2007219637A (ja) 負荷分散システムおよびそのプログラム
CN102469066B (zh) 一种消息处理方法及装置
US10834149B2 (en) Method and system for routing of session-based services
US10469539B2 (en) Implementing application level multimedia services as a switching function
CN102984168B (zh) 一种实现分布式软交换系统和ims系统互通的方法
Ali et al. Session initiation protocol
US20130326071A1 (en) Maintaining Session Initiation Protocol Application Session Affinity in SIP Container Cluster Environments
KR101310449B1 (ko) Sip 메시지의 분배 시스템 및 그 방법
WO2023276001A1 (ja) 負荷分散システム、負荷分散方法、および、負荷分散プログラム
JP5289345B2 (ja) アドレス変換装置、通信システム、メッセージ通信方法、及びプログラム
KR20080093725A (ko) 세션 설정 프로토콜 기반의 ip 멀티미디어 서비스를제공하는 단말장치, 호 세션 제어 기능 장치 및 이를이용한 서비스 요청 송/수신 방법
JP5009878B2 (ja) 通信事業者ネットワーク及びオーバレイネットワークを用いた呼接続方法、ピアノード及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160520

R150 Certificate of patent or registration of utility model

Ref document number: 5941434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees