JP2007157085A - Sipサーバ共有モジュール、sipメッセージ中継方式、プログラム - Google Patents

Sipサーバ共有モジュール、sipメッセージ中継方式、プログラム Download PDF

Info

Publication number
JP2007157085A
JP2007157085A JP2005355328A JP2005355328A JP2007157085A JP 2007157085 A JP2007157085 A JP 2007157085A JP 2005355328 A JP2005355328 A JP 2005355328A JP 2005355328 A JP2005355328 A JP 2005355328A JP 2007157085 A JP2007157085 A JP 2007157085A
Authority
JP
Japan
Prior art keywords
message
sip
address
group
client
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
JP2005355328A
Other languages
English (en)
Other versions
JP4154615B2 (ja
Inventor
Yuichi Ishikawa
雄一 石川
Akira Tsukamoto
明 塚本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2005355328A priority Critical patent/JP4154615B2/ja
Priority to US11/608,033 priority patent/US20070136413A1/en
Publication of JP2007157085A publication Critical patent/JP2007157085A/ja
Application granted granted Critical
Publication of JP4154615B2 publication Critical patent/JP4154615B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】特定のクライアントグループに所属する端末から送信されたSIPメッセージがグループに所属しない端末に転送されないようにすると共に、そのしたレスポンスが当該グループに所属しない端末に送信されないようにする。
【解決手段】メッセージ送信元グループ識別部は端末が送信したSIPメッセージをインターセプトし、送信元端末が所属するクライアントグループを識別する。グループタグ挿入部はメッセージ送信元グループ識別部が識別したグループに対応するグループタグをSIPメッセージに挿入する。グループタグ削除部はSIPプロキシサーバが送信したサーバ送信SIPメッセージからグループタグを削除する。メッセージ送信先グループ識別部はグループタグ削除部が削除したグループタグに対応するクライアントグループを識別し、サーバ送信SIPメッセージが当該グループに所属しないクライアント端末へ送信されることを防止する。
【選択図】図1

Description

本発明は、SIPサーバ共有モジュールに関し、特に複数のクライアントグループによるSIPプロキシサーバの安全な共同利用を可能とするSIPサーバ共有モジュールに関する。
従来、データセンタ内に設置されたWebキャッシュサーバやメールサーバ、データベースサーバ、SIP(Session Initiation Protocol)プロキシサーバ等のアプリケーションサーバを複数のクライアントグループで利用する方法としては、クライアントグループ毎にデータセンタ内にVLANを構築し、当該VLAN上に(クライアントグループ毎に)一つずつアプリケーションサーバを設置する方法が一般的に採られていた。しかしながら、この方法では、クライアントグループ毎にVLANの構築及びアプリケーションサーバの設置が必要となり、多数のクライアントグループをデータセンタに収容することがコスト上困難であった。
この問題を解決する方法としては、アプリケーションサーバの前段にクライアント端末とサーバ間でやり取りされる要求・応答の中継処理を行うモジュール(以下、共有モジュール)を配置し、共有モジュールによって複数のクライアントグループに単一のアプリケーションサーバを共同利用させる方法が考えられる。
共有モジュールは次の機能を具備する必要がある。
(1)共有モジュールは、単一のアプリケーションサーバを複数のクライアントグループに共同利用させつつも、各クライアントグループがあたかも自分専用のアプリケーションサーバを利用しているかのような安全性を提供できるように、クライアント端末とアプリケーションサーバ間でやり取りされる要求・応答の中継処理を行う必要がある。
(2)上記(1)を実現するため、共有モジュールにおいてクライアント端末とアプリケーションサーバの間でやり取りされる全ての要求・応答をインターセプトする必要がある。更に、インターセプトした要求・応答メッセージを本来の宛先であるクライアント端末やアプリケーションサーバに転送する必要がある。具体的には、以下の(a)(b)(c)の要求・応答メッセージがインターセプト及び転送の対象となる。
(a)クライアント端末からアプリケーションサーバに対して送信する要求メッセージ。
(b)アプリケーションサーバからクライアント端末に対して送信される応答メッセージ。
(c)アプリケーションサーバにおいて転送処理されたクライアント端末から他のクライアント端末に宛てて送信された要求メッセージ。
(1)を実現する方法としては、例えばWebキャッシュサーバを対象とした方法が従来提案されている。
この方法では、Webキャッシュサーバと同一のノード内に複数クライアントグループによるWebキャッシュサーバの共同利用を可能とする共有モジュールを設置する。このため、この方法では、(2)の要求・応答のインターセプトについては特に問題にならない。共有モジュールは、クライアント端末が閲覧したWebコンテンツをWebキャッシュサーバがキャッシュする際に、当該クライアント端末が所属するクライアントグループを識別し、キャッシュするコンテンツのURL(Universal Resource Locator)にクライアントグループを示すグループタグを挿入して、Webキャッシュサーバに渡す。例えば、クライアントグループ1に所属するクライアント端末が閲覧したURLがwww.a.com/index.htmlのコンテンツをキャッシュする際にはURLにグループタグgroup−1を挿入する。この結果、Webキャッシュサーバ上には、www.a.com−group1/index.htmlというURLでキャッシュされる。
また、クライアント端末がWebキャッシュサーバにキャッシュされたコンテンツを閲覧する際には、共有モジュールは当該クライアント端末が要求するコンテンツのURLに、当該クライアント端末が所属するクライアントグループを示すグループタグを挿入する。例えば、クライアントグループ2に所属するクライアント端末がURLがwww.a.com/index.htmlのコンテンツの閲覧を要求した場合、Webキャッシュサーバにはwww.a.com−group2/index.htmlというURLが渡され、このURLでWebキャッシュサーバはキャッシュされたコンテンツを検索する。検索後、共有モジュールはクライアント端末からの閲覧要求に対する応答を、閲覧要求送信元のクライアント端末に送信する。
これにより、特定のクライアントグループに所属するクライアント端末の閲覧要求によりキャッシュされたコンテンツは、当該クライアントグループのクライアント端末からしか利用することができなくなる。この結果、複数のクライアントグループで単一のWebキャッシュサーバを共同利用しているにも関わらず、各クライアントグループではあたかも自分専用のキャッシュサーバを利用しているかのような安全性を得ることが可能となる。
(2)を実現する方法としては、例えば、一般的なWebプロキシサーバソフトであるSquid等を用い、共有モジュールをいわゆるプロキシサーバとして動作させる方法がある。
この方法は、共有モジュールが、クライアント端末に対してはアプリケーションサーバとして振る舞い、アプリケーションサーバに対してはクライアント端末として振る舞うというものである。具体的には、共有モジュールが、クライアント端末から受信した要求を予め設定されたアプリケーションサーバに転送する。また、クライアント端末からの要求を転送する際に、当該要求の送信元となったクライアント端末を記憶しておき、当該要求に対する応答をアプリケーションサーバから受信した場合には、記憶しておいたクライアント端末へ転送する。
従来技術の第一の課題点は、上述した(1)を実現する従来技術では、アプリケーションサーバに登録される情報(Webキャッシュサーバにキャッシュされるコンテンツ)にグループタグを挿入しているため、以下の(A)(B)の問題が発生することである。
(A)クライアント端末がグループを移動した後は、当該クライアント端末の閲覧によってキャッシュされたコンテンツであっても、キャッシュされたコンテンツは利用することができない。グループ移動後は新たにコンテンツをキャッシュし直さなければならない。また、グループを移動した後であっても、当該クライアント端末の閲覧によってキャッシュされたコンテンツは、以前所属していたクライアントグループから閲覧することが可能である。
(B)クライアントグループを削除した場合は、Webキャッシュサーバからキャッシュされたコンテンツを明示的に消さない限り、不要なキャッシュコンテンツがずっとキャッシュサーバ上に残ってしまう。また、新たにクライアントグループを作成した場合は、新規作成したクライアントグループに参加するクライアント端末が参加前までに閲覧し、キャッシュされたコンテンツは新規クライアントグループから利用不可能であり、新たにコンテンツのキャッシュを行わなければならない。
上述した(1)を実現する従来技術をSIPに直接適用した場合、クライアント端末がREGISTERメッセージによってSIPプロキシサーバへ登録するURI(Universal Resource Indicator)にグループタグを挿入する形態になるが、このようにした場合は、上述の課題と同様に、クライアントグループ移動後はREGISTERメッセージを送信し直さなくてはならなかったり、移動しても明示的に以前登録したURIをSIPプロキシサーバから削除しない限り、自分が所属するクライアントグループの外からの発呼を受信してしまったりするといった問題がある。仮に、グループ移動後のREGISTERメッセージの再送信や登録済みエントリの削除等を行った場合、クライアント端末がグループを移動する度SIPプロキシサーバには当該処理に伴う負荷がかかってしまう。このように、従来技術ではクライアント端末の動的なクライアントグループ間の移動や、クライアントグループの動的な作成や削除に対応することができない。
従来技術の第二の課題点は、上述した(2)を実現する従来技術では、アプリケーションサーバからクライアント端末に向けた応答を、当該応答のトリガとなった要求を送信したクライアント端末に対して送信することにしているため、クライアント端末から要求を受信してから、その要求に対応する応答をサーバから受信し、クライアント端末に中継するまで、どのクライアント端末から要求を受信したかという情報を保持していなければならない点である。このため、大量の要求・応答の中継処理を同時に行う場合、共有モジュールで保持する情報量が膨大なものになり、共有モジュールにかかる負荷が大きい。
SIPの場合は、SIPプロキシサーバからクライアント端末へ送信される応答(レスポンスメッセージ)の中に応答送信先のクライアント端末の情報が記載されることになっているため、この情報を利用すれば共有モジュール上での情報保持は不要となるが、この情報は要求(リクエストメッセージ)送信元のクライアント端末からの自己申告を元に記載されるため、詐称されることもあり得る。詐称された場合、要求送信元とは無関係のクライアント端末に応答が送信されることになってしまう。
また、上述した(2)を実現する従来技術では、(c)で示したアプリケーションサーバにおいて転送処理されたクライアント端末から他のクライアント端末に宛てて送信された要求メッセージをインターセプトし、本来の宛先であるクライアント端末へ転送する機能が具備されていない。
関連する技術として、特開2004−30309号公報(特許文献1)に共有キャッシュサーバが開示されている。
この従来技術では、仮想的に分離された複数の仮想ネットワークが複数のグループに対応して構築された共通ネットワーク上に配設される共有キャッシュサーバが、記憶装置と、複数の仮想インタフェースと、アドレス変換機能と、キャッシュ機能とを備える。
この共有キャッシュサーバにおいて、記憶装置は、複数のグループに対応する複数の記憶領域のそれぞれでコンテンツを記憶する。仮想インタフェース(VIF)1、VIF2は、複数の仮想ネットワークに対応して配設される。アドレス変換機能は、クライアントからVIF1を介して、コンテンツを要求するパケットを受信すると、パケット中のIPアドレスの一部を、VIFに対応する内部アドレスに変換する。キャッシュ機能は、アドレス変換機能で変換された内部アドレスに基づいて、記憶装置の記憶領域から対応するグループのコンテンツを読み出す。
特開2005−33702号公報(特許文献2)に通信装置が開示されている。
この通信装置は、複数の仮想私設網とグローバルネットワークとが接続されるVPN収容装置に接続される通信装置であり、通信アプリケーションプラットフォームと、SIP Proxy手段と、通信アプリケーションプログラムとを有する。
前記通信アプリケーションプラットフォームは、前記VPN収容装置から受信したSIPメッセージを前記SIP Proxy手段に送信すると共に、前記SIP Proxy手段から受信したIPアドレスが変換されたSIPメッセージを前記VPN収容装置に送信する。
前記SIP Proxy手段は、前記通信アプリケーションプラットフォームから受信したSIPメッセージにSIP Proxy処理を施した後に、当該SIPメッセージを前記通信アプリケーションプログラムに送信すると共に、前記通信アプリケーションプログラムから受信したIPアドレスが変換されたSIPメッセージを、前記通信アプリケーションプラットフォームに送信する。
前記通信アプリケーションプログラムは、前記SIP Proxy手段から受信したSIPメッセージ内のIPアドレスを適切なアドレス体系のIPアドレスに変換し、当該IPアドレスを変換したSIPメッセージを前記SIP Proxy手段に送信する。
特開2005−20080号公報(特許文献3)に加入者端末間通信システムが開示されている。
この従来技術では、VLAN環境下における加入者端末間通信システムにおいて、IP電話の呼設定をするためのインターネットプロトコルを実行するSIPサーバが、メディアスイッチ手段と、変換テーブルとを具備する。
メディアスイッチ手段は、VLANに接続されている加入者端末からの呼制御メッセージ内にメディア信号の受信先として指定している自加入者端末のIPアドレスとポート番号を、プールされている使用可能なSIPサーバのIPアドレスとポート番号に書き換える。変換テーブルは、前記書き換えた対応付け情報を保存する。なお、前記メディアスイッチ手段は、メディア信号通信時には、前記加入者端末から受信したSIPサーバのIPアドレスとポート番号宛のメディア信号を、前記変換テーブルを元に変換した相手加入者端末のIPアドレスとポート番号宛に送信する。
特開2004−179853号公報(特許文献4)にサーバ装置が開示されている。
この従来技術では、同じIPアドレスを持つ可能性のある複数の仮想閉域網のそれぞれの網と通信可能なサーバ装置が、受信パケットのレイヤ2フレーム内にある送信元である通信装置の物理アドレスを記憶する手段と、該受信パケットに対する応答パケットを送信するときに、応答先のIPアドレスに関係なく、前記手段で記憶した該物理アドレスを該応答パケットの宛先レイヤ2アドレスとして設定する設定手段を備える。
特開2004−165823号公報(特許文献5)にIPアドレス変換装置が開示されている。
このIPアドレス変換装置は、受信手段と、抽出手段と、判別手段と、置換手段と、対応管理表と、変換手段と、送信手段とを備える。
受信手段は、SIPメッセージを受信する。抽出手段は、前記受信手段で受信したSIPメッセージ内のIPアドレス情報を抽出する。判別手段は、前記抽出手段で抽出されたIPアドレス情報にIPアドレスが含まれるか否かを判断し、前記抽出されたIPアドレス情報にIPアドレスが含まれる場合に、前記抽出されたIPアドレスの仮想IPアドレスへの変換の要否を判別する。置換手段は、前記判別手段で、仮想IPアドレスへ変換する必要がないと判別されたIPアドレスを、IPアドレス識別情報に置き換える。対応管理表は、前記置換手段で置き換えられたIPアドレス識別情報は、。IPアドレスとの対応関係を登録する。変換手段は、前記判別手段で、仮想IPアドレスへ変換する必要があると判別されたIPアドレスを、仮想IPアドレスに変換する。送信手段は、IPアドレス情報が変更されたSIPメッセージを送信する。
特開2004−147195号公報(特許文献6)に音声通信方法が開示されている。
この音声通信方法において、送信元端末装置は該送信元端末装置を管理する第1のゲート装置へ呼接続要求を送信する。前記呼接続要求を受けた第1のゲート装置は、第1の呼制御情報を公衆電話網を介して送信先端末装置を管理する第2のゲート装置へ送信する。前記第2のゲート装置は送信先端末装置へ呼接続要求を送信する。前記送信先端末装置は通話可能か否かの返答を前記第2のゲート装置へ送信する。前記送信先端末装置から通話可能の返答を受けた場合に、前記第2のゲート装置は第2の呼制御情報を前記公衆電話網を介して前記第1のゲート装置へ送信すると共に、IPネットワークに接続されているポートをオープンする。前記第1のゲート装置は前記第2のゲート装置からの第2の呼制御情報を受けて前記IPネットワークに接続されているポートをオープンする。前記送信元端末装置及び送信先端末装置は、前記第1、第2のゲート装置のオープンされたポート及び前記IPネットワークを介してパケット通信による通話を行う。
特開2004−30309号公報 特開2005−33702号公報 特開2005−20080号公報 特開2004−179853号公報 特開2004−165823号公報 特開2004−147195号公報
本発明の目的は、SIPプロキシサーバ(単一でも複数でも良い)を複数のクライアントグループで共同利用させながら、あたかも各クライアントグループが自分専用のSIPプロキシサーバを利用しているかのような安全性を提供するSIPサーバ共有モジュールを提供することにある。
本発明の他の目的は、クライアント端末が所属するクライアントグループを移動した際に、REGISTERメッセージの再度送や登録済みのURIを削除することなく、移動先クライアントグループからの着呼等の受信や移動前に所属していたクライアントグループからの着呼等の拒否を可能とすることで、クライアント端末のクライアントグループ間の動的な移動や、クライアントグループの動的な作成、削除に対応するSIPサーバ共有モジュールを提供することにある。
本発明の更に他の目的は、共有モジュールが要求送信元端末の情報を保持することなく、SIPプロキシサーバから送信される応答や転送される要求を、当該応答や要求のトリガとなった要求の送信元クライアント端末が所属するクライアントグループの外に送信されることを防ぐSIPサーバ共有モジュールを提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のSIPサーバ共有モジュール(100)は、複数のクライアントグループ(300)と前記複数のクライアントグループ(300)が利用するSIPプロキシサーバ(200)との間で送受信されるSIPメッセージの中継を行うSIPサーバ共有モジュール(100)であって、
前記SIPメッセージのうち、前記複数のクライアントグループの各々(300)に所属するクライアント端末(311)から前記SIPプロキシサーバ(200)へ送信されるクライアント送信SIPメッセージから、前記クライアント送信SIPメッセージを送信したクライアント端末(311)が所属するクライアントグループ(300)を識別するメッセージ送信元グループ識別部(110)と、前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)に対応するグループタグを前記クライアント送信SIPメッセージに挿入するグループタグ挿入部(121)と、前記SIPメッセージのうち、前記SIPプロキシサーバ(200)から前記クライアントグループ(300)に所属するクライアント端末(311)へ送信されるサーバ送信SIPメッセージに対して、前記サーバ送信SIPメッセージに含まれるグループタグの削除を行うグループタグ削除部(122)と、前記サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループ(300)と異なるクライアントグループ(300)に所属するクライアント端末(311)に前記サーバ送信SIPメッセージが送信されることを防止するメッセージ送信先グループ識別部(150)とを有する。
前記メッセージ送信先グループ識別部(150)は、前記サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループ(300)と、前記サーバ送信SIPメッセージの実際の送信先クライアント端末(311)が所属するクライアントグループ(300)とが一致する場合、前記サーバ送信SIPメッセージを前記送信先クライアント端末(311)へ転送する。
前記メッセージ送信先グループ識別部(150)は、当該SIPサーバ共有モジュール(100)が配置されたノードに複数の仮想的又は物理的ネットワークインタフェースが存在する場合、前記SIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ(300)毎に異なるネットワークインタフェースを指定して、前記SIPサーバ送信メッセージを送信する。
前記メッセージ送信先グループ識別部(150)は、前記サーバ送信SIPメッセージのIPヘッダ又はUDPヘッダに含まれるパラメタを、前記SIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ(300)毎に異なるパラメタ領域に変換した後、前記サーバ送信SIPメッセージを送信先クライアント端末(311)に転送する。
前記グループタグ挿入部(121)は、前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)に対応するグループタグを、前記クライアント送信SIPメッセージに含まれるパラメタのうち、SIPプロキシサーバ(200)へ登録するURIが含まれず、且つ、SIPプロキシサーバ(200)における転送処理により消去されず、且つ、リクエストメッセージと前記リクエストメッセージを受信した際にSIPプロキシサーバ(200)が送信するレスポンスメッセージとで同じ値が記載される、という条件を満たすいずれかのパラメタに対して挿入する。
前記グループタグ挿入部(121)は、前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)に対応するグループタグを、前記クライアント送信SIPメッセージのヘッダ部分に含まれるURIのうちユーザ識別子の部分に挿入する。
前記グループタグ挿入部(121)は、前記クライアント送信SIPメッセージが前記SIPプロキシサーバ(200)に対してプレゼンス情報を通知するメッセージである場合、前記クライアント送信SIPメッセージのボディ部分にも更にグループタグを挿入する。
前記グループタグ挿入部(121)は、前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)が複数の場合、前記クライアント送信SIPメッセージのコピーを前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)数分作成し、前記コピーのそれぞれに対して前記メッセージ送信元グループ識別部(110)が識別したクライアントグループ(300)に対応するグループタグを挿入する。
前記グループタグ挿入部(121)は、更に、前記クライアント送信SIPメッセージがリクエストメッセージである場合、SIPサーバ共有モジュール(100)が配置されたノードのIPアドレス及び前記SIPメッセージの待ち受けに利用するポート番号を前記クライアント送信SIPメッセージのViaヘッダへ追記し、
前記グループタグ削除部(122)は、更に、前記サーバ送信SIPメッセージがレスポンスメッセージである場合、前記サーバ送信SIPメッセージのViaヘッダに記載されたSIPサーバ共有モジュール(100)が配置されたノードのIPアドレス及びSIPサーバ共有モジュール(100)がSIPメッセージの待ち受けに利用するポート番号を削除すると共に、前記サーバ送信SIPメッセージのViaヘッダに記載されたクライアント端末(311)のIPアドレス及びポート番号を前記サーバ送信SIPメッセージのIPヘッダの宛先IPアドレスとUDPヘッダの宛先ポート番号に設定する。
本発明のSIPサーバ共有モジュール(100)は、アドレス変換ルールと、アドレス変換部(130)と
を更に有し、
前記アドレス変換ルールには、前記クライアント端末(311)がREGISTERメッセージによって前記SIPプロキシサーバ(200)への登録を要求するアドレスであるオリジナルアドレスと、前記SIPプロキシサーバ(200)が送信するSIPメッセージの宛先アドレスに設定された場合に前記SIPメッセージをインターセプトするためのアドレスであるインターセプトアドレスとを相互に変換するアドレス変換方法が記載されており、
前記アドレス変換部(130)は、前記クライアント送信SIPメッセージがREGISTERメッセージである場合、前記クライアント送信SIPメッセージのContactヘッダに含まれるオリジナルアドレスを、前記アドレス変換ルールを参照してインターセプトアドレスに変換し、前記サーバ送信SIPメッセージがREGISTERメッセージに対するレスポンスメッセージである場合、前記サーバ送信SIPメッセージのContactヘッダに含まれるインターセプトアドレスを、前記アドレス変換ルールを参照してオリジナルアドレスに変換し、前記サーバ送信SIPメッセージがリクエストメッセージである場合、前記サーバ送信SIPメッセージのIPヘッダ及びUDPヘッダに指定されているインターセプトアドレスを、前記アドレス変換ルールを参照してオリジナルアドレスに変換する。
前記アドレス変換方法は、Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaと、Nビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbとを相互に変換するアドレス変換方法であって、前記アドレスaを前記アドレスbに変換する際には、前記アドレスaのIPアドレスのうちX<Nを満たすXビット分を前記アドレスbのIPアドレスにマッピングし、残りのM−Xビット分を前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングし、前記アドレスbを前記アドレスaに変換する際には、前記アドレスbのIPアドレスのうちXビット分と前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせて前記アドレスaのIPアドレスに変換することを特徴とする。
前記アドレス変換ルールは、インターセプトアドレスとして、前記SIPプロキシサーバ(200)においてSIPサーバ共有モジュール(100)がゲートウェイとして設定されているIPアドレス領域を利用することを特徴とする。
前記アドレス変換ルールは、インターセプトアドレスとして、ローカルループバックアドレス領域に含まれるIPアドレス領域を利用することを特徴とする。
本発明のアドレス変換方法は、Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレス、及びUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaと、Nビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレス、及びUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbとを相互に変換するアドレス変換方法であって、(A)前記アドレスaを前記アドレスbに変換する際には、前記アドレスaのIPアドレスのうちX<Nを満たすXビット分を前記アドレスbのIPアドレスにマッピングするステップと、(B)前記アドレスaのIPアドレスのうち残りのM−Xビット分を前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングするステップと、(C)前記アドレスbを前記アドレスaに変換する際には、前記アドレスbのIPアドレスのうちXビット分と前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせて前記アドレスaのIPアドレスに変換するステップとを具備する。
本発明のSIPメッセージ中継方式は、(a)メッセージを受信した場合、前記メッセージがクライアント端末(311)から送信されたメッセージかSIPプロキシサーバ(200)から送信されたメッセージかを判別するステップと、(b)前記受信したメッセージが前記クライアント端末(311)から送信されたメッセージの場合、アドレス変換が必要か否かを判断するステップと、(c)アドレス変換が必要ない場合、特に処理を行わず前記クライアント端末(311)から送信されたメッセージを前記SIPプロキシサーバ(200)へ転送するステップと、(d)アドレス変換が必要な場合、前記クライアント端末(311)から送信されたメッセージがREGISTERメッセージか否かを判断するステップと、(e)前記クライアント端末(311)から送信されたメッセージがREGISTERメッセージである場合、ヘッダ部分のContactヘッダに含まれるIPアドレス又はポート番号といったオリジナルアドレスを順方向変換するステップと、(f)順方向変換後、前記SIPプロキシサーバ(200)へREGISTERメッセージを送信するステップとを具備する。
本発明のSIPメッセージ中継方式は、(g)前記受信したメッセージが前記SIPプロキシサーバ(200)から送信されたメッセージの場合、アドレス変換が必要か否かを判断するステップと、(h)アドレス変換が不要な場合、前記SIPプロキシサーバ(200)から送信されたメッセージに含まれるグループタグの削除を行うステップと、(i)アドレス変換が必要な場合、前記SIPプロキシサーバ(200)から送信されたメッセージがリクエストメッセージであるか否かを判断するステップと、(j)前記SIPプロキシサーバ(200)から送信されたメッセージがリクエストメッセージである場合、当該SIPメッセージが前記クライアント端末(311)へ転送されるように、SIPメッセージのIPヘッダの宛先アドレス又は宛先ポート番号をインターセプトアドレスから前記オリジナルアドレスへ逆方向変換するステップと、(k)逆方向変換後、前記SIPプロキシサーバ(200)から送信されたメッセージに含まれるグループタグの削除を行うステップとを更に具備する。
本発明のSIPメッセージ中継方式は、(l)前記SIPプロキシサーバ(200)から送信されたメッセージがレスポンスメッセージの場合、REGISTERメッセージ対するレスポンスメッセージであるか否かを判断するステップと、(m)前記SIPプロキシサーバ(200)から送信されたメッセージがREGISTERメッセージ対するレスポンスメッセージの場合、Contactヘッダに含まれるIPアドレス又はポート番号であるインターセプトアドレスを、前記オリジナルアドレスに逆方向変換するステップと、(n)逆方向変換後、前記SIPプロキシサーバ(200)から送信されたメッセージに含まれるグループタグの削除を行うステップとを更に具備する。
本発明のプログラムは、上記のいずれかのSIPメッセージ中継方式をコンピュータに実行させる。
第一の効果は、クライアント端末とSIPプロキシサーバの間で頻繁にメッセージの交換が行われる環境においても、複数のクライアントグループによる安全なSIPプロキシサーバの共同利用を可能にすることである。その理由は、本発明のSIPサーバ共有モジュールはSIPメッセージのうち、クライアント端末からSIPプロキシサーバへ送信されるクライアント送信SIPメッセージから、クライアント送信SIPメッセージを送信したクライアント端末が所属するクライアントグループを識別するメッセージ送信元グループ識別部と、メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグをクライアント送信SIPメッセージに挿入するグループタグ挿入部と、SIPメッセージのうち、SIPプロキシサーバからクライアントグループに所属するクライアント端末へ送信されるサーバ送信SIPメッセージに対して、サーバ送信SIPメッセージに含まれるグループタグの削除を行うグループタグ削除部と、サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループと異なるクライアントグループに所属するクライアント端末にサーバ送信SIPメッセージが送信されることを防止するメッセージ送信先グループ識別部を有し、クライアント端末からリクエストメッセージを受信した際に、どのクライアント端末からリクエストメッセージを受信したかという情報を保持していなくても、特定のクライアントグループに所属するクライアント端末から送信されたリクエストメッセージが当該クライアントグループ以外のクライアントグループに所属するクライアント端末に転送されることを防ぎ、更に、当該リクエストメッセージに対するレスポンスメッセージが当該クライアントグループ以外のクライアントグループに所属するクライアント端末に送信されることを防ぐことが可能なためである。
第二の効果は、クライアント端末のクライアントグループ間の動的な移動やクライアントグループの動的な作成、削除に対応できることである。具体的には、クライアント端末のクライアントグループの移動や、クライアントグループ作成や削除があってもSIPプロキシサーバに登録されているSIP URIやコンタクトアドレスの情報を変更する必要がない。その理由は、本発明のSIPサーバ共有モジュールのグループタグ挿入部は、クライアントグループに対応するグループタグをクライアント送信SIPメッセージに含まれるパラメタ(Parameter)のうち、以下の全ての条件を満たすいずれかのパラメタに対してグループタグを挿入するためである。
「条件」
(1)SIP URIが含まれない。
(2)SIPプロキシサーバにおける転送処理により消去されない。
(3)リクエストメッセージと前記リクエストメッセージを受信した際に前記SIPプロキシサーバが送信するレスポンスメッセージとで同じ値が記載される。
第三の効果は、特定のクライアントグループに所属するクライアント端末から通知されたプレゼンス情報が、当該クライアントグループ以外のクライアントグループに所属するクライアント端末へ通知されることを防止することが可能であることである。その理由は、本発明のSIPサーバ共有モジュールのグループタグ挿入部は、クライアント送信SIPメッセージがプレゼンス情報を通知するメッセージである場合には、前記クライアント送信SIPメッセージのボディ部分にもグループタグを挿入するためである。
第四の効果は、クライアント端末が複数のクライアントグループに所属する場合においても、当該クライアント端末が所属するクライアントグループ以外のクライアントグループに所属するクライアント端末には、当該クライアント端末が送信したリクエストメッセージが転送されたり、リクエストメッセージに対するレスポンスメッセージが送信されたりすることを防ぐことである。その理由は、本発明のSIPサーバ共有モジュールのグループタグ挿入部は、メッセージ送信元グループ識別部が識別したクライアントグループが複数の場合は、クライアント送信SIPメッセージのコピーをメッセージ送信元グループ識別部が識別したクライアントグループ数分作成し、コピーのそれぞれに対してメッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを挿入するためである。
第五の効果は、SIPプロキシサーバとSIPサーバ共有モジュールの間にトンネリングリンクが構築されていない場合でもSIPプロキシサーバから送信されたレスポンスメッセージをSIPサーバ共有モジュールでインターセプトできることである。その理由は、本発明のSIPサーバ共有モジュールのグループタグ挿入部は更に、クライアント送信SIPメッセージがリクエストメッセージである場合に、SIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号をクライアント送信SIPメッセージのViaヘッダへ追記し、グループタグ削除部は、更に、サーバ送信SIPメッセージがレスポンスメッセージである場合に、サーバ送信SIPメッセージのViaヘッダに記載されたSIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号を削除すると共に、サーバ送信SIPメッセージのViaヘッダに記載されたクライアント端末のIPアドレス及びポート番号をサーバ送信SIPメッセージのIPヘッダの宛先IPアドレスとUDPヘッダの宛先ポート番号に設定するためである。
第六の効果は、SIPプロキシサーバとSIPサーバ共有モジュールの間にトンネリングリンクが構築されていない場合でもSIPプロキシサーバからクライアント端末へ送信されたリクエストメッセージをSIPサーバ共有モジュールでインターセプトできることである。
その理由は、本発明のSIPサーバ共有モジュールは、クライアント端末がREGISTERメッセージによってSIPプロキシサーバへの登録を要求するアドレスであるオリジナルアドレスと、SIPプロキシサーバが送信するSIPメッセージの宛先アドレスに設定された場合に、当該SIPメッセージをSIPサーバ共有モジュールがインターセプト可能となるアドレスであるインターセプトアドレスとを相互に変換するアドレス変換方法が記載されたアドレス変換ルールと、クライアント送信SIPメッセージがREGISTERメッセージである場合には、クライアント送信SIPメッセージのContactヘッダに含まれるオリジナルアドレスを、アドレス変換ルールを参照してインターセプトアドレスに変換し、サーバ送信SIPメッセージがREGISTERメッセージに対するレスポンスメッセージである場合には、サーバ送信SIPメッセージのContactヘッダに含まれるインターセプトアドレスを、アドレス変換ルールを参照してオリジナルアドレスに変換し、サーバ送信SIPメッセージがリクエストメッセージである場合には、サーバ送信SIPメッセージのIPヘッダ及びUDPヘッダに指定されているインターセプトアドレスを、前記アドレス変換ルールを参照してオリジナルアドレスに変換するアドレス変換部を更に有しているためである。
第七の効果は、インターセプト用アドレスとして確保できるIPアドレス領域がオリジナルアドレスの取り得るIPアドレス領域よりも狭い場合であっても、SIPプロキシサーバから送信されたSIPメッセージに含まれるインターセプトアドレスを一意のオリジナルアドレスへ逆方向変換できることである。
その理由は、本発明のSIPサーバ共有モジュールのアドレス変換ルールには、Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaとNビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbとを相互に変換するアドレス変換方法であって、アドレスaをアドレスbに変換する際には、アドレスaのIPアドレスのうちX<Nを満たすXビット分をアドレスbのIPアドレスにマッピングし、のこりのM−Xビット分をアドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングし、アドレスbをアドレスaに変換する際には、アドレスbのIPアドレスのうちXビット分とアドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせてアドレスaのIPアドレスに変換することを特徴とするアドレス変換方法が記載されるためである。
以下に本発明の第1実施形態について添付図面を参照して説明する。
本発明の第一の実施の形態を図面を用いて説明する。
図1に示すように、本発明におけるSIP(Session Initiation Protocol)通信網は、SIPサーバ共有モジュール100と、SIPプロキシサーバ200と、クライアントグループ300とを有する。
SIPサーバ共有モジュール100は、複数のクライアントグループ300(300−i、i=1〜n:nはグループ数)と、クライアントグループに所属する各クライアント端末が共同利用するSIPプロキシサーバ200との間に位置し、クライアント端末とSIPプロキシサーバ200の間でやり取りされるメッセージの中継処理を行う。
SIPプロキシサーバ200は、以下の(処理1)から(処理4)までの処理を行うサーバである。実装によっては(処理2)から(処理4)までのいずれかの処理を行う機能が実装されていなかったり、(処理1)から(処理4)以外の処理を行う機能が実装されたりする場合もあるが、以下ではそうしたサーバも含めてSIPプロキシサーバと呼ぶ。
(処理1)クライアント端末情報の登録処理
クライアント端末から登録メッセージ(REGISTERメッセージ)を受信し、クライアント端末のSIP URI(Universal Resource Indicator)とコンタクトアドレス(クライアント端末のIPアドレス及びSIP用待ち受けポート番号)をデータベースに登録する。登録メッセージにはコンタクトアドレスの付加情報として、クライアント端末の利用目的や特徴に関する情報が含まれる場合もある。
(処理2)クライアント端末間のメッセージ転送処理
クライアント端末から他のクライアント端末へ送信されたメッセージを転送する。転送を行うメッセージには主に呼の確立・終了・転送等の呼制御を行うためのメッセージ(INVITEメッセージ、REFERメッセージ、BYEメッセージ、CANCELメッセージ等)(2−1)、クライアント端末の状態(プレゼンス情報)を通知するためのメッセージ(PUBLISHメッセージ、NOTIFYメッセージ等)(2−2)、クライアント端末間で主にチャット等を行う際に任意の情報をやり取りするメッセージ(MESSAGEメッセージ等)(2−3)や、前述の目的によらず、クライアント端末間でのメッセージの到達を確認するための汎用的なメッセージ(ACKメッセージ等)(2−4)等が含まれる。
(処理3)情報通知のための登録要求の処理
クライアント端末が特定の情報(例えば、他のクライアント端末のプレゼンス情報)を受信するために送信する登録要求メッセージ(SUBSCRIBEメッセージ等)を受けつける。
(処理4)クライアント端末情報の問い合わせに対する回答処理
クライアント端末からの要求メッセージ(OPTIONSメッセージ等)により、他のクライアント端末の登録情報を回答する。
SIPプロキシサーバ200は(処理1)で登録された情報に基づき、(処理2)から(処理4)までの処理を行うことを特徴とする。(処理2)では、クライアント端末から送信されたメッセージの宛先は送信先のクライアント端末のSIP URIで表され、(処理1)で登録された情報を元に宛先クライアント端末のSIP URIに対応するコンタクトアドレスを解決し、当該コンタクトアドレスに対してメッセージを転送する。(処理3)では、受信したい情報がSIP URIで指定され、当該SIP URIと受信を要求したクライアント端末の関係が(処理1)の情報を元に登録される。(処理4)では、問い合わせ対象のクライアント端末がSIP URIで表され、(処理1)で登録された情報を元に問い合わされたSIP URIに該当する登録情報を回答する。
SIPプロキシサーバ200は上記(処理1)から(処理4)の処理を要求するメッセージ(REGISTER,INVITE、REFER、BYE、CANCEL、PUBLISH、MESSAGE、ACK、SUBSCRIBE、OPTIONS等のメッセージ、一般にリクエストメッセージと呼ばれる)を受信すると、処理結果をレスポンスメッセージによって要求元に通知する。
クライアント端末311はパソコンに限らず、IP電話端末、情報家電等、SIPプロトコルに対応したアプリケーション(SIP UA(User Agent))を搭載した端末である。クライアント端末は他の複数のクライアント端末とクライアントグループを形成する。
クライアントグループ300は同一グループに属さないクライアント端末との通話やメッセージ交換、プレゼンス情報の通知、登録情報の開示等を望まないクライアント端末の集合である。本発明ではクライアントグループとして、以下で説明するネットワークレベルのクライアントグループとアプリケーションレベルのクライアントグループを対象とする。
ネットワークレベルのクライアントグループとは、例えば同一の企業イントラネットや企業内の部門イントラネット等に接続したクライアント端末のように、同じネットワークに接続する他の端末とのみ接続性が確保され、外部のネットワークとの接続性がない(又はWebやMailなどごく限られたアプリケーションによる接続性しか有さない)閉じたネットワークに接続しているクライアント端末のグループである。ネットワークレベルのグループは、ネットワークが特定されれば一意にクライアントグループが特定される。ネットワークレベルのクライアントグループとしては前述した企業イントラネットや部門イントラネットなどの他に、例えばSoftetherやEmotionLink等のように公衆網上をグループ内の他のクライアント端末とIPSecトンネルやSSLトンネル等を利用して接続することで、仮想的に閉じたネットワークを形成しているグループも含まれる。
ネットワークレベルのクライアントグループがSIPプロキシサーバ200との通信を行う際のネットワーク構成例を図2に示す。図2では、クライアントグループ300は個々のプライベート網(同一の企業イントラネットや企業内の部門イントラネット等や公衆網上を同一クライアントグループに参加するクライアント端末がIPSecトンネルやSSLトンネル等を利用して接続することで形成される仮想的に閉じたネットワーク)と対応しており、インターネット等の公衆網500上においてIPSecやSSL等により通信の安全性が確保されたVPNトンネルによりSIPプロキシサーバ200が配置されたデータセンタネットワーク600と接続している。VPNゲートウェイ400は公衆網500とデータセンタネットワーク600の間に位置し、VPNトンネルの終端処理をする。VPNゲートウェイ400は公衆網側に接続するVPN側インタフェース(IF)420とデータセンタネットワーク600に接続するデータセンタ側IF430を有している。また、VPN側IF420は更に仮想的に複数のIF(仮想インタフェース(VIF))421(421−i、i=1〜n)を有しており、それぞれのVIFは各プライベート網300とVPNトンネルを介して接続している。VPN終端部410はVPNトンネルの終端処理を行う機能を有しており、更に、例えば、図3に示すようなパケット転送ルールを参照してVPNトンネルを経由してプライベート網300から受信したパケットにアドレス変換処理を行ってデータセンタネットワーク600へ転送したり、データセンタネットワーク600側から受信したパケットをヘッダ情報に基づいてプライベート網300に転送したりする機能を有する。
一方、アプリケーションレベルのクライアントグループとは、グループウェアサーバや社員情報管理サーバ等のグループ情報管理サーバにおいて、各クライアント端末とグループの対応関係が定義されたグループである。グループ情報管理サーバの管理情報としては、例えばクライアント端末の識別子と所属グループ、更にはクライアント端末のIPアドレス等が挙げられる。
クライアント端末が接続するネットワークと所属するクライアントグループの間に対応関係はない。すなわち異なるクライアントグループに所属するクライアント端末が同一のネットワークに接続するケースがあり得る。
アプリケーションレベルのクライアントグループがSIPプロキシサーバ200との通信を行う際のネットワーク構成例を図4,図5に示す。図4ではSIPプロキシサーバ200、クライアント端末がインターネット又は同一のプライベート網に接続し、クライアント端末間は所属するクライアントグループによらず接続性が保障されている。図5でも同様にクライアント端末は同一のプライベート網に接続し、クライアント端末間は所属するクライアントグループによらず接続性が保障されている。
なお、クライアントグループの構成方法によらず、同一のクライアント端末が同時に複数のクライアントグループに参加するケースがあり得る。
SIPサーバ共有モジュール100は、同一クライアントグループに属さないクライアント端末間で上述した(処理2)から(処理4)までのメッセージの転送、情報通知のための登録、クライアント端末情報の問い合わせに対する回答、が行われないようメッセージの中継処理を行う。例えば、(処理2)に関してはクライアントグループAに所属するクライアント端末からの発呼要求やプレゼンス情報の通知、チャットメッセージが他のクライアントグループに所属するクライアント端末へ転送されないようにする。また、(処理3)に関してはクライアントグループAに所属するクライアント端末からの他のクライアントグループに所属するクライアント端末のプレゼンス情報を受信するための要求がSIPプロキシサーバ200へ登録されないようにする。(処理4)に関してはクライアントグループAに所属するクライアント端末からの他のクライアントグループに所属するクライアント端末の登録情報に対する問い合わせに対してSIPプロキシサーバ200からの回答がなされないようにする。
更に、特定のクライアントグループに所属するクライアント端末から送信されたリクエストメッセージをトリガとしてSIPプロキシサーバ200から送信されるレスポンスメッセージが当該クライアントグループ以外のクライアントグループに所属するクライアント端末へ送信されないようにする。
上記のようなメッセージ中継処理を行うことにより、SIPサーバ共有モジュール100は複数のクライアントグループ300で共通のSIPプロキシサーバ200を利用させながら、あたかも各クライアントグループがグループ専用のSIPプロキシサーバ200を利用しているかのようなセキュリティを提供する。
SIPサーバ共有モジュール100の配置形態の例を図6から図8に示す。図6に示すようにサーバマシン(SIPサーバ共有ノード800)の中に単独で配置される形態や、図7に示すように、VPNゲートウェイと同一のノード900に配置され、アプリケーションレベルゲートウェイとして機能する形態、さらには、図8に示すようにSIPプロキシサーバ200と同一のノードに配置される形態などがある。図6から図8はネットワークレベルのクライアントグループを図示しているが、クライアントグループの構成方法によらず、上記いずれの配置形態もとることができる。
SIPサーバ共有モジュール100は、メッセージ送信元グループ識別部110と、グループタグ挿抜部120と、アドレス変換部130と、メッセージ種別判断部140と、メッセージ送信先グループ識別部150を備える。以下、それぞれについて説明する。
メッセージ送信元グループ識別部110は、クライアント端末から送信されたメッセージについて、送信元クライアント端末が所属するクライアントグループを識別し、グループタグ挿抜部120に通知する。クライアントグループの識別方法は、クライアントグループの構成によって異なる。
クライアントグループがネットワークレベルのグループの場合、次のような方法が考えられる。VPNゲートウェイ400やアプリケーションレベルゲートウェイ900のVPN終端部410においてクライアント端末から受信したメッセージのIPヘッダの送信元IPアドレスやUDPヘッダ(又はTCPヘッダ)の送信元ポート番号を、VPN毎に(クライアント端末が所属するクライアントグループ毎に)異なるアドレス領域へ変換し、メッセージ送信元グループ識別部110が、変換後の送信元アドレス又は送信元ポート番号から、当該受信メッセージの送信元端末が所属するクライアントグループを判断するというものである。なお、変換対象は送信元IPアドレス、送信元ポート番号に限らずIPヘッダの他のパラメタ(例えばプロトコル番号等)やより上位レイヤの例えばTCP、UDPヘッダのポート番号等でも良い。但し、現実的にVPN終端部410において、IPより上位のTCPやUDPのヘッダ情報を変換する場合、変換処理の負荷が高くなるため、現実的ではない。
この方法をとる場合、VPN終端部410とメッセージ送信元グループ識別部110において、予めメッセージのどの部分(例えばIPヘッダの送信元アドレス)を変換するのか、どのVPN(クライアントグループ)をどのパラメタの領域に変換するのか(例えばクライアントグループ1は10.10.10/24へクライアントグループ2は10.10.20/24)といったルールについて、共通のものを設定しておく必要がある。例えば、VPN終端部410が図3に示すパケット転送ルールを利用している場合、メッセージ送信元グループ識別部110は図9に示すようなメッセージの送信元を識別するルールが登録されたテーブル(以下、メッセージ送信元グループ識別テーブル)を持つ必要がある。
なお、クライアント端末が複数のクライアントグループに所属する場合もあり得るが、クライアントグループがネットワークレベルのグループである場合には、当該クライアント端末が送信したSIPメッセージがどのクライアントグループから送信されたかが一意に特定される。このため、ネットワークレベルのクライアントグループの場合には、メッセージ送信元グループ識別部110はSIPメッセージを受信した際グループタグ挿抜部120に必ず単一のクライアントグループを通知する。
アプリケーションレベルのクライアントグループの場合、メッセージ送信元グループ識別部110は、グループ情報管理サーバ700と連携してグループ識別を行う。具体的には、クライアント端末とSIPサーバ共有モジュール100がSIPメッセージをやり取りする際にクライアント端末から提示されるユーザIDを元に、グループ情報管理サーバ700に問い合わせる等の方法が考えられる。例えば、クライアント端末がSIPダイジェスト認証を行う場合、メッセージ送信元グループ識別部110はダイジェスト認証において提示されたユーザIDを元に、当該クライアント端末が所属するクライアントグループをグループ情報管理サーバ700に問い合わせる等の方法が考えられる。また、クライアント端末がSIPメッセージをSSLで行うSIPSに対応している場合、SSLコネクション構築時にクライアント端末が提示するクライアント証明書からユーザIDを抽出し、これを元に当該クライアント端末が所属するクライアントグループをグループ情報管理サーバ700に問い合わせる等の方法が考えられる。
なお、グループ情報管理サーバ700に問い合わせた結果、クライアント端末が複数のクライアントグループに所属していることが分かった場合、メッセージ送信元グループ識別部110はクライアント端末が所属する全てのクライアントグループを通知する。すなわち、ネットワークレベルのクライアントグループと異なり、アプリケーションレベルのクライアントグループの場合は、メッセージ送信元グループ識別部110がSIPメッセージを受信した際、グループタグ挿抜部120に複数のクライアントグループを通知するケースがある。
グループタグ挿抜部120は、クライアント端末から送信されたSIPメッセージに対してグループタグを挿入するグループタグ挿入部121とSIPプロキシサーバ200から送信されたSIPメッセージに含まれるグループタグをメッセージ送信先グループ識別部に通知すると共に、グループタグをSIPメッセージから削除するグループタグ削除部122の2つのモジュールからなる。以下、各モジュールについて説明する。
グループタグ挿入部121は、クライアント端末が送信したSIPメッセージに対して、メッセージ送信元グループ識別部110から通知されたクライアントグループに基づき、SIPメッセージの送信元クライアント端末が所属するクライアントグループに対応したグループタグを挿入する。
また、メッセージ種別判断部140に問い合わせ、クライアント端末が送信したSIPメッセージがリクエストメッセージである場合には、当該リクエストメッセージをトリガとしてSIPプロキシサーバ200から送信されるレスポンスメッセージをSIPサーバ共有モジュール100がインターセプトできるようにViaヘッダにSIPサーバ共有モジュール100のIPアドレス及びSIPの待ちうけに利用するポート番号を追記する。
なお、メッセージ送信元グループ識別部110から複数のクライアントグループを通知された場合は、以下のいずれかの処理を行う。
クライアント端末が送信したSIPメッセージのコピーを通知されたクライアントグループの数だけ作成し、通知されたクライアントグループに対応するグループタグを各コピーに挿入する。
クライアント端末が送信したSIPメッセージにメッセージ送信元グループ識別部110から通知されたクライアントグループに対応するグループタグを全て挿入する。
グループタグを挿入した後、アドレス変換部130にSIPメッセージを渡す。
グループタグを挿入する方法はグループタグの挿入位置に応じて二つの方法がある。第一の方法はSIPメッセージに含まれるSIP URIに挿入する方法であり、第二の方法はSIP URI以外の部分に挿入する方法である。
「第一の方法」
SIP URIは、
sip(又はsips):<ユーザ識別子>:<パスワード>@<ホスト又はドメイン空間>:<ポート番号>;<その他情報>
のフォーマットに従い、例えばsip:UserD:passwd@west.net:5060のURIの場合、UserDがユーザ識別子、passwdがパスワード、west.netがドメイン空間、5060が当該クライアント端末がSIPの待ち受けに利用するポート番号に該当する(この例ではその他情報に該当する部分は記載されていない。なお、パスワード及びポート番号、その他情報は省略される場合が多い)。第一の方法の場合、グループタグ挿入部はSIP URIの構成要素のうち、ユーザ識別子の部分にグループタグを挿入する。ユーザ識別子以外の部分、例えばホスト又はドメイン空間や、その他情報の部分にグループタグを挿入する方法も考えられるが、これらの部分はSIPサーバの実装によってはデータベースに登録されない場合もあるので望ましくない。なお、@マークより前の部分は<ホスト又はドメイン空間>の部分がドメイン空間ではなく、IPアドレスやFQDN(Fully Qualified Domain Name)によってホストを指定している場合省略されるケースがあるが、このようなケースでは、第一の方法ではグループタグの挿入は行わない。
SIP URIはSIPメッセージに複数記述されるのが一般的だが、グループタグ挿入部121はSIPメッセージのヘッダ部分に含まれる全てのSIP URIに対してグループタグを挿入する。ボディ部分にSIP URIが記載される場合もあるが、ボディ部分は基本的にSIPプロキシサーバ200における転送処理で利用されることがない部分なため、ボディ部分に記載されるSIP URIへのグループタグ挿入を行う必要はない。
クライアント端末から送信されたSIPメッセージがINVITE、ACK、BYE、CANCEL、OPTIONS、REGISTER、SUBSCRIBE、NOTIFY、PUBLISH等のメソッドのリクエストメッセージである場合には、SIPメッセージのヘッダ部分のスタートライン(リクエストライン)に含まれるリクエストURI及びFromヘッダ及びToヘッダ、Contactヘッダ等で指定されたURI全てにグループタグが挿入される。一方スタートラインにメソッドを含まない100Tryingや180Ringing、200OK等のレスポンスメッセージの場合は、スタートラインにはリクエストURIを含まないため、Fromヘッダ、Toヘッダ、Contactヘッダ等で指定されたURIのみにグループタグが挿入される。
グループタグ挿入の具体例を以下に示す。
例えば、クライアントグループ1のクライアント端末AがFrom、To、ContactヘッダのSIP URIが、
From: sip:UserA@here.com
To: sip:UserA@here.com
Contact: UserA@4.3.2.1
のように指定されたREGISTERメッセージを送信した場合、グループタグ挿入部はリクエストメッセージの各ヘッダに以下のようにグループタグを挿入する。
From: sip:UserA−group1@here.com
To: sip:UserA−group1@here.com
Contact: sip:UserA−group1@4.3.2.1
この結果、SIPプロキシサーバ200にはオリジナルのSIP URI、UserA@here.comではなく、グループタグ挿入部121によりグループタグの挿入されたSIP URI、UserA−group1(又はUserA−group1@here.com)が登録される。なお、UserA−group1とUserA−group1@here.comのどちらを登録するかは、SIPプロキシサーバ200の実装により異なる。
仮に、クライアントグループ1以外のクライアント端末が宛先として、SIPメッセージのToヘッダに、UserA@here.comを指定したINVITEメッセージやBYEメッセージといったリクエストメッセージを送信したとしても、グループタグ挿入部121がgroup1とは異なるグループタグをURIに挿入するため、クライアント端末Aのエントリ(UserA−group1@here.com)がヒットすることはない。このため、グループ外からのSIPメッセージをSIPプロキシサーバ200が受信した場合、上述した(処理2)〜(処理4)までの全ての処理について該当するSIP URIがない旨のエラーメッセージ(404 Not Foundのステータスコードが記載されたレスポンスメッセージ)がクライアント端末に返信される。
例えば、クライアントグループ2のクライアント端末XがFrom、To、ContactヘッダのSIP URIが、
From: sip:UserX@here.com
To: sip:UserA@here.com
Contact: UserX@5.6.7.8
のように指定されたINVITEメッセージを送信した場合、グループタグ挿入部121はリクエストメッセージの各ヘッダに以下のようにグループタグを挿入する。
From: sip:UserX−group2@here.com
To: sip:UserA−group2@here.com
Contact: sip:UserX−group2@5.6.7.8
この結果、SIPプロキシサーバ200はUserA−group2によってメッセージ転送先のコンタクトアドレスを検索するため、クライアント端末Aのエントリ(UserA−group1)はヒットせず、エラーメッセージがクライアント端末Xに返信される。
以上のように、第一の方法では上述した(処理2)から(処理4)までの全てのメッセージについて、グループ外の端末からのメッセージがSIPプロキシサーバ200によってエラー処理され、クライアント端末に転送されることがない。これにより、グループ内のセキュリティが保たれる。また、(処理1)の処理についても、例えばグループ2のクライアント端末Xがグループ1のクライアント端末Aに成りすますことを意図し、REGISTERメッセージを送信したとしても、SIPプロキシサーバ200にはSIP URI、UserA−group2@here.comが登録されるため成りすましを防ぐことができる。この時、クライアント端末AのSIP URIには、UserA−group1@here.comが登録されるため、グループ1のクライアント端末はSIP URI、UserA@here.comを利用して、クライアント端末Aを指定することが可能である。
しかし、第一の方法には次のような問題がある。クライアント端末が新たなクライアントグループに参加すると、グループ参加前に送信したREGISTERメッセージやSUBSCRIBEメッセージにより登録されたエントリは新たに参加したクライアントグループでは参照することができない。換言すれば、参加前のREGISTERメッセージやSUBSCRIBEメッセージによってSIPプロキシサーバ200に登録されたエントリでは、クライアントグループ内の他のクライアント端末からのSIPメッセージを当該クライアント端末に転送することができない。このため、新たなクライアントグループに参加する度にREGISTERメッセージやSUBSCRIBEメッセージを送信し直す必要がある。また、クライアント端末がグループ参加前に送信したREGISTERメッセージやSUBSCRIBEメッセージによりSIPプロキシサーバ200に登録されたエントリは期限切れとなるまで有効であるため、明示的な削除を行わない限りグループ参加後であっても一定期間グループ外のクライアント端末から送信されたSIPメッセージが当該クライアント端末に転送され得る。
また、第一の方法単独で前述のようにクライアントグループ外からの(処理2)〜(処理4)のリクエストメッセージがSIPプロキシサーバ200からクライアントグループへ転送されることを防ぐことはできるが、クライアントグループ外からのリクエストメッセージをトリガとしてSIPプロキシサーバ200から送信されるレスポンスメッセージについてはクライアントグループへの送信を防ぐ手段が別途必要となる。すなわち、第一の方法単独では、例えばクライアントグループ1からのリクエストメッセージをトリガとしてSIPプロキシサーバ200から送信されるレスポンスメッセージがクライアントグループ2へ送信されることを防ぐことができない。こうしたレスポンスメッセージはメッセージ送信先グループ識別部150によってクライアントグループ外への転送が防がれる。
「第二の方法」
第二の方法では、SIPメッセージに含まれるパラメタのうち以下の三つの条件を満たすパラメタのいずれかにグループタグを挿入する。
(A)SIP URIが含まれないパラメタ。
(B)SIPプロキシサーバ200における転送処理により消去されないパラメタ。
(C)リクエストメッセージと当該リクエストメッセージを受信した際にSIPプロキシサーバ200が送信するレスポンスメッセージとで同じ値が記載されるパラメタ。
(B)の条件を満たすパラメタにグループタグを挿入することでSIPサーバ共有モジュール100がSIPプロキシサーバ200からリクエストメッセージを受信した際に、当該リクエストメッセージがどのクライアントグループから送信されたリクエストメッセージ(がSIPプロキシサーバ200から転送されてきた)かを把握することが可能となる。この結果、SIPプロキシサーバ200から送信されたリクエストメッセージをリクエストメッセージの送信元クライアント端末が所属するクライアントグループに転送することが可能となる。つまり、リクエストメッセージの送信元クライアント端末が所属するクライアントグループとは異なるクライアントグループに所属するクライアント端末へ転送されることを防ぐことができる。
(C)の条件を満たすパラメタにグループタグを挿入することでSIPサーバ共有モジュール100がSIPプロキシサーバ200からレスポンスメッセージを受信した際に、当該レスポンスメッセージのトリガとなったリクエストメッセージがどのクライアントグループから送信されたかを把握することが可能となる。この結果、リクエストメッセージに対するレスポンスメッセージを、リクエストメッセージの送信元クライアント端末が所属するクライアントグループに転送することが可能となる。つまり、リクエストメッセージの送信元クライアント端末が所属するクライアントグループとは異なるクライアントグループに所属するクライアント端末へ転送されることを防ぐことができる。
上記3つの条件を満たすパラメタとしては、Call−IDヘッダやRecord−Routeヘッダ、Viaヘッダ等が挙げられる。
なお、SIPメッセージのうち、クライアント端末からプレゼンス情報を発行するためにSIPプロキシサーバ200へ送信されるメッセージ(PUBLISHメッセージ等)の場合は、上記3つの条件を満たすパラメタにグループタグを挿入するのに加え、プレゼンス情報が記載されているメッセージのボディ部にもグループタグを挿入する。こうすることで、プレゼンス情報が発行元のクライアント端末が所属するクライアントグループの外に通知されることを防ぐことができる(詳細は後述する)。なお、ボディ部分の拡張を行う場合はヘッダ部分のContent−Lengthフィールド及びContent−Typeフィールドを書き換える必要がある。
以下、第二の方法を利用した場合のグループタグの挿入例を説明する。
例えば、クライアントグループ1に所属するクライアント端末Aが、同じくクライアントグループ1に所属するクライアント端末Bへ発呼する場合、クライアント端末AがSIPプロキシサーバ200へ送信したINVITEメッセージのCall−IDヘッダにgroup−1というタグを挿入する。上述した(処理2)の転送処理の結果、SIPプロキシサーバ200からクライアント端末Bへ送信されるINVITEメッセージのCall−IDヘッダにもgroup−1というタグが挿入されている状態となる。これにより、メッセージ送信先グループ識別部150は当該メッセージをグループ1に送信すべきと判断し、クライアント端末Bへ転送される。
一方、クライアントグループ2に属するクライアント端末Xが、クライアントグループ1に属するクライアント端末Bへの発呼を行う場合、クライアント端末XがSIPプロキシサーバ200へ送信したINVITEメッセージのCall−IDヘッダにはgroup−2というタグが挿入される。この場合、SIPプロキシサーバ200からクライアント端末Bへ送信されるINVITEメッセージのCall−IDヘッダにもgroup−2というタグが挿入されている状態となるため、メッセージ送信先グループ識別部150が当該INVITEメッセージをクライアントグループ2へ転送すべきと判断する。したがってクライアントグループ1に属するクライアントBへは転送されない。
第二の方法では、クライアント端末から送信されたREGISTERメッセージやSUBSCRIBEメッセージに含まれるオリジナルのSIP URIがそのままSIPプロキシサーバ200に登録される。SIPプロキシサーバ200はオリジナルのSIP URIを利用してメッセージの転送処理を行う。
このため、クライアントグループへ参加や脱退してもSIP Proxyサーバに登録されるSIP URIは変わらないため、第一の方法と異なり、クライアントグループ参加の度にREGISTERやSUBSCRIBEを行う必要がない。また、クライアントグループ参加後に明示的に参加前までにSIPプロキシサーバ200に登録されていた情報を削除したりREGISTERやSUBSCRIBEを再送信したりしなくても即座にクライアントグループ外メンバからのSIPメッセージが転送されなくなる。
一方で、第二の方法ではクライアントグループ外のクライアント端末からでもSIP Proxyサーバに登録されたエントリを参照できてしまうため、クライアントグループ外のクライアント端末からのリクエストメッセージに対しても上述した(処理3)、(処理4)の処理が行われてしまう。例えば、クライアントグループ2に所属するクライアント端末がクライアントグループ1に所属するクライアント端末の登録情報を取得するため、(処理4)のOPTIONSメッセージをSIPプロキシサーバ200へ送信した場合、当該OPTIONSメッセージはSIPプロキシサーバ200によって処理され、クライアントグループ2に所属するクライアント端末へ登録情報が通知されてしまう。
グループタグ削除部122は、SIPプロキシサーバ200から送信されたSIPメッセージに含まれるグループタグを検索して削除すると共に、削除したグループタグをメッセージ送信先グループ識別部150に通知する。グループタグの削除はリクエストメッセージ、レスポンスメッセージの別に関係なく行う。なお、グループタグの挿入が第二の方法により、SIPメッセージのボディ部に対して行われた場合は、グループタグの削除のみならず、Content−Type及びContent−Lengthも削除結果に基づいて書き直す。
また、SIPプロキシサーバ200から送信されたSIPメッセージがレスポンスメッセージであった場合には、レスポンスメッセージのViaヘッダに挿入されているSIPサーバ共有モジュール100のIPアドレス、ポート番号を削除する。更に、レスポンスメッセージがクライアント端末へ転送されるようにするため、Viaヘッダに含まれるクライアント端末のコンタクトアドレスをレスポンスメッセージのIPヘッダ及びUDPヘッダへセットする。
アドレス変換部140は、SIPプロキシサーバ200からクライアント端末に対して送信されるSIPメッセージのうち、特にリクエストメッセージをSIPサーバ共有モジュールがインターセプトできるようにSIPメッセージのアドレス変換を行う。
SIPメッセージのうちレスポンスメッセージについては、リクエストメッセージが転送された経路を逆に辿って転送される。リクエストメッセージが辿った経路はSIPメッセージのヘッダ部分のViaヘッダに記載されるが、Viaヘッダにはグループタグ挿入部121によって、SIPサーバ共有モジュール100のIPアドレス及びポート番号が記録される。このため、レスポンスメッセージについてはアドレス変換部140が特に処理を行わなくてもSIPサーバ共有モジュール100がインターセプトすることが可能である。
通常、SIPプロキシサーバ200がクライアント端末へリクエストメッセージを送信する場合、前述の(処理1)の処理において登録されたクライアント端末のコンタクトアドレスに対してリクエストメッセージを送信する。しかし、SIPプロキシサーバ200がクライアント端末のコンタクトアドレスを宛先アドレスに指定してリクエストメッセージを送信した場合、SIPサーバ共有モジュール100の配置形態によってはSIPプロキシサーバ200から送信されたリクエストメッセージがSIPサーバ共有モジュール100を中継せずに直接クライアント端末に送信されたり、クライアント端末にも到達せずに結果的に廃棄されたりするケースが起こり得る。
このようなケースの発生を防ぐためには以下の二つの方法が考えられる。
一つ目の方法は、SIPプロキシサーバ200とSIP共有モジュール100の間にトンネリングリンクを構築する方法である。
トンネリングリンクは、当該トンネリングリンクを構築した2つのノードのどちらか一方のノード内で稼動するプログラムがトンネリングリンクに送信したメッセージが必ず他方のノードに送信されるという特徴を持つ。トンネリングリンクの例としてはIPSECトンネルモードやSOFTETHER等で利用されているEther Over HTTPSトンネル等が挙げられる。このため、SIPプロキシサーバ200が稼動するノードにおいて、自ノードから送信されるメッセージのうち、宛先ポート番号がSIPで利用するポート番号(通常はUDP:5060番)のメッセージ(すなわち、SIPメッセージ)を、宛先アドレスによらずトンネリングリンクに送信するという設定をしておけば、SIPプロキシサーバ200から送信されたSIPメッセージは宛先アドレスによらずトンネリングリンクのもう一方の終端点、すなわちSIP共有モジュール100に送信される。
トンネリングリンクの例を図10に示す。図10ではSIPプロキシサーバ200からSIP URI、UserA@here.com、IPアドレス、100.1.1.1のクライアント端末へ送信されるINVITEメッセージを例示している。SIPプロキシサーバ200から送信されたINVITEメッセージ1210はSIPプロキシサーバ200ノードのトンネル終端部1110でカプセル化ヘッダ1220を付与され、トンネリングリンク1120に送信される。なお、トンネル終端部1110は条件に合致したパケット(この場合は宛先ポート番号が5060番のUDPパケット)にカプセル化ヘッダ1220を付与し(エンカプセレイト)、トンネリングリンク1120に送信すると共に、トンネリングリンク1120経由で受信したパケットのカプセル化ヘッダ1220を除去する(デカプセレイト)機能を持つ。図10の例ではトンネリングリンク1120としてIPSECトンネルモードが利用され、カプセル化ヘッダ1220としてIPSECヘッダが付与されている。トンネリングリンク1120経由でパケットを受信したSIPサーバ共有ノードのトンネル終端部1130は受信したパケットをデカプセリングしてSIPサーバ共有モジュール100へ渡す。図10に示すようにトンネリングリンクを利用することで、SIPプロキシサーバ200から送信されるSIPメッセージは宛先アドレスによらず、SIP共有ノードに送信されるため、リクエストメッセージのインターセプトが可能となる。
但し、この方法によりリクエストメッセージのインターセプトを行う場合は、SIPプロキシサーバ200においてトンネリングリンク構築のための設定が必要になるのに加え、基本的に全てのSIPメッセージがSIP共有モジュールに転送されることになるため、SIPプロキシサーバ200が他のSIPプロキシサーバ200へSIPメッセージを送信できなくなる。
この方法によりインターセプトを行う場合、トンネリングリンクの構築やインターセプトしたSIPメッセージのデカプセレイトはSIPサーバ共有ノード内のトンネル終端部1130が行うため、アドレス変換部140は特に処理を行う必要がない。
二つ目の方法は、アドレス変換部140が前述の(処理1)の処理においてクライアント端末がSIPプロキシサーバ200に対して登録を要求するコンタクトアドレス(以下、オリジナルアドレス)をSIPサーバ共有モジュールがインターセプト可能となるようなアドレス(以下、インターセプトアドレス)に変換する方法(以下、順方向変換)である。以下、二つ目の方法について詳しく述べる。
図11に、二つ目の方法をとった場合のアドレス変換部140の処理フローを示す。
以下、図11を参照してアドレス変換部140の処理フローについて説明する。
(1)ステップS101
アドレス変換部140がメッセージを受信する。
(2)ステップS102
メッセージを受信した場合、クライアント端末から送信されたメッセージかSIPプロキシサーバ200から送信されたメッセージかを判別する。
(3)ステップS103
クライアント端末から送信されたメッセージの場合、まずアドレス変換が必要か否かを判断する。アドレス変換が必要ない場合は、特に処理を行わずメッセージをSIPプロキシサーバ200へ転送する(ステップS106)。
SIPプロキシサーバ200との間にトンネリングリンクが構築されている場合、アドレス変換は不要と判断する。トンネリングリンクが構築されていない場合、予めクライアント端末に割り当てられるIPアドレス領域が分かっており、且つ、当該IPアドレス領域がインターセプト用アドレスに含まれている場合は、アドレス変換不要と判断する。また、特にネットワークレベルのクライアントグループの場合、特定のクライアントグループについて予めクライアントグループに所属するクライアント端末に割り当てられるIPアドレス領域が分かっており、且つ、当該アドレス領域がインターセプトアドレスに含まれている場合、当該クライアントグループから送信されたメッセージ、及び当該クライアントグループへSIPプロキシサーバ200から送信されたメッセージについてはアドレス変換不要と判断する。上記以外の場合はアドレス変換が必要と判断する。なお、どのグループから又はどのグループへ送信されたメッセージかは、メッセージに挿入されたグループタグから判断する。
(4)ステップS104
ステップS103において、アドレス変換が必要な場合、メッセージ種別判断部140に問い合わせ、当該メッセージがREGISTERメッセージか否かを判断する。
(5)ステップS105
REGISTERメッセージである場合にはヘッダ部分のContactヘッダに含まれるIPアドレス又はポート番号(オリジナルアドレス)を順方向変換する。
(6)ステップS106
順方向変換後、SIPプロキシサーバ200へREGISTERメッセージを送信する。
(7)ステップS107
一方、ステップS102の判定において、メッセージがSIPプロキシサーバ200から送信されたメッセージの場合、まずアドレス変換が必要か否かを判断する。判断基準はクライアント端末から送信されたメッセージを処理する場合と同じである。アドレス変換が不要な場合にはメッセージをグループタグ削除部122に渡す(ステップS112)。
(8)ステップS108
アドレス変換が必要な場合にはメッセージ種別判断部140に問い合わせ、リクエストメッセージであるか否かを判断する。
(9)ステップS109
リクエストメッセージである場合には、当該SIPメッセージがクライアント端末へ転送されるように、SIPメッセージのIPヘッダの宛先アドレス又は宛先ポート番号をインターセプトアドレスからオリジナルアドレスへ変換する処理(以下、逆方向変換)を行う。逆方向変換処理後、グループタグ削除部122にメッセージを渡す(ステップS112)。
(10)ステップS110
ステップS108において、SIPプロキシサーバ200から送信されたメッセージがレスポンスメッセージの場合は、メッセージ種別判断部140に問い合わせ、REGISTERメッセージ対するレスポンスメッセージであるか否かを判断する。
(11)ステップS111
REGISTERメッセージ対するレスポンスメッセージの場合は、Contactヘッダに含まれるIPアドレス又はポート番号がインターセプトアドレスとなっているので、これをオリジナルアドレスに逆方向変換する。
(12)ステップS112
その後、メッセージをグループタグ削除部122に渡す。
順方向変換及び逆方向変換を行う際は、双方の変換処理において共通のルールに基づき変換を行う必要がある。本ルールはアドレス変換テーブル131に記載されており、順方向変換及び逆方向変換時に参照される。
インターセプトアドレスとしては以下の(A)〜(C)のアドレス、又はアドレス領域が利用できる。
(A)SIPサーバ共有モジュール100自身のIPアドレス。
このアドレス領域はSIPサーバ共有モジュール100の配置形態によらずインターセプトアドレスとして利用できる。以下の変換方法が考えられる。
(A−1)順方向変換時にSIP URIとオリジナルアドレスの対応関係をアドレス変換テーブル131に記憶しておき、逆方向変換時にはアドレス変換テーブル131を参照し、インターセプトしたメッセージのURIを元にオリジナルアドレスに変換する。この方法では、URIとオリジナルアドレスの関係を全クライアント端末について記憶しておかなければならずクライアント端末の数の増加に伴い、記憶すべきルールの規模が増加する。
(A−2)SIPサーバ共有モジュール100自体に複数のアドレスが割り当てられている場合、アドレス変換テーブル131にオリジナルアドレスとインターセプト用アドレスの変換ルールを登録しておく。
例えば、SIPサーバ共有モジュール100に133.1/16(133.1.0.0〜133.1.255.255)の領域に含まれるIPアドレス全てが割り当てられている場合、アドレス変換テーブル131には、オリジナルアドレスの下位16ビットをインターセプトアドレス(すなわち133.1/16)にマッピングするというルールを記憶しておく。
例えば、オリジナルアドレスが10.2.3.4の場合下位16ビット、すなわち3.4の部分をマッピングし、133.1.3.4というインターセプトアドレスに順方向変換する。
SIPサーバ共有モジュール100が宛先アドレスが133.1.3.4のSIPメッセージを受信した場合には、133.1.3.4の3.4をオリジナルアドレスの上位16ビット、すなわち10.2と組み合わせ10.2.3.4に逆方向変換する。
この場合、10.2/16の範囲のIPアドレスを持つクライアント端末からのみSIPメッセージを受信するという条件であれば、クライアント端末の数によらず、「オリジナルアドレスのIPアドレスは上位16ビットが必ず10.2であり、下位16ビットはインターセプトアドレスと同じにする」という変換ルールのみを記憶していれば良い。
クライアント端末のIPアドレスの範囲がSIPサーバ共有モジュール100に割り当てられているIPアドレス(すなわちインターセプトアドレス)の範囲よりも広い場合、例えば10/8の範囲のIPアドレスを持つクライアント端末からSIPメッセージを受信する場合、8ビット分の情報がSIPサーバ共有モジュール100のIPアドレスにマッピングできなくなる。例えば、下位16ビットをマッピングして133.1.3.4というインターセプト用アドレスに変換した場合、オリジナルアドレスは10.x.3.4のxの部分が不明になる。このような場合には、オリジナルアドレスのうちSIPサーバ共有モジュール100のIPアドレスにマッピングしきれなかった部分を、SIPサーバ共有モジュールのポート番号にマッピングする方法が考えられる。前述のケースでは上位9ビット目から16ビット目までの8ビット分の情報がIPアドレスにマッピングできないため、SIPサーバ共有モジュールは8ビット分のポート番号(例えば5060〜5316(=5060+2^8))をインターセプトアドレスとして利用する。
例えば、10.7.3.4:5060のオリジナルアドレスを順方向変換する場合、IPアドレスには下位16ビットの3.4をマッピングして133.1.3.4とし、7の部分(すなわちIPアドレスの上位9ビット目から16ビット目)はポート番号にマッピングして5067とし、最終的に133.1.3.4:5067をインターセプトアドレスとして利用する。
この場合、変換ルールは、「オリジナルアドレスのIPアドレスは上位8ビットが必ず10であり、ポート番号は5060である。オリジナルアドレスの下位16ビットはインターセプトアドレスの下位16ビットへマッピングし、上位9ビット目から16ビット目まではポート番号5060〜5316の範囲にマッピングする」となる。
なお、ポート番号までマッピングの対象に含める場合は、SIPサーバ共有モジュール100はインターセプト用アドレスとして利用する複数のポート番号(上の例では5060〜5316)で待ち受け状態になっている必要がある。
(B)SIPプロキシサーバ200とSIPサーバ共有モジュール100が配置されたノード(以下、SIPメッセージ転送ノード)が同一サブネットに接続し、SIPプロキシサーバ200においてSIPメッセージ転送ノードのIPアドレスがゲートウェイアドレスとして設定されているアドレス領域。
例えば、SIPメッセージ転送ノードのアドレスが10.0.0.254(サブネット領域は10.0.0/24)で、SIPプロキシサーバ200において10.1/16のアドレスに関するゲートウェイアドレスが10.0.0.254(SIPメッセージ転送ノードのアドレス)に設定されている場合、SIPプロキシサーバ200が10.1/16の範囲内にあるアドレス宛に送信したメッセージは、全てSIPメッセージ転送ノードを経由することになる。このため、この場合は10.1/16のアドレスをインターセプトアドレスとして利用する。
オリジナルアドレスがインターセプトアドレスの範囲内にない場合には、上記A−2と同じ方法でアドレス変換を行う。
(C)ローカルループバックアドレス(127/8)。
このアドレス領域はSIPサーバ共有モジュール100とSIPプロキシサーバ200が物理的に同一のノードに存在する場合(例えば図8に示す構成の場合)に利用できる。上記A−2と同じ方法でアドレス変換を行う。
メッセージ送信先グループ識別部150は、グループタグ削除部122から通知されたグループタグを元にSIPプロキシサーバ200から送信されたSIPメッセージを転送すべきクライアント端末が所属するクライアントグループを識別し、SIPメッセージが当該クライアントグループ以外のクライアントグループに所属するクライアント端末へ転送されることを防止する。これにより、SIPプロキシサーバ200から転送されたリクエストメッセージやSIPプロキシサーバ200から送信されたレスポンスメッセージが当該リクエストメッセージやレスポンスメッセージのトリガとなったリクエストメッセージの送信元クライアント端末が所属するクライアントグループの外部に転送されることを防ぐことができる。具体的処理内容はクライアントグループがネットワークレベルのグループの場合と、アプリケーションレベルのグループの場合とで異なる。
クライアントグループがアプリケーションレベルのグループの場合は以下の処理を行う。
メッセージ送信先グループ識別部150は、グループタグにより識別したSIPメッセージを転送すべきクライアントグループと、実際にSIPメッセージの転送先となるクライアント端末が所属するグループが一致することを確認し、一致する場合にのみSIPメッセージをクライアント端末へ転送する。
SIPメッセージの転送先となるクライアント端末が所属するグループを把握する際にはまず、SIPメッセージの転送先となるクライアント端末を把握し、その後当該クライアント端末が所属するクライアントグループを把握する。
SIPメッセージの転送先となるクライアント端末の把握については、SIPプロキシサーバ200から受信したSIPメッセージがレスポンスメッセージの場合は、レスポンスメッセージのViaヘッダに記載されているクライアント端末のIPアドレス、又はホスト名から把握することができる。また、SIPメッセージがリクエストメッセージの場合は、SIPメッセージのIPヘッダに記載された宛先IPアドレスから把握することができる。
SIPメッセージの転送先となるクライアント端末が所属するクライアントグループを把握する方法については、例えばクライアント端末のIPアドレスと所属クライアントグループがグループ情報管理サーバに登録されている場合には、SIPメッセージの転送先となるクライアント端末のIPアドレスを元にグループ情報管理サーバに問い合わせを行って、クライアントグループを把握する方法が考えられる。
一方、クライアントグループがネットワークレベルのグループの場合、メッセージ送信先グループ識別部150はグループタグ削除部122から通知されたクライアントグループに対応するプライベート網へSIPメッセージを送信する。これを実現するため、メッセージ送信先グループ識別部150は何らかの方法でVPN終端部に対して送信先のプライベート網(メッセージを送信する仮想IF)を指定する必要がある。具体的な送信方法は、SIPサーバ共有モジュール100の配置形態によって異なる。
例えば、図7のようにSIPサーバ共有モジュール100とVPN終端部分410が同一のノードに存在する場合、メッセージ送信先グループ識別部150はVPN終端部410においてVPN毎に用意されている仮想インタフェース421のいずれかを指定してSIPメッセージを送信する。
一方、図6や図8のように、VPNゲートウェイ400とSIPサーバ共有モジュール100が異なるノードに存在する場合には、メッセージ送信先グループ識別部150がVPN終端部410における仮想インタフェース421を直接指定することは不可能である。送信先プライベート網の指定方法としては例えば、VPNゲートウェイ400に対して送信するSIPメッセージの送信元ポート番号を送信先プライベート網毎に異なる値にして通知する方法が考えられる。例えば、クライアントグループがgroup1からgroup3まで存在する場合、送信先グループ識別部150は、グループタグ削除部122から通知されたクライアントグループがgroup1のメッセージは送信元ポート番号10000〜10999を、group2の場合は11000〜11999を、group3の場合は12000〜12999を利用するという具合に、SIPメッセージ送信先のクライアントグループ(プライベート網)に応じて送信元ポート番号を使い分ける。
図12に設定例を示す。以下、このような設定を保持するテーブルを、メッセージ送信先グループ識別テーブルと呼ぶ。
VPN終端部410にも同様のルールをパケット転送ルールに設定しておき、送信元ポート番号が10000〜10999のメッセージはgroup1(に対応するプライベートネットワーク)へ、11000〜11999の場合はgroup2へ、12000〜12999の場合はgroup3へ転送するというように設定しておく。図3に例を示す。このような設定を行うことで、VPNゲートウェイ400とSIPサーバ共有モジュール100が異なるノードに存在する場合にも、SIPサーバ共有モジュール100からVPN終端部410に対してSIPメッセージを送信すべきプライベート網を指定することが可能になる。
なお、図6や図8のようにSIPサーバ共有モジュール100とVPNゲートウェイ400が異なるノードに配置されている場合には、SIPサーバ共有モジュール100からクライアント端末へ送信するSIPメッセージは必ずVPNゲートウェイを経由させる必要がある。これを実現する方法としては、図10で示したのと同様にVPNゲートウェイ400とSIPサーバ共有モジュール100が存在するノード(図6のSIPサーバ共有ノード、又は図8のSIPプロキシサーバ200ノード)との間にトンネリングリンクを構築する方法が考えられる。SIPサーバ共有モジュール100が存在するノードにおいて、送信メッセージがSIPメッセージの場合、前述の例では送信元ポート番号が10000から12999の場合には、送信メッセージをVPNゲートウェイ400との間に構築されたトンネリングリンクに送信するというように設定しておく。
メッセージ種別判断部140は、メッセージ送信先グループ識別部150、グループタグ挿抜部120、アドレス変換部130からの問い合わせに対して、メッセージの種別を応答する。メッセージの種別とは、メッセージがリクエストメッセージ、レスポンスメッセージのどちらであるか、やメッセージのメソッド、レスポンスメッセージのトリガとなったリクエストメッセージのメソッド等である。リクエストメッセージのメソッドは、レスポンスメッセージのヘッダ部分のうちCSeqヘッダに記載されたメソッドを見ることで判断できる。レスポンスメッセージのCSeqヘッダにはどのメソッドのリクエストメッセージに対するレスポンスメッセージかが記載されている。
次に、本実施の形態におけるSIPサーバ共有モジュール100の動作例について説明する。以下の説明は特に断りのない場合、SIP通信網が図6の構成の場合の動作例についての説明である。
まず、クライアント端末からSIPプロキシサーバ200へ送信されるリクエストメッセージを転送する際の動作について図13A,図13Bを用いて説明する。
図13A,図13Bは、図6の構成に示すSIP通信網において、クライアント端末A311がSIPプロキシサーバ200に対してREGISTERメッセージを送信する際のシーケンスを示している。
クライアント端末A311(IPアドレス10.1.1.100)では、SIPプロキシサーバ200としてSIPサーバ共有モジュール100のIPアドレス(172.16.1.100ホスト名の場合もある)が設定されている。クライアント端末A311が送信するREGISTERメッセージを図14Aに示す。クライアント端末A311が送信したREGISTERメッセージはVPNゲートウェイ400が中継処理を行う。
(1)ステップS201
VPNゲートウェイ400は、クライアント端末A311からREGISTERメッセージを受信すると、パケット転送ルールを参照し、後にSIPサーバ共有モジュール100(のメッセージ送信元グループ識別部110)がREGISTERメッセージを受信した際に、メッセージ送信元クライアント端末の所属するクライアントグループを識別できるように、受信メッセージに対して変換処理を施す。
(2)ステップS202
例えば、VPNゲートウェイ400においてパケット転送ルールが図3に示すように設定されている場合、VPNゲートウェイ400はパケットのIPヘッダの送信元IPアドレスを変換した後SIPサーバ共有モジュール100へ転送する。図14Aのメッセージの場合、VPNゲートウェイによって図14Bに示すように送信元IPアドレスが変換される。ここでは、図中の点線楕円で示した部分がVPNゲートウェイにおいて変換された送信元IPアドレスである(10.10.10.100)に変換される。
(3)ステップS203
SIPサーバ共有モジュール100がREGISTERメッセージを受信すると、まずメッセージ送信元グループ識別部110がメッセージ送信元グループ識別テーブルを参照し、受信したREGISTERメッセージの送信元クライアント端末が所属するクライアントグループを識別する。
(4)ステップS204
メッセージ送信元グループ識別テーブルにはVPNゲートウェイ400においてメッセージに施された処理に基づきメッセージの送信元クライアント端末が所属するクライアントグループが識別できるように、パケット転送ルールに対応したルールが記載されている。図9に図3に示すパケット転送ルールに対応するメッセージ送信元グループ識別テーブルを示す。図14Bのメッセージを受信した場合、送信元IPアドレスが10.10.10.100となっているので、メッセージ送信元識別部110はクライアントグループをクライアントグループ1と識別し、グループタグ挿入部121へ通知する。
(5)ステップS205
グループタグ挿入部121はメッセージ送信元クライアント端末の所属グループの通知を受けると、当該クライアントグループに対応するグループタグをREGISTERメッセージに挿入する。また、REGISTERメッセージに対するレスポンスメッセージをSIPサーバ共有モジュール100がインターセプトできるように、受信したメッセージのViaヘッダにSIPサーバ共有モジュール100のIPアドレス(ホスト名でも良い)及びSIPの待ちうけポート番号(デフォルトのポート番号(5060)を使用する際は省略できる)を追記する。グループタグ挿入部110が図14Bに示すメッセージに対して上記の処理を施した後の例を図14Cに示す。図中点線楕円で示した部分がグループタグ挿入部110において処理された部分である。なお、図14Cで示した例では、グループタグの挿入方法として上述した第一の方法が採られている。
図14Eに、グループタグが第二の方法により挿入された場合の例を示す。ここでは、図中の点線楕円で示した部分がグループタグ挿入部である。図14Eで示した例ではcall−IDヘッダにグループタグが挿入されている。
(6)ステップS206
メッセージにグループタグが挿入された後、メッセージはアドレス変換部130に渡される。
(7)ステップS207
アドレス変換部130はまずアドレス変換が必要か否かを判断する。例えば、図10に示したようにSIPプロキシサーバ200とSIPサーバ共有モジュール100の間にトンネリングリンクが構築されている場合や、オリジナルアドレスがインターセプトアドレスの領域に含まれている場合はアドレス変換が不要となる。
(8)ステップS208
アドレス変換が必要だと判断した場合は、メッセージ種別判別部140に問い合わせメッセージがREGISTERメッセージであるか否かを確認する。
(9)ステップS209
メッセージがREGISTERメッセージである場合にはアドレス変換テーブル131を参照してContactヘッダに含まれるオリジナルアドレスの順方向変換を行う。図15に示すルールがアドレス変換テーブル131に登録されている場合、アドレス変換部130は図14Cのメッセージに対して図14Dのように順方向変換を行う。なお、図中の点線楕円で示した部分が変換部分である。
(10)ステップS210
アドレス変換後、SIPプロキシサーバ200へ、図14DのREGISTERメッセージを送信する。
(11)ステップS211
SIPプロキシサーバ200はREGISTERメッセージを受信すると、SIP URI、UserA−group1@here.com(@以降は省略される場合もある)及びURIに対応するIPアドレスとして、172.17.1.100を登録する。
上記のようにグループタグ挿入方法として第一の方法がとられた場合、登録後、例えばクライアントグループ2:300−2に所属するクライアント端末X321がクライアント端末A311を宛先とする(ToヘッダにUserA@here.comを指定した)INVITEやOPTIONS、SUBSCRIBE等のリクエストメッセージを送信したとしても、当該リクエストメッセージはグループタグ挿入部121においてグループタグが挿入され、ToヘッダがUserA−group2@here.comとなるため、SIPプロキシサーバ200は対応するSIP URIが登録されていない旨クライアント端末X321に通知し(404 Not Foundのレスポンスメッセージを返信する)、上述の(処理2)〜(処理4)までの処理は行われない。つまり、クライアントグループ外からのリクエストメッセージに対して上述の(処理2)〜(処理4)までの処理が行われることはない。
また、クライアント端末X321が自身のURIをUserA@here.comと詐称してREGISTERメッセージを送信し、クライアント端末A311への成りすましを図ったとしても、SIPプロキシサーバ200にはUserA−group2@here.comというクライアント端末A311からのREGISTERメッセージに基づき登録されるSIP URI(UserA−group1@here.com)とは別のSIP URIが登録される。このため、クライアントグループ外からのリクエストメッセージに基づく成りすましを防ぐことができる。
一方、グループタグ挿入方法として第二の方法がとられた場合、例えば、グループタグ挿入部121において図14Eのようにグループタグの挿入が行われた場合、SIPプロキシサーバ200には、SIP URI、UserA@here.com、IPアドレス、172.17.1.100が登録される。すなわちグループタグの挿入が行われていないオリジナルのURIが登録される。
このため、第二の方法がとられた場合、登録後、例えばクライアントグループ2:300−2に所属するクライアント端末X321がクライアント端末A311を宛先とする(ToヘッダにUserA@here.comを指定した)INVITEやOPTIONS、SUBSCRIBE等のリクエストメッセージを送信すると、第一の方法とは異なり、クライアントグループ外からのリクエストメッセージにも関わらずSIPプロキシサーバ200では(処理2)〜(処理4)の処理が行われる。このため、(処理3)の処理についてはグループ外からでも情報通知のための登録が行えることになる。例えばクライアントグループ2:300−2のクライアント端末X321からクライアントグループ1:300−1のクライアント端末A311のプレゼンス情報の通知を受けるための登録要求を行った場合、クライアントグループ外端末への登録要求にも関わらずSIPプロキシサーバ200に登録される。但し、後述するように実際にクライアント端末A:311のプレゼンス情報がクライアント端末X321に通知されることはない。あくまで通知要求が登録されるだけである。また、(処理4)の処理についても、クライアントグループ外からでもクライアント端末の情報を取得できることになってしまう。
但し、第二の方法によりグループタグの挿入が行われて、クライアントグループ外からのリクエストメッセージに対してSIPプロキシサーバ200が(処理2)〜(処理4)までの処理を行ったとしても、処理の結果SIPプロキシサーバ200から転送されるリクエストメッセージ及びSIPプロキシサーバ200から送信されるレスポンスメッセージが、当該リクエストメッセージの送信元クライアントグループ以外に転送されることはない。例えばクライアントグループ2:300−2に所属するクライアント端末から送信されたリクエストメッセージがクライアントグループ2:300−2以外のクライアントグループに所属するクライアント端末に転送されることはないし、当該リクエストメッセージに対するSIPプロキシサーバ200からのレスポンスメッセージがクライアントグループ2以外のクライアントグループに所属するクライアント端末に送信されることはない。これについては後述する。
次に、SIPプロキシサーバ200からクライアント端末へ送信されるレスポンスメッセージを転送する際の動作例について説明する。
図16に、図13A,図13Bで示したREGISTERメッセージに対するレスポンスメッセージの転送例を示す。
(1)ステップS301
SIPプロキシサーバ200はリクエストメッセージを受信すると、リクエストメッセージに対するレスポンスメッセージをリクエストメッセージのViaヘッダに記載された経路を逆に辿って転送する。SIPプロキシサーバ200が図14Dに示すREGISTERメッセージを受信した場合に送信するレスポンスメッセージの例を図17Aに示す。図17Aに示すレスポンスメッセージはSIPサーバ共有モジュール100へ送信される。
(2)ステップS302
SIPサーバ共有モジュール100がレスポンスメッセージを受信すると、まずアドレス変換部130がメッセージ処理を行う。アドレス変換部130は順方向変換を行う際と同じ基準でアドレス変換が必要か否かを判断し、必要と判断した場合は図11に示すフローチャートにしたがってアドレス変換テーブルを参照して逆方向変換を行う。図17Aに示すレスポンスメッセージを受信した場合、当該メッセージのCSeqヘッダからREGISTERメッセージに対するレスポンスメッセージであることが分かるので、Contactヘッダに含まれるIPアドレス及びポート番号をインターセプトアドレスからオリジナルアドレスへ変換する。図17Aのメッセージに対して上記処理を行った後のメッセージを図17Bに示す。ここでは、図中の点線楕円部がアドレス変換部130が変換を行った部分である。
(3)ステップS303
変換処理後、メッセージをグループタグ削除部122に渡す。
(4)ステップS304
グループタグ削除部122は渡されたメッセージに挿入されたグループタグを削除する。また、レスポンスメッセージのViaヘッダに含まれるSIPサーバ共有モジュール100のIPアドレス及びポート番号を削除する。更に、Viaヘッダに含まれるクライアント端末のIPアドレス、ポート番号をメッセージのIPヘッダの宛先IPアドレス、UDPヘッダの宛先ポート番号に設定する。
(5)ステップS305
これらの処理を行った後、グループタグをメッセージ送信先グループ識別部150に渡す。図17Cにグループタグ削除部122が図17Bに示すメッセージに対して処理を行った結果を示す。ここでは、図中の点線楕円部がグループタグ削除部122の処理した部分である。
(6)ステップS306
メッセージ送信先グループ識別部150は、通知グループタグからメッセージ送信先のクライアントグループを識別して、メッセージ送信先グループ識別テーブルを参照してメッセージ処理を行い、グループタグに対応するクライアントグループの外部にメッセージが転送されることを防止する。例えば、メッセージ送信先グループ識別テーブルとして図12に示すテーブルを保持している場合、図17CのメッセージのUDPヘッダの送信元ポート番号をクライアントグループ1に割り当てられたポート番号に変換する。変換後のメッセージを図17Dに示す。ここでは、図中の点線楕円部が変換部分である。
(7)ステップS307
メッセージ処理後、メッセージをクライアント端末へ送信する。
(8)ステップS308
メッセージ送信先グループ識別部150がクライアント端末へ送信したメッセージはVPNゲートウェイ400において中継処理される。VPNゲートウェイ400はパケット転送ルールを参照しメッセージをどの仮想インタフェースから送信するかを決定する。
(9)ステップS309
例えば、図3に示すパケット転送ルールが設定されている場合、VPNゲートウェイは図17Dに示すメッセージを受け取ると、送信元ポート番号から仮想インタフェース1から送信すべきと判断し、仮想インタフェース1から図17Dのメッセージを送信する。
なお、SIPプロキシサーバ200から送信されるレスポンスメッセージには(グループタグの挿入方法が第一の方法、第二の方法であるかに関わらず)当該レスポンスメッセージのトリガとなったリクエストメッセージと同じグループタグが挿入される。したがって、メッセージ送信先グループ識別部150における処理によってレスポンスメッセージがリクエストメッセージ送信元のクライアント端末が所属するクライアントグループとは異なるクライアントグループに転送されることが防止される。
図16では第一の方法でグループタグの挿入が行われた場合の例を示したが、第二の方法でグループタグの挿入が行われた場合は以下のような処理が行われる。
例えば、グループタグをCall−IDに挿入した場合、レスポンスメッセージのCall−IDは当該レスポンスメッセージのトリガとなったリクエストメッセージと同じものが利用されることになっている(RFCでそのように定められている)ため、リクエストメッセージのCall−IDに挿入されたグループタグと同じものがレスポンスメッセージにも挿入されることになる。したがって、メッセージ送信先グループ識別部150がレスポンスメッセージをグループタグに対応するクライアントグループに転送することで、リクエストメッセージ送信元のクライアント端末が所属するクライアントグループとは異なるクライアントグループにレスポンスメッセージを転送することを防ぐことができる。
次に、SIPプロキシサーバ200からクライアント端末へ送信されるリクエストメッセージを転送する際のSIPサーバ共有モジュール100の動作について説明する。
図18に転送時の動作例を示す。
図18はクライアントグループ1:300−1に所属するクライアント端末B:312がクライアント端末A:311へINVITEメッセージを送信した際の動作を示したものである。なお、INVITEメッセージはクライアント端末B:312からSIPプロキシサーバ200を経由してクライアント端末A:311へ送信される。なお、図18では、クライアント端末B:312からSIPプロキシサーバ200サーバ200へINVITEメッセージを送信する際のシーケンスは省略している。
(1)ステップS401
SIPサーバ共有モジュール100がSIPプロキシサーバ200からリクエストメッセージを受信すると、まずアドレス変換部130がメッセージの処理を行う。アドレス変換部130は受信したリクエストメッセージに対するアドレスの逆方向変換が必要か否かを判断し、必要である場合にはアドレス変換テーブル131を参照し、受信したリクエストメッセージのIPヘッダの宛先IPアドレス及びUDPヘッダの宛先ポート番号をオリジナルアドレスに戻す逆方向変換を行う。例えば、図19Bに示したINVITEメッセージをSIPプロキシサーバ200から受信した場合、INVITEメッセージは図19Cに示すメッセージのように逆方向変換される。ここでは、図中の点線楕円部が変換部であり、図15に示すアドレス変換ルールを参照した場合を示している。
(2)ステップS402
アドレス変換後、メッセージグループタグ削除部122に渡される。
(3)ステップS403
グループタグが削除される。
(4)ステップS404
グループタグがメッセージ送信先グループ識別部150に渡される。
(5)ステップS405
その後、メッセージ送信先グループ識別部150においてレスポンスメッセージ転送時と同様の処理が行われる。
(6)ステップS406〜S408
レスポンスメッセージ転送時と同様の処理が行われた後、VPNゲートウェイ400を中継してクライアント端末へ転送される。
なお、第二の方法でグループタグの挿入が行われた場合、前述のようにクライアントグループ外からのリクエストメッセージであってもSIPプロキシサーバ200において(処理2)から(処理4)までの処理が行われる。しかし、SIPプロキシサーバ200から転送されるリクエストメッセージにはSIPプロキシサーバ200が受信したリクエストメッセージと同じグループタグが挿入されるため、メッセージ送信先グループ識別部150における処理によりリクエストメッセージ送信元のクライアント端末が所属するクライアントグループとは異なるクライアントグループに転送されることはない。
例えば、グループタグをCall−IDに挿入した場合、SIPプロキシサーバ200から転送されたリクエストメッセージのCall−IDにはSIPプロキシサーバ200が受信したリクエストメッセージと同じものが利用されることになっている。したがって、例えばメッセージ送信先グループ識別部150がSIPプロキシサーバ200から転送されたリクエストメッセージに挿入されているグループタグに対応するクライアントグループにリクエストメッセージを転送することで、リクエストメッセージ送信元のクライアント端末が所属するクライアントグループとは異なるクライアントグループにリクエストメッセージを転送することを防ぐことができる。
次に、プレゼンス情報の通知が行われる際のSIPサーバ共有モジュール100の動作について説明する。
プレゼンス情報の通知は、プレゼンス情報を発行するクライアント端末(以下、発行端末)がプレゼンス情報をSIPプロキシサーバ200に対して通知する(RFCではPUBLISHメッセージを利用する旨規定されているが、RFCによる規定から日が浅いこともありPUBLISHメッセージとは異なるメッセージによって通知される場合もある)と、予め上述の(処理3)の処理によりSIPプロキシサーバ200に発行端末のプレゼンス情報の通知要求を登録しているクライアント端末(以下、受信端末)に対してSIPプロキシサーバ200からプレゼンス情報が通知される(NOTIFYメッセージが利用される)という手順で行われる。
発行端末が所属するクライアントグループ以外のグループに所属するクライアント端末に対してプレゼンス情報が通知されることを防ぐ必要がある。
第一の方法によりグループタグの挿入が行われた場合、発行端末が所属するクライアントグループ以外のグループに所属するクライアント端末からの通知要求がSIPプロキシサーバ200に登録されることはない。受信端末はSUBSCRIBEメッセージのToヘッダに発行端末のSIP URIを指定して通知要求を行うが、SIPサーバ共有ノードによってToヘッダに記載されたSIP URIへのグループタグ挿入が行われるため、グループ外端末からの通知要求の登録は防がれる。例えばグループ1に所属するクライアント端末A(SIP URI、UserA@here.com)のプレゼンス情報についてグループ2のクライアント端末Xが通知要求をした場合、クライアント端末AのSIP URIはSIPサーバにおいてUserA−group1@here.comと登録されるのに対し、クライアント端末Xの通知要求のToヘッダはUserA−group2@here.comと変換されるため、SIPプロキシサーバ200はクライアント端末Xからの通知要求に対して要求された発行端末は存在しない旨応答する。
一方、第二の方法によりグループタグの挿入が行われた場合、前述のようにグループ外のクライアント端末からの通知要求の登録を防ぐことはできない。グループ外からのリクエストメッセージに対して(処理3)の処理が行われる。
第二の方法でグループタグの挿入が行われた場合、次の処理により発行端末が所属するクライアントグループ以外のグループに所属するクライアント端末に対してプレゼンス情報が通知されることが防がれる。
一般に発行端末からのプレゼンス情報はPUBLISHメッセージのボディ部に記載される。ボディ部に記載された情報がそのままNOTIFYメッセージのボディ部に転載され、受信端末に通知される。したがって、SIPサーバ共有モジュールはPUBLISHメッセージのボディ部にグループタグを挿入し、且つ、NOTIFYメッセージのボディ部に挿入されたグループタグに対応するグループにNOTIFYメッセージを転送すれば良い。なお、NOTIFYメッセージには、PUBLISHメッセージに挿入したグループタグと同じグループタグが挿入されている。
具体的に、グループタグ挿入部がクライアント端末から受信したSIPメッセージがPUBLISHメッセージである場合にはボディ部に対してグループタグを挿入し、SIPプロキシサーバ200から受信したSIPメッセージがNOTIFYメッセージである場合には、ボディ部に挿入されているグループタグを削除し、メッセージ送信先グループ識別部に通知すれば良い。
以上のように、本発明は、複数のクライアントグループと複数のクライアントグループが利用するSIPプロキシサーバとの間で送受信されるSIPメッセージの中継を行うSIPサーバ共有モジュールに関するものである。
このSIPサーバ共有モジュールは、メッセージ送信元グループ識別部と、グループタグ挿入部と、グループタグ削除部と、メッセージ送信先グループ識別部とを有することを特徴とする。
メッセージ送信元グループ識別部は、SIPメッセージのうち、クライアントグループに所属するクライアント端末からSIPプロキシサーバへ送信されるクライアント送信SIPメッセージに対して、クライアント送信SIPメッセージを送信したクライアント端末が所属するクライアントグループを識別する。グループタグ挿入部は、メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグをクライアント送信SIPメッセージに挿入する。グループタグ削除部は、SIPメッセージのうち、SIPプロキシサーバからクライアントグループに所属するクライアント端末へ送信されるサーバ送信SIPメッセージに対して、サーバ送信SIPメッセージに含まれるグループタグの削除を行う。メッセージ送信先グループ識別部は、サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループと異なるクライアントグループに所属するクライアント端末にサーバ送信SIPメッセージが送信されることを防止する。
メッセージ送信先グループ識別部は、サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループとサーバ送信SIPメッセージの実際の送信先クライアント端末が所属するクライアントグループとが一致する場合にのみ、サーバ送信SIPメッセージを送信先クライアント端末へ転送する。
メッセージ送信先グループ識別部は、SIPサーバ共有モジュールが配置されたノードに複数の仮想的又は物理的ネットワークインタフェースが存在する場合には、SIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ毎に異なるネットワークインタフェースを指定して、SIPサーバ送信メッセージを送信する。
メッセージ送信先グループ識別部は、サーバ送信SIPメッセージのIPヘッダ又はUDPヘッダに含まれるパラメタをSIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ毎に異なるパラメタ領域に変換した後、送信先クライアント端末に転送する。
グループタグ挿入部は、メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグをクライアント送信SIPメッセージに含まれるパラメタのうち、以下の全ての条件を満たすいずれかのパラメタに対してグループタグを挿入する。
(1)SIP URIが含まれないSIPプロキシサーバにおける転送処理により消去されない。
(2)リクエストメッセージとリクエストメッセージを受信した際にSIPプロキシサーバが送信する。
(3)レスポンスメッセージとで同じ値が記載される。
グループタグ挿入部は、メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグをクライアント送信SIPメッセージのヘッダ部分に含まれるSIP URIのうちユーザ識別子の部分に挿入する。
グループタグ挿入部は、クライアント送信SIPメッセージがSIPプロキシサーバに対してプレゼンス情報を通知するメッセージである場合には、クライアント送信SIPメッセージのボディ部分にも更にグループタグを挿入する。
グループタグ挿入部は、メッセージ送信元グループ識別部が識別したクライアントグループが複数の場合は、クライアント送信SIPメッセージのコピーをメッセージ送信元グループ識別部が識別したクライアントグループ数分作成し、コピーのそれぞれに対してメッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを挿入する。
グループタグ挿入部は更に、クライアント送信SIPメッセージがリクエストメッセージである場合に、SIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号をクライアント送信SIPメッセージのViaヘッダへ追記し、グループタグ削除部は更に、サーバ送信SIPメッセージがレスポンスメッセージである場合に、サーバ送信SIPメッセージのViaヘッダに記載されたSIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号を削除すると共に、サーバ送信SIPメッセージのViaヘッダに記載されたSIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号をサーバ送信SIPメッセージのIPヘッダの宛先IPアドレスとUDPヘッダの宛先ポート番号に設定する。
また、本発明のSIPサーバ共有モジュールは、オリジナルアドレスと、アドレス変換ルールと、アドレス変換部とを更に有する。
オリジナルアドレスは、クライアント端末がREGISTERメッセージによってSIPプロキシサーバへの登録を要求するアドレスである。
アドレス変換ルールには、SIPプロキシサーバが送信するSIPメッセージの宛先アドレスに設定された場合に、SIPメッセージをSIPサーバ共有モジュールがインターセプト可能となるアドレスであるインターセプトアドレスとを相互に変換するアドレス変換方法が記載されている。
アドレス変換部は、クライアント送信SIPメッセージがREGISTERメッセージである場合には、クライアント送信SIPメッセージのContactヘッダに含まれるオリジナルアドレスを、アドレス変換ルールを参照してインターセプトアドレスに変換する。また、サーバ送信SIPメッセージがREGISTERメッセージに対するレスポンスメッセージである場合には、サーバ送信SIPメッセージのContactヘッダに含まれるインターセプトアドレスを、アドレス変換ルールを参照してオリジナルアドレスに変換する。更に、サーバ送信SIPメッセージがリクエストメッセージである場合には、サーバ送信SIPメッセージのIPヘッダ及びUDPヘッダに指定されているインターセプトアドレスを、アドレス変換ルールを参照してオリジナルアドレスに変換する。
なお、本発明のアドレス変換方法では、Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaとNビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbとを相互に変換する。
また、アドレスaをアドレスbに変換する際には、アドレスaのIPアドレスのうちX<Nを満たすXビット分をアドレスbのIPアドレスにマッピングし、のこりのM−Xビット分をアドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングし、アドレスbをアドレスaに変換する際には、アドレスbのIPアドレスのうちXビット分とアドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせてアドレスaのIPアドレスに変換する。
アドレス変換ルールは、インターセプトアドレスとして、SIPプロキシサーバにおいてSIP共有モジュールがゲートウェイとして設定されているIPアドレス領域を利用する。
アドレス変換ルールは、インターセプトアドレスとして、ローカルループバックアドレス領域に含まれるIPアドレス領域を利用する。
図1は、本発明のSIPサーバ共有モジュールの構成を示すブロック図である。 図2は、ネットワークレベルのクライアントグループの場合の一般的なSIP通信網の構成を示す図である。 図3は、VPNゲートウェイにおけるパケット転送ルールを示す図である。 図4は、アプリケーションレベルのクライアントグループの場合の一般的なSIP通信網の構成を示す図である。 図5は、アプリケーションレベルのクライアントグループの場合の一般的なSIP通信網の構成を示す図である。 図6は、本発明のSIPサーバ共有モジュールが単独でノードに配置された場合のSIP通信網の構成例を示す図である。 図7は、本発明のSIPサーバ共有モジュールがVPN終端部と同一のノードに配置された場合のSIP通信網の構成例を示す図である。 図8は、本発明のSIPサーバ共有モジュールがSIPプロキシサーバと同一のノードに配置された場合のSIP通信網の構成例を示す図である。 図9は、本発明のSIPサーバ共有モジュール内のメッセージ送信元グループ識別部が保持するメッセージ送信元グループ識別テーブルを示す図である。 図10は、SIPプロキシサーバとSIPサーバ共有モジュールの間でトンネリングが構築された場合のメッセージ構成を示す図である。 図11は、本発明のSIPサーバ共有モジュール内のアドレス変換部の動作を示すフローチャート図である。 図12は、本発明のSIPサーバ共有モジュール内のメッセージ送信先グループ識別部が保持するメッセージ送信先グループ識別テーブルを示す図である。 図13Aは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際の動作を示すシーケンス図である。 図13Bは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際の動作を示すシーケンス図である。 図14Aは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際のメッセージ構成を示す図である。 図14Bは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際のメッセージ構成を示す図である。 図14Cは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際のメッセージ構成を示す図である。 図14Dは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際のメッセージ構成を示す図である。 図14Eは、本発明のSIPサーバ共有モジュールがクライアント端末から送信されたリクエストメッセージをSIPプロキシサーバへ転送する際のメッセージ構成を示す図である。 図15は、本発明のSIPサーバ共有モジュール内のアドレス変換テーブルに設定されたアドレス変換ルールを示す図である。 図16は、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから送信されたレスポンスメッセージをクライアント端末へ転送する際の動作を示すシーケンス図である。 図17Aは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから送信されたレスポンスメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図17Bは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから送信されたレスポンスメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図17Cは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから送信されたレスポンスメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図17Dは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから送信されたレスポンスメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図18は、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際の動作を示すシーケンス図である。 図19Aは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図19Bは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図19Cは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図19Dは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。 図19Eは、本発明のSIPサーバ共有モジュールがSIPプロキシサーバから転送されたリクエストメッセージをクライアント端末へ転送する際のメッセージ構成を示す図である。
符号の説明
100 SIPサーバ共有モジュール
110 メッセージ送信元グループ識別部
120 グループタグ挿抜部
121 グループタグ挿入部
122 グループタグ削除部
130 アドレス変換部
131 アドレス変換テーブル
140 メッセージ種別判断部
150 メッセージ送信先グループ識別部
200 SIPプロキシサーバ
300(−i、i=1〜n) クライアントグループ
311 クライアント端末
312 クライアント端末
321 クライアント端末
322 クライアント端末
400 VPNゲートウェイ
410 VPN終端部
420 VPN側インタフェース
421(−i、i=1〜n) 仮想インタフェース
430 データセンタ側インタフェース
500 公衆網
600 データセンタネットワーク
700 グループ情報管理サーバ
800 SIPサーバ共有ノード
900 アプリケーションゲートウェイ
1110 トンネル終端部
1120 トンネリングリンク
1130 トンネル終端部
1210 SIPメッセージ
1220 カプセル化ヘッダ

