JP4131954B2 - Sip−algの呼状態管理方法 - Google Patents

Sip−algの呼状態管理方法 Download PDF

Info

Publication number
JP4131954B2
JP4131954B2 JP2004003967A JP2004003967A JP4131954B2 JP 4131954 B2 JP4131954 B2 JP 4131954B2 JP 2004003967 A JP2004003967 A JP 2004003967A JP 2004003967 A JP2004003967 A JP 2004003967A JP 4131954 B2 JP4131954 B2 JP 4131954B2
Authority
JP
Japan
Prior art keywords
call
signal
state management
sip
dialog
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.)
Expired - Lifetime
Application number
JP2004003967A
Other languages
English (en)
Other versions
JP2005198156A (ja
Inventor
和仁 林
高穂 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004003967A priority Critical patent/JP4131954B2/ja
Publication of JP2005198156A publication Critical patent/JP2005198156A/ja
Application granted granted Critical
Publication of JP4131954B2 publication Critical patent/JP4131954B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、IP通信網におけるSIP通信の呼管理方法であり、詳細には、NAT装置と連携するSIP−ALGにおける呼状態の管理方法に関する。
RFC3261(非特許文献2)の17章などでSIP(Session Initiation Protocol)の状態管理について明記されているが、それはSIPのトランザクションに関する状態遷移であり、基本的に端末やProxyに適用することを目的としている。しかしながら、SIP−ALG(Session Initiation Protocol-Application Level Gateway、SIPアプリケーションレベルゲートウェイ)の場合、非特許文献7に示すようにNAT装置(Network Address Translation装置)やFW装置(Firewall装置)と連携し取得したアドレス変換情報などの呼関連リソースを呼の開始から終了まで管理する必要があるため、RFC3261(非特許文献2)の状態管理をそのまま適用することはできなかった。
そこで、本出願人による特願2003−156188号「SIP−ALGにおける呼状態管理方法」(本出願時点では公開されていない。)では呼の開始と終了のみに着目し、SIP信号の中で、開始信号と終了信号を定義し、開始信号時に呼状態を作成し、終了信号時に呼状態を削除するという単純な方法を提案した。しかしながら、この方式では、例えば1つの呼の中でINVITEダイアログだけでなく、OPTIONSトランザクションも含まれる場合、OPTIONSトランザクションの削除契機で呼状態が削除されてしまうため、INVITEダイアログの途中で呼状態が削除されるという問題が生じる。また、RFC3265(非特許文献4)やRFC3515(非特許文献6)で規定されているように、1つの呼の中でINVITEダイアログ、REFERダイアログ、SUBSCRIBEダイアログが混在した場合において、INVITEダイアログが終了した時に、REFERダイアログやSUBSCRIBEダイアログが継続できないという問題があり、即ち1つの呼の中で複数トランザクションが同時に生じる場合や、複数ダイアログが同時に生じる場合、1つのトランザクション、ダイアログが削除された時点で呼状態そのものが削除される問題がある。なお、トランザクション、ダイアログについてはRFC3261(非特許文献2)に規定されている。
RFC2543、"SIP: Session Initiation Protocol"、M. Handley外3名、March 1999、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc2543.txt?number=2543>
RFC3261、"SIP: Session Initiation Protocol"、J. Rosenberg外7名、June 2002、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc3261.txt?number=3261> RFC3262、"Reliability of Provisional Responses in the Session Initiation Protocol (SIP)"、J. Rosenberg外1名、June 2002、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc3262.txt?number=3262> RFC3265、"Session Initiation Protocol (SIP)-Specific Event Notification"、A. B. Roach、June 2002、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc3265.txt?number=3265> RFC3428、"Session Initiation Protocol (SIP) Extension for Instant Messaging"、B. Campbell, Ed.外4名、December 2002、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc3428.txt?number=3428> RFC3515"The Session Initiation Protocol (SIP) Refer Method"、R. Sparks、April 2003、[online]、[平成15年12月24日検索]、インターネット<http://www.ietf.org/rfc/rfc3515.txt?number=3515> 林和仁外4名、「SIPアプリケーションレベルゲートウェイ(SIP−ALG)におけるアドレス変換エントリの管理方法に関する一考察」、信学技報NS2002−188、PS2002−62(2002−12)、p25−28
本発明が解決しようとする課題は、1つの呼の中において、複数のダイアログや複数のトランザクションが生じる場合にも、呼関連リソースを呼開始から呼終了まで管理できるよう、呼の開始、継続、終了状態を管理することである。
本発明の請求項1では、前記課題を解決する方法を示している。
請求項1では、呼の中で生成されるトランザクション、ダイアログ有無の状態を管理することで、1つの呼の中におけるトランザクション、ダイアログの生起状態を把握できるようにしている。具体的には、トランザクション、ダイアログが生じる毎に当該トランザクション、ダイアログ情報を登録し、それらが削除される毎に当該トランザクション情報、ダイアログ情報を削除することにより、トランザクション、ダイアログ有無の状態を管理できる。
SIPの呼は、REGISTERのように単一のトランザクションで構成されるものと、INVITE〜BYEの最終応答で終了する呼のように、複数のトランザクションと、ダイアログで構成されるものがあるが、いずれの場合においても、全てのトランザクション、ダイアログを削除することにより呼が終了する。
そこで、SIP−ALGにおいて上記のトランザクション、ダイアログの状態管理を行い、1つ呼の中で1つでも存在するトランザクション、ダイアログがある場合は呼継続と判断し、また、呼継続とした場合はアドレス変換情報などの呼関連リソースを保持し、トランザクション、ダイアログが全て存在しない場合は呼終了と判断でき、その時点で呼関連リソースを削除できる。
請求項2では、請求項1の呼状態管理を実現するための方法を示している。
SIP−ALGにおいて、アドレス変換情報など呼関連リソースを管理するキー情報を保持する呼状態管理テーブル、トランザクション状態を管理するトランザクション状態管理テーブル、ダイアログ状態を管理するダイアログ状態管理テーブルを配備し、それぞれ呼状態の生成、削除、トランザクション状態生成、削除、ダイアログ状態生成、削除を管理する。
SIP−ALGではカプセル化SIP信号を受信した際に、まずINVITE要求など呼を開始する信号(開始信号)か否かを確認する。
開始信号であれば、呼関連リソースなど呼を管理する上でのキー情報を取得する。呼管理のキー情報は、NAT装置のIPアドレスなど対向装置識別情報、Call−IDなど呼識別情報の組であるが、カプセル化SIP信号より前記対向装置識別情報、前記呼識別情報を取得しキー情報とし、取得したキー情報を基に呼状態管理テーブルを検索し、既に当該キー情報が登録されていれば何もせず、登録されていなければ当該キー情報を登録し後続処理に移る。なお、開始信号の処理において、既にキー情報が登録されている場合は、開始信号の再送時や、INVITEダイアログ成立後のre−INVITE要求などが想定される。
また、開始信号以外の信号の場合は、カプセル化SIP信号から前記キー情報を取得し、当該キー情報を基に呼状態管理テーブルを検索し、既に当該キー情報が登録されていれば何もせず後続処理に移り、登録されていなければ、異常状態とみなし信号を破棄し、ここで処理を終了する。
また、上記処理を行った後、トランザクションの生成、削除に関わる信号については、トランザクション状態の管理を行う。
SIPの要求信号のようにトランザクションを生成する信号であった場合、メソッド名、最上位のViaヘッダのbranch−IDなどをトランザクション識別情報として取得し、前記キー情報に対するレコードとしてトランザクション状態管理テーブルに登録する。
最終応答信号のようにトランザクションを削除する信号であった場合は、メソッド名、最上位のViaヘッダのbranch−IDなどをトランザクション識別情報として取得し、トランザクション状態管理テーブルにおいて、前記キー情報に対するレコードとして管理された当該トランザクション識別情報を削除する。
なお、100 Tryingや180 Ringingなどの暫定応答時は特に何も行わない。
次に、トランザクション状態の登録、削除処理後、ダイアログ状態の管理を行う。ここでは、受信信号が、INVITE要求に対する200 OK応答のようにダイアログを生成する信号か、あるいはBYE要求のようにダイアログを削除する信号かを識別する。
ダイアログを生成する信号であった場合、FromヘッダのtagパラメータとToヘッダのtagパラメータなど、ダイアログ識別情報を収集し、前記キー情報に対するレコードとして、ダイアログ状態管理テーブルに登録を行う。
ダイアログを削除する信号であった場合は、FromヘッダのtagパラメータとToヘッダのtagパラメータなど、ダイアログ識別情報を収集し、ダイアログ状態管理テーブルにおいて、前記キー情報に対するレコードとして管理された当該ダイアログ識別情報の削除を行う。
その他の信号であれば特に何も行わない。
ダイアログ状態の登録、削除を行った後、呼を継続させるか終了させるか判断を行う。
呼を終了させる契機は、BYE要求に対する200 OKのように呼を終了させる信号(終了信号)である。そこで終了信号か否かの確認を行い、終了信号であった場合は、前記キー情報を基にトランザクション状態管理テーブル、ダイアログ状態管理テーブルを参照し、トランザクション識別情報と、ダイアログ識別情報が存在するか否かを確認する。その結果、前記トランザクション状態管理テーブル、前記ダイアログ状態管理テーブルに当該キー情報に関わる情報が1つでも残っている場合は、それらの情報を削除するために、その後、何らかのSIP信号が送信されることが想定されるため、呼を継続するものと判断する。従って、呼状態管理テーブルの前記キー情報を削除せず保持し、信号処理を終了する。
また、前記トランザクション状態管理テーブル、前記ダイアログ状態管理テーブルに、それぞれ当該トランザクション識別情報と、当該ダイアログ識別情報が全く存在しない場合は、その後、特にSIP信号は不要なため、呼終了と判断し、呼関連リソースを削除した上で、呼状態管理テーブルのキー情報を削除し信号処理を終了する。
上記のように、呼状態テーブル、トランザクション状態管理テーブル、ダイアログ状態管理テーブルを用いて、開始処理、継続処理判定、トランザクション状態登録、削除、ダイアログ状態、登録削除、終了処理判定を行うことにより、呼の開始、終了を適切に管理できる。
請求項3は、請求項1の処理を行う上で必要となる信号の定義と、定義信号の情報を取得する方法について示している。
呼の生成、終了、トランザクションの生成、終了、ダイアログの生成、終了については、それぞれ信号を識別しなければならない。即ち、開始信号、終了信号、トランザクション生成信号、トランザクション削除信号、ダイアログ生成信号、ダイアログ削除信号を定義しなければならない。
そこで、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ダイアログに対しては、INVITE要求に対する2xx応答、REFERダイアログに対しては、REFER要求に対する2xx応答、SUBSCRIBEダイアログに対しては、SUBSCRIBE要求に対する2xx応答を、ダイアログを生成する信号として定義し、INVITEダイアログに対してはBYE要求、REFERダイアログやSUBSCRIBEダイアログに対しては、Subscription−Stateヘッダにterminatedと書かれたNOTIFY要求を、ダイアログを削除する信号として定義する。
そのように定義した情報は、そのままプログラムに直接書き込むか、あるいはファイルやテーブルに格納し、プログラム起動時に読み込ませることで、開始信号、終了信号、トランザクション生成信号、トランザクション削除信号、ダイアログの生成信号、ダイアログの削除信号の判定が可能となる。
請求項4では、請求項2における呼状態と呼関連リソースの連携方法について記述している。
SIP−ALGでは、アドレス変換情報などの呼関連リソースについても、対向装置識別情報と呼識別情報をキー情報としてそれぞれのテーブルで管理する。呼関連リソースは、呼の開始から終了まで適切に管理する必要があるが、請求項2の呼状態管理テーブルの前記キー情報の有無により、呼の継続、終了を判断する方法が利用できる。
請求項4では、請求項2の第3のステップと第4のステップの間において、必要に応じてアドレス変換要求を行い、取得した情報を、前記キー情報に対するレコードとして、それぞれの呼関連リソースの管理テーブルに登録する。
その後、請求項2の第4のステップにおいて、呼を継続するものと判断し、呼状態管理テーブルの前記キー情報を保持する場合は、呼関連リソースの当該キー情報に関わるリソースは保持し、また、呼を終了と判断し、呼状態管理テーブルの前記キー情報を削除する場合は、呼関連リソースの当該キー情報に関わるリソースを削除する。
上記により呼状態管理テーブルと呼関連リソースの同期をとることにより、呼の開始から終了まで呼関連リソースを適切に管理することが可能となる。
請求項5では、対向装置識別情報と呼識別情報をキー情報とする全てのテーブルにおいて、呼状態管理テーブルと他のテーブルの効率的な連携方法について示している。
対向装置識別情報はNAT装置のIPアドレスであり、呼識別情報はCall−IDなどの情報であるが、Call−IDは文字列であり、それぞれのCall−ID毎に文字列の長さが異なる可能性もある。また、Call−IDとIPアドレスの2つの情報をキー情報として管理する非効率的である。そこで、呼状態テーブルに対向装置識別情報と呼識別情報を管理する際に、それらの組に対する番号を呼番号として払い出し、その呼番号をその他テーブルとキー情報として管理すると、テーブルの連携上効率化が図れる。
本発明により、SIP−ALGにおいて、1つの呼の中で複数のダイアログ、トランザクションが存在する場合にも対応できるようになり、NAT装置、SIP−ALGを配備した環境においても、高度なSIPサービスを提供することが可能になる。
図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)に対して送信する。
上記のような処理を行うことで、呼の開始から終了までの呼状態を的確に判断でき、また、呼状態とアドレス変換情報など呼関連リソースを同期させることで、呼開始から呼終了まで呼関連リソースを保持し、呼終了時に削除することが可能となる。
また、対向装置識別情報と呼識別情報の組のように、それぞれの組で異なる長さを持つ文字列情報を、呼状態管理テーブルにより呼番号とすることで、他のテーブルの登録、参照、削除を効率化することが可能となる。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
実施例のネットワーク構成を示す図である。 実施例のSIP−ALGの構成を示す図である。 実施例のテーブルの連携関係を示す図である。 実施例のネットワークアドレス管理テーブル(52)を示す図である。 実施例の信号定義テーブル(53)を示す図である。 実施例の呼状態管理テーブル(54)を示す図である。 実施例のトランザクション状態管理テーブル(55)を示す図である。 実施例のダイアログ状態管理テーブル(56)を示す図である。 実施例のアドレス変換テーブル(57)を示す図である。 実施例のINVITE/OPTIONS複合シーケンス(1/3)を示す図である。 実施例のINVITE/OPTIONS複合シーケンス(2/3)を示す図である。 実施例のINVITE/OPTIONS複合シーケンス(3/3)を示す図である。 実施例のカプセル化INVITE(S2)を示す図である。 実施例のアドレス変換要求1(S3)を示す図である。 実施例のアドレス変換応答1(S4)を示す図である。 実施例のアドレス変換要求2(S5)を示す図である。 実施例のアドレス変換応答2(S6)を示す図である。 実施例のアドレス変換応答2(S6)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S10)を示す図である。 実施例のカプセル化200 OK(S10)受信後のテーブル内容を示す図である。 実施例のカプセル化ACK(S14)を示す図である。 実施例のカプセル化ACK(S14)受信後のテーブル内容を示す図である。 実施例のカプセル化OPTIONS(S18)を示す図である。 実施例のカプセル化OPTIONS(S18)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S22)を示す図である。 実施例のカプセル化200 OK(S22)受信後のテーブル内容を示す図である。 実施例のカプセル化BYE(S26)を示す図である。 実施例のカプセル化BYE(S26)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S30)を示す図である。 実施例のカプセル化200 OK(S30)受信後のテーブル内容を示す図である。 実施例のアドレス組削除要求1(S33)を示す図である。 実施例のアドレス組削除応答1(S34)を示す図である。 実施例のアドレス組削除応答1(S34)受信後のテーブル内容を示す図である。 実施例のSUBSCRIBE/INVITE複合シーケンス(1/4)を示す図である。 実施例のSUBSCRIBE/INVITE複合シーケンス(2/4)を示す図である。 実施例のSUBSCRIBE/INVITE複合シーケンス(3/4)を示す図である。 実施例のSUBSCRIBE/INVITE複合シーケンス(4/4)を示す図である。 実施例のカプセル化SUBSCRIBE(S52)を示す図である。 実施例のアドレス変換要求1(S53)を示す図である。 実施例のアドレス変換応答1(S54)を示す図である。 実施例のアドレス変換応答1(S54)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S58)を示す図である。 実施例のカプセル化200 OK(S58)受信後のテーブル内容を示す図である。 実施例のカプセル化NOTIFY(S62)を示す図である。 実施例のカプセル化NOTIFY(S62)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S66)を示す図である。 実施例のカプセル化200 OK(S66)受信後のテーブル内容を示す図である。 実施例のカプセル化INVITE(S70)を示す図である。 実施例のアドレス変換要求2(S71)を示す図である。 実施例のアドレス変換応答2(S72)を示す図である。 実施例のアドレス変換応答2(S72)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S76)を示す図である。 実施例のカプセル化200 OK(S76)受信後のテーブル内容を示す図である。 実施例のカプセル化ACK(S80)を示す図である。 実施例のカプセル化ACK(S80)受信後のテーブル内容を示す図である。 実施例のカプセル化NOTIFY(S84)を示す図である。 実施例のカプセル化NOTIFY(S84)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S88)を示す図である。 実施例のカプセル化200 OK(S88)受信後のテーブル内容を示す図である。 実施例のカプセル化BYE(S92)を示す図である。 実施例のカプセル化BYE(S92)受信後のテーブル内容を示す図である。 実施例のカプセル化200 OK(S96)を示す図である。 実施例のカプセル化200 OK(S96)受信後のテーブル内容を示す図である。 実施例のアドレス組削除要求1(S99)を示す図である。 実施例のアドレス組削除応答1(S100)を示す図である。 実施例のアドレス組削除応答1(S100)受信後のテーブル内容を示す図である。
符号の説明
10…プライベート網、11…端末1、20…グローバル網、21…端末2、30…NAT装置、40…管理網、50…SIP−ALG、51…呼処理機能、52…ネットワークアドレス管理テーブル、53…信号定義テーブル、54…呼状態管理テーブル、55…トランザクション状態管理テーブル、56…ダイアログ状態管理テーブル、57…アドレス変換テーブル

