(58)【調査した分野】(Int.Cl.,DB名)
仮想アドレスを払い出し、呼制御信号の発信側アドレス若しくは着信側アドレスを払い出した仮想アドレスに変換するアドレス変換部を備えるゲートウェイ装置に搭載されるコンピュータを、
呼制御信号の受信時に、受信した呼制御信号の所定フィールドの情報を分析し、仮想アドレスの払い出し及びアドレス変換を、当該ゲートウェイ装置が実行するか否かを判別する判別手段と、
受信した呼制御信号が発信側から着信側へ向かう呼制御信号のときにおいて、仮想アドレスの払い出し及びアドレス変換を当該ゲートウェイ装置が実行すると上記判別手段が判別したとき、受信した呼制御信号の所定フィールドに、当該ゲートウェイ装置より進行方向側のゲートウェイ装置による仮想アドレスの払い出し及びアドレス変換を阻止すると共に、情報の追加装置が当該ゲートウェイ装置であることを判別し得る変換制御情報を追加する情報追加手段と、
仮想アドレスの払い出し及びアドレス変換を当該ゲートウェイ装置が実行しないと上記判別手段が判別したとき、受信した呼制御信号を透過させる信号透過手段として機能させ、
上記所定フィールドは、発信側から着信側へ向かう呼制御信号に応答する着信側から発信側へ向かう呼制御信号にも存在するフィールドであって、着信側から発信側へ向かう呼制御信号のフィールドも、上記変換制御情報を引き継ぎ、
上記判別手段は、着信側から発信側へ向かう呼制御信号の受信時には、上記変換制御情報に基づき、その変換制御情報の追加装置が当該ゲートウェイ装置か否かを認識して、仮想アドレスの払い出し及びアドレス変換を、当該ゲートウェイ装置が実行するか否かを判別するものであり、
着信側から発信側へ向かう呼制御信号の受信時に、仮想アドレスの払い出し及びアドレス変換を、当該ゲートウェイ装置が実行する場合に、呼制御信号の所定フィールドから上記変換制御情報を削除する情報削除手段としてさらに機能させる
ことを特徴とするゲートウェイ装置用プログラム。
【発明を実施するための形態】
【0011】
(A)主たる実施形態
以下、本発明によるゲートウェイ装置及びゲートウェイ装置用プログラムの一実施形態を、図面を参照しながら詳述する。実施形態のゲートウェイ装置は、NAPT機能を有するSBCである。
【0012】
(A−1)実施形態の構成
図1は、実施形態のSBCを含む、複数の網に渡っている大規模ネットワークの一例を示すブロック図である。
【0013】
図1に示す大規模ネットワークは、第1及び第2の事業者網1及び2を含んでいる。
【0014】
図1は、第1の事業者網1については内部の詳細を示している。第1の事業者網1は、加入者収容網3とその上位スイッチ網4とを有している。加入者収容網3は、ユーザ端末としての複数のSIP端末(以下ではUAと呼ぶこともある)5を有する。上位スイッチ網4は、加入者収容網3の上位網であり、メディアパケットの交換処理を行うものである。上位スイッチ網4は、UNI(User−Network Interface)に従ってSIP端末4との間でメディアパケットの授受を行うSBC(以下ではUNI−SBCと呼ぶこともある)6と、NNI(Network−Network Interface)に従って第2の事業者網2との間でメディアパケットの授受を行うSBC(以下ではNNI−SBCと呼ぶこともある)7と、SIPサーバ8とを有している。
【0015】
SIPサーバ8は、UA同士の直接通信を補う種々の機能を担っている。例えば、UAからの登録を受け付けたり正しい端末かどうかを認証する「レジスタ機能」、UAからの接続要求を受け付けて相手側のUAにパケットを転送する「プロキシ機能」、送信元のUAに相手の転送先アドレスなどを教える「リダイレクト機能」、UAの情報などを管理し、上述の3つの機能からの問い合わせを受け付ける「ロケーション機能」などを担っている。1つのSIPサーバ8が複数の機能を担うものであっても良く、機能別にSIPサーバ8が設けられていても良い。
【0016】
図1では、UNI−SBC6を1つのみ示しているが、地域別など、上位スイッチ網4内に複数のUNI−SBC6が設けられていても良い。
図1では、NNI−SBC7を1つのみ示しているが、他の事業者網の数などに応じて、上位スイッチ網4内に複数のNNI−SBC7が設けられていても良い。すなわち、サービスによっては、発信側のUAから着信側のUAに至る経路で、複数のSBCを経由することもあり得る。
【0017】
UNI−SBC6及びNNI−SBC7はそれぞれ、NAPT機能を有するSBCであって、実施形態のゲートウェイ装置に該当するものである。UNI−SBC6は、例えば、ハードウェア的な通信構成(送受信部)と、CPU、ROM、RAM、EEPROM(登録商標)等のソフトウェア実行構成とからなっている。ソフトウェア実行構成におけるCPUがROMに格納されているプログラムを実行して実現される機能が、
図1に示すように、TrGW部6a及びSIP−ALG部6bとしての機能である。同様に、NNI−SBC7も、機能的には、TrGW部7a及びSIP−ALG部7bを有する。
【0018】
この実施形態の場合、SBC6又は7は、メディア回線の呼の確立のためのSIP信号(INVITEリクエスト)が到来したときに、そのSIP信号が既に他のSBCを経由して到来したか否かを判別し、他のSBCを経由していない場合に、アドレス変換用の仮想アドレスを払い出して送信元アドレスについてアドレス変換してSIP信号の転送を行い、他のSBCを経由している場合に、アドレス変換用の仮想アドレスを払い出すことなく到来したSIP信号を透過させるものである。
【0019】
(A−2)実施形態の動作
次に、実施形態のSBC(UNI−SBC6やNNI−SBC7)の動作を、図面を参照しながら説明する。以下の説明においては、実施形態のSBCに関して符号「10」を適用し、SBC10のTrGW部に関して符号「10a」を適用し、SBC10のSIP−ALG部に関して符号「10b」を適用する。
【0020】
図2及び
図3は、実施形態のSBCにおけるSIP信号の受信時の動作を示すフローチャートである。
図2及び
図3は、アドレス変換機能との関係から動作を示している。
【0021】
SBC10のSIP−ALG部10bは、SIP信号を受信すると、受信したSIP信号がBYEリクエストか否かを判別する(ステップ100)。
【0022】
受信したSIP信号がBYEリクエストでなければ、SIP−ALG部10bは、発信UAから着信UAに向かうSIP信号か、着信UAから発信UAに向かうSIP信号かを判別する(ステップ101)。例えば、SIP信号の種類によっては今回のSIP信号の種類だけに基づいて進行方向を判別することができ、また、同一の呼に係る直前に受信したSIP信号の種類と今回のSIP信号の種類との関係に基づいて進行方向を判別することができる。例えば、INVITEリクエストは発信UAから着信UAに向かうSIP信号であり、18xレスポンスや200OKレスポンスは発信UAから着信UAに向かうSIP信号である。
【0023】
受信したSIP信号が発信UAから着信UAに向かうSIP信号であれば、SIP−ALG部10bは、Call−IDフィールドにプレフィックスがあるか否かを判別する(ステップ102)。この判別は、発信UAから複数のSBCを経由して着信UAへ至る経路の場合に、当該SBC10がアドレス変換を実行するSBCになっているか否かの判別になっている(但し、当該SBC10は複数のSBCを経由するか否かを認識することはできない)。
【0024】
Call−IDフィールドにプレフィックスがない場合には、SIP−ALG部10bは、同じSBC10内のTrGW部10aに対してメディア回線の捕捉(例えば、受信SIP信号がINVITEのとき)若しくは更新(例えば、受信SIP信号がACKのとき)を要求する(ステップ103)。
【0025】
TrGW部10aはかかる要求に応じて仮想アドレスを払い出し、SIP−ALG部10bへ、要求に対する応答で払い出した仮想アドレスを返却する(ステップ104)。
【0026】
SIP−ALG部10bは、受信したSIP信号中に、SDPに従って記述されている発信UAのアドレス情報を払い出された仮想アドレスに変更すると共に(ステップ105)、受信したSIP信号中のCall−IDフィールドにプレフィックスを追加し(ステップ106)、このように変更されたSIP信号を次段のノード(SBC、SIPサーバ若しくは着信UA)へ向けて送信する(ステップ107)。Call−IDフィールドにおける呼の特定情報の前に追加したプレフィックスは、例えば、アドレス変換に関係することを表す文字列と、アドレス変換がなされたSIP信号のSBCの通過数を表す数値とからなり、追加直後の数値は初期値「1」である。
【0027】
上述したステップ102の判別で、受信SIP信号のCall−IDフィールドにプレフィックスがあるという結果を得た場合には、SIP−ALG部10bは、受信SIP信号のCall−IDのプレフィックスに記載されている数値を1インクリメントした後(ステップ108)、直ちに、そのSIP信号を次段のノード(SBC、SIPサーバ若しくは着信UA)へ向けて送信する(ステップ109)。
【0028】
Call−IDフィールドにプレフィックスがある場合には上述した処理を行うだけであり、SIP−ALG部10bは、メディア回線捕捉要求やメディア回線更新要求も含め、TrGW部10aに対する一切のメディア回線制御を実施しない。
【0029】
受信した、BYEリクエスト以外SIP信号が着信UAから発信UAに向かうSIP信号であれば、SIP−ALG部10bは、Call−IDフィールドのプレフィックスにおける数値が「1」か否かを判別する(ステップ110)。この判別は、着信UAから複数のSBCを経由して発信UAへ至る経路の場合に、当該SBC10がアドレス変換を実行するSBCになっているか否かの判別になっている(但し、当該SBC10は複数のSBCを経由するか否かを認識することはできない)。
【0030】
Call−IDフィールドのプレフィックスにおける数値が「1」である場合には、SIP−ALG部10bは、同じSBC10内のTrGW部10aに対してメディア回線の更新を要求する(ステップ111)。
【0031】
TrGW部10aはかかる要求に応じて仮想アドレスを払い出し、SIP−ALG部10bへ、要求に対する応答で払い出した仮想アドレスを返却する(ステップ112)。
【0032】
SIP−ALG部10bは、受信したSIP信号中に、SDPに従って記述されている着信UAのアドレス情報を払い出された仮想アドレスに変更すると共に(ステップ112)、受信したSIP信号中のCall−IDフィールドにおけるプレフィックスを削除し(ステップ113)、このように変更されたSIP信号を次段のノード(SIPサーバ若しくは発信UA)へ向けて送信する(ステップ114)。
【0033】
上述したステップ110の判別で、受信SIP信号のCall−IDフィールドにおけるプレフィックスの数値が1より大きいという結果を得た場合には、SIP−ALG部10bは、受信SIP信号のCall−IDのプレフィックスに記載されている数値を1デクリメントした後(ステップ115)、直ちに、そのSIP信号を次段のノード(SIPサーバ若しくは発信UA)へ向けて送信する(ステップ116)。
【0034】
Call−IDフィールドにおけるプレフィックスの数値が1より大きい場合には上述した処理を行うだけであり、SIP−ALG部10bは、メディア回線更新要求も含め、TrGW部10aに対する一切のメディア回線制御を実施しない。
【0035】
上述したステップ100の判別で、受信したSIP信号がBYEリクエストであるという結果を得た場合には、SIP−ALG部10bは、TrGW部10aにメディア回線解放を要求する(ステップ117)。このとき、TrGW部10aは、発信UAのアドレスに置き換えるために払い出した仮想アドレスや着信UAのアドレスに置き換えるために払い出した仮想アドレスを解放してSIP−ALG部10bに応答し(ステップ118)、この応答を待って、SIP−ALG部10bは、BYEリクエストを次段のノードへ向けて送信する(ステップ119)。
【0036】
図4は、発信UA及び着信UA間のSIP信号の授受に3つのSBCが経由する場合のシーケンス図を示している。発信UA及び着信UA間のSIP信号の授受には、適宜、SIPサーバ(
図1の符号8参照)も介在するが、この実施形態はSBCにおける処理に特徴があるため、
図4では、SIPサーバの介在の図示を省略している。
【0037】
発信UA11が、発信UAのアドレスをSDPで記述していて、Call−IDフィールドの呼を特定する情報として「ABC」を含むINVITEリクエストを送信し、このINVITEレクエストがSBC10−1に到達したとする。
【0038】
SBC10−1は、発信UA11から着信UA12へのSIP信号であってCall−IDフィールドにプレフィックスが含まれていないので、仮想アドレス(ここではアドレスBとする)を払い出し、SDPで記述されている発信UAのアドレスを払い出された仮想アドレスBに置き換え、Call−IDフィールドにプレフィックスを追加して次のノード(ここではSBC10とする)に転送する(S1)。
【0039】
SBC10−2は、受信したINVITEレクエストのCall−IDフィールドにプレフィックスが含まれているので、プレフィックスの数値を1インクリメントして「2」に変更して直ちに次のノード(ここではSBC10−3とする)に転送する(S2)。同様に、SBC10−3は、受信したINVITEレクエストのCall−IDフィールドにプレフィックスが含まれているので、プレフィックスの数値を1インクリメントして「3」に変更して直ちに次のノード(ここでは着信UA12とする)に転送する(S3)。
【0040】
着信UA12は、INVITEレクエストを受信したので、その受信応答であるSIP信号を返信する。ここでは、そのSIP信号が18xレスポンスであるとする。着信UA12から発信UA11へのSIP信号である18xレスポンスは、着信UAのアドレスがSDPで記述されていて、Call−IDフィールドは受信したINVITEレクエストのCall−IDフィールドと同じ情報を有している。
【0041】
18xレスポンスが到達したSBC10−3は、着信UA12から発信UA11へのSIP信号であってCall−IDフィールドのプレフィックスの数値が「3」であるので、プレフィックスの数値を1デクリメントして「2」に変更して直ちに次のノード(ここではSBC10−2とする)に転送する(S4)。同様に、SBC10−2は、受信した18xレスポンスのCall−IDフィールドのプレフィックスの数値が「2」であるので、プレフィックスの数値を1デクリメントして「1」に変更して直ちに次のノード(ここではSBC10−1とする)に転送する(S5)。
【0042】
18xレスポンスが到達したSBC10−1は、着信UA12から発信UA11へのSIP信号であってCall−IDフィールドのプレフィックスの数値が「1」であるので、仮想アドレス(ここではアドレスAとする)を払い出し、SDPで記述されている着信UAのアドレスを払い出された仮想アドレスAに置き換え、Call−IDフィールドからプレフィックスを削除して次のノード(ここでは発信UA11とする)に転送する(S6)。
【0043】
着信UA側において、加入者がオフフックしたために着信UA12から送出される200OKレスポンスについても、アドレス変換について、18xレスポンスと同様な処理が実行される。
【0044】
図5は、発信UA及び着信UA間におけるアドレス変換に機能するSBC(以下の説明では符号10を用いる)での処理を中心的に示したシーケンス図である。
【0045】
SBC10のSIP−ALG部10bは、発信UAのアドレスがSDPで記述されているINVITEリクエストを受信すると、TrGW部10aにメディア回線捕捉を要求し(S11)、TrGW部10aは、この要求に応じて仮想アドレスBを払い出してSIP−ALG部10bに応答し(S12、S13)、SIP−ALG部10bは、SDPで記述されている発信UAのアドレスを仮想アドレスBに置き換えたINVITEリクエストを次のノードに送出する。
【0046】
この実施形態の場合、発信UA11から着信UA12へのSIP信号も、着信UA12から発信UA11へのSIP信号も、同一の呼に係るSIP信号であれば、同じSBC10がアドレス変換処理を実行する。
【0047】
上述したINVITEリクエストに対応する18xレスポンスや200OKレスポンスが到来したときには、SBC10のSIP−ALG部10bは、TrGW部10aにメディア回線更新を要求し(S21)、TrGW部10aは、この要求に応じて仮想アドレスAを払い出してSIP−ALG部10bに応答し(S22、S23)、SIP−ALG部10bは、SDPで記述されている着信UAのアドレスを仮想アドレスAに置き換えた18xレスポンスや200OKレスポンスを次のノードに送出する。
【0048】
SBC10のSIP−ALG部10bは、BYEリクエストを受信すると(
図5では発信UA11が送信元になっているが着信UA12が送信元の場合も同様である)、TrGW部10aにメディア回線解放を要求し(S31)、TrGW部10aは、この要求に応じて仮想アドレスA及びBを解放してSIP−ALG部10bに応答し(S32、S33)、SIP−ALG部10bは、この応答を待ってBYEリクエストを次のノードに送出する。
【0049】
図6は、発信UA及び着信UA間におけるアドレス変換に機能しないSBC(以下の説明では符号10を用いる)での処理を中心的に示したシーケンス図である。
【0050】
詳細な説明は省略するが、アドレス変換に機能しないSBC10のSIP−ALG部10bは、どのような種類のSIP信号が到来してもそれを透過させる。但し、BYEリクエストを除き、発信UA11から着信UA12へのSIP信号に対してはプレフィックスの数値を1インクリメントし、着信UA12から発信UA11へのSIP信号に対してはプレフィックスの数値を1デクリメントする。
【0051】
(A−3)実施形態の効果
上記実施形態によれば、発信側のUAから着信側のUAに至る経路に、複数のSBCが介在する場合であっても、仮想アドレスを払い出してアドレス変換するSBCを1つに抑えることができ、他のSBCで仮想アドレスを払い出すことがなくなり、ネットワーク全体として見たとき、余分なリソースの消費をなくすことができる。
【0052】
(B)他の実施形態
上記実施形態では、Call−IDフィールドにおける呼特定情報の前側(プレフィックス)に仮想アドレスの払い出し、変換に係る情報を追加するものを示したが、呼特定情報の途中や後ろ側に仮想アドレスの払い出し、変換に係る情報を追加するようにしても良い。
【0053】
上記実施形態では、着信UAから発信UAへのSIP信号についての仮想アドレスの払い出し、アドレス変換を行うSBCを認識させる情報がプレフィックスの数値であるものを示したが、他の情報であっても良い。SBCを透過することに、そのSBCの製品番号を追加したり削除し、プレフィックスの製品番号に基づいて、着信UAから発信UAへのSIP信号についての仮想アドレスの払い出し、アドレス変換を行うSBCを認識させるようにしても良い。また、通過する毎に、SBCの製品番号を追加、削除するではなく、仮想アドレスの払い出し、アドレス変換を行うSBCの製品番号だけをプレフィックスに記述し、各SBCが自己の製品番号が記述されているかを確認するようにしても良い。
【0054】
上記実施形態では、NAPT機能を有するSBCに適用したものを示したが、アドレス変換機能を有する他の装置にも適用可能である。