JP2009048528A - メッセージを転送する装置、ループを検出する方法およびプログラム - Google Patents

メッセージを転送する装置、ループを検出する方法およびプログラム Download PDF

Info

Publication number
JP2009048528A
JP2009048528A JP2007215687A JP2007215687A JP2009048528A JP 2009048528 A JP2009048528 A JP 2009048528A JP 2007215687 A JP2007215687 A JP 2007215687A JP 2007215687 A JP2007215687 A JP 2007215687A JP 2009048528 A JP2009048528 A JP 2009048528A
Authority
JP
Japan
Prior art keywords
message
transfer
destination
unit
communication
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.)
Pending
Application number
JP2007215687A
Other languages
English (en)
Inventor
Masafumi Tsuji
雅史 辻
Mitsuru Kanda
充 神田
Yasuyuki Kosakai
康之 小堺
Koji Saiki
晃治 齊木
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007215687A priority Critical patent/JP2009048528A/ja
Publication of JP2009048528A publication Critical patent/JP2009048528A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】メッセージを透過的に転送しない場合であっても、メッセージループを検出するメッセージ転送装置を提供する。
【解決手段】宛先URIと転送先URIおよび転送先リクエストURIとを対応づけて記憶する転送情報テーブル153と、メッセージの種類と送信元URIと転送先URIと転送回数とを対応づけて記憶する転送回数テーブル154と、UAから受信したメッセージに含まれる宛先URIに対応する転送先URIおよび転送先リクエストURIを取得する取得部141と、取得された転送先リクエストURIのUAにメッセージを転送する送信部102と、受信したメッセージの種類と受信したメッセージに含まれる送信元URIと取得された転送先URIとに対応する転送回数に1を加算する加算部132と、転送回数が所定の閾値より大きい場合に転送のループが発生していると判断する判断部131と、を備えた。
【選択図】 図5

Description