Claims (5)

  1. IP通信網において、ネットワークアドレス変換機能を備えたNAT装置があり、
    前記NAT装置は、SIP信号を検出すると、自身のIPアドレスを被せて前記SIP信号をカプセル化し、SIP−ALGに対してカプセル化SIP信号を送信する手段と、前記SIP−ALGから送信されたカプセル化信号を受信しデカプセル化し、SIP信号に戻す手段を有し、また、前記SIP−ALGからアドレス変換要求されたIPアドレス、ポート番号に対して、変換先のIPアドレス、ポート番号を払い出し、変換前後のアドレス組を管理し、前記SIP−ALGに対してアドレス変換の結果を応答する手段と、前記SIP−ALGからの前記アドレス組の削除要求に対して払い出したアドレス組を削除する手段を有しており、
    前記NAT装置を跨いだネットワーク間に置かれた端末同士のSIP通信について、SIPの呼の開始時または継続時において、前記NAT装置と連携しSIPレイヤのアドレス変換およびアドレス変換情報の保持を行い、また、SIPの呼終了時において、先に保持したアドレス変換情報の削除を行い、前記NAT装置に対してもアドレス変換情報の削除要求を行うSIP−ALGにおけるSIPの呼状態を管理する方法であって、
    SIPの呼開始時より呼終了時まで1つの呼の中でトランザクション、ダイアログが生成される毎に、当該トランザクション、ダイアログの情報を登録し、また、トランザクション、ダイアログが削除される毎に、当該トランザクション、ダイアログの情報を削除することで、トランザクション、ダイアログの有無の状態を管理し、
    トランザクションとダイアログが少なくとも1つでも存在する場合は呼継続と判断し、前記アドレス変換情報を含む呼関連リソースを保持し、トランザクション、ダイアログが全て存在しなくなった場合に呼終了と判断し、SIP−ALG上の前記アドレス変換情報を含む呼関連リソースの削除と、前記NAT装置で管理されているアドレス変換情報の削除要求を行うSIP−ALGの呼状態管理方法。
  2. 請求項1に記載のSIP−ALGの呼状態管理方法であって、
    前記SIP−ALGは、前記呼関連リソースを管理するためのキー情報を格納する呼状態管理テーブルと、トランザクション状態を管理するトランザクション状態管理テーブルと、ダイアログ状態を管理するダイアログ状態管理テーブルと、アドレス変換情報を格納するアドレス変換テーブルを備え、
    前記SIP−ALGが前記NAT装置からカプセル化SIP信号を受信した時に、呼を開始する信号(開始信号)であった場合は、カプセル化部分の送信元アドレスよりNAT装置のIPアドレスを対向装置識別情報として取得し、さらにSIP信号のSIPレイヤより呼を識別するための情報を呼識別情報として取得し、それらをSIP−ALGにおける呼関連リソースを管理するためのキー情報とし、呼状態管理テーブルを参照し、既に当該キー情報が登録されていれば何もせず後続処理に移し、未登録であった場合は呼状態管理テーブルに登録し後続処理に移し、開始信号以外の信号であった場合は、受信したカプセル化SIP信号より前記キー情報を取得し、呼状態管理テーブルを参照し、当該キー情報が存在していれば呼状態管理テーブルに対して何もせず後続処理に移し、当該キー情報が存在していなければ異常状態とみなし、受信信号を破棄し処理を終了する第1のステップと、
    前記第1のステップで処理を継続した場合、トランザクションを生成する信号か、トランザクションを削除する信号か、トランザクションの生成削除に関わらない信号かを識別し、トランザクション生成信号であった場合は、SIPレイヤよりトランザクションを識別するための情報であるトランザクション識別情報を収集し、トランザクション状態管理テーブルに対し、前記呼状態管理テーブルに登録したキー情報と連携させて、収集したトランザクション識別情報の登録を行い、トランザクション削除信号であった場合は、トランザクション生成信号の場合と同様にトランザクション識別情報を収集し、前記トランザクション状態管理テーブルから、収集したトランザクション識別情報の削除を行うことで、当該呼のトランザクションの有無を管理し、トランザクションの生成削除に関わらない信号であった場合は、トランザクション状態管理テーブルに対して何も行わず、既存の状態を保持する第2のステップと、
    前記第1のステップで処理を継続した場合、ダイアログを生成する信号か、ダイアログを削除する信号か、それ以外かを識別し、ダイアログを生成する信号であった場合は、SIPレイヤよりダイアログを識別するための情報であるダイアログ識別情報を収集し、ダイアログ状態管理テーブルに対し、前記呼状態管理テーブルに登録したキー情報と連携させて、収集したダイアログ識別情報の登録を行い、ダイアログを削除する信号であった場合は、ダイアログ識別情報を取得し、前記ダイアログ状態管理テーブルから、収集したダイアログ識別情報の削除を行い、それ以外の信号であった場合は、ダイアログ状態管理テーブルに対して何も行わず、既存の状態を保持する第3のステップと、
    前記第2および第3のステップの後、呼を終了させる信号(終了信号)であった場合、前記トランザクション状態管理テーブルおよび前記ダイアログ状態管理テーブルを検索し、前記トランザクション状態管理テーブル、前記ダイアログ状態管理テーブルに、当該終了信号より収集したキー情報に関わる情報が1つでも残っている場合は、前記呼状態管理テーブルの前記キー情報を削除せず、呼は継続するものと判断し、それらの情報を保持したままで処理を終了し、前記トランザクション状態管理テーブルと、前記ダイアログ状態管理テーブルに、それぞれ当該トランザクション識別情報と、当該ダイアログ識別情報が全く存在しない場合は、呼の終了とみなし、前記呼状態管理テーブルのキー情報を削除した上で処理を終了する第4のステップと、
    を有するSIP−ALGの呼状態管理方法。
  3. 請求項に記載の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ダイアログに対してはINVITE要求に対する2xx応答、REFERダイアログに対してはREFER要求に対する2xx応答、SUBSCRIBEダイアログに対してはSUBSCRIBE要求に対する2xx応答を、ダイアログを生成する信号として定義し、
    INVITEダイアログに対してはBYE要求、REFERダイアログまたはSUBSCRIBEダイアログに対してはSubscription−Stateヘッダにterminatedと書かれたNOTIFY要求を、ダイアログを削除する信号として定義し、
    定義した情報を、プログラムに直接書き込むか、または定義ファイルもしくはテーブルに格納し、前記定義した情報を参照して、開始信号、終了信号、トランザクションの生成信号、トランザクションの削除信号、ダイアログの生成信号、ダイアログの削除信号を判定するSIP−ALGの呼状態管理方法。
  4. 請求項2に記載のSIP−ALGの呼状態管理方法であって、
    前記キー情報を基に、アドレス変換情報を含む呼関連リソースを管理するテーブルを配備した状態において、
    前記第3のステップと第4のステップの間で、アドレス変換の必要がある場合は前記NAT装置に対しアドレス変換要求を行い、前記キー情報に対するレコードとして、前記アドレス変換テーブルに登録し、
    前記第4のステップにおいて、呼を継続し呼状態管理テーブルのキー情報を保持する場合は、呼関連リソースにおける当該キー情報に関わるレコードも保持し、呼を終了し呼状態管理テーブルのキー情報を削除する場合は、呼関連リソースにおける当該キー情報に関わるレコードも削除し、
    呼状態管理テーブルのキー情報の有無と、当該キー情報に関わる呼関連リソースの有無の同期をとることにより、呼の開始から終了までの期間、呼関連リソースを管理するSIP−ALGの呼状態管理方法。
  5. 請求項2に記載のSIP−ALGの呼状態管理方法であって、
    対向装置識別情報と呼識別情報の組をキー情報としているSIP−ALGが備える全てのテーブルについて、
    呼状態管理テーブルに対向装置識別情報と呼識別情報の組をキー情報として登録する時に、各キー情報に対する呼番号を払い出し、呼状態管理テーブルにおいて、対向装置識別情報と呼識別情報の組と呼番号の関連を管理し、
    対向装置識別情報と呼識別情報の組をキー情報としている、その他のテーブルに情報を登録、参照、削除する際に、対向装置識別情報と呼識別情報の組を基に呼状態テーブルを検索し、得られた呼番号を用いて各情報を管理するSIP−ALGの呼状態管理方法。
JP2004003967A 2004-01-09 2004-01-09 Sip−algの呼状態管理方法 Expired - Lifetime JP4131954B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004003967A JP4131954B2 (ja) 2004-01-09 2004-01-09 Sip−algの呼状態管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004003967A JP4131954B2 (ja) 2004-01-09 2004-01-09 Sip−algの呼状態管理方法

Publications (2)

Publication Number Publication Date
JP2005198156A JP2005198156A (ja) 2005-07-21
JP4131954B2 true JP4131954B2 (ja) 2008-08-13

Family

ID=34818717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004003967A Expired - Lifetime JP4131954B2 (ja) 2004-01-09 2004-01-09 Sip−algの呼状態管理方法

Country Status (1)

Country Link
JP (1) JP4131954B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096511A (ja) * 2005-09-27 2007-04-12 Oki Electric Ind Co Ltd 状態管理システム、ip電話交換機及び状態管理方法
JP4579119B2 (ja) * 2005-09-30 2010-11-10 富士通株式会社 Sipフィルタリングゲートウェイ、sipフィルタリング方法およびsipフィルタリングプログラム
JP4558674B2 (ja) * 2006-05-02 2010-10-06 日本電信電話株式会社 Sip通信システム、sip通信制御装置、sip通信制御方法、及び、コンピュータプログラム

Also Published As

Publication number Publication date
JP2005198156A (ja) 2005-07-21

Similar Documents

Publication Publication Date Title
US8634412B2 (en) Session initiation protocol (SIP) message incorporating a multi-purpose internet mail extension (MIME) media type for describing the content and format of information included in the SIP message
US10044767B2 (en) Method and system to enhance performance of a session initiation protocol network and its elements
US7860089B2 (en) Method and system for network based call-pickup
US8296447B2 (en) Method for copying session information, call control server for executing the same, and computer product
JP2008508753A (ja) ハイブリッド通信ネットワークにおいて相関手段を提供する方法および装置
JP2005229273A (ja) サーババックアップ装置
JP4695457B2 (ja) 関係者識別データの収集及び分配システム及び方法
US9992331B2 (en) Continuous call recording
WO2007112640A1 (fr) Procédé et appareil de remplacement de l'identification de session, serveur d'application et procédé de remplacement de session
US20040160985A1 (en) System and method for network address translation and session management
EP1763205A1 (en) Communication system, transfer control method, telephone device used for same, communication device, and program
JP4131954B2 (ja) Sip−algの呼状態管理方法
JP3889003B2 (ja) 複数nat/fw装置接続に対応したsip−algの呼関連リソース管理方法及びそのsip−alg
JP4541333B2 (ja) 端末装置、システム、方法、及びプログラム
JP5914394B2 (ja) パケット抽出方法、パケット抽出装置及びパケット抽出プログラム
KR100859706B1 (ko) 스테이트풀 sip 프락시 서버에서의 호 관리 방법 및시스템
JP3980562B2 (ja) Sip通信制御装置
KR101385842B1 (ko) 조합 서비스를 단일 엔드포인트로 라우팅하기 위한 방법 및 애플리케이션 서버
Cisco Cisco SIP Proxy Server Call Flows
Cisco Cisco SIP Proxy Server Call Flows
US20050111390A1 (en) Signaling method, server and gateway terminal
KR100894906B1 (ko) 세션 설정 프로토콜 기반의 ip 멀티미디어 서비스를제공하는 단말장치, 호 세션 제어 기능 장치 및 이를이용한 서비스 요청 송/수신 방법
KR101259811B1 (ko) Csi에서 호 처리 방법
JP7414215B1 (ja) 電話番号の調査装置、調査方法、調査プログラム、及び情報提供システム
Cao et al. Providing Secure End-to-End Session Tracking in Distributed Multi-Protocol Environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080418

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

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

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

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4131954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140606

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term