図1〜図66を用いて実施例を説明する。
通常SIP通信を行う場合は、発着端末の間にSIPサーバを経由することが多いが、なるべく簡単にするため、端末同士の直接SIP通信を例に挙げている。またSIP−ALGと接続する装置としては、簡単にするためNAT装置と接続した場合を例に挙げて説明するが、NAT装置はFW(FireWall)機能を有するNAT装置すなわちNAT/FW装置でもよい。
図1はネットワーク構成を示している。プライベート網(10)は192.168.0.0/24のネットワークアドレスであり、その中にはIPアドレス=192.168.0.1を持つ端末1(11)が配備されている。また端末1(11)はSIP信号受信用ポート番号として5060、RTPなどのメディア受信用のポート番号として10000が設定されている。
グローバル網(20)は128.0.0.0/24のネットワークアドレスを持ち、その中にはIPアドレス=128.0.0.1を持つ端末2(21)が配備されている。また端末2(21)はSIP信号受信用ポート番号として5060、RTPなどのメディア受信用のポート番号として10000が設定されている。
また、プライベート網(10)とグローバル網(20)をNAT装置(30)が接続しており、またNAT装置(30)と管理網(40)を介し、SIP−ALG(50)が接続されている。SIP−ALG(50)は172.30.0.2というIPアドレスを持ち、NAT装置(30)との信号受信用ポート番号として50000が設定されており、NAT装置(30)は172.30.0.1というIPアドレスを持ち、SIP−ALG(50)との信号受信用ポート番号として50000が設定されている。
NAT装置(30)は、SIP信号を検出すると、自身のIPアドレスを被せてSIP信号をカプセル化し、転送先装置すなわちSIP−ALG(50)に対してカプセル化SIP信号を送信する手段と、転送先装置から送信されたカプセル化信号を受信しデカプセル化し、SIP信号に戻す手段を有し、また、転送先装置からアドレス変換要求されたIPアドレス、ポート番号に対して、変換先のIPアドレス、ポート番号を払い出し、変換前後のアドレス組を管理し、転送先装置に対して結果を応答する手段、および、転送先装置からのアドレス組の削除要求に対して払い出したアドレス組を削除する手段を有している。
図2はSIP−ALG(50)の構成を示している。SIP−ALG(50)は、SIP−ALGのプログラムを実行する呼処理機能(51)、データを保持するテーブルとして、ネットワークアドレス管理テーブル(52)、信号定義テーブル(53)、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)を配備している。
図3はテーブルの連携関係を示している。ネットワークアドレス管理テーブル(52)と、信号定義テーブル(53)は特に他のテーブルと連携しない。トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は、呼状態管理テーブル(54)と連携する。アドレス変換テーブル(57)に登録される情報が呼関連リソースである。
図4はネットワークアドレス管理テーブル(52)を示している。本テーブルは対向装置であるNAT装置(30)が、収容するプライベート網側アドレス体系と、プライベートアドレスの変換後のグローバルアドレス体系を管理している。対向装置識別情報として、NAT装置(30)のIPアドレスの172.30.0.1、プライベート網側アドレス体系として192.168.0.0/24、グローバル網側アドレス体系として130.0.0.0/24が管理されている。
図5は、SIP−ALGの呼状態管理において必要となる信号定義を行う、信号定義テーブルについて示している。本テーブルはINVITE要求、REGISTER要求、OPTIONS要求、REFER要求、SUBSCRIBE要求、MESSAGE要求を開始信号として定義し、ACK要求、BYE要求に対する2xx〜6xx応答、REGISTER要求に対する2xx〜6xx応答、OPTIONS要求に対する2xx〜6xx応答、NOTIFY要求に対する2xx〜6xx応答、MESSAGE要求に対する2xx〜6xx応答、REFER要求に対する3xx〜6xx応答、SUBSCRIBE要求に対する3xx〜6xx応答を終了信号として定義する。
また、ACK要求を除くSIPの要求信号をトランザクション生成信号として定義し、INVITE以外の要求に対する最終応答、INVITE要求に対する2xx信号、INVITE要求に対する3xx〜6xx応答後のACK要求をトランザクション削除信号として定義する。
また、INVITE要求に対する2xx応答、REFER要求に対する2xx応答、SUBSCRIBE要求に対する2xx応答をダイアログ生成信号として定義し、INVITEダイアログ対するダイアログ削除信号として、それぞれBYE要求、SUBSCRIBE、REFERダイアログに対するダイアログ削除信号として、Subscription−Stateヘッダにterminatedと記述されたNOTIFY要求を定義している。なお本テーブルの内容はプログラムの中に盛り込んでもよい。本例のようにテーブルとして記述した場合は、呼処理機能のアプリケーションを立ち上げる際に読み込ませると効率がよい。
図6は、呼状態管理テーブル(54)を示している。呼状態管理テーブル(54)は、対向装置識別情報、呼識別情報、およびそれらの情報に対応する呼番号の情報を管理する。
図7は、トランザクション状態管理テーブル(55)を示している。トランザクション状態管理テーブル(55)は、呼番号、メソッド、Viaのbranch−IDを管理する。
図8は、ダイアログ状態管理テーブル(56)を示している。ダイアログ状態管理テーブル(56)は、呼番号、メソッド、Private−tagパラメータ、Global−tagパラメータを管理する。
図9はアドレス変換テーブル(57)を示している。アドレス変換テーブルは、呼番号、プライベート網側IPアドレス、ポート番号、グローバル網側IPアドレス、ポート番号、変換IDを管理する。
図10〜図33を用いて、INVITE/OPTIONSの複合シーケンスの処理を説明する。
図10〜図12までは各装置で送受信される信号を示しており、各信号の内容、および信号処理時におけるSIP−ALGのテーブルの内容について図13〜図33に示している。
端末1(11)から送信されたINVITE(S1)をNAT装置(30)が受信すると、自身のIPアドレス、ポート番号を被せてカプセル化を行い、図13に示すようなカプセル化INVITE(S2)をSIP−ALG(50)に送信する。
図13に示すようにカプセル化INVITE(S2)はSIP信号とカプセル化部分とからなり、SIP信号はSIPレイヤとUDPレイヤとIPレイヤを有する。SIP信号についてはRFC2543(非特許文献1)、RFC3261(非特許文献2)で規定されている。また、カプセル化部分はUDPレイヤとIPレイヤを有する。これは後述する他のカプセル化メッセージにおいても同様である。
SIP−ALG(50)の呼処理機能(51)では、図13のようなカプセル化INVITE(S2)を受信すると、信号定義テーブル(53)を参照し、開始信号か否かの識別を行い、受信信号がINVITE要求であることから開始信号と判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得し、それらの組をキー情報として記録し、そのキー情報を基に、呼状態管理テーブル(54)を参照し、何も登録されていないことを確認する。また当該キー情報に対する呼番号として1を払い出し、当該キー情報と呼番号を呼状態管理テーブル(54)に登録する。
次にトランザクション関連の処理を行い、INVITE要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK01を取得し、先に取得した呼番号、メソッド名(INVITE)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行うが、INVITE要求はダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Via、Contact、SDP(Session Description Protocol)のc、mフィールドを変換対象として抽出し、それら変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。しかしながら特に当該レコードは存在しないため、Via、Contactに対しては図14のようなアドレス変換要求1(S3)を行い、図15のようなアドレス変換応答1(S4)を受信し、SDPについては図16のようなアドレス変換要求2(S5)を行い、図17のようなアドレス変換応答2(S6)を受信する。アドレス変換応答により取得した結果は、先に取得した呼番号をキー情報としてアドレス変換テーブル(57)に登録する。また、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセルINVITE(S7)を送信する。
その後、終了信号か否かの識別を行うが、INVITE要求は終了信号ではないため、本処理もスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図18のようになる。
NAT装置(30)は、カプセル化INVITE(S7)を受信すると、デカプセル化しINVITE(S8)を端末2(21)に対して送信する。
端末2(21)から200 OK(S9)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S10)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図19のようなカプセル化200 OK(S10)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がINVITE要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、INVITE要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK0lを取得し、先に取得した呼番号、メソッド名(INVITE)に該当する、トランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行い、INVITE要求の200 OKは、ダイアログ生成信号であるため、Fromヘッダのtag、Toヘッダのtagを取得する。また、この200 OK信号がグローバル網からプライベート網に送信されていることから、FromヘッダのSIP−URIはプライベート網側、ToヘッダのSIP−URIはグローバル網側と判断し、Fromヘッダより取得したtagをPrivate−tag、Toヘッダより取得したtagをGlobal−tagとして管理する。その後、先に取得した呼番号、メソッド(INVITE)と共に、ダイアログ状態管理テーブル(56)に登録する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S11)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、INVITE要求の200 OKは終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図20のようになる。
NAT装置(30)は、カプセル化200 OK(S11)を受信すると、デカプセル化し200 OK(S12)を端末1(11)に対して送信する。
端末1(11)からACK(S13)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化ACK(S14)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図21のようなカプセル化ACK(S14)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がACK要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、INVITEの2xx応答後のACK要求はトランザクション生成、削除のいずれの信号でもないため、本処理はスキップする。
次にダイアログ関連の処理を行うが、ACK要求は、ダイアログ生成信号でも、ダイアログ削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化ACK(S15)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行い、ACK要求は終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが存在するため、呼継続と判断し各テーブルの状態はそのまま保持し信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図22のようになる。
NAT装置(30)は、カプセル化ACK(S15)を受信すると、デカプセル化しACK(S16)を端末2(21)に対して送信する。ここで端末1(11)と端末2(21)のセッションが確立される。
端末1(11)からOPTIONS(S17)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化OPTIONS(S18)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図23のようなカプセル化OPTIONS(S18)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行い、受信信号がOPTIONS要求であるため開始信号と判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録する。そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、その際に呼番号を取得する。
次にトランザクション関連の処理を行い、OPTIONS要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK03を取得し、先に取得した呼番号、メソッド名(OPTIONS)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行うが、OPTIONS要求はダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化OPTIONS(S19)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、OPTIONS要求は終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図24のようになる。
NAT装置(30)は、カプセル化OPTIONS(S19)を受信すると、デカプセル化しOPTIONS(S20)を端末2(21)に対して送信する。
端末2(21)から200 OK(S21)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S22)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図25のようなカプセル化200 OK(S22)を受信すると、開始信号か否かの識別を行うが、受信信号がOPTIONS要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、OPTIONS要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK03を取得し、先に取得した呼番号、メソッド名(OPTIONS)に該当する、トランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行うが、OPTIONS要求の200 OKはダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S23)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行い、OPTIONS要求の200 OKは終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが存在するため、呼継続と判断し各テーブルの状態はそのまま保持し信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図26のようになる。
NAT装置(30)は、カプセル化200 OK(S23)を受信すると、デカプセル化し200 OK(S24)を端末1(11)に対して送信する。
端末1(11)からBYE(S25)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化BYE(S26)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図27のようなカプセル化BYE(S26)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がBYE要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、BYE要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK04を取得し、先に取得した呼番号、メソッド名(BYE)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行い、BYE要求は、ダイアログ削除信号であるため、FromヘッダのtagパラメータとToヘッダのtagパラメータを取得する。なおBYE要求はグローバル網からプライベート網に対して送信されているため、Fromヘッダより取得したtagパラメータをGlobal−tag、Toヘッダより取得したtagパラメータをPrivate−tagとする。また、BYE要求で削除するダイアログはINVITEダイアログであるため、メソッドとしてINVITEを指定して、先に取得した呼番号、Private−tag、Global−tagに該当するレコードをダイアログ状態管理テーブル(56)から削除する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Request−URIを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化BYE(S27)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、BYE要求は終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図28のようになる。
NAT装置(30)は、カプセル化BYE(S27)を受信すると、デカプセル化しBYE(S28)を端末2(21)に対して送信する。
端末2(21)から200 OK(S29)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S30)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図29のようなカプセル化200 OK(S30)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がBYE要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、BYE要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK04を取得し、先に取得した呼番号、メソッド名(BYE)に該当するトランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行うが、BYE要求の200 OKはダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、特に変換対象が存在しないことを確認する。その後SIPレイヤのアドレス変換は特に行わず、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S31)を送信する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図30のようになる。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行い、BYE要求の200 OKは終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが全く存在しないため、呼終了と判断し、アドレス変換テーブルより先に取得した呼番号に対する変換IDを取得し、それらの変換IDを設定し、NAT装置(30)に対して図31のようなアドレス組削除要求1(S33)を送信する。NAT装置(30)より図32のようなアドレス組削除応答1(S34)を受信すると、アドレス変換テーブル上の当該レコードを削除し、また、呼状態テーブルにおいても先に取得した呼番号に関するレコードを削除し信号処理を終了する。
その結果全ての呼関連リソース、呼状態が削除される。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図33のようになる。
NAT装置(30)は、カプセル化200 OK(S23)を受信すると、デカプセル化し200 OK(S24)を端末1(11)に対して送信する。
図34〜図66を用いて、SUBSCRIBE/INVITEの複合シーケンスの処理を説明する。
図34〜図37までは各装置で送受信される信号を示しており、各信号の内容、および信号処理時におけるSIP−ALGのテーブルの内容について図38〜図66に示している。
端末1(11)から送信されたSUBSCRIBE(S51)をNAT装置(30)で受信するとカプセル化を行い、カプセル化SUBSCRIBE(S52)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図38のようなカプセル化SUBSCRIBE(S52)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行い、受信信号がSUBSCRIBE要求であることから開始信号と判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得し、それらの組をキー情報として記録し、また当該キー情報に対する呼番号として2を払い出す。また、そのキー情報を基に、呼状態管理テーブル(54)を参照し、何も登録されていないことを確認し、当該キー情報と呼番号を呼状態管理テーブル(54)に登録する。
次にトランザクション関連の処理を行い、SUBSCRIBE要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK01を取得し、先に取得した呼番号、メソッド名(SUBSCIRBE)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行うが、SUBSCRIBE要求はダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、それら変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。しかしながら特に当該レコードは存在しないため、Viaに対しては図39のようなアドレス変換要求1(S53)を行い、図40のようなアドレス変換応答1(S54)を受信する。アドレス変換応答により取得した結果は、先に取得した呼番号をキー情報としてアドレス変換テーブル(57)に登録する。また、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化SUBSCRIBE(S55)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、SUBSCRIBE要求は終了信号ではないため、本処理もスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図41のようになる。
NAT装置(30)は、カプセル化SUBSCRIBE(S55)を受信すると、デカプセル化しSUBSCRIBE(S56)を端末2(21)に対して送信する。
端末2(21)から200 OK(S57)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S58)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図42のようなカプセル化200 OK(S58)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がSUBSCRIBE要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、SUBSCRIBE要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK01を取得し、先に取得した呼番号、メソッド名(SUBSCRIBE)に該当する、トランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行い、SUBSCRIBE要求の200 OKは、ダイアログ生成信号であるため、Fromヘッダのtag、Toヘッダのtagを取得する。また、この200 OK信号がグローバル網からプライベート網に送信されていることから、FromヘッダのSIP−URIはプライベート網側、ToヘッダのSIP−URIはグローバル網側と判断し、Fromヘッダより取得したtagをprivate−tag、Toヘッダより取得したtagをGlobal−tagとして管理する。その後、先に取得した呼番号、メソッド(SUBSCRIBE)と共に、ダイアログ状態管理テーブル(56)に登録する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S59)を送信する。
その後、終了信号か否かの識別を行うが、SUBSCRIBE要求の200 OKは終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図43のようになる。
NAT装置(30)は、カプセル化200 OK(S59)を受信すると、デカプセル化し200 OK(S60)を端末1(11)に対して送信する。
端末2(21)からNOTIFY(S61)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化NOTIFY(S62)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図44のようなカプセル化NOTIFY(S62)を受信すると、開始信号か否かの識別を行うが、受信信号がNOTIFY要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、NOTIFY要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK02を取得し、先に取得した呼番号、メソッド名(NOTIFY)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行い、Subscription−Stateヘッダを取得する。しかしながらSubscription−Stateはactiveであることから、ダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Request−URIを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化NOTIFY(S63)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、NOTIFY要求は終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図45のようになる。
NAT装置(30)は、カプセル化NOTIFY(S63)を受信すると、デカプセル化しNOTIFY(S64)を端末1(11)に対して送信する。
端末1(11)から200 OK(S65)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S66)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図46のようなカプセル化200 OK(S66)を受信すると、開始信号か否かの識別を行うが、受信信号がNOTIFY要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、NOTIFY要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK02を取得し、先に取得した呼番号、メソッド名(NOTIFY)に該当するトランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行うが、NOTIFY要求の200 OKはダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、特に変換対象が存在しないことを確認する。その後SIPレイヤのアドレス変換は特に行わず、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S67)を送信する。
その後、終了信号か否かの識別を行い、NOTIFY要求の200 OKは終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが存在するため、呼継続と判断し各テーブルの状態はそのまま保持し信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図47のようになる。
NAT装置(30)は、カプセル化200 OK(S67)を受信すると、デカプセル化し200 OK(S68)を端末2(21)に対して送信する。
端末1(11)から送信されたINVITE(S69)をNAT装置(30)で受信するとカプセル化を行い、カプセル化INVITE(S70)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図13のようなカプセル化INVITE(S70)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行い、受信信号がINVITE要求であることから開始信号と判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、INVITE要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK03を取得し、先に取得した呼番号、メソッド名(INVITE)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行うが、INVITE要求はダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Via、Contact、SDPのc、mフィールドを変換対象として抽出し、それら変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果Via、Contactについては変換後のアドレスを取得することができる。しかしながらSDPについて当該レコードは存在しないため、図49のようなアドレス変換要求2(S71)を行い、図50のようなアドレス変換応答2(S72)を受信する。アドレス変換応答により取得した結果は、先に取得した呼番号をキー情報としてアドレス変換テーブル(57)に登録する。また、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化INVITE(S73)を送信する。
その後、終了信号か否かの識別を行うが、INVITE要求は終了信号ではないため、本処理もスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図51のようになる。
NAT装置(30)は、カプセル化INVITE(S73)を受信すると、デカプセル化しINVITE(S74)を端末2(21)に対して送信する。
端末2(21)から200 OK(S75)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S76)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図52のようなカプセル化200 OK(S76)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がINVITE要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得し、それらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、INVITE要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK03を取得し、先に取得した呼番号、メソッド名(INVITE)に該当する、トランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行い、INVITE要求の200 OKは、ダイアログ生成信号であるため、Fromヘッダのtag、Toヘッダのtagを取得する。また、この200 OK信号がグローバル網からプライベート網に送信されていることから、FromヘッダのSIP−URIはプライベート網側、ToヘッダのSIP−URIはグローバル網側と判断し、Fromヘッダより取得したtagをprivate−tag、Toヘッダより取得したtagをGlobal−tagとして管理する。その後、先に取得した呼番号、メソッド(INVITE)と共に、ダイアログ状態管理テーブル(56)に登録する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S77)を送信する。
その後、終了信号か否かの識別を行うが、INVITE要求の200 OKは終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図53のようになる。
NAT装置(30)は、カプセル化200 OK(S77)を受信すると、デカプセル化し200 OK(S78)を端末1(11)に対して送信する。
端末1(11)からACK(S79)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化ACK(S80)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図21のようなカプセル化ACK(S80)を受信すると、開始信号か否かの識別を行うが、受信信号がACK要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、INVITEの2xx応答後のACK要求はトランザクション生成、削除のいずれの信号でもないため、本処理はスキップする。
次にダイアログ関連の処理を行うが、ACK要求は、ダイアログ生成信号でも、ダイアログ削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化ACK(S81)を送信する。
その後、終了信号か否かの識別を行い、ACK要求は終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが存在するため、呼継続と判断し各テーブルの状態はそのまま保持し信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図55のようになる。
NAT装置(30)は、カプセル化ACK(S81)を受信すると、デカプセル化しACK(S82)を端末2(21)に対して送信する。ここで端末1(11)と端末2(21)のセッションが確立される。
端末2(21)からNOTIFY(S83)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化NOTIFY(S84)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図56のようなカプセル化NOTIFY(S84)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がNOTIFY要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、NOTIFY要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK05を取得し、先に取得した呼番号、メソッド名(NOTIFY)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行い、Subscription−Stateヘッダを取得する。Subscription−Stateはterminatedであることから、ダイアログ削除信号と判断し、FromヘッダのtagパラメータとToヘッダのtagパラメータを取得する。なおNOTIFY要求はグローバル網からプライベート網に対して送信されているため、Fromヘッダより取得したtagパラメータをGlobal−tag、Toヘッダより取得したtagパラメータをPrivate−tagとする。また、NOTIFY要求で削除するダイアログはSUBSCRIBE、REFERダイアログの2種類あるため両者を識別する必要がある。そこでEventヘッダを取得する。Eventヘッダはpresenceであり、referではないため、削除するダイアログはSUBSCRIBEダイアログであることが分かる。
なお本例ではメソッドをダイアログ識別のパラメータとして用いているが、SUBSCRIBEダイアログの中でもpresence、watcher.info、dialogなどそれぞれのEventに応じてそれぞれのダイアログが生成される場合は、ダイアログ識別情報にEvent名を含めることで対応できる。
その後、メソッドとしてSUBSCRIBEを指定して、先に取得した呼番号、Private−tag、Global−tagに該当するレコードをダイアログ状態管理テーブル(56)から削除する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Request−URIを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化NOTIFY(S85)を送信する。
その後、終了信号か否かの識別を行うが、NOTIFY要求は終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図57のようになる。
NAT装置(30)は、カプセル化NOTIFY(S85)を受信すると、デカプセル化しNOTIFY(S86)を端末1(11)に対して送信する。
端末1(11)から200 OK(S87)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S88)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図58のようなカプセル化200 OK(S66)を受信すると、開始信号か否かの識別を行うが、受信信号がNOTIFY要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、NOTIFY要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK05を取得し、先に取得した呼番号、メソッド名(NOTIFY)に該当するトランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行うが、NOTIFY要求の200 OKはダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、特に変換対象が存在しないことを確認する。その後SIPレイヤのアドレス変換対象は特に行わず、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S89)を送信する。
その後、終了信号か否かの識別を行い、NOTIFY要求の200 OKは終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが存在するため、呼継続と判断し各テーブルの状態はそのまま保持し信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図59のようになる。
NAT装置(30)は、カプセル化200 OK(S89)を受信すると、デカプセル化し200 OK.(S90)を端末1(11)に対して送信する。
端末1(11)からBYE(S91)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化BYE(S92)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図60のようなカプセル化BYE(S92)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がBYE要求であるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、BYE要求はトランザクション生成信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK06を取得し、先に取得した呼番号、メソッド名(BYE)と共に、トランザクション状態管理テーブル(55)に登録する。
次にダイアログ関連の処理を行い、BYE要求は、ダイアログ削除信号であるため、FromヘッダのtagパラメータとToヘッダのtagパラメータを取得する。なおBYE要求はプライベート網からグローバル網に対して送信されているため、Fromヘッダより取得したtagパラメータをprivate−tag、Toヘッダより取得したtagパラメータをGlobal−tagとする。また、BYE要求で削除するダイアログはINVITEダイアログであるため、メソッドとしてINVITEを指定して、先に取得した呼番号、Private−tag、Global−tagに該当するレコードをダイアログ状態管理テーブル(56)から削除する。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、192.168.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化BYE(S93)を送信する。
その後、信号定義テーブル(53)を参照して終了信号か否かの識別を行うが、BYE要求は終了信号ではないため、本処理をスキップし、信号処理を終了する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図63のようになる。
NAT装置(30)は、カプセル化BYE(S93)を受信すると、デカプセル化しBYE(S94)を端末2(21)に対して送信する。
端末2(21)から200 OK(S95)が送信されるとNAT装置(30)でカプセル化を行い、カプセル化200 OK(S96)をSIP−ALG(50)に送信する。SIP−ALG(50)の呼処理機能(51)では、図62のようなカプセル化200 OK(S96)を受信すると、信号定義テーブル(53)を参照して開始信号か否かの識別を行うが、受信信号がBYE要求の200 OKであるため開始信号ではないと判断する。その後、カプセル化部分より対向装置識別情報としてNAT装置(30)のIPアドレス、呼識別情報としてSIPレイヤのCall−IDを取得しそれらの組をキー情報として記録し、そのキー情報を基に呼状態管理テーブル(54)を参照することにより、当該キー情報と呼番号が呼状態管理テーブル(54)に登録されていることを確認し、また、呼番号を取得する。
次にトランザクション関連の処理を行い、BYE要求の200 OKはトランザクション削除信号であるため、最上位のViaヘッダよりbranch−IDとしてz9hG4bK06を取得し、先に取得した呼番号、メソッド名(BYE)に該当するトランザクション状態管理テーブル(55)のレコードを削除する。
次にダイアログ関連の処理を行うが、BYE要求の200 OKはダイアログ生成信号でも削除信号でもないため、本処理はスキップする。
次に必要となるアドレス変換を行い、ネットワークアドレス管理テーブル(52)を参照し、130.0.0.0/24が変換対象となるアドレス体系であることを確認する。その結果、Viaを変換対象として抽出し、変換対象が既にアドレス変換テーブル(57)に登録されているか参照する。その結果既に登録されているため、変換後のアドレスを取得することができ、SIPレイヤのアドレス変換を行い、NAT装置(30)に対してアドレス変換後のカプセル化200 OK(S97)を送信する。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図63のようになる。
その後、終了信号か否かの識別を行い、BYE要求の200 OKは終了信号であるため、呼番号をキー情報として、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを検索する。その結果、ダイアログ状態管理テーブルに当該レコードが全く存在しないため、呼終了と判断し、アドレス変換テーブルより先に取得した呼番号に対する変換IDを取得し、それらの変換IDを設定し、NAT装置(30)に対して図64のようなアドレス組削除要求1(S99)を送信する。NAT装置(30)より図65のようなアドレス組削除応答1(S100)を受信すると、アドレス変換テーブル上の当該レコードを削除し、また、呼状態テーブルにおいても先に取得した呼番号に関するレコードを削除し信号処理を終了する。
その結果全ての呼関連リソース、呼状態が削除される。その時点での、呼状態管理テーブル(54)、トランザクション状態管理テーブル(55)、ダイアログ状態管理テーブル(56)、アドレス変換テーブル(57)は図66のようになる。
NAT装置(30)は、カプセル化200 OK(S97)を受信すると、デカプセル化し200 OK(S98)を端末1(11)に対して送信する。
上記のような処理を行うことで、呼の開始から終了までの呼状態を的確に判断でき、また、呼状態とアドレス変換情報など呼関連リソースを同期させることで、呼開始から呼終了まで呼関連リソースを保持し、呼終了時に削除することが可能となる。
また、対向装置識別情報と呼識別情報の組のように、それぞれの組で異なる長さを持つ文字列情報を、呼状態管理テーブルにより呼番号とすることで、他のテーブルの登録、参照、削除を効率化することが可能となる。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
10…プライベート網、11…端末1、20…グローバル網、21…端末2、30…NAT装置、40…管理網、50…SIP−ALG、51…呼処理機能、52…ネットワークアドレス管理テーブル、53…信号定義テーブル、54…呼状態管理テーブル、55…トランザクション状態管理テーブル、56…ダイアログ状態管理テーブル、57…アドレス変換テーブル