この発明は、受信したメッセージとは別の通信によって当該受信したメッセージを転送する装置、メッセージ転送時のループを検出する方法およびプログラムに関するものである。
通信装置間に介在し通信を制御・中継するシグナリングプロトコルとしてSIP(Session Initiation Protocol)が広く知られている。SIPを用いた通信システムでは、一般に、端末装置であるSIP端末間の通信仲介サーバ装置としてSIPプロキシが用いられる。SIPプロキシは、原則としてSIPメッセージ内のヘッダやボディは変更せずに透過的にメッセージを転送する。
また、UAC(User Agent Client)およびUAS(User Agent Server)の両方の機能を有するB2BUA(Back to Back User Agent)と呼ばれるサーバ装置によって、SIP端末間の通信を仲介する場合もある。B2BUAは、SIPプロキシでは実現できない機能を提供可能とするため、転送時にSIPメッセージのヘッダ等の内容を自由に変更することができる。また、B2BUAでは、SIPメッセージを受信したダイアログと異なるダイアログを用いて受信したSIPメッセージを転送する。
SIPメッセージを転送する場合、通信を仲介するサーバ装置の設定内容によっては、同じサーバ装置間で同一のSIPメッセージを繰り返し転送するメッセージループが発生する場合がある。
SIPのメッセージループの検出・防御方法に関して、非特許文献1では、SIPメッセージのMax−Forwardsヘッダの値を減じることによりループを検出する技術が提案されている。この方法によれば、ヘッダを変更せずに透過的に転送するSIPプロキシなどのサーバ装置間で発生するメッセージのループを検出することができる。
J. Rosenberg et al.、 "RFC 3261、 SIP: Session Initiation Protocol"、[online]、June 2002、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3261.txt>
しかしながら、B2BUAなどのように、受信したSIPメッセージを別のダイアログで転送し、転送時にヘッダの値を自由に変更可能なサーバ装置の場合、転送時にMax−Forwardsの値が初期化される可能性があるため、Max−Forwardsを用いてループを検出する方法を適用できないという問題があった。
なお、Max−Forwardsの値を初期化しないようにサーバ装置の機能を変更する方法も考えられるが、すべてのサーバ装置を変更する必要があるため実現は困難である。また、そもそもMax−Forwardsのデフォルト値は70であるため、この値を減算して0に到達したことを検出する方法では、ループの検出に時間がかかるという問題があった。
本発明は、上記に鑑みてなされたものであって、メッセージを透過的に転送しない場合であっても、メッセージループを検出することができる装置、方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ネットワークを介して接続された通信装置間で送受信されるメッセージを転送するメッセージ転送装置であって、メッセージの宛先である通信装置を識別する宛先IDと、メッセージを転送すべき通信装置を識別する転送先IDとを対応づけた転送情報を記憶する転送情報記憶部と、メッセージの種類と、メッセージの送信元である通信装置を識別する送信元IDと、前記転送先IDと、メッセージの転送回数とを対応づけて記憶する転送回数記憶部と、前記送信元IDと前記宛先IDとを含むメッセージを通信装置から受信する受信部と、受信したメッセージに含まれる前記宛先IDに対応する前記転送先IDを前記転送情報記憶部から取得する取得部と、取得された前記転送先IDの通信装置に受信したメッセージを転送する送信部と、受信したメッセージの種類と、受信したメッセージに含まれる前記送信元IDと、取得された前記転送先IDとに対応する前記転送回数記憶部内の前記転送回数に1を加算する加算部と、前記転送回数が予め定められた閾値より大きいか否かを判断し、大きい場合に転送のループが発生していると判断する判断部と、を備えたことを特徴とする。
また、本発明は、上記装置を実行することができる方法およびプログラムである。
本発明によれば、メッセージを透過的に転送しない場合であっても、メッセージループを検出することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかるメッセージ転送装置は、B2BUAのように受信時に用いた通信(ダイアログ)と異なる通信(ダイアログ)でSIPメッセージを転送する場合に、メッセージの種類、受信したメッセージのFromヘッダで指定されたURI、および転送するメッセージのリクエストURIまたはToヘッダで指定したURIによってSIPメッセージを識別し、識別したSIPメッセージごとに転送回数をカウントしてループを検出するものである。
図1は、第1の実施の形態にかかる通信システムのブロック図である。図1に示すように、第1の実施の形態にかかる通信システムは、複数のUA(User Agent)100a、100bと、SIPプロキシ200と、複数のメッセージ転送装置300a、300b、300cとを含んでいる。
UA100a、100bは、SIPのUA機能を備えた端末装置である。なお、UA100a、100bは同一の構成を備えるため、以下では、単にUA100という場合がある。また、UA100は2台に限られず、3台以上のUA100を備えるように構成してもよい。
SIPプロキシ200は、通信仲介のためのプロトコルであるSIPを用いて、UA100間のSIPメッセージを中継する中継装置である。また、SIPプロキシ200は1台に限られず、2台以上のSIPプロキシ200を備えるように構成してもよい。
メッセージ転送装置300a、300b、300cは、B2BUAのように、SIPのUACおよびUASの両方の機能を備え、通信相手それぞれに対して確立したダイアログによってSIPメッセージを転送するものである。メッセージ転送装置300a、300b、および300cは同様の機能を備えるため、以下では単にメッセージ転送装置300という場合がある。また、メッセージ転送装置300の個数は3つに限られるものではない。
メッセージ転送装置300は、メッセージの宛先ごとに転送すべき転送先を対応づけた転送情報を記憶しており、転送情報を用いてメッセージの転送先を決定する。メッセージ転送装置300の詳細な構成については後述する。
次に、第1の実施の形態にかかる通信装置によるSIPメッセージの転送処理の概要について図2および図3を用いて説明する。図2は、正常にSIPメッセージが転送される場合の転送処理の一例を示す図である。
図2では、UA100aからUA100bに対してSIPリクエストメッセージを送信したときに、メッセージ転送装置300a、300b、および300cを介して当該SIPリクエストメッセージが転送される例を示している。
SIPリクエストメッセージが正常に転送された場合は、転送先のUA100bから複数のメッセージ転送装置300を介してUA100aに対して肯定応答メッセージまたはエラー応答メッセージが返される。
図3は、SIPメッセージの転送時にメッセージループが発生した場合の転送処理の一例を示す図である。図3では、メッセージ転送装置300cの転送情報の設定が図2と異なるため、メッセージがUA100bに転送されずに、メッセージ転送装置300aに転送された場合の例を示している。このような場合、メッセージ転送装置300a、300b、および300cの間でメッセージループが発生する。
図4は、図3のようなメッセージループが発生する場合の転送処理の詳細なシーケンスを表す図である。なお、図4に示すように、UA100aは、SIPのURIとして「ua@example.com」が設定されているものとする。また、メッセージ転送装置300a、300b、および300cは、それぞれSIPのURIとして、「s1@example.com」、「s2@example.com」、および「s3@example.com」が設定されているものとする。
また、メッセージ転送装置300aは、「a1@example.com」に対して送信されたメッセージを「a2@example.com」に転送することを示す転送情報を記憶しているものとする。同図でメッセージ転送装置300aの上部に記載した「(a1→a2)」は、このような転送情報を簡略化して表現したものである。メッセージ転送装置300bおよび300cについても、それぞれ「(a2→a3)」および「(a3→a1)」で表現される転送情報が設定されているものとする。
まず、UA100aが、Toヘッダに「a1@example.com」、Fromヘッダに「ua@example.com」、およびリクエストURIに「s1@example.com」を指定したSUBSCRIBEリクエストを送信したとする(ステップS401)。そして、このリクエストが、SIPプロキシ200(図4では省略)によって、「a1@example.com」を管理するメッセージ転送装置300aに送信されたものとする。
この場合、メッセージ転送装置300aは、記憶された転送情報に従い、リクエストURIを「s2@example.com」に書き換え、Toヘッダを「a2@example.com」に書き換え、Fromヘッダを「s1@example.com」に書き換えて、受信したSUBSCRIBEリクエストを転送する(ステップS402)。このリクエストは、さらにSIPプロキシ200によって、「a2@example.com」を管理するメッセージ転送装置300bに送信される。
メッセージ転送装置300bは、記憶された転送情報に従い、リクエストURIを「s3@example.com」に書き換え、Toヘッダを「a3@example.com」に書き換え、Fromヘッダを「s2@example.com」に書き換えて、受信したSUBSCRIBEリクエストをさらに転送する(ステップS403)。このリクエストは、SIPプロキシ200によって、「a3@example.com」を管理するメッセージ転送装置300cに送信される。
同様に、メッセージ転送装置300cは、記憶された転送情報に従い、リクエストURIを「s1@example.com」に書き換え、Toヘッダを「a1@example.com」に書き換え、Fromヘッダを「s3@example.com」に書き換えて、受信したSUBSCRIBEリクエストをさらに転送する(ステップS404)。このリクエストは、「s1@example.com」がリクエストURIとして指定されているため、再度、「a1@example.com」を管理するメッセージ転送装置300aに送信される。
以降、ステップS405、ステップS406、およびステップS407では、それぞれステップS402、ステップS403、およびステップS404と同様の処理が実行され、リクエストの転送が繰り返される。複数のメッセージ転送装置300を介したメッセージの転送処理では、このようにしてメッセージループが発生する。
次に、メッセージ転送装置300の詳細な構成について説明する。図5は、第1の実施の形態にかかるメッセージ転送装置300の構成を示すブロック図である。図5に示すように、メッセージ転送装置300は、記憶部150と、受信部101と、送信部102と、メッセージ処理部110と、ダイアログ管理部120と、ループ検出部130と、転送情報管理部140と、を備えている。
記憶部150は、メッセージの転送に関する各種データを記憶するものであり、ダイアログ情報テーブル151と、ダイアログ対応テーブル152と、転送情報テーブル153と、転送回数テーブル154とを格納している。なお、記憶部150は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
ダイアログ情報テーブル151は、通信相手との間で確立したダイアログに関する情報(ダイアログ情報)を記憶するものである。図6は、ダイアログ情報テーブル151に記憶されたダイアログ情報のデータ構造の一例を示す図である。
図6に示すように、ダイアログ情報は、Call−IDと、ローカルタグと、リモートタグと、ローカルURIと、リモートURIとを含んでいる。
Call−ID、ローカルタグ、およびリモートタグは、ダイアログを識別するためのダイアログIDを構成するものである。ローカルURIおよびリモートURIには、それぞれ受信したメッセージのToヘッダおよびFromヘッダで指定されたURIが設定される。なお、メッセージ転送装置300からダイアログを確立した場合は、ローカルURIおよびリモートURIには、それぞれ送信したメッセージのFromヘッダおよびToヘッダで指定したURIが設定される。
また、同図で示した項目以外に、例えばダイアログで送信されるメッセージの順序制御に用いるシーケンス番号などもダイアログ情報に含むことができるが、同図では省略している。
図5に戻り、ダイアログ対応テーブル152は、転送するメッセージの送信元のUA100との間で確立したダイアログと、転送するメッセージの転送先のUA100との間で確立したダイアログとの間の対応情報を記憶するものである。図7は、ダイアログ対応テーブル152に記憶された対応情報のデータ構造の一例を示す図である。同図に示すように、対応情報は、メッセージ転送に関連する2つのダイアログのうち一方のダイアログのダイアログID1と、他方のダイアログのダイアログID2とを含んでいる。
ダイアログ対応テーブル152は、受信したメッセージを転送するダイアログを特定するために参照される。
図5に戻り、転送情報テーブル153は、受信したメッセージで指定された宛先を識別する宛先URIから、受信したメッセージを転送すべき転送先を特定するための転送情報を記憶するものである。図8は、第1の実施の形態の転送情報テーブル153に記憶された転送情報のデータ構造の一例を示す図である。図8に示すように、転送情報は、受信したSIPメッセージでToヘッダに指定された宛先URIと、当該宛先URIが指定された場合に転送すべきSIPメッセージのToヘッダに指定するURIを表す転送先URIとリクエストURIに指定するURIを表す転送先リクエストURIとを含んでいる。
このように、本実施の形態では、転送先URIと転送先リクエストURIを用いる例について説明するが、受信したSIPメッセージのToヘッダに指定されたURIをそのまま転送するSIPメッセージのToヘッダに指定する場合は、転送先URIを省略して構成してもよい。
転送情報テーブル153は、後述する取得部141が、受信したメッセージを転送すべき外部装置のURIを取得するときに参照される。なお、外部装置とは、UA100を含む端末装置、他のメッセージ転送装置300、およびSIPプロキシ200などの、SIPメッセージの送信元または転送先となりうるあらゆる装置をいう。
図5に戻り、転送回数テーブル154は、メッセージループを検出するための転送回数を記憶するものである。第1の実施の形態では、受信したSIPメッセージのリクエストの種類と、受信したSIPメッセージのFromヘッダで指定された送信元の外部装置のURI(送信元URI)と、転送すべき外部装置のURI(転送先URI)との組合せを表すループ検出情報ごとに、SIPメッセージの転送回数がカウントされて転送回数テーブル154に保存される。
図9は、転送回数テーブル154に記憶されたデータのデータ構造の一例を示す図である。同図に示すように、転送回数テーブル154には、リクエストの種類と、送信元URIと、転送先URIと、転送回数とが対応づけられて格納される。
リクエストの種類には、INVITE、SUBSCRIBEなどのSIPで用いられるリクエストメッセージの種類を特定する情報が設定される。送信元URIには、受信したSIPメッセージのFromヘッダで指定されたURIが設定される。転送先URIには、受信したSIPメッセージで指定された宛先URIに対して後述する取得部141によって取得された転送先URIが設定される。
図5に戻り、受信部101は、外部装置からSIPメッセージを受信するものである。送信部102は、外部装置に対してSIPメッセージを送信するものである。
メッセージ処理部110は、受信したSIPメッセージを転送するための各種処理を実行するものである。具体的には、メッセージ処理部110は、受信部101からSIPメッセージを受け取り、受け取ったSIPメッセージを転送するためにSIPメッセージのヘッダを再構成する。また、メッセージ処理部110は、再構成したSIPメッセージを、送信先の外部装置に転送するために送信部102に送出する。
ダイアログ管理部120は、通信相手との間で確立するダイアログに関する各種処理を実行するものである。ダイアログ管理部120は、ダイアログ保存部121と、ダイアログ切断部122とを備えている。
ダイアログ保存部121は、ダイアログに関する情報を記憶部150の関連するテーブルに保存するものである。具体的には、ダイアログ保存部121は、受信したSIPリクエストメッセージのダイアログ情報と、ダイアログ情報テーブル151に保存されているダイアログ情報とを比較し、一致するダイアログ情報が存在しない場合に、受信したSIPリクエストメッセージのダイアログ情報をダイアログ情報テーブル151に保存する。
また、ダイアログ保存部121は、受信したSIPリクエストメッセージを転送するために確立したダイアログのダイアログ情報と、受信したSIPメッセージのダイアログ情報とを対応づけた対応情報を作成してダイアログ対応テーブル152に保存する。
ダイアログ切断部122は、後述するループ検出部130によりループが検出された通信相手との間で確立しているダイアログを切断するものである。具体的には、ダイアログ切断部122は、ループが検出された通信相手との間で確立しているダイアログに関するダイアログ情報をダイアログ情報テーブル151から削除する。また、ダイアログ切断部122は、削除したダイアログ情報のダイアログIDを対応づけている対応情報を、ダイアログ対応テーブル152から削除する。
ループ検出部130は、転送回数テーブル154に記憶されているループ検出情報ごとの転送回数を参照して、メッセージループの発生を検出するものである。ループ検出部130は、判断部131と、加算部132とを備えている。
判断部131は、ループ検出情報ごとの転送回数が予め定められた閾値より大きいか否かを判断し、転送回数が閾値より大きい場合にメッセージループが発生していると判断する。加算部132は、SIPメッセージを転送したときに、ループ検出情報ごとの転送回数に1を加算して転送回数テーブル154を更新する。
なお、ループ検出部130は、転送したSIPメッセージに対するエラー応答または肯定応答を受信した場合には、対応するループ検出情報に対する転送回数をリセットする機能を有する。
転送情報管理部140は、転送情報テーブル153に記憶された転送情報に関連する処理を実行するものであり、取得部141と、削除部142とを備えている。
取得部141は、受信したSIPメッセージの宛先URIに対応する転送先URIを、受信したSIPメッセージの転送先である外部装置のURIとして取得するものである。削除部142は、メッセージループが検出されたダイアログに関連する転送情報を、転送情報テーブル153から削除するものである。
次に、このように構成された第1の実施の形態にかかるメッセージ転送装置300によるメッセージ転送処理について図10を用いて説明する。図10は、第1の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。
まず、受信部101が、いずれかの外部装置からSIPメッセージを受信し(ステップS1001)、メッセージ処理部110に対して受信したSIPメッセージの処理を依頼する。メッセージ処理部110は、受信したSIPメッセージがリクエストメッセージであるか、または応答メッセージであるかを判断する(ステップS1002)。具体的には、メッセージ処理部110は、SIPメッセージの先頭にリクエスト行またはステータス行のいずれが記載されているかによって、SIPメッセージがリクエストメッセージであるか、または応答メッセージであるかを判断する。
受信したSIPメッセージがリクエストメッセージであった場合(ステップS1002:YES)、取得部141は、SIPメッセージで指定された宛先URIに対応する転送先URIおよび転送先リクエストURIを、転送情報テーブル153から取得する(ステップS1003)。
次に、ループ検出部130の加算部132は、受信したSIPメッセージのリクエストの種類、受信したSIPメッセージのFromヘッダで指定された送信元URI、および取得された転送先URIに対応する転送回数を、転送回数テーブル154から取得する(ステップS1004)。そして、加算部132は、取得した転送回数に1を加算して転送回数テーブル154に保存する(ステップS1005)。
なお、このように転送先URIを取得した時点で転送回数を加算する代わりに、実際にSIPメッセージを転送した時点で転送回数を加算するように構成してもよい。
次に、判断部131は、加算後の転送回数が、所定の閾値を超えたか否かを判断する(ステップS1006)。転送回数が閾値を超えていない場合は(ステップS1006:NO)、ダイアログ保存部121が、受信したSIPメッセージのダイアログ情報をダイアログ情報テーブル151に保存する(ステップS1007)。
次に、メッセージ処理部110は、送信部102によって、受信したSIPメッセージを転送先URIに対応する外部装置に対して転送する(ステップS1008)。このとき、メッセージ処理部110は、Fromヘッダ、Toヘッダ、およびリクエストURIを再構成したSIPメッセージを転送する。具体的には、メッセージ処理部110は、Fromヘッダにメッセージ転送装置300のURIを指定し、ToヘッダおよびリクエストURIに、それぞれステップS1003で取得された転送先URIおよび転送先リクエストURIを指定したSIPメッセージを転送する。なお、送信部102は、SIPメッセージを受信したダイアログとは異なるダイアログによってSIPメッセージを転送する。
ステップS1006で、転送回数が閾値を超えた場合、すなわち、メッセージループが発生していると判断された場合は(ステップS1006:YES)、転送情報管理部140の削除部142は、メッセージループが発生したダイアログに関連する転送情報を転送情報テーブル153から削除する(ステップS1009)。
具体的には、削除部142は、受信したメッセージに含まれるダイアログIDに対応するローカルURIをダイアログ情報テーブル151から取得し、取得したローカルURIを宛先URIとして含む転送情報を転送情報テーブル153から削除する。これにより、これ以降に受信した同じ宛先のSIPメッセージを、ループが発生しうる転送先にさらに転送することを回避できる。
次に、ダイアログ管理部120のダイアログ切断部122は、メッセージループが発生したダイアログに関連するダイアログをすべて破棄する(ステップS1010)。
具体的には、ダイアログ切断部122は、メッセージループを検出したSIPメッセージのダイアログと、ローカルURIおよびリモートURIが一致するダイアログのダイアログ情報をダイアログ情報テーブル151から削除する。また、ダイアログ切断部122は、ダイアログ情報テーブル151から削除したダイアログ情報を含む対応情報を、ダイアログ対応テーブル152から削除する。なお、ダイアログを破棄する際には、関連するトランザクションもすべて破棄される。
以上の処理により、受信時と異なるダイアログによってメッセージを転送する場合のように、メッセージを透過的に転送しない場合であっても、転送するメッセージを識別可能なループ検出情報を用いて、ループ検出情報ごとの転送回数を確認し、メッセージループの発生を検出することができる。
ステップS1002で、受信したSIPメッセージがリクエストメッセージでない、すなわち、応答メッセージであると判断された場合(ステップS1002:NO)、メッセージ処理部110は、さらに、応答メッセージが肯定応答またはエラー応答を示すメッセージであるか否かを判断する(ステップS1011)。
具体的には、メッセージ処理部110は、応答メッセージ内の応答コードによって、応答メッセージが肯定応答またはエラー応答であるか否かを判断する。例えば、メッセージ処理部110は、応答コードが200番台の場合に肯定応答であると判断する。また、メッセージ処理部110は、応答コードが300番台以降の場合にエラー応答であると判断する。さらに、メッセージ処理部110は、応答コードが100番台の場合に、メッセージを処理中であることを示す暫定応答であると判断する。
肯定応答またはエラー応答であった場合は(ステップS1011:YES)、ダイアログ管理部120は、応答メッセージ内のCall−ID、ローカルタグ、およびリモートタグに対応するダイアログ情報をダイアログ情報テーブル151から取得する(ステップS1012)。
次に、ループ検出部130は、応答メッセージに対応するループ検出情報を特定し、特定したループ検出情報に対応する転送回数を初期化する(ステップS1013)。具体的には、ループ検出部130は、まず、応答メッセージ内のCSeqヘッダを参照してリクエストの種類を特定する。また、ループ検出部130は、応答メッセージ内のダイアログIDに対応する転送元のダイアログIDをダイアログ対応テーブル152から取得し、取得した転送元のダイアログIDに対応するローカルURIおよびリモートURIをダイアログ情報テーブル151から取得する。次に、ループ検出部130は、取得したローカルURIに対応する転送先URIを転送情報テーブル153から取得する。次に、ループ検出部130は、特定したリクエストの種類、取得したダイアログ情報のリモートURI、および取得した転送先URIが、それぞれリクエストの種類、送信元URI、および転送先URIと一致する転送回数テーブル154内のループ検出情報を特定する。最後に、ループ検出部130は、特定したループ検出情報に対応する転送回数を0に初期化する。
ステップS1011で応答メッセージが肯定応答またはエラー応答でないと判断された場合は(ステップS1011:NO)、ダイアログ管理部120は、応答メッセージ内のCall−ID、ローカルタグ、およびリモートタグに対応するダイアログ情報をダイアログ情報テーブル151から取得する(ステップS1014)。
転送回数を初期化した後(ステップS1013)、またはダイアログ情報を取得した後(ステップS1014)、ダイアログ管理部120は、ステップS1012またはステップS1014で取得したダイアログ情報内のダイアログIDに対応する転送用のダイアログIDを、ダイアログ対応テーブル152から取得する(ステップS1015)。
次に、メッセージ処理部110は、送信部102によって、受信したSIPメッセージを、取得したダイアログIDのダイアログを用いて転送する(ステップS1016)。
これまでは、リクエストの種類と、送信元URIと、転送先URIとの組み合わせであるループ検出情報を用いて転送するSIPメッセージを識別し、転送回数をカウントする例について説明した。これに対し、受信したSIPメッセージ内で指定された宛先URIをさらにループ検出情報に含むように構成してもよい。
これにより、例えば、宛先URIとしてToヘッダで指定されたURIを利用する場合に、送信元および転送先が同じであっても、Toヘッダで指定されたURIが異なれば、異なるメッセージとして転送回数を別々にカウントすることができる。
このように、第1の実施の形態にかかるメッセージ転送装置によれば、リクエストの種類と、送信元URIと、転送先URIとで表現されるループ検出情報が同一であり、エラー応答または肯定応答が返されていないSIPメッセージの転送回数をカウントし、転送回数が閾値を超えた場合に、ループを検出することができる。そして、検出されたループに対応する転送情報やダイアログ情報を破棄することができる。これにより、複数のダイアログに跨って発生するSIPメッセージのループを検出・防御することが可能となる。
(第2の実施の形態)
第2の実施の形態にかかるメッセージ転送装置は、転送回数が閾値を超えた場合に、さらにループ確認用のメッセージを作成して転送先に送信し、当該メッセージを受信した場合に、ループが発生したと判断するものである。また、第2の実施の形態にかかるメッセージ転送装置は、ループを検出した場合に、ループに関連するダイアログのうち、最も古いダイアログを用いて、送信元の装置に対してループが発生したことを示すエラーメッセージを送信するものである。
図11は、第2の実施の形態にかかるメッセージ転送装置1100の構成を示すブロック図である。図11に示すように、メッセージ転送装置1100は、記憶部150と、受信部101と、送信部102と、メッセージ処理部1110と、ダイアログ管理部120と、ループ検出部1130と、転送情報管理部140と、を備えている。
第2の実施の形態では、メッセージ処理部1110およびループ検出部1130の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるメッセージ転送装置300の構成を表すブロック図である図5と同様であるので、同一符号を付し、ここでの説明は省略する。
メッセージ処理部1110は、ループが発生していると判断された場合に、ループに関連するダイアログのうち、最も過去に確立されたダイアログ(最古のダイアログ)を特定し、送信部102によって最古のダイアログを用いてエラーメッセージを通知する機能が追加された点が、第1の実施の形態のメッセージ処理部110と異なっている。なお、本実施の形態では、ダイアログ情報テーブル151に通信を確立した時刻を含むダイアログ情報が記憶されており、メッセージ処理部1110は、ダイアログ情報に含まれる通信確立の時刻を参照して、最古のダイアログを特定することができる。また、時刻の変わりに通信を確立した順序を表す番号を用いることもできる。
ループ検出部1130は、判断部1131と、加算部132と、生成部1133とを備えている。加算部132の構成および機能は、第1の実施の形態と同様であるので同一符号を付し、ここでの説明は省略する。
判断部1131は、ループ検出情報ごとの転送回数が予め定められた閾値より大きいと判断した後に、後述する生成部1133によって生成され送信されたループ確認メッセージ(後述)を受信した場合に、メッセージループが発生していると判断する。
生成部1133は、判断部1131によって転送回数が予め定められた閾値より大きいと判断された場合に、ループ確認メッセージを生成する。生成部1133は、予め定められたループ判定用の文字列をボディ部に含むリクエストメッセージをループ確認メッセージとして生成する。したがって、判断部1131は、受信したメッセージのボディ部にループ判定用の文字列が含まれるか否かを確認することによって、受信したメッセージがループ確認メッセージであるか否かを判断することができる。
なお、生成部1133は、ループ判定用の文字列をボディ部に含む応答メッセージをループ確認メッセージとして生成するように構成してもよい。また、リクエストメッセージであるループ確認メッセージを受信した場合に、生成部1133によってループ確認メッセージに対する応答メッセージを生成し、生成された応答メッセージを送信し、当該応答メッセージを受信した場合に、判断部1131によってループが発生したと判断するように構成してもよい。また、生成部1133は、ループ判定用の文字列をボディ部ではなくヘッダ部に含むループ確認メッセージを生成するように構成してもよい。
次に、このように構成された第2の実施の形態にかかるメッセージ転送装置1100によるメッセージ転送処理について図12を用いて説明する。図12は、第2の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。
ステップS1201からステップS1202までの、メッセージ受信処理、リクエスト判定処理は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1001からステップS1002までと同様の処理なので、その説明を省略する。
受信したSIPメッセージがリクエストメッセージであった場合(ステップS1202)、判断部1131は、受信したSIPメッセージがループ確認メッセージであるか否かをさらに判断する(ステップS1203)。具体的には、判断部1131は、受信したSIPメッセージのボディ部にループ判定用の文字列が含まれるか否かを判断し、含まれる場合に、ループ確認メッセージであると判断する。
ループ確認メッセージでない場合は(ステップS1203:NO)、転送回数を判定するために以下の処理を実行する(ステップS1204〜ステップS1211)。
ステップS1204からステップS1209までの、転送情報取得処理、転送回数判定処理、転送処理は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1003からステップS1008までと同様の処理なので、その説明を省略する。
ステップS1207で、転送回数が閾値を超えた場合は(ステップS1207:YES)、生成部1133がループ確認メッセージを生成する(ステップS1210)。そして、メッセージ処理部1110は、送信部102によって、生成されたループ確認メッセージを転送先URIに対応する外部装置に対して転送する(ステップS1211)。
ステップS1203で、受信したSIPメッセージがループ確認メッセージであると判断された場合は(ステップS1203:YES)、転送情報管理部140の削除部142は、メッセージループが発生したダイアログに関連する転送情報を転送情報テーブル153から削除する(ステップS1212)。
次に、ダイアログ管理部120のダイアログ切断部122は、メッセージループが発生したダイアログに関連するダイアログのうち、最古のダイアログを除くダイアログをすべて破棄する(ステップS1213)。
次に、メッセージ処理部1110は、最古のダイアログを用いて、ループが発生したことを示すエラーメッセージを、ループが発生したSIPメッセージの送信元の外部装置に対して送信する(ステップS1214)。
ステップS1215からステップS1220までの、応答判定処理、転送回数初期化処理、転送処理は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1011からステップS1016までと同様の処理なので、その説明を省略する。
このように、第2の実施の形態にかかるメッセージ転送装置では、転送回数が閾値を超えた場合に、さらにループ確認用のメッセージを作成して転送先に送信し、当該メッセージを受信した場合に、ループが発生したと判断することができる。これにより、複数のダイアログに跨って発生するSIPメッセージのループを正確に検出・防御することが可能となる。また、第2の実施の形態にかかるメッセージ転送装置では、ループを検出した場合に、最も古いダイアログを用いて、送信元の装置に対してエラーメッセージを送信することができる。これにより、ループの原因となるSIPメッセージの送信者に対して、迅速にループが発生していることを通知することが可能となる。
(第3の実施の形態)
第3の実施の形態にかかるメッセージ転送装置は、受信したメッセージの転送先が複数指定されている場合であっても、転送先ごとに転送回数をカウントしてループを検出するものである。
図13は、第3の実施の形態にかかるメッセージ転送装置1300の構成を示すブロック図である。図13に示すように、メッセージ転送装置1300は、記憶部1350と、受信部101と、送信部102と、メッセージ処理部1310と、ダイアログ管理部120と、ループ検出部130と、転送情報管理部1340と、を備えている。
第3の実施の形態では、記憶部1350内の転送情報テーブル1353のデータ構造と、メッセージ処理部1310および転送情報管理部1340の機能とが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかるメッセージ転送装置300の構成を表すブロック図である図5と同様であるので、同一符号を付し、ここでの説明は省略する。
転送情報テーブル1353は、1つの宛先URIに対して、複数の転送先URIを指定可能である点が、第1の実施の形態の転送情報テーブル153と異なっている。図14は、第3の実施の形態の転送情報テーブル1353に記憶された転送情報のデータ構造の一例を示す図である。図14に示すように、第3の実施の形態では、1つの宛先URIに対して、複数の転送先URIが指定されうる。なお、以下では、このように複数の転送先URIが指定された宛先URIを、グループURIと呼ぶ場合がある。
メッセージ処理部1310は、複数の転送先URIが指定されている場合に、すべての転送先URIから応答を受信したか否かを判断し、すべての転送先URIから応答を受信した場合にのみ、応答を送信元の外部装置に送信する点が、第1の実施の形態のメッセージ処理部110と異なっている。
転送情報管理部1340は、グループURIに対応する転送先URIとして、複数の転送先URIを取得することができる取得部1341を備えた点が、第1の実施の形態の転送情報管理部140と異なっている。
次に、このように構成された第3の実施の形態にかかるメッセージ転送装置1300によるメッセージ転送処理について図15を用いて説明する。図15は、第3の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。
ステップS1501からステップS1502までの、メッセージ受信処理、リクエスト判定処理は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1001からステップS1002までと同様の処理なので、その説明を省略する。
受信したSIPメッセージがリクエストメッセージであった場合(ステップS1502:YES)、取得部1341は、SIPメッセージで指定された宛先URI(グループURI)に対応するすべての転送先URIを、転送情報テーブル1353から取得する(ステップS1503)。
次に、取得した転送先URIそれぞれについて、転送回数を判定するために以下の処理を実行する(ステップS1504〜ステップS1510)。
ステップS1504からステップS1510までの、転送情報取得処理、転送回数判定処理、転送処理の内容自体は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1004からステップS1010までと同様の処理なので、その説明を省略する。
1つの転送先URIについて上記処理を実行後、メッセージ処理部1310は、すべての転送先URIを処理したか否かを判断し(ステップS1511)、処理していない場合は(ステップS1511:NO)、次の転送先URIに対して処理を繰り返す。
すべての転送先URIを処理した場合は(ステップS1511:YES)、メッセージ転送処理を終了する。
ステップS1502で、受信したSIPメッセージがリクエストメッセージでない、すなわち、応答メッセージであると判断された場合(ステップS1502:NO)、転送回数の初期化またはメッセージの転送を行うために以下の処理を実行する(ステップS1512〜ステップS1518)。
ステップS1512からステップS1515までの、応答判定処理、転送回数初期化処理、ダイアログ情報取得処理は、第1の実施の形態にかかるメッセージ転送装置300におけるステップS1011からステップS1014までと同様の処理なので、その説明を省略する。
転送回数を初期化した後(ステップS1514)、またはダイアログ情報を取得した後(ステップS1515)、メッセージ処理部1310は、すべての転送先URIから応答を受信したか否かを判断する(ステップS1516)。なお、メッセージ処理部1310は、受信した応答メッセージの送信元のURI、および応答メッセージの種類を記憶部1350に保存しておくことにより、すべての転送先URIから応答を受信したか否かを判断する。
すべての転送先URIから応答を受信していない場合は(ステップS1516:NO)、受信した応答メッセージの送信元のURIおよび応答メッセージの種類を記憶部1350に保存してメッセージ転送処理を終了する。
すべての転送先URIから応答を受信した場合は(ステップS1516:YES)、ダイアログ管理部120は、ステップS1513またはステップS1515で取得したダイアログ情報内のダイアログIDに対応する転送用のダイアログIDを、ダイアログ対応テーブル152から取得する(ステップS1517)。
次に、メッセージ処理部1310は、送信部102によって、受信したSIPメッセージを、取得したダイアログIDのダイアログを用いて転送する(ステップS1518)。
このように、第3の実施の形態にかかるメッセージ転送装置では、受信したメッセージの転送先が複数指定されている場合であっても、転送先ごとに転送回数をカウントしてループを検出することができる。
次に、第1〜第3の実施の形態にかかるメッセージ転送装置のハードウェア構成について図16を用いて説明する。図16は、第1〜第3の実施の形態にかかるメッセージ転送装置のハードウェア構成を示す図である。
第1〜第3の実施の形態にかかるメッセージ転送装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1〜第3の実施の形態にかかるメッセージ転送装置で実行されるループ検出プログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、第1〜第3の実施の形態にかかるメッセージ転送装置で実行されるループ検出プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第3の実施の形態にかかるメッセージ転送装置で実行されるループ検出プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、第1〜第3の実施の形態のループ検出プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1〜第3の実施の形態にかかるメッセージ転送装置で実行されるループ検出プログラムは、上述した各部(受信部、送信部、メッセージ処理部、ダイアログ管理部、ループ検出部、転送情報管理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体からループ検出プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる装置、方法およびプログラムは、SIPのB2BUAのような転送時にメッセージのヘッダまたはボディを変更しうるサーバ装置に適している。
第1の実施の形態にかかる通信システムのブロック図である。 正常にSIPメッセージが転送される場合の転送処理の一例を示す図である。 メッセージループが発生した場合の転送処理の一例を示す図である。 メッセージループが発生する場合の転送処理のシーケンスを表す図である。 第1の実施の形態にかかるメッセージ転送装置の構成を示すブロック図である。 ダイアログ情報のデータ構造の一例を示す図である。 対応情報のデータ構造の一例を示す図である。 第1の実施の形態の転送情報のデータ構造の一例を示す図である。 転送回数テーブルに記憶されたデータのデータ構造の一例を示す図である。 第1の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。 第2の実施の形態にかかるメッセージ転送装置の構成を示すブロック図である。 第2の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。 第3の実施の形態にかかるメッセージ転送装置の構成を示すブロック図である。 第3の実施の形態の転送情報のデータ構造の一例を示す図である。 第3の実施の形態におけるメッセージ転送処理の全体の流れを示すフローチャートである。 第1〜第3の実施の形態にかかるメッセージ転送装置のハードウェア構成を示す図である。
符号の説明
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
101 受信部
102 送信部
110 メッセージ処理部
120 ダイアログ管理部
121 ダイアログ保存部
122 ダイアログ切断部
130 ループ検出部
131 判断部
132 加算部
140 転送情報管理部
141 取得部
142 削除部
150 記憶部
151 ダイアログ情報テーブル
152 ダイアログ対応テーブル
153 転送情報テーブル
154 転送回数テーブル
200 SIPプロキシ
300a、300b、300c メッセージ転送装置
1100 メッセージ転送装置
1110 メッセージ処理部
1130 ループ検出部
1131 判断部
1133 生成部
1300 メッセージ転送装置
1310 メッセージ処理部
1340 転送情報管理部
1341 取得部
1350 記憶部
1353 転送情報テーブル

Claims (11)

  1. ネットワークを介して接続された通信装置間で送受信されるメッセージを転送するメッセージ転送装置であって、
    メッセージの宛先である通信装置を識別する宛先IDと、メッセージを転送すべき通信装置を識別する転送先IDとを対応づけた転送情報を記憶する転送情報記憶部と、
    メッセージの種類と、メッセージの送信元である通信装置を識別する送信元IDと、前記転送先IDと、メッセージの転送回数とを対応づけて記憶する転送回数記憶部と、
    前記送信元IDと前記宛先IDとを含むメッセージを通信装置から受信する受信部と、
    受信したメッセージに含まれる前記宛先IDに対応する前記転送先IDを前記転送情報記憶部から取得する取得部と、
    取得された前記転送先IDの通信装置に受信したメッセージを転送する送信部と、
    受信したメッセージの種類と、受信したメッセージに含まれる前記送信元IDと、取得された前記転送先IDとに対応する前記転送回数記憶部内の前記転送回数に1を加算する加算部と、
    前記転送回数が予め定められた閾値より大きいか否かを判断し、大きい場合に転送のループが発生していると判断する判断部と、
    を備えたことを特徴とするメッセージ転送装置。
  2. 前記転送回数が前記閾値より大きい場合に、予め定められた照合用文字列を含むメッセージを生成する生成部をさらに備え、
    前記送信部は、さらに、生成されたメッセージを、前記取得部によって取得された前記転送先IDの通信装置に転送し、
    前記判断部は、さらに、受信したメッセージに前記照合用文字列が含まれるか否かを判断し、含まれる場合に転送のループが発生していると判断すること、
    を特徴とする請求項1に記載のメッセージ転送装置。
  3. 前記生成部は、前記メッセージとして、前記文字列を含み、予め定められた処理を要求する要求メッセージを生成すること、
    を特徴とする請求項2に記載のメッセージ転送装置。
  4. 前記生成部は、前記メッセージとして、前記文字列を含み、予め定められた処理の要求に対する応答メッセージを生成すること、
    を特徴とする請求項2に記載のメッセージ転送装置。
  5. 前記送信部は、さらに、前記転送回数が前記閾値より大きい場合に、受信したメッセージの送信元である通信装置にエラーメッセージを送信すること、
    を特徴とする請求項1に記載のメッセージ転送装置。
  6. 確立した通信に関する情報であって、通信を確立した日時または通信を確立した順序を表す番号を含む通信情報を記憶する通信情報記憶部をさらに備え、
    前記送信部は、受信したメッセージの送信元である通信装置との間で確立した通信のうち、前記通信情報に含まれる前記日時が最も古い通信、または前記通信情報に含まれる前記番号が最も小さい通信によって、前記エラーメッセージを送信すること、
    を特徴とする請求項5に記載のメッセージ転送装置。
  7. 前記受信部は、前記送信元IDと前記宛先IDと確立した通信を識別する通信IDとを含むメッセージを通信装置から受信し、
    前記通信IDと、前記通信IDの通信で転送するメッセージの前記送信元IDと、前記通信IDの通信で転送するメッセージの前記宛先IDと、を対応づけた通信情報を記憶する通信情報記憶部と、
    前記転送回数が前記閾値より大きい場合に、受信したメッセージに含まれる前記通信IDに対応する前記宛先IDを前記通信情報記憶部から取得し、取得した前記宛先IDを含む前記転送情報を前記転送情報記憶部から削除する削除部と、をさらに備えたこと、
    を特徴とする請求項1に記載のメッセージ転送装置。
  8. 前記宛先IDは、SIP(Session Initiation Protocol)のリクエストメッセージに含まれるリクエストURI(Uniform Resource Identifier)および前記リクエストメッセージのToヘッダで指定されたURIのいずれかであり、
    前記転送先IDは、前記リクエストメッセージを転送すべき通信装置のURIであり、
    前記送信元IDは、前記リクエストメッセージのFromヘッダで指定されたURIであること、
    を特徴とする請求項1に記載のメッセージ転送装置。
  9. 前記転送情報記憶部は、前記宛先IDと、複数の前記転送先IDとを対応づけた前記転送情報を記憶し、
    前記取得部は、受信したメッセージに含まれる前記宛先IDに対応する複数の前記転送先IDを前記転送情報記憶部から取得し、
    前記送信部は、取得された前記転送先IDの通信装置それぞれに対して受信したメッセージを転送し、
    前記加算部は、取得された前記転送先IDごとに、受信したメッセージの種類と、受信したメッセージに含まれる前記送信元IDと、前記転送先IDとに対応する前記転送回数記憶部内の前記転送回数に1を加算すること、
    を特徴とする請求項1に記載のメッセージ転送装置。
  10. ネットワークを介して接続された通信装置間で送受信されるメッセージを転送するメッセージ転送装置におけるループ検出方法であって、
    前記メッセージ転送装置は、
    メッセージの宛先である通信装置を識別する宛先IDと、メッセージを転送すべき通信装置を識別する転送先IDとを対応づけた転送情報を記憶する転送情報記憶部と、
    メッセージの種類と、メッセージの送信元である通信装置を識別する送信元IDと、前記転送先IDと、メッセージの転送回数とを対応づけて記憶する転送回数記憶部と、を備え、
    受信部によって、前記送信元IDと前記宛先IDとを含むメッセージを通信装置から受信する受信ステップと、
    取得部によって、受信したメッセージに含まれる前記宛先IDに対応する前記転送先IDを前記転送情報記憶部から取得する取得ステップと、
    送信部によって、取得された前記転送先IDの通信装置に受信したメッセージを転送する送信ステップと、
    加算部によって、受信したメッセージの種類と、受信したメッセージに含まれる前記送信元IDと、取得された前記転送先IDとに対応する前記転送回数記憶部内の前記転送回数に1を加算する加算ステップと、
    判断部によって、前記転送回数が予め定められた閾値より大きいか否かを判断し、大きい場合に転送のループが発生していると判断する判断ステップと、
    を備えたことを特徴とするループ検出方法。
  11. ネットワークを介して接続された通信装置間で送受信されるメッセージを転送するコンピュータに実行させるループ検出プログラムであって、
    前記コンピュータは、
    メッセージの宛先である通信装置を識別する宛先IDと、メッセージを転送すべき通信装置を識別する転送先IDとを対応づけた転送情報を記憶する転送情報記憶部と、
    メッセージの種類と、メッセージの送信元である通信装置を識別する送信元IDと、前記転送先IDと、メッセージの転送回数とを対応づけて記憶する転送回数記憶部と、を備え、
    前記送信元IDと前記宛先IDとを含むメッセージを通信装置から受信する受信手順と、
    受信したメッセージに含まれる前記宛先IDに対応する前記転送先IDを前記転送情報記憶部から取得する取得手順と、
    取得された前記転送先IDの通信装置に受信したメッセージを転送する送信手順と、
    受信したメッセージの種類と、受信したメッセージに含まれる前記送信元IDと、取得された前記転送先IDとに対応する前記転送回数記憶部内の前記転送回数に1を加算する加算手順と、
    前記転送回数が予め定められた閾値より大きいか否かを判断し、大きい場合に転送のループが発生していると判断する判断手順と、
    を前記コンピュータに実行させるループ検出プログラム。
JP2007215687A 2007-08-22 2007-08-22 メッセージを転送する装置、ループを検出する方法およびプログラム Pending JP2009048528A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007215687A JP2009048528A (ja) 2007-08-22 2007-08-22 メッセージを転送する装置、ループを検出する方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007215687A JP2009048528A (ja) 2007-08-22 2007-08-22 メッセージを転送する装置、ループを検出する方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2009048528A true JP2009048528A (ja) 2009-03-05

Family

ID=40500661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007215687A Pending JP2009048528A (ja) 2007-08-22 2007-08-22 メッセージを転送する装置、ループを検出する方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2009048528A (ja)

Similar Documents

Publication Publication Date Title
JP4735068B2 (ja) 通信システム、通信方法及び通信装置
KR100966959B1 (ko) 단말기 디바이스, 네트워크 디바이스, 메시지 검색 방법 및 컴퓨터 프로그램 저장 제품
US6888828B1 (en) System and method for providing at least one service obtained from a service network for a user in a packet switched communication network
JP5169362B2 (ja) セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム
EP1635521B1 (en) Reducing storage requirement for route information
US7043538B2 (en) Thin instant messaging proxy interface with persistent sessions
AU2009240392B2 (en) Real-time communications over data forwarding framework
TWI488472B (zh) 傳送訊息之方法與系統
RU2404526C2 (ru) Способ, система и устройство для пересылки мгновенных сообщений в подсистеме ip-мультимедиа (ims)
US8386585B2 (en) Real-time communications over data forwarding framework
JP4764368B2 (ja) 通信を確立してメッセージを中継する装置、通信を確立する方法およびプログラム
JP4703576B2 (ja) コネクションを維持する装置、方法およびプログラム
JP2006190282A (ja) 単一のhttp要求を使用したメッセージの大量伝送
JP2007219637A (ja) 負荷分散システムおよびそのプログラム
JP2010050617A (ja) プロトコル変換装置およびプロトコル変換方法
JP2009017347A (ja) 通信を制御する装置、方法、プログラム、および端末装置
JP2009048528A (ja) メッセージを転送する装置、ループを検出する方法およびプログラム
JP5519079B2 (ja) クラウドベースのメディア適合化および変換サービスのための方法およびシステム
CN108243210A (zh) 一种信息推送方法和信息推送服务器
JP4001047B2 (ja) 中継装置
JP2010128888A (ja) アーカイブサービスシステム及び方法
JP3943868B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP5289345B2 (ja) アドレス変換装置、通信システム、メッセージ通信方法、及びプログラム
JP5768119B2 (ja) 負荷分散装置、負荷分散方法及び負荷分散プログラム
JP5272027B2 (ja) 呼制御方法、および呼制御システム