Claims (18)

  1. 複数のクライアントグループと前記複数のクライアントグループが利用するSIPプロキシサーバとの間で送受信されるSIPメッセージの中継を行うSIPサーバ共有モジュールであって、
    前記SIPメッセージのうち、前記複数のクライアントグループの各々に所属するクライアント端末から前記SIPプロキシサーバへ送信されるクライアント送信SIPメッセージから、前記クライアント送信SIPメッセージを送信したクライアント端末が所属するクライアントグループを識別するメッセージ送信元グループ識別部と、
    前記メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを前記クライアント送信SIPメッセージに挿入するグループタグ挿入部と、
    前記SIPメッセージのうち、前記SIPプロキシサーバから前記クライアントグループに所属するクライアント端末へ送信されるサーバ送信SIPメッセージに対して、前記サーバ送信SIPメッセージに含まれるグループタグの削除を行うグループタグ削除部と、
    前記サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループと異なるクライアントグループに所属するクライアント端末に前記サーバ送信SIPメッセージが送信されることを防止するメッセージ送信先グループ識別部と
    を有する
    SIPサーバ共有モジュール。
  2. 請求項1に記載のSIPサーバ共有モジュールにおいて、
    前記メッセージ送信先グループ識別部は、前記サーバ送信SIPメッセージに含まれるグループタグに対応するクライアントグループと、前記サーバ送信SIPメッセージの実際の送信先クライアント端末が所属するクライアントグループとが一致する場合、前記サーバ送信SIPメッセージを前記送信先クライアント端末へ転送する
    SIPサーバ共有モジュール。
  3. 請求項1に記載のSIPサーバ共有モジュールにおいて、
    前記メッセージ送信先グループ識別部は、当該SIPサーバ共有モジュールが配置されたノードに複数の仮想的又は物理的ネットワークインタフェースが存在する場合、前記SIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ毎に異なるネットワークインタフェースを指定して、前記SIPサーバ送信メッセージを送信する
    SIPサーバ共有モジュール。
  4. 請求項1に記載のSIPサーバ共有モジュールにおいて、
    前記メッセージ送信先グループ識別部は、前記サーバ送信SIPメッセージのIPヘッダ又はUDPヘッダに含まれるパラメタを、前記SIPサーバ送信メッセージに含まれるグループタグに対応するクライアントグループ毎に異なるパラメタ領域に変換した後、前記サーバ送信SIPメッセージを送信先クライアント端末に転送する
    SIPサーバ共有モジュール。
  5. 請求項1乃至4のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    前記グループタグ挿入部は、前記メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを、前記クライアント送信SIPメッセージに含まれるパラメタのうち、SIPプロキシサーバへ登録するURIが含まれず、且つ、SIPプロキシサーバにおける転送処理により消去されず、且つ、リクエストメッセージと前記リクエストメッセージを受信した際にSIPプロキシサーバが送信するレスポンスメッセージとで同じ値が記載される、という条件を満たすいずれかのパラメタに対して挿入する
    SIPサーバ共有モジュール。
  6. 請求項1乃至4のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    前記グループタグ挿入部は、前記メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを、前記クライアント送信SIPメッセージのヘッダ部分に含まれるURIのうちユーザ識別子の部分に挿入する
    SIPサーバ共有モジュール。
  7. 請求項1乃至6のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    前記グループタグ挿入部は、前記クライアント送信SIPメッセージが前記SIPプロキシサーバに対してプレゼンス情報を通知するメッセージである場合、前記クライアント送信SIPメッセージのボディ部分にも更にグループタグを挿入する
    SIPサーバ共有モジュール。
  8. 請求項1乃至7のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    前記グループタグ挿入部は、前記メッセージ送信元グループ識別部が識別したクライアントグループが複数の場合、前記クライアント送信SIPメッセージのコピーを前記メッセージ送信元グループ識別部が識別したクライアントグループ数分作成し、前記コピーのそれぞれに対して前記メッセージ送信元グループ識別部が識別したクライアントグループに対応するグループタグを挿入する
    SIPサーバ共有モジュール。
  9. 請求項1乃至8のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    前記グループタグ挿入部は、更に、前記クライアント送信SIPメッセージがリクエストメッセージである場合、SIPサーバ共有モジュールが配置されたノードのIPアドレス及び前記SIPメッセージの待ち受けに利用するポート番号を前記クライアント送信SIPメッセージのViaヘッダへ追記し、
    前記グループタグ削除部は、更に、前記サーバ送信SIPメッセージがレスポンスメッセージである場合、前記サーバ送信SIPメッセージのViaヘッダに記載されたSIPサーバ共有モジュールが配置されたノードのIPアドレス及びSIPサーバ共有モジュールがSIPメッセージの待ち受けに利用するポート番号を削除すると共に、前記サーバ送信SIPメッセージのViaヘッダに記載されたクライアント端末のIPアドレス及びポート番号を前記サーバ送信SIPメッセージのIPヘッダの宛先IPアドレスとUDPヘッダの宛先ポート番号に設定する
    SIPサーバ共有モジュール。
  10. 請求項1乃至9のいずれか一項に記載のSIPサーバ共有モジュールにおいて、
    アドレス変換ルールと、
    アドレス変換部と
    を更に有し、
    前記アドレス変換ルールには、
    前記クライアント端末がREGISTERメッセージによって前記SIPプロキシサーバへの登録を要求するアドレスであるオリジナルアドレスと、
    前記SIPプロキシサーバが送信するSIPメッセージの宛先アドレスに設定された場合に前記SIPメッセージをインターセプトするためのアドレスであるインターセプトアドレスと
    を相互に変換するアドレス変換方法が記載されており、
    前記アドレス変換部は、
    前記クライアント送信SIPメッセージがREGISTERメッセージである場合、前記クライアント送信SIPメッセージのContactヘッダに含まれるオリジナルアドレスを、前記アドレス変換ルールを参照してインターセプトアドレスに変換し、
    前記サーバ送信SIPメッセージがREGISTERメッセージに対するレスポンスメッセージである場合、前記サーバ送信SIPメッセージのContactヘッダに含まれるインターセプトアドレスを、前記アドレス変換ルールを参照してオリジナルアドレスに変換し、
    前記サーバ送信SIPメッセージがリクエストメッセージである場合、前記サーバ送信SIPメッセージのIPヘッダ及びUDPヘッダに指定されているインターセプトアドレスを、前記アドレス変換ルールを参照してオリジナルアドレスに変換する
    SIPサーバ共有モジュール。
  11. 請求項10に記載のSIPサーバ共有モジュールにおいて、
    前記アドレス変換方法は、
    Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaと、
    Nビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレスとUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbと
    を相互に変換するアドレス変換方法であって、
    前記アドレスaを前記アドレスbに変換する際には、前記アドレスaのIPアドレスのうちX<Nを満たすXビット分を前記アドレスbのIPアドレスにマッピングし、残りのM−Xビット分を前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングし、
    前記アドレスbを前記アドレスaに変換する際には、前記アドレスbのIPアドレスのうちXビット分と前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせて前記アドレスaのIPアドレスに変換する
    ことを特徴とする
    SIPサーバ共有モジュール。
  12. 請求項10又は11に記載のSIPサーバ共有モジュールにおいて、
    前記アドレス変換ルールは、インターセプトアドレスとして、前記SIPプロキシサーバにおいてSIPサーバ共有モジュールがゲートウェイとして設定されているIPアドレス領域を利用することを特徴とする
    SIPサーバ共有モジュール。
  13. 請求項10又は11に記載のSIPサーバ共有モジュールにおいて、
    前記アドレス変換ルールは、インターセプトアドレスとして、ローカルループバックアドレス領域に含まれるIPアドレス領域を利用することを特徴とする
    SIPサーバ共有モジュール。
  14. Mビットの広さを持つIPアドレス領域Aに含まれる任意のIPアドレス、及びUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスaと、
    Nビットの広さを持つIPアドレス領域Bに含まれる任意のIPアドレス、及びUDP又はTCPの宛先又は送信元ポート番号のペアであるアドレスbと
    を相互に変換するアドレス変換方法であって、
    (A)前記アドレスaを前記アドレスbに変換する際には、前記アドレスaのIPアドレスのうちX<Nを満たすXビット分を前記アドレスbのIPアドレスにマッピングするステップと、
    (B)前記アドレスaのIPアドレスのうち残りのM−Xビット分を前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号にマッピングするステップと、
    (C)前記アドレスbを前記アドレスaに変換する際には、前記アドレスbのIPアドレスのうちXビット分と前記アドレスbのUDP又はTCPの宛先又は送信元ポート番号のうちM−Xビット分とを組み合わせて前記アドレスaのIPアドレスに変換するステップと
    を具備する
    アドレス変換方法。
  15. (a)メッセージを受信した場合、前記メッセージがクライアント端末から送信されたメッセージかSIPプロキシサーバから送信されたメッセージかを判別するステップと、
    (b)前記受信したメッセージが前記クライアント端末から送信されたメッセージの場合、アドレス変換が必要か否かを判断するステップと、
    (c)アドレス変換が必要ない場合、特に処理を行わず前記クライアント端末から送信されたメッセージを前記SIPプロキシサーバへ転送するステップと、
    (d)アドレス変換が必要な場合、前記クライアント端末から送信されたメッセージがREGISTERメッセージか否かを判断するステップと、
    (e)前記クライアント端末から送信されたメッセージがREGISTERメッセージである場合、ヘッダ部分のContactヘッダに含まれるIPアドレス又はポート番号といったオリジナルアドレスを順方向変換するステップと、
    (f)順方向変換後、前記SIPプロキシサーバへREGISTERメッセージを送信するステップと
    を具備する
    SIPメッセージ中継方式。
  16. 請求項15に記載のSIPメッセージ中継方式において、
    (g)前記受信したメッセージが前記SIPプロキシサーバから送信されたメッセージの場合、アドレス変換が必要か否かを判断するステップと、
    (h)アドレス変換が不要な場合、前記SIPプロキシサーバから送信されたメッセージに含まれるグループタグの削除を行うステップと、
    (i)アドレス変換が必要な場合、前記SIPプロキシサーバから送信されたメッセージがリクエストメッセージであるか否かを判断するステップと、
    (j)前記SIPプロキシサーバから送信されたメッセージがリクエストメッセージである場合、当該SIPメッセージが前記クライアント端末へ転送されるように、SIPメッセージのIPヘッダの宛先アドレス又は宛先ポート番号をインターセプトアドレスから前記オリジナルアドレスへ逆方向変換するステップと、
    (k)逆方向変換後、前記SIPプロキシサーバから送信されたメッセージに含まれるグループタグの削除を行うステップと
    を更に具備する
    SIPメッセージ中継方式。
  17. 請求項16に記載のSIPメッセージ中継方式において、
    (l)前記SIPプロキシサーバから送信されたメッセージがレスポンスメッセージの場合、REGISTERメッセージ対するレスポンスメッセージであるか否かを判断するステップと、
    (m)前記SIPプロキシサーバから送信されたメッセージがREGISTERメッセージ対するレスポンスメッセージの場合、Contactヘッダに含まれるIPアドレス又はポート番号であるインターセプトアドレスを、前記オリジナルアドレスに逆方向変換するステップと、
    (n)逆方向変換後、前記SIPプロキシサーバから送信されたメッセージに含まれるグループタグの削除を行うステップと
    を更に具備する
    SIPメッセージ中継方式。
  18. 請求項15乃至17のいずれか一項に記載のSIPメッセージ中継方式を、コンピュータに実行させるためのプログラム。
JP2005355328A 2005-12-08 2005-12-08 Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム Expired - Fee Related JP4154615B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005355328A JP4154615B2 (ja) 2005-12-08 2005-12-08 Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム
US11/608,033 US20070136413A1 (en) 2005-12-08 2006-12-07 Sip server sharing module and sip message relay system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005355328A JP4154615B2 (ja) 2005-12-08 2005-12-08 Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2007157085A true JP2007157085A (ja) 2007-06-21
JP4154615B2 JP4154615B2 (ja) 2008-09-24

Family

ID=38140769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005355328A Expired - Fee Related JP4154615B2 (ja) 2005-12-08 2005-12-08 Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム

Country Status (2)

Country Link
US (1) US20070136413A1 (ja)
JP (1) JP4154615B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010062776A (ja) * 2008-09-03 2010-03-18 Nec Corp 接続制御装置
US7969976B2 (en) 2007-12-21 2011-06-28 Nec Corporation Gateway apparatus, packet forwarding method, and program
US8280953B2 (en) 2009-03-17 2012-10-02 Fujitsu Limited Relay unit
JP2013523021A (ja) * 2010-03-16 2013-06-13 アルカテル−ルーセント セキュアインフラストラクチャを提供する方法、システム、および装置
JP2013232808A (ja) * 2012-04-27 2013-11-14 Toshiba Corp データセンタ装置、制御方法及びプログラム
JP2015103122A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680060B2 (en) * 2005-03-08 2010-03-16 Cisco Technology, Inc. Transferring state information in a network
EP1713218A1 (en) * 2005-04-15 2006-10-18 France Telecom Communications system and method
US7627681B2 (en) * 2005-07-20 2009-12-01 Microsoft Corporation Relaying messages through a firewall
JP4812508B2 (ja) * 2006-05-12 2011-11-09 富士通株式会社 プレゼンス情報を取り扱うシステム
US7664108B2 (en) * 2006-10-10 2010-02-16 Abdullah Ali Bahattab Route once and cross-connect many
US8310958B2 (en) * 2006-12-28 2012-11-13 Verizon Patent And Licensing Inc. Routing calls in a network
JP4643596B2 (ja) * 2007-01-11 2011-03-02 株式会社東芝 端末装置を認証する装置、方法、プログラム、端末装置、および端末装置の通信を中継する装置
US9794310B2 (en) * 2007-01-11 2017-10-17 Samsung Electronics Co., Ltd. Meta data information providing server, client apparatus, method of providing meta data information, and method of providing content
US10063392B2 (en) * 2007-08-21 2018-08-28 At&T Intellectual Property I, L.P. Methods and apparatus to select a voice over internet protocol (VOIP) border element
CN101127766B (zh) * 2007-09-24 2010-06-09 中兴通讯股份有限公司 基于sip协议的消息处理方法、装置及ip通信系统
US8447039B2 (en) * 2007-09-26 2013-05-21 Cisco Technology, Inc. Active-active hierarchical key servers
CN101828376B (zh) * 2007-10-18 2015-05-13 爱立信电话股份有限公司 用于处理对于其用户数据库查询已失败的进入请求的方法和节点
US20090113077A1 (en) * 2007-10-26 2009-04-30 Torbjorn Dahlen Service discovery associated with real time composition of services
US8583780B2 (en) * 2007-11-20 2013-11-12 Brocade Communications Systems, Inc. Discovery of duplicate address in a network by reviewing discovery frames received at a port
ATE556526T1 (de) * 2007-12-17 2012-05-15 Ericsson Telefon Ab L M Stapeloptimierung des session initiation procotol
US20090182819A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Techniques to selectively share messages
US9071608B2 (en) 2008-04-28 2015-06-30 International Business Machines Corporation Method and apparatus for load balancing in network based telephony application
US8881167B2 (en) * 2008-04-28 2014-11-04 International Business Machines Corporation Load balancing in network based telephony applications
JP2009290605A (ja) * 2008-05-29 2009-12-10 Fujitsu Ltd 中継装置、中継方法および監視装置
TWI376923B (en) * 2008-07-24 2012-11-11 Ind Tech Res Inst One-way media streaming system and method thereof
US20100080217A1 (en) * 2008-09-26 2010-04-01 Kabushiki Kaisha Toshiba Sip Telephone System and Method for Controlling Line Key Display
US20100146394A1 (en) * 2008-12-04 2010-06-10 Morris Robert P Methods, Systems, And Computer Program Products For Browsing Using A Geospatial Map Metaphor
US7933272B2 (en) * 2009-03-11 2011-04-26 Deep River Systems, Llc Methods and systems for resolving a first node identifier in a first identifier domain space to a second node identifier in a second identifier domain space
JP4635095B2 (ja) * 2009-06-30 2011-02-16 株式会社東芝 通信システムとそのサーバ装置
JP5537349B2 (ja) * 2010-02-11 2014-07-02 Kddi株式会社 端末の接続を継続した状態でsipサーバを変更する方法及びシステム
CN101888301B (zh) * 2010-06-30 2011-12-14 北京神州泰岳软件股份有限公司 基于sip协议的群发文件方法
JP5693065B2 (ja) * 2010-07-06 2015-04-01 キヤノン株式会社 通信端末、通信端末の制御方法及びプログラム
US8904511B1 (en) * 2010-08-23 2014-12-02 Amazon Technologies, Inc. Virtual firewalls for multi-tenant distributed services
US8935427B2 (en) * 2010-09-23 2015-01-13 Microsoft Corporation Providing virtual networks using multi-tenant relays
KR20120038187A (ko) * 2010-10-13 2012-04-23 삼성전자주식회사 컨텐츠 중심 네트워킹 환경에서 그룹 변경에 관한 정보를 이용한 컨텐츠 공유 방법 및 장치
KR20120100376A (ko) * 2011-03-04 2012-09-12 삼성에스디에스 주식회사 에스아이피 메시지 송수신 시스템 및 방법
EP2571223A1 (en) * 2011-09-14 2013-03-20 Telefonaktiebolaget LM Ericsson (publ) A gateway and a method therein for enabling sip communication over a non-standard sip transport protocol
US9923956B2 (en) * 2016-03-17 2018-03-20 Webtext Holdings Limited Message transfer system, method of transferring messages and software product
WO2019209306A1 (en) * 2018-04-26 2019-10-31 Google Llc Auto-form fill based website authentication

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509425B1 (en) * 2002-01-15 2009-03-24 Dynamicsoft, Inc. Establishing and modifying network signaling protocols
JP3972733B2 (ja) * 2002-05-30 2007-09-05 株式会社日立製作所 アドレス変換装置、アドレス変換システム、及びsipサーバ
US7412521B2 (en) * 2003-03-12 2008-08-12 Microsoft Corporation End-point identifiers in SIP
JP2004364141A (ja) * 2003-06-06 2004-12-24 Hitachi Communication Technologies Ltd Ipアドレス変換装置およびパケット転送装置
US20050117605A1 (en) * 2003-07-22 2005-06-02 Innomedia Pte Ltd. Network address and port translation gateway with real-time media channel management
JP2005136875A (ja) * 2003-10-31 2005-05-26 Hitachi Ltd 通信制御装置
JP2005236824A (ja) * 2004-02-23 2005-09-02 Yokogawa Electric Corp IPv6/IPv4トランスレータ
US7411967B2 (en) * 2005-05-06 2008-08-12 Cisco Technology, Inc. Private network gateways interconnecting private networks via an access network
JP2006333034A (ja) * 2005-05-26 2006-12-07 Sony Corp 通信方法、通信システム、通信装置、プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7969976B2 (en) 2007-12-21 2011-06-28 Nec Corporation Gateway apparatus, packet forwarding method, and program
JP2010062776A (ja) * 2008-09-03 2010-03-18 Nec Corp 接続制御装置
US8280953B2 (en) 2009-03-17 2012-10-02 Fujitsu Limited Relay unit
JP2013523021A (ja) * 2010-03-16 2013-06-13 アルカテル−ルーセント セキュアインフラストラクチャを提供する方法、システム、および装置
JP2013232808A (ja) * 2012-04-27 2013-11-14 Toshiba Corp データセンタ装置、制御方法及びプログラム
JP2015103122A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラム

Also Published As

Publication number Publication date
US20070136413A1 (en) 2007-06-14
JP4154615B2 (ja) 2008-09-24

Similar Documents

Publication Publication Date Title
JP4154615B2 (ja) Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム
JP4579934B2 (ja) レガシーノードとhipノード間のホストアイデンティティプロトコル(hip)接続を確立するためのアドレス指定方法及び装置
JP4752510B2 (ja) 暗号化通信システム
US7508818B2 (en) IP telephony method and IP telephone system
WO2018133454A1 (zh) 远程服务访问路径控制方法和相关设备
US8316134B2 (en) File server device arranged in a local area network and being communicable with an external server arranged in a wide area network
US7936750B2 (en) Packet transfer device and communication system
JP4236364B2 (ja) 通信データ中継装置
TWI408936B (zh) 網路穿透方法及網路通訊系統
US8499083B2 (en) Relay device and communication system
JP3667586B2 (ja) マルチキャストパケット転送装置、マルチキャストパケット転送システム及び記憶媒体
KR100811890B1 (ko) 인터넷 시스템에서 서비스 플로우를 보장하는 애니캐스트라우팅 방법 및 장치
JP2005318503A (ja) プレゼンスサーバ、セッション制御サーバ、パケット中継システム、サーバ、及びシステム
EP1890424A1 (en) A system and method for achieving the data communication
JP2006254253A (ja) セッション中継装置
Alani et al. Tcp/ip model
JP4253569B2 (ja) 接続制御システム、接続制御装置、及び接続管理装置
JP2006074132A (ja) マルチキャスト通信方法及びゲートウェイ装置
JP5207270B2 (ja) 複数のネットワーク間の通信システム
CN104518959B (zh) 一种设备间通信的方法及装置
CN101572729B (zh) 一种虚拟专用网节点信息的处理方法及相关设备、系统
JP4728933B2 (ja) Ip電話通信システム、ip電話通信方法、およびそのプログラム
JP2007174583A (ja) ネットワーク中継装置
JP2001136202A (ja) Tcp/ipにおけるコネクション設定方法および方式
JP2003046530A (ja) アドレス空間の異なるipネットワーク間の通信方法およびグローバルipアドレスを持つ装置

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20070720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070725

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080522

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: 20080611

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080624

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4154615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees