JP2006254253A - セッション中継装置 - Google Patents

セッション中継装置 Download PDF

Info

Publication number
JP2006254253A
JP2006254253A JP2005070239A JP2005070239A JP2006254253A JP 2006254253 A JP2006254253 A JP 2006254253A JP 2005070239 A JP2005070239 A JP 2005070239A JP 2005070239 A JP2005070239 A JP 2005070239A JP 2006254253 A JP2006254253 A JP 2006254253A
Authority
JP
Japan
Prior art keywords
sip
program
proxy
call control
cooperation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005070239A
Other languages
English (en)
Other versions
JP4487810B2 (ja
Inventor
Masahiro Yoshizawa
政洋 吉澤
Kazuma Yumoto
一磨 湯本
Eri Kawai
恵理 川井
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005070239A priority Critical patent/JP4487810B2/ja
Priority to US11/316,751 priority patent/US7764668B2/en
Priority to CN2005101357661A priority patent/CN1835505B/zh
Publication of JP2006254253A publication Critical patent/JP2006254253A/ja
Application granted granted Critical
Publication of JP4487810B2 publication Critical patent/JP4487810B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1043Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13164Traffic (registration, measurement,...)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13166Fault prevention
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13176Common channel signaling, CCS7
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13196Connection circuit/link/trunk/junction, bridge, router, gateway
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13204Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13348Channel/line reservation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13389LAN, internet

Landscapes

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

Abstract

【課題】セッション中継装置間の連携が頻繁に行われるようになると、呼制御メッセージの経路上で拡張処理が余分に実行されることがあり得る。そのような事態を避けるためには、セッション中継装置間で拡張処理を行う装置を決定するための一貫した方法が必要である。
【解決手段】セッション中継装置は、呼制御メッセージを受信するたびにそれが転送される経路に関する情報を計算する。呼制御メッセージに加えてその経路情報を拡張処理プログラムに渡すことで、その拡張処理を自セッション中継装置上で行うべきかどうかをセッション毎に決定する。また、拡張処理を実行したセッション中継装置は、そのことを他のセッション中継装置に通知するために、呼制御メッセージに処理状況を表す情報を追加する。
【選択図】図1

Description

本発明は、呼制御メッセージを転送するセッション中継装置を用いた、呼制御メッセージの転送される経路上で拡張処理を実行する装置及びシステムに関する。
近年、ブロードバンドの普及とIP(Internet Protocol)電話プロトコルの標準化が進んだことにより、IP電話が急速に普及している。それらIP電話プロトコルの中で特に普及しているものは、インターネットの特性を考慮して設計されたIP電話プロトコルであるSIP(Session Initiation Protocol)である。
SIPの最も単純な構成における構成要素は以下の3つである。本明細書では、実施例について説明する際にも以下の定義を用いる。
1つ目の構成要素はSIP UA(User Agent)である。これはSIPの呼制御メッセージであるSIPメッセージを解釈できる通信端末である。
2つ目の構成要素はロケーションサーバである。これはSIP UAを表す名前(Universal Resource Identifier;URIなど)と、SIP UAのネットワークアドレスの対応関係を管理するサーバである。
ロケーションサーバは、SIP UAとSIPプロクシを管理する。本明細書では、1つのロケーションサーバが管理するSIP UAとSIPプロクシの範囲のことを、DNS(Domain Name System)におけるドメインと区別するために、各ロケーションサーバの「スコープ」と呼称する。ドメインとスコープの範囲は通常一致するが、1つのスコープが複数のドメインを含むなど、完全に一致しなくてもよい。
3つ目の構成要素はSIPプロクシである。これはロケーションサーバ上の情報に基づいて、宛先のSIP UAに向けてSIPメッセージを転送するサーバである。SIPプロクシは必ずしも宛先のSIP UAに直接SIPメッセージを転送する必要はなく、自身よりも宛先に近い他のSIPプロクシへとSIPメッセージを転送することもできる。
またSIPプロクシは、SIPメッセージを受信した際に、時にはSIPメッセージの転送以外の拡張処理を実行することがある。そのような拡張処理には、RTP(Real−Time Transport Protocol)プロクシなどのメディア中継装置との連携、プレゼンスサーバとの連携、Webサーバとの連携、ログの記録、課金情報の記録、QoS(Quality of Service)制御などがある。元々SIPはインターネット上のマルチメディア通信の基盤となる呼制御プロトコルとして考え出されたため、SIPプロクシは他のサーバと連携した拡張処理でも容易に実行できる。ただし、本発明の効果を奏する限り、拡張処理はここに挙げた処理でなくてもよい。
以上はSIPプロクシにおける拡張処理の例だが、その他の呼制御プロトコルにおいても、呼制御メッセージの転送以外の拡張処理を実行するセッション中継装置は存在する。
以下では、呼制御メッセージを転送するセッション中継装置で、呼制御メッセージの転送以外の拡張処理を実行することによる課題を提示する。
現在では呼制御メッセージの転送以外の拡張処理を実行するセッション中継装置が、他の事業者の管理するセッション中継装置と連携することは稀であるが、今後事業者間での接続が増加するなどして、セッション中継装置間の連携が頻繁に行われるようになると、呼制御メッセージの経路上で拡張処理が重複して実行されたり、必要な拡張処理が実行されなかったりすることがあり得る。
SIPにおいて、セッション中継装置(SIPプロクシ)が、拡張処理としてメディア中継装置(RTPプロクシ)と連携した場合の例が図21である。
この図は、SIP UA2−1とSIP UA2−2の間で呼制御メッセージ(SIPメッセージ100)を交換する際の様子を示している。このとき、SIPプロクシ3−1はSIP UA2−1がNAT(Network Address Translation)装置7−1の背後にあるためにRTPプロクシ5−1と連携し、SIPプロクシ3−2はSIP UA2−2がNAT装置7−2の背後にあるためにRTPプロクシ5−2と連携する。このように、SIPプロクシは他のSIPプロクシが実行した拡張処理について知るための手段を持たないため、本来は経路上で一度だけ実行されれば十分なRTPプロクシ連携を重複して実行してしまう。
そこで、このような事態を避けるためには、セッション中継装置間で、どのセッション中継装置が拡張処理を行うかを決定できる一貫した方法が必要である。以上の課題の内容は、SIPに限定されない。
また、本発明の効果を奏する限り拡張処理は上記の例のようなRTPプロクシとの連携処理でなくてもよい。
本発明では、各セッション中継装置のメモリ上に、呼制御メッセージが転送される経路に関する情報を計算するプログラムと、各ユーザ端末が必要とする拡張処理に関する情報を計算するプログラムを備える。また、これら2つのプログラムとは別に、各セッション中継装置のメモリ上に、拡張処理を行うプログラムを備える。
各セッション中継装置は、呼制御メッセージに加えて上記2つの情報を、拡張処理を行うプログラムに渡すことで、その拡張処理を自セッション中継装置上で行うべきかどうかをセッション毎に決定する。また、セッション中継装置は、拡張処理を実行したことを他のセッション中継装置に通知するために、呼制御メッセージに処理状況を表す情報を追加する。これにより、前記の目標を達成する。
経路上のセッション中継装置で拡張処理が行われる回数が最低限に抑えられることで、セッション中継装置での処理負荷が軽減され、呼制御メッセージを転送する際の遅延時間が短くなる。また、セッション中継装置での処理が外部サーバとの連携を伴う場合には、セッション中継装置だけではなく、外部サーバのトラフィック量削減にも繋がる。このようにして、ネットワーク全体の負荷が軽減される。
以下、実施例を図面に基づいて説明する。
図1−aには、本実施例で想定している物理的な通信ネットワークの構成を模式的に示す。SIP UA2−1としては通信機能を備えたPCや電話型端末のような固定端末の他、携帯電話やPDA(Personal Digital Assistant)のような移動端末であっても良い。3−1はSIPプロクシであり、ロケーションサーバ4−1の管理する情報に基づいて、SIPメッセージの経路を決定し、転送する。図1−bのSIPサーバ5−1のように、SIPプロクシとロケーションサーバが一体であってもよい。上記SIP UA2−1、NAT装置7−1、SIPプロクシ3−1、ロケーションサーバ4−1およびRTPプロクシ5−1は、互いに物理的な通信回線9を介して接続されている。SIP UA2−1はNAT装置7−1を介して間接的に通信網1−1に接続されており、SIP UA2−1はSIPプロクシ3−1を経由してのみSIPメッセージを送受信できるものとする。また、これらは同じスコープ10−1に所属している。
スコープ10−2のSIP UA2−2、NAT装置7−2、SIPプロクシ3−2、ロケーションサーバ4−2およびRTPプロクシ5−2も、スコープ10−1と同様に、互いに物理的な通信回線9を介して接続されている。SIP UA2−2はNAT装置7−2を介して間接的に通信網1−2に接続されており、SIP UA2−2はSIPプロクシ3−2を経由してのみSIPメッセージを送受信できるものとする。
また、通信網1−1と通信網1−2は物理的な通信回線9を介して接続されている。
スコープ10−1はロケーションサーバ4−1が管理する範囲、スコープ10−2はロケーションサーバ4−2が管理する範囲というだけで、スコープの範囲は必ずしも物理的な位置によって制限されるものではない。しかし、図中では理解を助けるために、物理的な通信ネットワーク上の位置とスコープの範囲を一致させている。
実施例1から4のロケーションサーバは、従来のロケーションサーバが管理する情報に加えて、そのロケーションサーバが管理するスコープ内の各SIP UAが要求する拡張処理に関する情報も管理するものとする。実施例1では、ロケーションサーバ4−1は「SIP UA2−1がRTPプロクシ連携を要求する」という情報を管理し、ロケーションサーバ4−2は「SIP UA2−2がRTPプロクシ連携を要求する」という情報を管理しているものとする。
また、実施例1、2及び4のRTPプロクシは、セッションを一意に特定する識別子(Call−IDなど)をSIPプロクシから受け取ると、そのセッションに対応するポート番号が割り当てられていなければ新たに割り当て、そしてそのポート番号をSIPプロクシに送り返す、という単純なものであるとする。
実施例1では、SIP UA2−1とSIP UA2−2の間でセッションを確立するものとする。細い実線100は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際のSIPメッセージの流れを示したものである。ここではSIP UA2−1が発側(INVITEを送信したSIP UA)、SIP UA2−2が着側とする。また、破線110はRTPストリームの流れを示したものである。
図5には、図1−aに示したSIPプロクシ3(SIPプロクシ3−1、SIPプロクシ3−2共通)の内部構成を機能展開して示したブロック図を示す。SIPプロクシ3はIF31を通してSIPメッセージを送受信する。SIPプロクシ3の各プログラムはメモリ33に格納されており、動作時にはCPU32がデータパス34を通してそれらを読み出して実行する。また、SIPプロクシ3の管理する各テーブルもメモリ33に格納されており、ここから必要な情報を取り出し、書き込む。これらのテーブルは、ハードディスク等のストレージシステムで実現されるDB装置に格納してもよい。
メモリ33はセッション管理テーブル330、呼制御プログラム331、経路決定プログラム332、処理情報取得プログラム333、RTPプロクシ連携プログラム334、静的処理情報テーブル337を格納する。
セッション管理テーブル330は、SIPプロクシ3が現在扱っているセッションに関する情報を格納するテーブルである。それらの情報には各セッションの状態、セッションの識別子、発側と着側のURI及びContactアドレスなどがある。本特許では、セッション管理テーブル330は通常のSIPプロクシが管理するこれらの情報に加えて、「経路タイプ」、「前ホップ」、「次ホップ」、そしてそのセッションで行った拡張処理に関する情報も格納するものとする。
経路タイプとは経路全体の特徴を表し、1つのスコープ内に閉じた経路(以下、「閉」)か、または複数のスコープを跨いだ経路(以下、「開」)かのいずれかである。SIPメッセージのFromヘッダに含まれるURI(以下、発側URI)と、Toヘッダに含まれるURI(以下、着側URI)から決定する。
前ホップとは、SIPプロクシ3に対するSIPメッセージの送信元のことで、SIPプロクシ3と同じスコープに属するSIP UA(以下、自スコープUA)、SIPプロクシ3と同じスコープに属する他のSIPプロクシ(以下、自スコープSIPプロクシ)、SIPプロクシ3とは異なるスコープに属するSIPプロクシ(以下、他スコープSIPプロクシ)の3通りである。そのいずれかは、SIPプロクシ3がそのSIPメッセージの受信に用いたNNI(Network−Network Interface)またはUNI(User−Network Interface)から決定する。
次ホップとは、SIPプロクシ3が次にSIPメッセージを送信する送信先のことで、自スコープUA、自スコープSIPプロクシ、他スコープSIPプロクシの3通りである。そのいずれかは、着側URIから決定する。
そのセッションで行った拡張処理に関する情報とは、SIPプロクシ3がそれぞれの拡張処理について「実行」か「未実行」かを記録したものである。用途は後述する。
また以下の実施例1〜4では、セッション管理テーブル330は上記の情報を格納する領域に加えて、ロケーションサーバ4から取得した発側または着側(もしくはその両方)の情報をキャッシュする領域を持っているものとする。しかし本発明では、このようなキャッシュがなくてもよい。
呼制御プログラム331は、SIPメッセージの基本的な操作を行うプログラムである。経路決定プログラム332、処理情報取得プログラム333、そして拡張処理プログラム(RTPプロクシ連携プログラム334や、実施例3以降のプレゼンスサーバ連携プログラム335など)を呼び出す点以外は、既存のSIPプロクシと同様の機能を提供する。
経路決定プログラム332は、呼制御メッセージが転送される経路に関する情報を計算するプログラムである。このプログラムは、SIPメッセージが転送される経路の経路タイプ、前ホップ、そして次ホップを計算する。
処理情報取得プログラム333は、各SIP UAが必要とする拡張処理に関する情報を計算するプログラムである。それらの情報には動的な情報と静的な情報がある。前者は各SIP UA毎に異なる情報で、例えば「SIP UAが(NAT装置の背後にいるために)RTPプロクシ連携を要求している」などの情報である。後者はスコープ内のSIP UAに共通の情報で、例えば「スコープ内のSIP UAが通話を開始したら、その状態を自動的に『通話中』に更新する」などの情報である。
RTPプロクシ連携プログラム334は拡張処理を行うプログラムの一種で、経路決定プログラム332と処理情報取得プログラム333の計算結果を受け取り、特定の条件を満たす場合のみSIPプロクシ−RTPプロクシ間連携(以下、RTPプロクシ連携)を実行する。RTPプロクシ連携とは、RTPプロクシにポート番号の割り当てを要求し、割り当てられたポート番号を用いてSDP(Session Description Protocol)メッセージの内容を書き換えることで、SIP UA間でやり取りされるRTPパケットが必ずRTPプロクシを経由するようにすることである。
静的処理情報テーブル337は、各SIP UAが必要とする拡張処理に関する情報の内、スコープ内の全SIP UAに共通する情報を格納するテーブルである。実施例1及び2では、このテーブルは特に何の情報も含まなくてもよい。
上述のように、拡張処理を実行するべきか判断するために必要な情報を計算するプログラムと、拡張処理を実行するプログラムが分離していることで、セッション中継装置に元々あるプログラムを修正することなく、拡張処理を実行するプログラムを容易に追加または削除できるようになる。
図16は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際の動作の一例を示すシーケンス図である。以下では、図16に示したシーケンス図及び図8〜13に示したフローチャートを用いて、SIPメッセージが複数のSIPプロクシを経由する際に、RTPプロクシ連携を実行するSIPプロクシが動的に決定される様子を説明する。
SIPプロクシ3−1がSIP UA2−1からSDPを含むINVITE(S601)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332はSIPメッセージがリクエストかどうか判断し(S101)、リクエストの場合はそれがACKかどうか判断する(S102)。この場合リクエストはINVITEであるため、まず経路タイプを「閉」に設定する(S103)。その後、発側URIのドメインなどから、発側URIに対応するUA(以下、発側UA)が自スコープUAか他スコープUAかを判別する(S104)。SIP UA2−1とSIPプロクシ3−1は同じスコープに属するため(S105)、発側UAの情報をロケーションサーバ4−1から取得する(S106)。これと同様に、着側URIに対応するUA(以下、着側UA)についても自スコープUAか他スコープUAかを判別する(S108)。SIP UA2−2とSIPプロクシ3−1は異なるスコープに属するため(S109)、経路タイプを「開」に設定する(S111)。
次に、経路決定プログラム332はリクエストの受信がUNI経由で行われたかNNI経由で行われたかを判別する(S117)。この判別は、INVITEの送信元アドレスが、NNIとして事前に登録されているものかどうか比較するなどして行う。INVITEの送信元アドレスはSIP UA2−1であるため、発側UA(自スコープUA)を前ホップに設定する(S119)。
S108の結果から着側UAが自スコープUAではないとわかっているため(S121)、経路決定プログラム332はSIP UA2−2へとINVITEを転送できるSIPプロクシ3−2(他スコープSIPプロクシ)を次ホップに設定する(S125)。そして、このセッション固有の情報として、経路タイプ、前ホップ、次ホップの情報(S604)をセッション管理テーブルに登録する(S126)。そして、経路タイプなどとは別に、ロケーションサーバから取得した情報のキャッシュをセッション管理テーブルに登録する(S127)。経路決定プログラム332は以上のようにして得た情報を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。
処理情報取得プログラム333は、自スコープに属するSIP UAの情報のキャッシュをセッション管理テーブルから取得する(これはS127で登録されたものである)。本実施例ではキャッシュを利用しているが、キャッシュを利用しない場合はここで再びロケーションサーバにアクセスしてもよい。また、拡張処理に関する動的な情報を格納する専用のサーバがロケーションサーバ以外に存在する場合はそのサーバにアクセスしてもよい。スループットを重視する場合はキャッシュを利用し、SIPプロクシ上のメモリやディスク領域の節約を重視する場合はロケーションサーバや専用のサーバを利用することが望ましい。
この例では発側UAが自スコープUAであるため(S201)、発側UAの処理情報を取得し(S202)、着側UAは他スコープUAであるため(S203)、特に何も行わない。その後、自スコープ内で共通の処理情報を静的処理情報テーブルから取得する(S205)。実施例1では静的処理情報テーブル337は何の情報も含まないため、静的な情報は何も取得できない。処理情報取得プログラム333は以上のようにして得た「発側UAがRTPプロクシ連携を要求する」という動的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。呼制御プログラム331はRTPプロクシ連携プログラム334のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
RTPプロクシ連携プログラム334は、前ホップまたは次ホップが自スコープUAか検査する(S301)。この例では前ホップが自スコープUAであるため、次に発側UAまたは着側UAがRTPプロクシ連携を要求しているか検査する(S302)。この例では、S106にてロケーションサーバ4−1から取得した情報により、発側UAであるSIP UA2−1がRTPプロクシ連携を要求していることが分かるため、次の処理に進む。
この例では、受信したSIPメッセージがINVITEであり(S304)、SDPを含んでいる(S305)。そのため、次に経路タイプが「開」かどうかを検査する(S315)。ここでは経路タイプが「開」であるので、SIPメッセージ中にRTPプロクシ連携の処理通知があるか検査する(S316)。ここでは前ホップが自スコープUA(SIP UA2−1)のため、SIPメッセージにはSIPプロクシの処理通知は含まれていない。ここまでがRTPプロクシ連携プログラム334の処理条件判定部分である。RTPプロクシ連携プログラム334がこのような処理条件の判定を行うのは、本実施例以外のネットワーク構成も同じプログラムで対処できるようにするためである。
その後、RTPプロクシ連携プログラム334は、SDPの内容を解析し(S320)、RTPプロクシへポート割り当て要求を送る(S321)。RTPプロクシ5−1はポート割り当て要求に含まれるセッションの識別子(S605)に対して新たにポート番号を割り当て、そのポート番号を応答として返す(S606)。RTPプロクシ連携プログラム334はそのポート番号を元にSDPメッセージの修正を行う(S322)。そして、セッション管理テーブル330に、該セッションにてRTPプロクシ連携を実行したことを記録する(S323)。このような実行の記録は、これ以降、該セッションに関するSIPメッセージ(2xxやACKなど)を受信した際の計算を簡略化できる効果がある。
ここでは経路タイプが「開」であるため(S324)、RTPプロクシ連携の処理通知をSIPメッセージに追加する(S325)。異なるスコープに属するSIPプロクシに対しては、RTPプロクシ連携を実行済みであることを明示的に通知する必要がある。
この追加の例を示したものが図20である。
図20−aの例では、独自に定義したProxy−Processingヘッダに、RTPプロクシ連携が実行済みであることを表す「rtp」という文字列を格納している。処理通知専用に新たなヘッダを定義しなくとも、他の意図を持って定義されたヘッダのパラメータの1つとして、このような文字列を格納してもよい。
また図20−bの例では、独自に定義したContent−Typeである「application/x−sip−proxy−processing」のボディに、RTPプロクシ連携が実行済みであることを示す「rtp」という文字列を格納している(この例では既にSDPが存在するため、ボディをマルチパートにしている)。処理通知専用に新たなContent−Typeのボディを定義しなくとも、他の意図を持って定義されたContent−Typeのボディの一部として、このような文字列を格納してもよい。
また、RTPプロクシ連携を実行したことに加えて、RTPプロクシ連携に関する更に詳細な情報(RTPプロクシのドメイン名など)を上記の領域に格納してもよい。ここまでがRTPプロクシ連携プログラム334の処理部分である。
以上の処理が終了すると、呼制御プログラム331はSIPプロクシ3−2へとINVITEを転送する(S607)。
SIPプロクシ3−2がSIPプロクシ3−1からSDPを含むINVITE(S607)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332はSIPメッセージがリクエストかどうか判断し(S101)、リクエストの場合はそれがACKかどうか判断する(S102)。その後、SIPプロクシ3−1の場合とは逆に、SIP UA2−1とSIPプロクシ3−2は異なるスコープに属するため(S105)、経路タイプを「開」に設定する(S107)。SIP UA2−2とSIPプロクシ3−2は同じスコープに属するため(S109)、着側UAの情報をロケーションサーバ4−2から取得する(S110)。
次に、経路決定プログラム332はリクエストの受信がUNI経由で行われたかNNI経由で行われたかを判別する(S117)。ここではINVITEの送信元のSIPプロクシ3−1(他スコープSIPプロクシ)を前ホップに設定する(S120)。
S108の結果から着側UAが自スコープUA(SIP UA2−2)であるとわかっているため(S121)、経路決定プログラム332はSIPプロクシ3−2がSIP UA2−2へSIPメッセージを直接送信可能か調べる。ここでは直接送信可能なため、自スコープUAを次ホップに設定する(S123)。そして、このセッション固有の情報として、経路タイプ、前ホップ、次ホップの情報(S610)をセッション管理テーブルに登録する(S126)。そして、経路タイプなどとは別に、ロケーションサーバから取得した情報のキャッシュをセッション管理テーブルに登録する(S127)。経路決定プログラム332は以上のようにして得た情報を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報プログラム333は、SIPプロクシ3−1の場合とは逆に「着側UAがRTPプロクシ連携を要求する」という動的な情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。呼制御プログラム331はRTPプロクシ連携プログラム334のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
RTPプロクシ連携プログラム334は、途中まではSIPプロクシ3−1がINVITEを受信した場合と同様に進むが、ここではSIPプロクシ3−1によってINVITEにRTPプロクシ連携の処理通知が追加されているため、S316にてRTPプロクシ連携の処理通知ありと判断される。RTPプロクシ連携は経路上で一度だけ実行されれば十分であるため、この処理通知によって、SIPプロクシ3−2はRTPプロクシ連携を行う必要がないと判断することができる。このようにして、SIPメッセージの経路上で拡張処理が余計に行われることを防ぐ。
そして、セッション管理テーブル330に該セッションにてRTPプロクシ連携を実行しなかったことを記録し(S317)、プログラムを終了する。このような未実行の記録は、これ以降、該セッションに関するSIPメッセージ(2xxやACKなど)を受信した際の計算を簡略化できる効果がある。
以上の処理が終了すると呼制御プログラム331はSIP UA2−2へとINVITEを転送する(S611)。このとき、SIPプロクシ3−2には次ホップが自スコープUAであることが分かるため、SIP UAにネットワーク側での処理に関する情報が伝わらないようにしたい場合は、RTPプロクシ連携の処理通知をINVITEから削除してもよい。
SIP UA2−2がINVITEを受信し、ここではその後にSDPを含む200(S612)で応答したとする。SIPプロクシ3−2はこの200を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S613)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、SIPプロクシ3−2がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。RTPプロクシ連携プログラム334は、前ホップまたは次ホップが自スコープUAか検査する(S301)。この例では前ホップが自スコープUAであるため、次に発側UAまたは着側UAがRTPプロクシ連携を要求しているか検査する(S302)。この例では、着側UAであるSIP UA2−2がRTPプロクシ連携を要求していることが分かるため、次の処理に進む。
この例では、受信したSIPメッセージが200であるため(S304)、セッション管理テーブル330から該セッションの情報を取得する(S306)。ここではSIPメッセージはACKではなく(S307)、該セッションのINVITEでSDPを受信しており(S308)、200がSDPを含んでいる(S313)。しかしSIPプロクシ3−2はINVITEの受信時に、セッション管理テーブルにRTPプロクシ連携の未実行を記録しているため(S326)、RTPプロクシ連携を実行せずに処理を終了する。以上の処理が終了すると呼制御プログラム331はSIPプロクシ3−1へと200を転送する(S614)。
SIPプロクシ3−1がSIPプロクシ3−2からSDPを含む200(S614)を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S615)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、SIPプロクシ3−1がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。RTPプロクシ連携プログラム334は、途中まではSIPプロクシ3−2が200を受信した場合と同様に進むが、SIPプロクシ3−1はINVITEの受信時に、セッション管理テーブルにRTPプロクシ連携の実行を記録しているため(S326)、処理を続行する。
RTPプロクシ連携プログラム334は、INVITEを受信した際と同様に、SDPの内容を解析し(S327)、RTPプロクシへポート割り当て要求を送る(S328)。RTPプロクシ5−1はポート割り当て要求に含まれるセッションの識別子(S616)を見て、先ほど(S605、S606)割り当てたものと同じポート番号を応答として返す(S617)。RTPプロクシ連携プログラム334はそのポート番号を元にSDPメッセージの修正を行う(S329)。
以上の処理が終了するとSIPプロクシ3−1はSIP UA2−1へと200を転送する(S618)。
以上のようにして、SIPメッセージの経路上に存在するSIPプロクシの間で、RTPプロクシ連携を実行するSIPプロクシを一意に決定することができる。
これによって、SIPプロクシとRTPプロクシの間で交換されるメッセージ120が少なくなることで、SIPメッセージ転送時の遅延時間が短くなる。また、RTPストリーム110を中継するRTPプロクシの数が減ることで、音声や動画の遅延時間が短くなる。そして、SIPメッセージとRTPストリームの双方の処理量が減ることで、RTPプロクシにかかる負荷が減少するという効果がある。
実施例1では、SIPメッセージが複数のスコープを跨いだ経路を通る例を示した。そのように異なるスコープのSIPプロクシ同士が連携する際には、明示的に拡張処理の処理通知を行う必要があった。
しかし、SIPメッセージが1つのスコープに閉じた経路を通る場合には、SIPプロクシ間で明示的に拡張処理の処理通知を送受信しなくとも、SIPプロクシは拡張処理が既に行われたかどうかを暗黙的に知ることが可能である。そこで本実施例では、そのような場合の動作について説明する。
図2には、本実施例で想定しているネットワークの物理的な構成図を示す。SIP UA2−1、2−2は実施例1のものと同様である。3−1、3−2はSIPプロクシであり、ロケーションサーバ4の管理する情報に基づいて、SIPメッセージの経路を決定し、転送する。通信網1、SIP UA2−1、2−2、NAT装置7−1、7−2、SIPプロクシ3−1、3−2、ロケーションサーバ4およびRTPプロクシ5は、互いに物理的な通信回線9を介して接続されている。SIP UA2−1、2−2はそれぞれNAT装置7−1、7−2を介して間接的に通信網1に接続されており、SIP UA2−1、2−2はそれぞれSIPプロクシ3−1、3−2を経由してのみSIPメッセージを送受信できるものとする。また、これらは同じスコープ10に所属している。
スコープ10はロケーションサーバ4が管理する範囲というだけで、スコープの範囲は必ずしも物理的な位置によって制限されるものではない。しかし、図中では理解を助けるために、物理的な通信ネットワーク上の位置とスコープの範囲を一致させている。
実施例2及び4では、ロケーションサーバ4は各SIP UAが要求する拡張処理に関する情報として、「SIP UA2−1がRTPプロクシ連携を要求する」、「SIP UA2−2がRTPプロクシ連携を要求する」という情報を管理しているものとする。
実施例2では、SIP UA2−1とSIP UA2−2の間でセッションを確立するものとする。細い実線100は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際のSIPメッセージの流れを示したものである。ここではSIP UA2−1が発側(INVITEを送信したSIP UA)、SIP UA2−2が着側とする。また、破線110はRTPストリームの流れを示したものである。
SIPプロクシ3(3−1、3−2)の内部構成と、SIPプロクシ3の各プログラムのフローチャートは、実施例1のものと同様である。
ところで、本実施例のRTPプロクシ連携プログラムは「最初にRTPプロクシ連携を実行できるSIPプロクシが、RTPプロクシ連携を実行する」という方針に従っている。しかし、SIPメッセージが1つのスコープに閉じた経路を通る場合には、「RTPプロクシ連携を実行でき、なおかつ次ホップがSIP UAの場合にRTPプロクシ連携を実行する」という方針など、他の方針に従うRTPプロクシ連携プログラムを作成してもよい。ただし、SIPメッセージの経路上には、一時的な障害などが原因でRTPプロクシ連携を実行できないSIPプロクシが存在する可能性があるため、障害対策という面では本実施例の方針に従う方が望ましい。
図17は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際の動作の一例を示すシーケンス図である。以下では、図17に示したシーケンス図及び図8〜13に示したフローチャートを用いて、SIPメッセージが複数のSIPプロクシを経由する際に、RTPプロクシ連携を実行するSIPプロクシが動的に決定される様子を説明する。
SIPプロクシ3−1がSIP UA2−1からSDPを含むINVITE(S701)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332はSIPメッセージがリクエストかどうか判断し(S101)、リクエストの場合はそれがACKかどうか判断する(S102)。この場合リクエストはINVITEであるため、まず経路タイプを「閉」に設定する(S103)。その後、発側UAが自スコープUAか他スコープUAかを判別する(S104)。SIP UA2−1とSIPプロクシ3−1は同じスコープに属するため(S105)、発側UAの情報をロケーションサーバ4から取得する(S106)。これと同様に、着側UAについても自スコープUAか他スコープUAかを判別する(S108)。SIP UA2−2とSIPプロクシ3−1は同じスコープに属するため(S109)、着側UAの情報をロケーションサーバ4から取得する(S110)。
次に、経路決定プログラム332はリクエストの受信がUNI経由で行われたかNNI経由で行われたかを判別する(S117)。この判別は、INVITEの送信元アドレスが、NNIとして事前に登録されているものかどうか比較するなどして行う。INVITEの送信元アドレスはSIP UA2−1であるため、発側UA(自スコープUA)を前ホップに設定する(S119)。
S110でロケーションサーバ4から取得した情報によって、SIPプロクシ3−1は着側UAと同じスコープに属しているが(S121)、直接SIPメッセージを転送できないことが分かる(S122)。そのため、経路決定プログラム332はSIP UA2−2へとINVITEを転送できるSIPプロクシ3−2(自スコープSIPプロクシ)を次ホップに設定する(S124)。そして、このセッション固有の情報として、経路タイプ、前ホップ、次ホップの情報(S704)をセッション管理テーブルに登録する(S126)。そして、経路タイプなどとは別に、ロケーションサーバから取得した情報のキャッシュをセッション管理テーブルに登録する(S127)。経路決定プログラム332は以上のようにして得た情報を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。
処理情報取得プログラム333は、自スコープに属するSIP UAの情報のキャッシュをセッション管理テーブルから取得する(これはS127で登録されたものである)。本実施例ではキャッシュを利用しているが、キャッシュを利用しない場合はここで再びロケーションサーバにアクセスしてもよい。また、拡張処理に関する動的な情報を格納する専用のサーバがロケーションサーバ以外に存在する場合はそのサーバにアクセスしてもよい。スループットを重視する場合はキャッシュを利用し、SIPプロクシ上のメモリやディスク領域の節約を重視する場合はロケーションサーバや専用のサーバを利用することが望ましい。
この例では発側UAも着側UAが自スコープUAであるため(S201、S203)、それぞれの処理情報を取得する(S202、S204)。その後、自スコープ内で共通の処理情報を静的処理情報テーブルから取得する(S205)。実施例2では、静的処理情報テーブル337は何の情報も含まないため、静的な情報は何も取得できない。処理情報取得プログラム333は以上のようにして得た「発側UAと着側UAがRTPプロクシ連携を要求する」という動的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。呼制御プログラム331はRTPプロクシ連携プログラム334のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
RTPプロクシ連携プログラム334は、S315までは、実施例1にてSIPプロクシ3−1がINVITEを受信した場合と同様に進む。しかし、実施例2では経路タイプが「閉」であるので、次に前ホップが自スコープSIPプロクシかどうかを検査する(S318)。ここでは前ホップが自スコープUA(SIP UA2−1)のため、プログラムを続行する。ここまでがRTPプロクシ連携プログラム334の処理条件判定部分である。RTPプロクシ連携プログラム334がこのような処理条件の判定を行うのは、本実施例以外のネットワーク構成も同じプログラムで対処できるようにするためである。
その後、RTPプロクシ連携プログラム334は、SDPの内容を解析し(S320)、RTPプロクシへポート割り当て要求を送る(S321)。RTPプロクシ5−1はポート割り当て要求に含まれるセッションの識別子(S705)に対して新たにポート番号を割り当て、そのポート番号を応答として返す(S706)。RTPプロクシ連携プログラム334はそのポート番号を元にSDPメッセージの修正を行う(S322)。そして、セッション管理テーブル330に、該セッションにてRTPプロクシ連携を実行したことを記録する(S323)。このような実行の記録は、これ以降、該セッションに関するSIPメッセージ(2xxやACKなど)を受信した際の計算を簡略化できる効果がある。
ここでは経路タイプが「閉」であるため(S324)、RTPプロクシ連携の処理通知をSIPメッセージに追加する必要はない。ただし、SIPプロクシ同士の連携をより厳密に行いたい場合は、経路タイプが「閉」の場合も、実施例1と同様にRTPプロクシ連携の処理通知をSIPメッセージに追加してもよい。ここまでがRTPプロクシ連携プログラム334の処理部分である。
以上の処理が終了すると、呼制御プログラム331はSIPプロクシ3−2へとINVITEを転送する(S707)。
SIPプロクシ3−2がSIPプロクシ3−1からSDPを含むINVITE(S707)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、S118までは、本実施例にてSIPプロクシ3−1がINVITEを受信した場合と同様に進む。しかし、SIPプロクシ3−2はSIPプロクシ3−1からINVITEを受信するため、ここではINVITEの送信元のSIPプロクシ3−1(自スコープSIPプロクシ)を前ホップに設定する(S120)。
S108の結果から着側UAが自スコープUA(SIP UA2−2)であるとわかっているため(S121)、経路決定プログラム332はSIPプロクシ3−2がSIP UA2−2へSIPメッセージを直接送信可能か調べる。S110でロケーションサーバ4から取得した情報によって、SIPプロクシ3−2はSIP UA2−2へ直接SIPメッセージを転送できることが分かるため、SIP UA2−2(自スコープUA)を次ホップに設定する(S123)。そして、このセッション固有の情報として、経路タイプ、前ホップ、次ホップの情報(S710)をセッション管理テーブルに登録する(S126)。そして、経路タイプなどとは別に、ロケーションサーバから取得した情報のキャッシュをセッション管理テーブルに登録する(S127)。経路決定プログラム332は以上のようにして得た情報を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同様に進み、「発側UAと着側UAがRTPプロクシ連携を要求する」という動的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。呼制御プログラム331はRTPプロクシ連携プログラム334のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
RTPプロクシ連携プログラム334は、途中までは本実施例にてSIPプロクシ3−1がINVITEを受信した場合と同様に進む。しかし、経路タイプが「閉」で(S315)、前ホップが自スコープSIPプロクシの場合には(S318)、前ホップのSIPプロクシがRTPプロクシ連携を既に実行していることが暗黙的に分かる。RTPプロクシ連携は経路上で一度だけ実行されれば十分であるため、SIPプロクシ3−2はRTPプロクシ連携を行う必要がないと判断することができる。このようにして、SIPメッセージが1つのスコープに閉じた経路を通る場合にも、SIPメッセージの経路上で拡張処理が余計に行われることを防ぐ。そして、セッション管理テーブル330に該セッションにてRTPプロクシ連携を実行しなかったことを記録し(S319)、プログラムを終了する。
ただし、SIPプロクシ同士の連携をより厳密に行いたい場合には、経路タイプが「閉」の場合も、RTPプロクシ連携の処理通知がない場合はRTPプロクシ連携を実行するようにしてもよい。
以上の処理が終了すると呼制御プログラム331はSIP UA2−2へとINVITEを転送する(S711)。このとき、SIPプロクシ3−2には次ホップが自スコープUAであることが分かるため、SIP UAにネットワーク側での処理に関する情報が伝わらないように、RTPプロクシ連携の処理通知をINVITEから削除してもよい。
SIP UA2−2がINVITEを受信し、ここではその後SDPを含む200(S712)で応答したとする。SIPプロクシ3−2はこの200を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S713)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、本実施例にてSIPプロクシ3−2がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。しかしSIPプロクシ3−2はINVITEの受信時に、セッション管理テーブルにRTPプロクシ連携の未実行を記録しているため、RTPプロクシ連携を実行せずに処理を終了する(S326)。以上の処理が終了すると呼制御プログラム331はSIPプロクシ3−1へと200を転送する(S714)。
SIPプロクシ3−1がSIPプロクシ3−2からSDPを含む200(S714)を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S715)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。
SIPプロクシ3−1はINVITEの受信時に、セッション管理テーブルにRTPプロクシ連携の実行を記録しているため(S326)、処理を続行する。
RTPプロクシ連携プログラム334は、INVITEを受信した際と同様に、SDPの内容を解析し(S327)、RTPプロクシへポート割り当て要求を送る(S328)。RTPプロクシ5−1はポート割り当て要求に含まれるセッションの識別子(S716)を見て、先ほど(S705、S706)割り当てたものと同じポート番号を応答として返す(S717)。RTPプロクシ連携プログラム334はそのポート番号を元にSDPメッセージの修正を行う(S329)。
以上の処理が終了するとSIPプロクシ3−1はSIP UA2−1へと200を転送する(S718)。
以上のようにして、SIPメッセージが1つのスコープに閉じた経路を通る場合には、拡張処理の処理通知を行わなくとも、RTPプロクシ連携を実行するSIPプロクシを一意に決定することができる。
これによって、SIPプロクシとRTPプロクシの間で交換されるメッセージ120が少なくなることで、SIPメッセージ転送時の遅延時間が短くなる。また、RTPストリーム110を中継するRTPプロクシの数が減ることで、音声や動画の遅延時間が短くなる。そして、SIPメッセージとRTPストリームの双方の処理量が減ることで、RTPプロクシにかかる負荷が減少するという効果がある。
また、実施例1とは異なり、本実施例のように単一のスコープ内で冗長構成をとる場合には、元となる呼制御プロトコル(この場合はSIP)への拡張を必要としない。
1つのスコープの中にはRTPプロクシが1つしかないことも考えられるが、その場合もSIPプロクシとRTPプロクシの間で交換されるメッセージ120を削減できる、という効果がある。
実施例1と2では、SIPプロクシが拡張処理の一種であるRTPプロクシ連携を実行する例を示した。本実施例では、拡張処理の異なる例として、SIPプロクシ−プレゼンスサーバ間連携(以下、プレゼンスサーバ連携)を行う場合の動作について説明する。本実施例でプレゼンスサーバ連携と呼ぶものは、SIP UA間でセッションが確立されるとSIPプロクシが双方のSIP UAの状態を「通話中」に更新し、セッションか終了すると「通話可能」に更新するものであるとする。
また、本実施例及び実施例4では、ロケーションサーバのスコープと、プレゼンスサーバが管理するSIP UAとSIPプロクシの範囲は一致することを前提とする。
図3には、本実施例で想定しているネットワークの物理的な構成図を示す。SIP UA2−1、2−2は実施例1のものと同様である。3−1、3−2はSIPプロクシであり、ロケーションサーバ4の管理する情報に基づいて、SIPメッセージの経路を決定し、転送する。通信網1、SIP UA2−1、2−2、SIPプロクシ3−1、3−2、ロケーションサーバ4およびプレゼンスサーバ6は、互いに物理的な通信回線9を介して接続されている。TLS(Transport Layer Security)等のセキュリティ接続を維持しているという理由により、SIP UA2−1、2−2はそれぞれSIPプロクシ3−1、3−2を経由してのみSIPメッセージを送受信できるものとする。しかし、本実施例はこの理由に限定されるものではなく、SIPメッセージが同様の経路を辿る場合には同様の処理が行われる。
また、これらは同じスコープ10に所属している。スコープ10はロケーションサーバ4が管理する範囲というだけで、スコープの範囲は必ずしも物理的な位置によって制限されるものではない。しかし、図中では理解を助けるために、物理的な通信ネットワーク上の位置とスコープの範囲を一致させている。
実施例3では、SIP UA2−1とSIP UA2−2の間でセッションを確立するものとする。細い実線100は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際のSIPメッセージの流れを示したものである。ここではSIP UA2−1が発側(INVITEを送信したSIP UA)、SIP UA2−2が着側とする。
図6には、図3に示したSIPプロクシ3(SIPプロクシ3−1、SIPプロクシ3−2共通)の内部構成を機能展開して示したブロック図を示す。RTPプロクシ連携プログラム334の代わりにプレゼンスサーバ連携プログラム335がメモリ33に格納されている点以外は、実施例1のSIPプロクシ3の内部構成(図5)と同じである。
また、プレゼンスサーバ連携プログラム335以外の各プログラムのフローチャートは、実施例1と同様である。
プレゼンスサーバ連携プログラム335は拡張処理を行うプログラムの一種で、経路決定プログラム332と処理情報取得プログラム333の計算結果を受け取り、特定の条件を満たす場合のみプレゼンスサーバ連携を実行する。本実施例及び実施例4では、SIPプロクシ3からプレゼンスサーバ6に対してSIPメッセージのPUBLISHを送信することでSIP UAの状態を更新するものとする。ただし、SIP UAの状態を更新する方法はPUBLISHに限定されない。
ところで、本実施例及び実施例4のプレゼンスサーバ連携プログラム335は「最初にプレゼンスサーバ連携を実行できるSIPプロクシが、プレゼンスサーバ連携を実行する」という方針に従っている。しかし、SIPメッセージが1つのスコープに閉じた経路を通る場合には、「プレゼンスサーバ連携を実行でき、なおかつ次ホップがSIP UAの場合にプレゼンスサーバ連携を実行する」という方針など、他の方針に従うプレゼンスサーバ連携プログラムを作成してもよい。ただし、SIPメッセージの経路上には、一時的な障害などが原因でプレゼンスサーバ連携を実行できないSIPプロクシが存在する可能性があるため、障害対策という面では本実施例及び実施例4の方針に従う方が望ましい。
また、本実施例及び実施例4では、静的処理情報テーブル337に「全ての自スコープUAはプレゼンスサーバ連携を要求する」という情報を格納しているものとする。一部のUAのみがプレゼンスサーバ連携を要求する場合は、静的処理情報テーブル337にそのような情報を格納する必要があるが、その場合も本実施例と同じプレゼンスサーバ連携プログラム335で対処できる。
図18は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際の動作の一例を示すシーケンス図である。以下では、図18に示したシーケンス図及び図8〜10、図14〜15に示したフローチャートを用いて、SIPメッセージが複数のSIPプロクシを経由する際に、プレゼンスサーバ連携を実行するSIPプロクシが動的に決定される様子を説明する。
SIPプロクシ3−1がSIP UA2−1からSDPを含むINVITE(S801)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作する。そして、そのようにして得た情報(S804)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。
処理情報取得プログラム333は、自スコープに属するSIP UAの情報のキャッシュをセッション管理テーブルから取得する(これはS127で登録されたものである)。本実施例ではキャッシュを利用しているが、キャッシュを利用しない場合はここで再びロケーションサーバにアクセスしてもよい。また、拡張処理に関する動的な情報を格納する専用のサーバがロケーションサーバ以外に存在する場合はそのサーバにアクセスしてもよい。スループットを重視する場合はキャッシュを利用し、SIPプロクシ上のメモリやディスク領域の節約を重視する場合はロケーションサーバや専用のサーバを利用することが望ましい。
この例では発側UAも着側UAが自スコープUAであるため(S201、S203)、それぞれの処理情報を取得する(S202、S204)。本実施例では動的な情報に基づく拡張処理(RTPプロクシ連携など)が存在しないため、動的な情報は何も取得できない。その後、自スコープ内で共通の処理情報を静的処理情報テーブルから取得する(S205)。処理情報取得プログラム333は以上のようにして得た「全ての自スコープUAはプレゼンスサーバ連携を要求する」という静的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、プレゼンスサーバ連携プログラム335を呼び出す。呼制御プログラム331はプレゼンスサーバ連携プログラム335のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
プレゼンスサーバ連携プログラム335は、前ホップまたは次ホップが自スコープUAか検査する(S401)。この例では両者とも自スコープUAであるため、次に静的処理情報がプレゼンスサーバ連携を要求しているか検査する(S402)。この例では、S205にて静的処理情報テーブル337から取得した情報により、自ドメインUAである発側UAと着側UAがプレゼンスサーバ連携を要求していることが分かるため、次の処理に進む。
しかし、この例ではSIPメッセージがINVITEであるため、S403とS413の検査の後に処理を終了する。セッションの確立中から実行されるRTPプロクシ連携とは異なり、プレゼンスサーバ連携はセッションの確立後に実行される。
以上の処理が終了すると、呼制御プログラム331はSIPプロクシ3−2へとINVITEを転送する(S805)。
SIPプロクシ3−2がSIPプロクシ3−1からSDPを含むINVITE(S805)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作する。そして、そのようにして得た情報(S808)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同様に進み、「全ての自スコープUAはプレゼンスサーバ連携を要求する」という情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、プレゼンスサーバ連携プログラム335を呼び出す。呼制御プログラム331はプレゼンスサーバ連携プログラム335のような拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。
プレゼンスサーバ連携プログラム335は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同様に進み、プレゼンスサーバ連携を行う前に処理を終了する。
以上の処理が終了すると呼制御プログラム331はSIP UA2−2へとINVITEを転送する(S809)。
SIP UA2−2がINVITEを受信し、ここではその後SDPを含む200(S810)で応答したとする。SIPプロクシ3−2はこの200を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S811)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、本実施例にてSIPプロクシ3−2がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、プレゼンスサーバ連携プログラム335を呼び出す。
プレゼンスサーバ連携プログラム335は、前ホップまたは次ホップが自スコープUAか検査する(S401)。この例では両者とも自スコープUAであるため、次に静的処理情報がプレゼンスサーバ連携を要求しているか検査する(S402)。この例では、S205にて静的処理情報テーブル337から取得した情報により、自スコープUAである発側UAと着側UAがプレゼンスサーバ連携を要求していることが分かるため、次の処理に進む。
この例では、受信したSIPメッセージが200であるため(S403)、セッション管理テーブルから該セッションの情報を取得する。そして、受信したSIPメッセージが200であり(S405)、該セッションのINVITEがSDPを含んでおり(S406)、SIPメッセージ(ここで言う200)もSDPを含んでいる(S407)。そのため、次に経路タイプが「閉」かどうかを検査する(S414)。ここでは経路タイプが「閉」であるが、前ホップが自スコープUA(SIP UA2−2)であるため(S415)、処理を続行する。ここまでがプレゼンスサーバ連携プログラム335の処理条件判定部分である。プレゼンスサーバ連携プログラム335がこのような処理条件の判定を行うのは、本実施例以外のネットワーク構成も同じプログラムで対処できるようにするためである。
その後、プレゼンスサーバ連携プログラム335は、発側UAと着側UAが自スコープUAかどうかをそれぞれ判定し(S416、S420)、共に自スコープUAなので状態を「通話中」に更新する(S418、S422)。RTPプロクシ連携とは異なり、プレゼンスサーバ連携は一度の処理で終了するため、セッション管理テーブルにプレゼンスサーバ連携の実行を記録する必要はない。
本実施例及び実施例4では、ロケーションサーバ4のスコープと、プレゼンスサーバが管理するSIP UAとSIPプロクシの範囲は一致するという前提条件がある。つまりスコープ毎に1回プレゼンスサーバ連携を行うため、異なるスコープに属するSIPプロクシ間でプレゼンスサーバ連携の処理通知を送受信する必要はない。ただし、SIPプロクシ同士の連携をより厳密に行いたい場合は、経路タイプが「閉」の場合のみ、RTPプロクシ連携の処理通知と同様の方法で、プレゼンスサーバ連携の処理通知をSIPメッセージに追加してもよい。ここまでがプレゼンスサーバ連携プログラム335の処理部分である。
以上の処理が終了すると呼制御プログラム331はSIPプロクシ3−1へと200を転送する(S814)。
SIPプロクシ3−1がSIPプロクシ3−2からSDPを含む200(S814)を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、SIPメッセージがレスポンスの場合はリクエスト時の情報を利用する。まず、セッション管理テーブルから該セッションのリクエスト時の経路タイプ、前ホップ、次ホップを取得する(S112)。そして、経路タイプをリクエスト時と同じものに設定し(S113)、前ホップと次ホップをリクエスト時と逆に設定して(S114)、得た情報(S815)を呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334を呼び出す。
RTPプロクシ連携プログラム334は、途中まではSIPプロクシ3−2が200を受信した場合と同様に進むが、経路タイプが「閉」で(S414)、前ホップが自スコープSIPプロクシの場合には(S415)、前ホップのSIPプロクシがプレゼンスサーバ連携を既に実行していることが暗黙的に分かるため、プログラムを終了する。
ただし、SIPプロクシ同士の連携をより厳密に行いたい場合には、経路タイプが「閉」の場合に、プレゼンスサーバ連携の処理通知がない場合はプレゼンスサーバ連携を実行するようにしてもよい。
以上の処理が終了すると呼制御プログラム331はSIP UA2−1へとINVITEを転送する(S816)。
以上のようにして、RTPプロクシ連携以外の拡張処理であるプレゼンスサーバ連携についても、処理条件判定部分と処理部分からなるプログラムを追加することで、その拡張処理を実行するSIPプロクシを一意に決定することができる。
これによって、SIPプロクシとプレゼンスサーバの間で交換されるメッセージ130が少なくなることで、SIPメッセージ転送時の遅延時間が短くなる。また、SIPメッセージの処理量が減ることで、プレゼンスサーバにかかる負荷が減少するという効果がある。
また、実施例1とは異なり、本実施例のように単一のスコープ内で冗長構成をとる限りにおいては、元となる呼制御プロトコル(この場合はSIP)への拡張を必要としない。
実施例1〜3では、SIPプロクシが単一の拡張処理を実行する例を示した。本実施例では、SIPプロクシが複数の拡張処理を実行する場合の動作について説明する。本実施例では、実施例1と2で示したRTPプロクシ連携と、実施例3で示したプレゼンスサーバ連携という、2つの拡張処理を実行するものとする。
図4には、本実施例で想定しているネットワークの物理的な構成図を示す。RTPプロクシ5に加えてプレゼンスサーバ6が物理的な通信回線9を介して通信網1に接続されている点以外は、実施例2の構成図(図2)と同じである。
図7には、図4に示したSIPプロクシ3(SIPプロクシ3−1、SIPプロクシ3−2共通)の内部構成を機能展開して示したブロック図を示す。RTPプロクシ連携プログラム334に加えてプレゼンスサーバ連携プログラム335がメモリ33に格納されている点以外は、実施例1のSIPプロクシ3の内部構成(図5)と同じである。
また、プレゼンスサーバ連携プログラム335以外の各プログラムのフローチャートは実施例1と同様であり、プレゼンスサーバ連携プログラム335のフローチャートは実施例3と同様である。静的処理情報テーブル337には実施例3と同様の情報を格納しているものとする。
図19は、SIP UA2−1とSIP UA2−2の間でセッションを確立する際の動作の一例を示すシーケンス図である。以下では、図19に示したシーケンス図及び図8〜15に示したフローチャートを用いて、SIPメッセージが複数のSIPプロクシを経由する際に、RTPプロクシ連携とプレゼンスサーバ連携を実行するSIPプロクシがそれぞれ動的に決定される様子を説明する。
SIPプロクシ3−1がSIP UA2−1からSDPを含むINVITE(S901)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作する。そして、そのようにして得た情報(S904)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。
処理情報取得プログラム333は、自スコープに属するSIP UAの情報のキャッシュをセッション管理テーブルから取得する(これはS127で登録されたものである)。本実施例ではキャッシュを利用しているが、キャッシュを利用しない場合はここで再びロケーションサーバにアクセスしてもよい。また、拡張処理に関する動的な情報を格納する専用のサーバがロケーションサーバ以外に存在する場合はそのサーバにアクセスしてもよい。スループットを重視する場合はキャッシュを利用し、SIPプロクシ上のメモリやディスク領域の節約を重視する場合はロケーションサーバや専用のサーバを利用することが望ましい。
この例では発側UAも着側UAが自スコープUAであるため(S201、S203)、それぞれの処理情報を取得する(S202、S204)。その後、自スコープ内で共通の処理情報を静的処理情報テーブルから取得する(S205)。処理情報取得プログラム333は以上のようにして得た「発側UAと着側UAがRTPプロクシ連携を要求する」という動的な情報と「全ての自スコープUAはプレゼンスサーバ連携を要求する」という静的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334と、プレゼンスサーバ連携プログラム335を呼び出す。呼制御プログラム331はこれらの拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。これらの拡張処理プログラムを呼び出す順番を変更しても、全体の処理結果が変わることはない。
RTPプロクシ連携プログラム334は、実施例2におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作し、RTPプロクシ連携を実行する。そして、セッション管理テーブル330に、該セッションにてRTPプロクシ連携を実行したことを記録して(S323)、プログラムを終了する。
プレゼンスサーバ連携プログラム335は、実施例3におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作し、プレゼンスサーバ連携を実行せずにプログラムを終了する。
以上の処理が終了すると、呼制御プログラム331はSIPプロクシ3−2へとINVITEを転送する(S907)。
SIPプロクシ3−2がSIPプロクシ3−1からSDPを含むINVITE(S907)を受信すると、そのINVITEはまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−1がINVITEを受信した場合と全く同じように動作する。そして、そのようにして得た情報(S910)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。
処理情報プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同様に進み、「発側UAと着側UAがRTPプロクシ連携を要求する」という動的な情報と「全ての自スコープUAはプレゼンスサーバ連携を要求する」という静的な情報を、呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334と、プレゼンスサーバ連携プログラム335を呼び出す。呼制御プログラム331はこれらの拡張処理プログラムを呼び出す際に、経路決定プログラム332と処理情報取得プログラム333から受け取った計算結果を渡す。これらの拡張処理プログラムを呼び出す順番を変更しても、全体の処理結果が変わることはない。
RTPプロクシ連携プログラム334は、実施例2におけるSIPプロクシ3−2がINVITEを受信した場合と全く同じように動作し、RTPプロクシ連携を実行しない。そして、セッション管理テーブル330に、該セッションにてRTPプロクシ連携を実行しなかったことを記録して(S319)、プログラムを終了する。
プレゼンスサーバ連携プログラム335は、実施例3におけるSIPプロクシ3−2がINVITEを受信した場合と全く同じように動作し、プレゼンスサーバ連携を実行せずにプログラムを終了する。
以上の処理が終了すると呼制御プログラム331はSIP UA2−2へとINVITEを転送する(S911)。
SIP UA2−2がINVITEを受信し、ここではその後SDPを含む200(S912)で応答したとする。SIPプロクシ3−2はこの200を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−2が200を受信した場合と全く同じように動作する。そして、そのようにして得た情報(S913)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、本実施例にてSIPプロクシ3−2がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。 そして呼制御プログラム331は、RTPプロクシ連携プログラム334と、プレゼンスサーバ連携プログラム335を呼び出す。
RTPプロクシ連携プログラム334は、実施例2におけるSIPプロクシ3−2が200を受信した場合と全く同じように動作し、RTPプロクシ連携を実行せずにプログラムを終了する。
プレゼンスサーバ連携プログラム335は、実施例3におけるSIPプロクシ3−2が200を受信した場合と全く同じように動作し、プレゼンスサーバ連携を実行する。そしてプログラムを終了する。
以上の処理が終了すると呼制御プログラム331はSIPプロクシ3−1へと200を転送する(S916)。
SIPプロクシ3−1がSIPプロクシ3−2からSDPを含む200(S916)を受信すると、その200はまず呼制御プログラム331に渡される。そして、呼制御プログラム331はその処理の中で経路決定プログラム332を呼び出す。
経路決定プログラム332は、実施例2におけるSIPプロクシ3−1が200を受信した場合と全く同じように動作する。そして、そのようにして得た情報(S917)を、呼制御プログラム331に返す。
経路決定プログラム332が終了すると、呼制御プログラム331は次に処理情報取得プログラム333を呼び出す。処理情報取得プログラム333は、本実施例にてSIPプロクシ3−1がINVITEを受信した際と同じ情報を呼制御プログラム331に返す。
そして呼制御プログラム331は、RTPプロクシ連携プログラム334と、プレゼンスサーバ連携プログラム335を呼び出す。
RTPプロクシ連携プログラム334は、実施例2におけるSIPプロクシ3−1が200を受信した場合と全く同じように動作し、RTPプロクシ連携を実行する。そしてプログラムを終了する。
プレゼンスサーバ連携プログラム335は、実施例3におけるSIPプロクシ3−1が200を受信した場合と全く同じように動作し、プレゼンスサーバ連携を実行せずにプログラムを終了する。
以上の処理が終了すると呼制御プログラム331はSIP UA2−1へとINVITEを転送する(S920)。
以上のようにして、SIPプロクシの実行する拡張処理が複数ある場合についても、そのそれぞれの拡張処理を実行するSIPプロクシを一意に決定することができる。また、処理条件の判定はそれぞれの拡張処理毎に行われるため、1つのSIPプロクシが必ずしも全ての拡張処理を実行するわけではないことを示した。
これによって、SIPプロクシと外部サーバ(RTPプロクシ、プレゼンスサーバ)の間で交換されるメッセージが少なくなることで、SIPメッセージ転送時の遅延時間が短くなる。SIPプロクシから送信されるメッセージの処理量が減ることで、外部サーバにかかる負荷が減少するという効果もある。
また、実施例1とは異なり、本実施例のように単一のスコープ内で冗長構成をとる限りにおいては、元となる呼制御プロトコル(この場合はSIP)への拡張を必要としない。
そして、経路決定プログラム332と処理情報取得プログラム333の計算結果を、それぞれの拡張処理プログラムに渡す仕組みになっているため、SIPプロクシの基本的なプログラム(呼制御プログラム331、経路決定プログラム332、処理情報取得プログラム333)に変更を加えることなく、実施例4で示したもの以外の拡張処理プログラムも新たに追加することができる。RTPプロクシ連携とプレゼンスサーバ連携以外に考えられる拡張処理プログラムとしては、Webサーバとの連携、ログの記録、課金情報の記録、QoS制御などがある。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。また、本発明の効果を奏する限り、プロトコルはSIPに限定されない。
実施例1で想定するネットワークの物理的な構成を示す図である。 実施例2で想定するネットワークの物理的な構成を示す図である。 実施例3で想定するネットワークの物理的な構成を示す図である。 実施例4で想定するネットワークの物理的な構成を示す図である。 実施例1、2のSIPプロクシの内部構成を機能展開して示した図である。 実施例3のSIPプロクシの内部構成を機能展開して示した図である。 実施例4のSIPプロクシの内部構成を機能展開して示した図である。 経路決定プログラムの内部動作を示すフローチャートである。 経路決定プログラムの内部動作を示すフローチャートである。 処理情報取得プログラムの内部動作を示すフローチャートである。 RTPプロクシ連携プログラムの内部動作を示すフローチャートである。 RTPプロクシ連携プログラムの内部動作を示すフローチャートである。 RTPプロクシ連携プログラムの内部動作を示すフローチャートである。 プレゼンスサーバ連携プログラムの内部動作を示すフローチャートである。 プレゼンスサーバ連携プログラムの内部動作を示すフローチャートである。 実施例1の動作シーケンスを示す図である。 実施例2の動作シーケンスを示す図である。 実施例3の動作シーケンスを示す図である。 実施例4の動作シーケンスを示す図である。 実施例1にて、RTPプロクシ連携の処理通知が追加されたSIPメッセージの例を示す図である。 従来のSIPプロクシを用いたネットワークの物理的な構成を示す図である。
符号の説明
1 通信網
2 SIP UA
3 SIPプロクシ
4 ロケーションサーバ
5 RTPプロクシ
6 プレゼンスサーバ
7 NAT装置
8 SIPサーバ
9 通信回線
10 スコープ
100 SIPメッセージ
110 RTPストリーム
120 SIPプロクシ−RTPプロクシ間連携メッセージ
130 SIPプロクシ−プレゼンスサーバ間連携メッセージ
31 IF
32 CPU
33 メモリ
34 データパス
330 セッション管理テーブル
331 呼制御プログラム
332 経路決定プログラム
333 処理情報取得プログラム
334 RTPプロクシ連携プログラム
335 プレゼンスサーバ連携プログラム
337 静的処理情報テーブル。

Claims (5)

  1. 通信端末と他のセッション中継装置とに接続されたセッション中継装置であって、
    上記通信端末または上記セッション中継装置から呼制御メッセージを受信する送受信部と、
    上記呼制御メッセージの通過する経路上での自装置の位置の情報と、上記呼制御メッセージが属するセッションが必要とする処理に関する情報とに基づいて、上記処理を自装置で実行するか否かを決定する制御部を有するセッション中継装置。
  2. 請求項1記載のセッション中継装置であって、
    上記送受信部は、上記呼制御メッセージが属するセッションが必要とする処理を自装置で実行したか否かの情報が付加された上記呼制御メッセージを送信することを特徴とするセッション中継装置。
  3. 請求項1記載のセッション中継装置であって、
    上記呼制御メッセージが属するセッションが必要とする処理は2つ以上の独立した処理であることを特徴とするセッション中継装置。
  4. 請求項1記載のセッション中継装置であって、
    記憶部を備え、
    上記記憶部には、
    上記呼制御メッセージの通過する経路上での自装置の位置の情報を取得するプログラムと、
    上記呼制御メッセージが属するセッションが必要とする処理に関する情報を取得するプログラムと、
    上記呼制御メッセージの通過する経路上での自装置の位置の情報と、上記呼制御メッセージが属するセッションが必要とする処理に関する情報とに基づいて、上記処理を自装置で実行するか否かを決定するプログラムとが記憶されており、
    上記制御部は、上記記憶部に記憶された各プログラムを実行することを特徴とするセッション中継装置。
  5. 請求項4記載のセッション中継装置であって、
    上記処理を自装置で実行するか否かを決定するプログラムは、上記処理ごとに追加または削除できることを特徴とするセッション中継装置。
JP2005070239A 2005-03-14 2005-03-14 セッション中継装置 Expired - Fee Related JP4487810B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005070239A JP4487810B2 (ja) 2005-03-14 2005-03-14 セッション中継装置
US11/316,751 US7764668B2 (en) 2005-03-14 2005-12-27 Signaling gateway for multihop-relaying a signaling message
CN2005101357661A CN1835505B (zh) 2005-03-14 2005-12-28 会话中继装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005070239A JP4487810B2 (ja) 2005-03-14 2005-03-14 セッション中継装置

Publications (2)

Publication Number Publication Date
JP2006254253A true JP2006254253A (ja) 2006-09-21
JP4487810B2 JP4487810B2 (ja) 2010-06-23

Family

ID=36970830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005070239A Expired - Fee Related JP4487810B2 (ja) 2005-03-14 2005-03-14 セッション中継装置

Country Status (3)

Country Link
US (1) US7764668B2 (ja)
JP (1) JP4487810B2 (ja)
CN (1) CN1835505B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012138901A (ja) * 2010-12-27 2012-07-19 Samsung Sds Co Ltd リレーサーバを利用したデータ伝送システム及び方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8184641B2 (en) 2005-07-20 2012-05-22 Verizon Business Global Llc Method and system for providing secure communications between proxy servers in support of interdomain traversal
KR100810759B1 (ko) * 2006-02-17 2008-03-07 엔에이치엔(주) P2p 파일 전송 시스템 및 방법
US20070253340A1 (en) * 2006-04-28 2007-11-01 Lucent Technologies Inc. Method and apparatus for selective presence notification
US20080076422A1 (en) * 2006-09-09 2008-03-27 Jeou-Kai Lin System and method for providing continuous media messaging during a handoff procedure in an IP-based mobile communication network
EP2116007A4 (en) * 2006-12-29 2017-04-05 Broadview Networks, Inc. Method and system for network address translation (nat) traversal of real time protocol (rtp) media
US7987285B2 (en) 2007-07-10 2011-07-26 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US7991904B2 (en) 2007-07-10 2011-08-02 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
JP2009021855A (ja) * 2007-07-12 2009-01-29 Toshiba Corp 中継装置、通信方法及び通信プログラム
CN102355638B (zh) * 2008-06-07 2015-06-17 华为技术有限公司 呼叫处理方法及装置
US8775665B2 (en) * 2009-02-09 2014-07-08 Citrix Systems, Inc. Method for controlling download rate of real-time streaming as needed by media player
JP5331655B2 (ja) * 2009-11-13 2013-10-30 株式会社日立製作所 通信システム、制御サーバ
US9392121B2 (en) 2010-09-20 2016-07-12 International Business Machines Corporation Seamlessly conferencing a previously-connected telephone call
US9473406B2 (en) 2011-06-10 2016-10-18 Citrix Systems, Inc. On-demand adaptive bitrate management for streaming media over packet networks
WO2012170904A2 (en) 2011-06-10 2012-12-13 Bytemobile, Inc. Adaptive bitrate management on progressive download with indexed media files
US9143722B2 (en) * 2011-11-22 2015-09-22 Cisco Technology, Inc. Method and apparatus for providing session description for a media session
US9306991B2 (en) 2012-10-16 2016-04-05 Motorola Solutions, Inc. Enhanced push to talk systems and methods with floor control and media traffic optimization
US9510160B2 (en) 2012-10-31 2016-11-29 Motorola Solutions, Inc. Enhanced network-network interface systems and methods for multimedia broadcast multicast services
US10069871B2 (en) * 2016-02-01 2018-09-04 Verizon Patent And Licensing Inc. Measuring session initiation protocol (SIP) messaging latency

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826173B1 (en) * 1999-12-30 2004-11-30 At&T Corp. Enhanced subscriber IP alerting
US6252952B1 (en) * 1999-12-30 2001-06-26 At&T Corp Personal user network (closed user network) PUN/CUN
WO2002091692A1 (en) * 2001-04-13 2002-11-14 Girard Gregory D Ditributed edge switching system for voice-over-packet multiservice network
US7386000B2 (en) * 2001-04-17 2008-06-10 Nokia Corporation Packet mode speech communication
CA2505936A1 (en) * 2002-11-11 2004-05-27 Supracomm, Inc. Multicast videoconferencing
US7028101B2 (en) * 2003-03-25 2006-04-11 Nokia Corporation Optimal location service for managing next hop addressing for messages associated with multiple address schemes
CN100399768C (zh) * 2003-12-24 2008-07-02 华为技术有限公司 实现网络地址转换穿越的方法、系统
US7983254B2 (en) * 2005-07-20 2011-07-19 Verizon Business Global Llc Method and system for securing real-time media streams in support of interdomain traversal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012138901A (ja) * 2010-12-27 2012-07-19 Samsung Sds Co Ltd リレーサーバを利用したデータ伝送システム及び方法

Also Published As

Publication number Publication date
JP4487810B2 (ja) 2010-06-23
US20060203831A1 (en) 2006-09-14
CN1835505B (zh) 2011-11-30
US7764668B2 (en) 2010-07-27
CN1835505A (zh) 2006-09-20

Similar Documents

Publication Publication Date Title
JP4487810B2 (ja) セッション中継装置
US8032583B2 (en) Apparatus and method for providing peer-to-peer proxy services in peer-to-peer communications
JP4154615B2 (ja) Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム
JP5537349B2 (ja) 端末の接続を継続した状態でsipサーバを変更する方法及びシステム
EP2074522B1 (en) Method and apparatus for discovering security devices located on a call path and for extending bindings at those discovered security devices
US20060015647A1 (en) System and method for communication between heterogeneous networks
US20090265414A1 (en) Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
JP5051728B2 (ja) 偽アドレスの割り当てによって、異なるip環境に接続されたノード間でデータを送信する方法およびシステム
US9332068B2 (en) Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
US7224696B2 (en) Access nodes in packet-based communications networks
US7082118B1 (en) Maintaining session connectivity when a mobile node moves from one layer 3 network to another
Lee et al. Netserv: active networking 2.0
JP2009528742A (ja) 異種通信ノードを特徴付けるための方法およびシステム
US8892751B2 (en) Method, system and network entity for negotiating the session description protocol version and obtaining the session description protocol version information
JP2008258917A (ja) 同一nat配下通信制御システム、nat装置、同一nat配下通信制御方法、及びプログラム
WO2023116165A1 (zh) 网络负载均衡方法、装置、电子设备、介质和程序产品
WO2023007248A1 (en) System and method for independent binding of virtual networks overlay using a physical network topology
US10819856B2 (en) Systems and methods for identifying virtual communication platform users
JP2008520133A (ja) シグナリングプロキシの実施方法及び装置
US11540209B2 (en) Method for determining a set of encoding formats in order to establish a communication
US9749296B1 (en) Method and apparatus for modifying address information in signaling messages to ensure in-path devices remain in signaling path between endpoints
JP4555005B2 (ja) プロトコル変換サーバ
JP6930585B2 (ja) 中継装置、ネットワークシステムおよびネットワーク制御方法
JP2003060711A (ja) パケット通信制御方式及びパケット通信方法
JP2008206081A (ja) マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091225

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

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

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees