JP2009230540A - セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム - Google Patents
セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム Download PDFInfo
- Publication number
- JP2009230540A JP2009230540A JP2008076330A JP2008076330A JP2009230540A JP 2009230540 A JP2009230540 A JP 2009230540A JP 2008076330 A JP2008076330 A JP 2008076330A JP 2008076330 A JP2008076330 A JP 2008076330A JP 2009230540 A JP2009230540 A JP 2009230540A
- Authority
- JP
- Japan
- Prior art keywords
- session
- call control
- media
- information
- terminal
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1046—Call controllers; Call servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
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)
Abstract
【課題】セッション情報の複製に伴う処理負荷を軽減することが可能な技術を提供することを目的とする。
【解決手段】
呼制御サーバは、メディアセッションを成立させるための呼制御セッションにおいて、発信端末及び着信端末とメッセージの送受信を行う送受信ステップと、前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、前記メディアセッションが成立する場合、処理(11)において前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、を含むセッション情報複製方法を実行する。
【選択図】図2
【解決手段】
呼制御サーバは、メディアセッションを成立させるための呼制御セッションにおいて、発信端末及び着信端末とメッセージの送受信を行う送受信ステップと、前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、前記メディアセッションが成立する場合、処理(11)において前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、を含むセッション情報複製方法を実行する。
【選択図】図2
Description
本発明は、セッション情報複製方法、セッション情報複製方法を実行する呼制御サーバ及びセッション情報複製プログラムに関する。
WWW(World Wide Web)による情報処理システムにおいては、例えばチケット購入サービスなど、一つのサービスが複数のリクエストにまたがって処理される。この場合、各リクエストがどのサービス処理状態に属するのかを明確にするために、セッションという機能が用いられる。サーバは、予約済み及び支払い済みなどのサービス処理状態、利用者のID(IDentifier)、住所、氏名、セッションIDなどのサービスで必要とされる情報を、セッション情報として保持する。クライアントは、各セッションのIDをリクエストに付加してサーバに送信する。これにより、サーバは、サービス処理状態を復元することが可能となる。例えばユーザが一旦ブラウザでの処理を終了しその後再開する場合、終了時のセッションIDに基づいてサービス処理状態を把握することで、既に入力した項目を自動で復元することができる。また、復元したサービス処理状態に不整合が発生することを防ぐこともできる。
このようなセッション機能を持つWWWサーバの信頼性を上げるために、複数のWWWサーバがセッション情報を共有する構成が普及している。例えば、特許文献1には、クラスタを構成するすべてのアプリケーションサーバに各アプリケーションサーバのセッション情報を持たせる構成が開示されている。いずれかのサーバに障害が発生した場合、セッション情報を共有している他のサーバが継続処理を行う。
また、近年、WWWと同じIP(Internet Protocol)技術により電話機能を実現するシステムが普及している。このシステムにはSIP(Session Initiation Protocol)というプロトコルが用いられており、SIPサーバ、発信端末及び着信端末間でメッセージを送受信することで発信端末及び着信端末間のメディアセッションを成立させる。メッセージにはセッション情報が含まれており、複数のSIPサーバはセッション情報を複製し共有する。
特開2006-146663号公報
ここで、セッション情報はメッセージの送受信時に更新されるため、複数のSIPサーバは、メッセージを送受信する全てのタイミングでセッション情報を複製して共有する。このようにセッション情報の複製はメッセージの送受信のたびに行われるため、複製処理が頻繁に行われ、それに伴う処理の負荷が大きくなるという問題がある。
特に網内発呼と呼ばれる呼接続形態では、端末とサーバとの間で仮のセッションを一旦成立させ、その後何度かのメッセージの交換を経て、端末の間で通話に用いるメディアデータを交換して通話が開始されるという手順を経る場合があり、上述の問題が大きい。
特に網内発呼と呼ばれる呼接続形態では、端末とサーバとの間で仮のセッションを一旦成立させ、その後何度かのメッセージの交換を経て、端末の間で通話に用いるメディアデータを交換して通話が開始されるという手順を経る場合があり、上述の問題が大きい。
そこで、本発明は、セッション情報の複製に伴う処理負荷を軽減することが可能な技術を提供することを目的とする。
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバが実行するセッション情報複製方法であって、以下のステップを含む。
・前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップ。
・前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップ。
・前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップ。
・前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップ。
・前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップ。
・前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップ。
・前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップ。
・前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップ。
・前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップ。
・前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップ。
発信端末、着信端末及び呼制御サーバ間では、メディアセッションを成立させるにあたって呼制御セッションが形成される。呼制御セッションでは、呼制御サーバを介して発信端末及び着信端末間で開始要求、応答及び確認など様々なメッセージが送受信される。上記セッション情報複製方法によれば、呼制御セッションに伴うメッセージの送受信のタイミングではなく、メディアセッションが成立した場合にセッション情報の複製及び送信を行う。よって、セッション情報の複製回数及び送信回数を抑制し、呼制御サーバの処理負荷を減らすことができる。また、セッション情報が頻繁に送受信されることによるネットワーク負荷を減らすことができる。
発信端末からメディアセッションの開始要求が送信されても、着信端末のユーザが不在である場合や他のユーザと通話中である場合などには、送受信端末間のメディアセッションは不成立となる。このような場合には、他の呼制御サーバは、複製されたセッション情報を受信しても利用しない場合がある。上記セッション情報複製方法によれば、送受信端末間のメディアセッションが成立した場合にセッション情報の複製及び送信を行う。よって、相手方の不在時や通話中などにおいて、呼制御サーバの無駄な処理及びリソースの無駄な消費を抑制することができる。
また、送受信端末間のメディアセッションの成立は、メディアデータの送受信方法を記述したメディア情報を参照して検出するため、メディアセッションの成立を確実に検出することができる。
本発明によれば、セッション情報の複製に伴う処理負荷を軽減することが可能な技術を提供することができる。
<第1実施形態例>
(1)全体構成
本実施形態では、ブラウザ端末からIP(Internet Protocol)電話に発呼可能な網内発呼サービスを例に挙げて説明する。図1は、第1実施形態例に係るネットワーク構成図である。ユーザA側のクライアントAはブラウザ端末A及びIP電話A(alice@client1.test.co.jp)で構成され、ユーザB側のクライアントBはブラウザ端末B及びIP電話B(bob@client2.test.co.jp)で構成される。ブラウザ端末とは、例えばWebブラウザなど、Webページを閲覧するためのアプリケーションソフトが実装されている端末を言う。IP電話とは、インターネット網を介して通話が可能な電話を言う。図1に示すように、SIP(Session Initiation Protocol)サーバA(www.test.co.jp)、SIPサーバB(www.test2.co.jp)、ブラウザ端末A、IP電話A、ブラウザ端末B及びIP電話Bがインターネット1を介して接続されている。SIPサーバAは以下では呼制御セッションを最初に行う主サーバである。SIPサーバBは、SIPサーバAとクラスタを構成するサーバであり、以下ではSIPサーバAで呼制御セッションが不可能になった場合に、SIPサーバAに代わって呼制御セッションを行う代替サーバとなる。
(1)全体構成
本実施形態では、ブラウザ端末からIP(Internet Protocol)電話に発呼可能な網内発呼サービスを例に挙げて説明する。図1は、第1実施形態例に係るネットワーク構成図である。ユーザA側のクライアントAはブラウザ端末A及びIP電話A(alice@client1.test.co.jp)で構成され、ユーザB側のクライアントBはブラウザ端末B及びIP電話B(bob@client2.test.co.jp)で構成される。ブラウザ端末とは、例えばWebブラウザなど、Webページを閲覧するためのアプリケーションソフトが実装されている端末を言う。IP電話とは、インターネット網を介して通話が可能な電話を言う。図1に示すように、SIP(Session Initiation Protocol)サーバA(www.test.co.jp)、SIPサーバB(www.test2.co.jp)、ブラウザ端末A、IP電話A、ブラウザ端末B及びIP電話Bがインターネット1を介して接続されている。SIPサーバAは以下では呼制御セッションを最初に行う主サーバである。SIPサーバBは、SIPサーバAとクラスタを構成するサーバであり、以下ではSIPサーバAで呼制御セッションが不可能になった場合に、SIPサーバAに代わって呼制御セッションを行う代替サーバとなる。
SIPとは、発信端末と着信端末との間で音声、画像及びテキストなどのメディアデータを送受信するためのメディアセッションを成立させたり、メディアセッションを終了させるなどの呼制御セッションを行うためのプロトコルである。SIPサーバは、発信端末及び着信端末との間で前述のような呼制御セッションを行うサーバであり、呼制御セッション中に、発信端末及び着信端末の各アドレスなど各種処理に必要なセッション情報を取得する。セッション情報は複製されて複数のSIPサーバ間で共有される。
本実施形態では、クライアントAからクライアントBへの発呼を例に挙げて説明する。クライアントAからクライアントBへの発呼は次のようにして行われる。ユーザAは、まず所定のアドレスをブラウザ端末Aの画面に入力し、網内発呼サービスを起動させる。次に、ユーザAは、網内発呼サービスの所定の画面において、IP電話Aの電話番号と、相手方であるユーザBのIP電話Bの電話番号と、を入力し発呼を行う。SIPサーバAは、クライアントAからの発呼に基づいて呼制御セッションを行う。
(2)呼制御セッションの概要
図2は第1実施形態例に係る呼制御セッションを含むフローの一例である。クライアントAのブラウザ端末Aは、ユーザAからの要求に応じて、発呼要求であるGETメソッドのHTTP(Hypertext Transfer Protocol)リクエストをSIPサーバAに送信する(処理(1)参照)。このためSIPサーバはHTTPサーバとしての機能を併せ持つものとする。このリクエストの送信はHTTPによって行われるため、下記のSIPによる呼制御セッションと区別するためにHTTPセッションというものとする。なお発呼要求をSIPサーバに伝える方法はHTTPでなくてもよく、例えばSIPのINFOメソッドによって通知することもできる。
図2は第1実施形態例に係る呼制御セッションを含むフローの一例である。クライアントAのブラウザ端末Aは、ユーザAからの要求に応じて、発呼要求であるGETメソッドのHTTP(Hypertext Transfer Protocol)リクエストをSIPサーバAに送信する(処理(1)参照)。このためSIPサーバはHTTPサーバとしての機能を併せ持つものとする。このリクエストの送信はHTTPによって行われるため、下記のSIPによる呼制御セッションと区別するためにHTTPセッションというものとする。なお発呼要求をSIPサーバに伝える方法はHTTPでなくてもよく、例えばSIPのINFOメソッドによって通知することもできる。
次に、SIPサーバAは、ブラウザ端末AからHTTPリクエストを受信すると、IP電話A及びIP電話B間でのメディアセッションを成立させるためにSIPによる呼制御セッションを行う。まず、SIPサーバAは、発信端末であるクライアントAのIP電話AにINVITE(i)メッセージを送信する(処理(2)参照)。IP電話Aはこれに対して200OK(i)メッセージを送信し、SIPサーバAはACKメッセージをIP電話Aに送信する(処理(3)、(5)参照)。また、SIPサーバAは、IP電話Aから200OK(i)メッセージを受信すると、HTTPリクエストで指定された相手先のIP電話BにINVITE(ii)メッセージを送信する(処理(4)参照)。IP電話Bはこれに対して200OK(ii)メッセージを送信し、SIPサーバAはACKメッセージをIP電話Bに送信する(処理(6)、(7)参照)。SIPサーバAは、IP電話Bから200OK(ii)メッセージを受信すると、IP電話AにINVITE(iii)メッセージを送信する(処理(8)参照)。これに対し、IP電話Aは200OK(iii)メッセージを送信し、SIPサーバAはACKメッセージをIP電話Aに送信する(処理(9)、(10)参照)。これらの呼制御セッションによりメディアセッションが成立する。
SIPサーバAは、メディアセッションが成立すると呼制御セッションで取得したセッション情報を複製し、SIPサーバAとクラスタを構成するSIPサーバBに送信する(処理(11)参照)。これにより、複数のSIPサーバにセッション情報が共有される。
SIPサーバBは、SIPサーバAで障害が発生したことを検出するための確認パケットを常時生成して送信し、確認パケットからの応答パケットに基づいてSIPサーバAでの障害を検出する(処理(12)、(13)参照)。
SIPサーバBは、SIPサーバAで障害が発生したことを検出するための確認パケットを常時生成して送信し、確認パケットからの応答パケットに基づいてSIPサーバAでの障害を検出する(処理(12)、(13)参照)。
その後、切断、転送、保留などの継続した呼制御を端末A、Bが実行しようとした場合、SIPサーバAからの応答がないため代替サーバであるSIPサーバBに呼制御メッセージを送信する。以降の呼制御はSIPサーバBを利用して行われるようになる。これにより切断、転送、保留などの呼制御を継続して行うことができる。
(3)セッション情報複製方法の概要
次に、本発明の第1実施形態に係るセッション情報複製方法の概要を説明する。前述の通り、セッション情報はメディアセッションが成立すると複製され、複数のSIPサーバに共有される。ここで、メディアセッションの成立は次のようにして判断される。
(3)セッション情報複製方法の概要
次に、本発明の第1実施形態に係るセッション情報複製方法の概要を説明する。前述の通り、セッション情報はメディアセッションが成立すると複製され、複数のSIPサーバに共有される。ここで、メディアセッションの成立は次のようにして判断される。
図2に示す呼制御セッション中で送受信されるメッセージから、メディアデータの送受信方法を定義したメディア情報を抽出して監視する。SIPサーバAは、監視結果に基づいてメディアセッションの成立又は不成立を判断する。ここで、呼制御セッションでは、IP電話A及びIP電話B間でメディア情報を互いに送受信してネゴシエーションを行う。ネゴシエーションの結果、メディアデータの送受信方法が確定すると、メディアセッションが成立する。よって、IP電話A及びIP電話B間においてメディア情報が送受信されたことを検出することで、メディアセッションの成立を判断することができる。そこで、本発明のSIPサーバAは、IP電話Aから受信したメディア情報をIP電話Bに送信したことを検出し、かつIP電話Bから受信したメディア情報をIP電話Aに送信したことを検出すると、前記メディアセッションが成立したと判断する。
(4)SIPサーバの内部構成
図3は第1実施形態に係るSIPサーバAのハードウェア構成及び機能構成を示すブロック図である。SIPサーバA及びSIPサーバBは同様の構成であるので、SIPサーバAについてのみ説明する。SIPサーバAは、ハードウェアとして各種処理を行うCPU10と、各種処理に伴うデータを記憶するRAM20と、各種処理を行うための制御プログラムを記憶するROM30と、を含む。各ハードウェアの機能構成を以下に説明する。
図3は第1実施形態に係るSIPサーバAのハードウェア構成及び機能構成を示すブロック図である。SIPサーバA及びSIPサーバBは同様の構成であるので、SIPサーバAについてのみ説明する。SIPサーバAは、ハードウェアとして各種処理を行うCPU10と、各種処理に伴うデータを記憶するRAM20と、各種処理を行うための制御プログラムを記憶するROM30と、を含む。各ハードウェアの機能構成を以下に説明する。
(4−1)制御プログラムDB
ROM30の制御プログラムDB31は、各種処理を行うための制御プログラムを記憶している。例えば、SIP、SDP(Session Description Protocol)、RTP(Real-time Transport Protocol)、IP、UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)などのプロトコルを実行するための制御プログラムが記憶されている。
ROM30の制御プログラムDB31は、各種処理を行うための制御プログラムを記憶している。例えば、SIP、SDP(Session Description Protocol)、RTP(Real-time Transport Protocol)、IP、UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)などのプロトコルを実行するための制御プログラムが記憶されている。
(4−2)クラスタ構成テーブル
RAM20のクラスタ構成テーブル23には、クラスタを構成するSIPサーバの組み合わせを記憶している。図4はクラスタを構成の一例を示す。例えば、本実施形態では、図4に示すように、クラスタを構成するSIPサーバとしてSIPサーバA及びSIPサーバB・・・が記憶されている。
RAM20のクラスタ構成テーブル23には、クラスタを構成するSIPサーバの組み合わせを記憶している。図4はクラスタを構成の一例を示す。例えば、本実施形態では、図4に示すように、クラスタを構成するSIPサーバとしてSIPサーバA及びSIPサーバB・・・が記憶されている。
(4−3)送受信部
CPU10の送受信部11は、クライアントA、B及びSIPサーバB等から送信されたパケットを受信し、また、後述の呼制御部12で作成されたパケットをクライアントA、B及びSIPサーバB等に送信する。送受信部11は、例えばHTTPセッションに伴うHTTPリクエストやHTTPレスポンス等を送受信するためのパケット、呼制御セッションに伴う各種メッセージやセッション情報を送受信するためのパケットを送受信する。
CPU10の送受信部11は、クライアントA、B及びSIPサーバB等から送信されたパケットを受信し、また、後述の呼制御部12で作成されたパケットをクライアントA、B及びSIPサーバB等に送信する。送受信部11は、例えばHTTPセッションに伴うHTTPリクエストやHTTPレスポンス等を送受信するためのパケット、呼制御セッションに伴う各種メッセージやセッション情報を送受信するためのパケットを送受信する。
図5〜11は、図2の処理において送受信される各パケットに含まれる情報の記述例である。図5(a)はGETメソッドのHTTPリクエストの記述例、図5(b)はSIPのINFOメソッドによる発呼要求の記述例、図6はINVITE(i)メッセージの記述例、図7は200OK(i)メッセージの記述例、図8はINVITE(ii)メッセージの記述例、図9は200OK(ii)メッセージの記述例、図10はINVITE(iii)メッセージの記述例、図11は200OK(iii)メッセージの記述例である。
(4−4)呼制御部、セッション情報DB
CPU10の呼制御部12は、送受信部11から図5(a)に示すGETメソッドのHTTPリクエストを受信し解析する。HTTPリクエストによれば、callerであるaliceからcalleeであるbobへの通話のリクエストがSIPサーバAのアドレスに送信されていることが分かる。ここで、aliceとは発信側のIP電話A(alice@client1.test.co.jp)であり、bobとは着信側のIP電話B(bob@client2.test.co.jp)である。次に、呼制御部12は、HTTPリクエストの受信に応じて図6に示すINVITE(i)メッセージを生成するとともに、呼ID(IDentifier)及びSIPセッションIDを設定し、これらを含む呼設定要求及びセッション情報を生成する。
CPU10の呼制御部12は、送受信部11から図5(a)に示すGETメソッドのHTTPリクエストを受信し解析する。HTTPリクエストによれば、callerであるaliceからcalleeであるbobへの通話のリクエストがSIPサーバAのアドレスに送信されていることが分かる。ここで、aliceとは発信側のIP電話A(alice@client1.test.co.jp)であり、bobとは着信側のIP電話B(bob@client2.test.co.jp)である。次に、呼制御部12は、HTTPリクエストの受信に応じて図6に示すINVITE(i)メッセージを生成するとともに、呼ID(IDentifier)及びSIPセッションIDを設定し、これらを含む呼設定要求及びセッション情報を生成する。
ここで、SIPセッションとは、SIPサーバと各端末との間でSIPに基づいて行われるセッションであり、SIPセッションIDとは、各SIPセッションを識別するための識別子である。SIPセッションIDにより、IP電話A及びSIPサーバA間のSIPセッションと、IP電話B及びSIPサーバA間のSIPセッションとが識別可能である。また、呼IDは、呼制御セッションを識別するための識別子であり、一組のSIPセッションIDを互いに対応付ける。本実施形態では、呼制御部12は、IP電話AとSIPサーバAとの間のSIPセッションIDを1234@sip.test.co.jpと設定し、IP電話BとSIPサーバAとの間のSIPセッションIDを5678@sip.test.co.jpと設定し、これらのSIPセッションを含む呼制御セッションの呼IDを12345678と設定している。
また、セッション情報とは、SIPサーバが、IP電話A及びIP電話Bと呼制御セッションを行うのに必要な情報である。セッション情報DB21は呼制御部12からセッション情報を受け取り記憶する。図12は、図5(a)に示すHTTPリクエストに基づいて呼制御部12が生成するセッション情報の一例である。セッション情報には、呼ID、発信端末が行うSIPセッションのSIPセッションID、各SIPセッションを行う端末名、各端末のアドレス、接続先である着信端末が行うSIPセッションのSIPセッションID、セッション状態、発信側か着信側かを識別するためのcaller/callee情報などを含む。
さらに、呼制御部12は、各クライアントから呼制御セッションに伴うメッセージを受信すると、受信したメッセージに対する応答メッセージや、別のクライアントに転送するためのメッセージを生成し、送受信部11を介して各クライアントに送信する。また、後述のクラスタ構成テーブル23からSIPサーバAとクラスタを構成するSIPサーバBの情報を取得し、後述の複製処理部16で生成されたセッション情報を送受信部11を介してSIPサーバBに送信する。
(4−5)監視部、テーブル生成部及び情報テーブル
CPU10のテーブル生成部14は、呼制御部12から呼ID及びSIPセッションIDを含む呼設定要求を受信し、情報テーブル22をRAM20に準備する。このとき、情報テーブル22には、後述の図13に示すように、呼設定要求に含まれる呼ID、端末名及びSIPセッションID等が設定される。また、呼制御セッションに伴うメッセージの送受信が行われると、情報テーブル22には、メッセージに基づいてメディアセッション成立の判断を行うためのメディア情報が格納される。
CPU10のテーブル生成部14は、呼制御部12から呼ID及びSIPセッションIDを含む呼設定要求を受信し、情報テーブル22をRAM20に準備する。このとき、情報テーブル22には、後述の図13に示すように、呼設定要求に含まれる呼ID、端末名及びSIPセッションID等が設定される。また、呼制御セッションに伴うメッセージの送受信が行われると、情報テーブル22には、メッセージに基づいてメディアセッション成立の判断を行うためのメディア情報が格納される。
CPU10の監視部13は、呼制御セッションに伴うメッセージに基づいて、メディアセッション成立の判断を行うための情報としてメディア情報を抽出する。ここで、IP電話A及びIP電話Bは、メディアセッションを行うためには、少なくともメディアデータを送信すべき送信先アドレスをそれぞれ取得する必要がある。そこで、ここでは、メディア情報のうちメディアデータの送信先アドレスを例に挙げてメディアセッションの成立を判断する方法を説明する。
監視部13は、図6〜E11のメッセージにおいてメディアデータの送受信方法を定義したメディア情報のうち送信先アドレスを抽出する。ここで、監視部13はメッセージが属する呼IDを取得しており、前記呼IDに対応する情報テーブル22に送信先アドレスが格納される。
以下に、まず呼制御セッションで送受信されるメッセージの構成について、図6に示すINVITE(i)メッセージを用いて説明する。
以下に、まず呼制御セッションで送受信されるメッセージの構成について、図6に示すINVITE(i)メッセージを用いて説明する。
(i)メッセージの構成
図6に示すINVITE(i)メッセージは、スタートライン、ヘッダ及びボディから構成されている。スタートラインには要求の種別及び要求の送信先アドレスが記述されている。ヘッダには呼制御セッションの送信元及び送信先などが記述されており、例えばそれぞれ次の情報が記述されている。
図6に示すINVITE(i)メッセージは、スタートライン、ヘッダ及びボディから構成されている。スタートラインには要求の種別及び要求の送信先アドレスが記述されている。ヘッダには呼制御セッションの送信元及び送信先などが記述されており、例えばそれぞれ次の情報が記述されている。
Via:SIPのバージョン、プロトコル、メッセージに対するレスポンスの送信先。
Max−Forwards:メッセージの最大中継回数。
From:メッセージの送信者。
To:メッセージの受信者。
Call−ID:SIPセッションID。
Max−Forwards:メッセージの最大中継回数。
From:メッセージの送信者。
To:メッセージの受信者。
Call−ID:SIPセッションID。
CSeq:メッセージの順番。
Contact:このメッセージ以降のメッセージの送信先。
Content−Type:ボディの種類。
Content−Length:ボディのサイズ。
また、ボディはメディア情報を含む。メディア情報はSDP(Session Description Protocol)で記述されており、例えばそれぞれ次の情報が記述されている。
Contact:このメッセージ以降のメッセージの送信先。
Content−Type:ボディの種類。
Content−Length:ボディのサイズ。
また、ボディはメディア情報を含む。メディア情報はSDP(Session Description Protocol)で記述されており、例えばそれぞれ次の情報が記述されている。
v:送信プロトコルのバージョン。
o:メッセージの送信元アドレス。
s:セッション名。
c:メッセージの受信側がメディアデータを送信すべき送信先アドレス、ネットワークの種類。
o:メッセージの送信元アドレス。
s:セッション名。
c:メッセージの受信側がメディアデータを送信すべき送信先アドレス、ネットワークの種類。
t:セッションの開始時刻及び終了時刻。
m:メディアデータの送信先のポート番号、メディアデータの種類、メディアデータの送信プロトコル。
a:メディアデータの属性。
(ii)情報テーブルの変化
次に、図2を再び用いて、各メッセージの送受信の時点で情報テーブル22に格納される送信先アドレスについて説明する。図13は図2中の(a1)〜(a5)の各時点での情報テーブルを示す。
m:メディアデータの送信先のポート番号、メディアデータの種類、メディアデータの送信プロトコル。
a:メディアデータの属性。
(ii)情報テーブルの変化
次に、図2を再び用いて、各メッセージの送受信の時点で情報テーブル22に格納される送信先アドレスについて説明する。図13は図2中の(a1)〜(a5)の各時点での情報テーブルを示す。
SIPサーバAの呼制御部12はHTTPリクエストを受信すると、図6に示すINVITE(i)メッセージを生成し、送受信部11を介してIP電話Aに送信する(処理(2)参照)。監視部13は、呼制御部12からINVITE(i)メッセージを受け取り、メッセージのSIPセッションIDを抽出する。また、監視部13は、SIPセッションIDが1234@sip.test.co.jpであることに基づいて、図12に示すセッション情報からメッセージが属する呼IDとして12345678を取得する。これにより、テーブル生成部14は呼IDが12345678の情報テーブル22を呼び出す。また、監視部13は、メッセージのヘッダ及び各メッセージの送信順等を参照してメッセージの送信元及び送信先が発信側か着信側かを判断する。さらに、監視部13は、INVITE(i)メッセージのメディア情報から送信先アドレスとしてC値を抽出する。このとき、監視部13は、図6のINVITE(i)メッセージに基づいて、C値として0.0.0.0を抽出する。テーブル生成部14は抽出されたC値を、発信側又は着信側の判断に基づいて情報テーブル22の該当箇所に格納する。これにより、情報テーブル22は図13の(a1)に示す状態となる。図13の(a1)に示す情報テーブル22は、SIPサーバAがIP電話Aに送信したメッセージに含まれるC値は0.0.0.0であることを示している。
次に、呼制御部12は、図7に示す200OK(i)メッセージをIP電話Aから受信する(処理(3)参照)。監視部13は、呼制御部12から200OK(i)メッセージを受け取り、メディア情報からC値として10.254.214.60を抽出する。呼IDが12345678の情報テーブル22は図13の(a2)に示す状態となる。図13の(a2)に示す情報テーブル22では、SIPサーバAがIP電話Aから受信したメッセージに含まれるC値は10.254.214.60であることを示している。
次に、呼制御部12が図8に示すINVITE(ii)メッセージを生成してIP電話Bに送信すると(処理(4)参照)、監視部13はメディア情報からC値として10.254.214.60を抽出する。情報テーブル22は図13の(a3)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Bに送信したメッセージに含まれるC値は10.254.214.60であることを示している。
次に、呼制御部12が図9に示す200OK(ii)メッセージをIP電話Bから受信すると(処理(6)参照)、監視部13はメディア情報からC値として10.254.214.130を抽出する。情報テーブル22は図13の(a4)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Bから受信したメッセージに含まれるC値は10.254.214.130であることを示している。
さらに、呼制御部12が図10に示すINVITE(iii)メッセージを生成してIP電話Aに送信すると(処理(8)参照)、監視部13はメディア情報からC値として10.254.214.130を抽出する。情報テーブル22は図13の(a4)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Aに送信したメッセージに含まれるC値は10.254.214.130であることを示している。
(4−6)複製判断部
複製判断部15は、IP電話A及びIP電話B間でのメディアセッションの成立又は不成立を判断する。複製判断部15は、メディアセッションが成立した時を、セッション情報を複製し送信するタイミングとして決定し、複製処理部16にメディアセッション成立の通知を送信する。
複製判断部15は、IP電話A及びIP電話B間でのメディアセッションの成立又は不成立を判断する。複製判断部15は、メディアセッションが成立した時を、セッション情報を複製し送信するタイミングとして決定し、複製処理部16にメディアセッション成立の通知を送信する。
IP電話A及びIP電話B間では、メディアセッションを開始する前に、呼制御セッションにおいてメディア情報を互いに送受信することでネゴシエーションを行い、メディアデータの送受信方法を確定する。メディア情報としては前述の通りメディアデータの送信先アドレスがあり、IP電話A及びIP電話Bそれぞれのメディアデータの送信先アドレスが確定することで、メディアセッションを開始することができるようになる。そこで、複製判断部15は、IP電話Aが送信先アドレスを含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレスを含むメッセージをIP電話Bに送信すること又は送信したことを検出する。さらに、複製判断部15は、IP電話Bが送信先アドレスを含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレスを含むメッセージをIP電話Aに送信すること又は送信したことを検出する。これにより複製判断部15はメディアセッションが成立したと判断することができる。
前述の方法によりメディアセッションの成立を判断するには、情報テーブル22を次のように参照する。複製判断部15は、情報テーブル22において、SIPサーバAがIP電話Aから受信した送信先アドレスと、SIPサーバAがIP電話Bに送信した送信先アドレスと、が一致することを検出する。これにより、IP電話AからIP電話Bに送信先アドレスが送信されたことが分かる。さらに、情報テーブル22において、SIPサーバAがIP電話Bから受信した送信先アドレスと、SIPサーバAがIP電話Aに送信した送信先アドレスと、が一致することを検出する。これにより、IP電話BからIP電話Aに送信先アドレスが送信されたことが分かる。以上からIP電話A及びIP電話間で送信先アドレスが交換されたことが分かる。
具体的に、(a4)の時点での情報テーブル22では、SIPサーバAがIP電話Aから受信した送信先アドレスは10.254.214.60であり、SIPサーバAがIP電話Bに送信した送信先アドレスは10.254.214.60であり一致する。一方、SIPサーバAがIP電話Bから受信した送信先アドレスは10.254.214.130であり、SIPサーバAがIP電話Aに送信した送信先アドレスは0.0.0.0であり一致しない。よって、複製判断部15はメディアセッションは成立していないと判断する。
(a5)の時点での情報テーブル22では、(a4)の時点に比べて、SIPサーバAがIP電話Aに送信した送信先アドレスが10.254.214.130に更新される。よって、SIPサーバAがIP電話Bから受信した送信先アドレスは10.254.214.130であり、SIPサーバAがIP電話Aに送信した送信先アドレスは10.254.214.130であり一致する。よって、複製判断部15はメディアセッションが成立したと判断する。
なお、(a1)〜(a3)の時点での情報テーブル22では、C値が満たされていないため比較ができない。
(4−7)複製処理部
複製処理部16は、複製判断部15からメディアセッションが成立したとの通知を受けると、セッション情報DB21内のセッション情報を複製する。呼制御部12は、複製されたセッション情報を送受信部11を介してSIPサーバBに送信する。
(4−7)複製処理部
複製処理部16は、複製判断部15からメディアセッションが成立したとの通知を受けると、セッション情報DB21内のセッション情報を複製する。呼制御部12は、複製されたセッション情報を送受信部11を介してSIPサーバBに送信する。
(5)処理の流れ
次に、SIPサーバでのセッション情報複製方法の処理の流れについて図14、図15を用いて説明する。図14は、第1実施形態に係るSIPサーバでのセッション情報複製方法の全体の流れを示すフローチャートの一例である。図15は、第1実施形態に係るメディアセッション成立判断処理の流れを示すフローチャートの一例である。まず、セッション情報複製方法の全体の流れについて説明し、次にメディアセッション成立判断処理について説明する。
次に、SIPサーバでのセッション情報複製方法の処理の流れについて図14、図15を用いて説明する。図14は、第1実施形態に係るSIPサーバでのセッション情報複製方法の全体の流れを示すフローチャートの一例である。図15は、第1実施形態に係るメディアセッション成立判断処理の流れを示すフローチャートの一例である。まず、セッション情報複製方法の全体の流れについて説明し、次にメディアセッション成立判断処理について説明する。
(5−1)セッション情報複製方法の全体の流れ
ステップS1:送受信部11がパケットを送受信するとステップS2に進む。例えば、送受信部11は、呼制御部12が生成したパケットをSIPサーバAの外部へ送信したり、SIPサーバAの外部からパケットを受信する。呼制御部12は、送受信部11がSIPサーバAの外部から受信したパケットを受け取る。一方、送受信部11は、パケットを送受信していない場合は、パケットを送受信するまで待機する。
ステップS1:送受信部11がパケットを送受信するとステップS2に進む。例えば、送受信部11は、呼制御部12が生成したパケットをSIPサーバAの外部へ送信したり、SIPサーバAの外部からパケットを受信する。呼制御部12は、送受信部11がSIPサーバAの外部から受信したパケットを受け取る。一方、送受信部11は、パケットを送受信していない場合は、パケットを送受信するまで待機する。
ステップS2:呼制御部12は、発話要求であるGETメソッドのHTTPリクエストを受信すると、呼ID及びSIPセッションIDを設定する。また、呼制御部12はこれらのIDを含む呼設定要求及びセッション情報を生成する。セッション情報DB21はセッション情報を記憶する。
一方、呼制御部12は、IP電話からメディアセッションの切断要求を受信すると、終了要求を生成する。
一方、呼制御部12は、IP電話からメディアセッションの切断要求を受信すると、終了要求を生成する。
呼制御部12は、呼制御セッションに伴うメッセージ及び呼設定要求を監視部13及びテーブル生成部14に送信する。監視部13がメッセージを受信するとステップS5に進む。また、テーブル生成部14が呼設定要求を受信するとステップS3及びS4に進み、呼制御部12が終了要求を生成するとステップS8に進む。
ステップS3、S4:テーブル生成部14は、呼制御部12から呼設定要求を受信すると、呼ID、端末名及びSIPセッションID等を設定して情報テーブル22を準備し、その他の必要なテーブルを生成する。
ステップS3、S4:テーブル生成部14は、呼制御部12から呼設定要求を受信すると、呼ID、端末名及びSIPセッションID等を設定して情報テーブル22を準備し、その他の必要なテーブルを生成する。
ステップS5:監視部13がメッセージを受信すると、メディアセッションの成立判断処理が行われる。
ステップS6:ステップS5でメディアセッションが成立したと判断されると、複製処理部16は、セッション情報DB21内のセッション情報を複製する。呼制御部12は、複製されたセッション情報を送受信部11を介してSIPサーバBに送信する。
ステップS6:ステップS5でメディアセッションが成立したと判断されると、複製処理部16は、セッション情報DB21内のセッション情報を複製する。呼制御部12は、複製されたセッション情報を送受信部11を介してSIPサーバBに送信する。
ステップS7:セッション情報の複製が完了すると、情報テーブル22を初期化する。
ステップS8:呼制御部12は、BYEメッセージなど終了要求をIP電話A及びIP電話Bに送信し呼制御セッションを終了させる。呼制御セッションに伴うメッセージの受信、終了要求の生成及び呼設定要求の生成も行われていない場合は、ステップS1に戻る。
ステップS8:呼制御部12は、BYEメッセージなど終了要求をIP電話A及びIP電話Bに送信し呼制御セッションを終了させる。呼制御セッションに伴うメッセージの受信、終了要求の生成及び呼設定要求の生成も行われていない場合は、ステップS1に戻る。
(5−2)メディアセッション成立判断処理の流れ
ステップS5a、S5b:監視部13は、メッセージにメディア情報が含まれる場合は、ステップS5bに進む。メッセージにメディア情報が含まれていない場合は待機する。
ステップS5b:監視部13は、メッセージからSIPセッションIDを取得し、セッション情報DB21から対応する呼IDを取得する。
ステップS5a、S5b:監視部13は、メッセージにメディア情報が含まれる場合は、ステップS5bに進む。メッセージにメディア情報が含まれていない場合は待機する。
ステップS5b:監視部13は、メッセージからSIPセッションIDを取得し、セッション情報DB21から対応する呼IDを取得する。
ステップS5c:テーブル生成部14は、監視部13から呼IDを取得し、前記呼IDに対応する情報テーブル22を呼び出す。
ステップS5d:監視部13は、メッセージのヘッダ及び各メッセージの送信順等を参照してメッセージの送信元及び送信先が発信側か着信側かを把握する。
ステップS5e:監視部13はメッセージからメディア情報を抽出する。例えば、監視部13はメッセージからC値を抽出する。また、テーブル生成部14は、ステップS5dでの発信側又は着信側の判断に基づいて、C値を情報テーブル22の該当箇所に格納する。
ステップS5d:監視部13は、メッセージのヘッダ及び各メッセージの送信順等を参照してメッセージの送信元及び送信先が発信側か着信側かを把握する。
ステップS5e:監視部13はメッセージからメディア情報を抽出する。例えば、監視部13はメッセージからC値を抽出する。また、テーブル生成部14は、ステップS5dでの発信側又は着信側の判断に基づいて、C値を情報テーブル22の該当箇所に格納する。
ステップS5f:次に、複製判断部15は、情報テーブル22を参照し、IP電話Aがメディアデータを送信すべき送信先アドレスと、IP電話Bがメディアデータを送信すべき送信先アドレスと、がIP電話A及びIP電話B間で送受信されたことを検出する。複製判断部15は、前記送信先アドレスが送受信されたことを検出すると、メディアセッションが成立したと判断する。
ステップS5g:メディアセッションが成立した場合はステップS5hに進み、成立していない場合はステップS5aに戻る
ステップS5h:複製判断部15は、メディアセッションが成立したとの通知を複製処理部16に送信することで、セッション情報の複製指示を行う。
なお、ステップS5b〜S5eに含まれる呼IDを取得して情報テーブル22を呼び出す処理、発信側及び着信側を把握する処理、メディア情報を抽出する処理は、順不同である。
ステップS5h:複製判断部15は、メディアセッションが成立したとの通知を複製処理部16に送信することで、セッション情報の複製指示を行う。
なお、ステップS5b〜S5eに含まれる呼IDを取得して情報テーブル22を呼び出す処理、発信側及び着信側を把握する処理、メディア情報を抽出する処理は、順不同である。
上記セッション情報複製方法によれば、呼制御セッションに伴うメッセージの送受信のタイミングではなく、メディアセッションが成立した場合にセッション情報の複製及び送信を行う。よって、セッション情報の複製回数及び送信回数を抑制し、SIPサーバの処理負荷を減らすことができる。また、セッション情報が頻繁に送受信されることによるネットワーク負荷を減らすことができる。
発信端末からメディアセッションの開始要求が送信されても、着信端末のユーザが不在である場合や他のユーザと通話中である場合などには、メディアセッションは不成立となる。このような場合には、代替サーバであるSIPサーバは、複製されたセッション情報を受信しても利用しない場合がある。上記セッション情報複製方法によれば、メディアセッションが成立した場合にセッション情報の複製及び送信を行う。よって、相手方の不在時や通話中などにおいて、SIPサーバの無駄な処理及びリソースの無駄な消費を抑制することができる。
また、メディアセッションの成立は、メディアデータの送受信方法を記述したメディア情報を参照して検出するため、メディアセッションの成立を確実に検出することができる。
(6)変形例
(6−1)変形例1
変形例1では、セッション情報の複製に加えて、HTTPセッションの情報を生成し複製する。図16は変形例1に係る呼制御セッションを含むフローの一例である。上記実施形態の図2に示す処理(1)に対して処理(1−1)〜(1−3)が行われる。また、SIPサーバAに障害が発生した場合、SIPサーバBは、ブラウザ端末AからSIPサーバBへのHTTPリクエストに基づいて、SIPサーバAから呼制御セッションを引き継ぐ。変形例1の図16のその他のフローは上記実施形態と同様である。図17は処理(1−1)及び(1−3)で送受信される各パケットに含まれる情報の記述例である。
(6)変形例
(6−1)変形例1
変形例1では、セッション情報の複製に加えて、HTTPセッションの情報を生成し複製する。図16は変形例1に係る呼制御セッションを含むフローの一例である。上記実施形態の図2に示す処理(1)に対して処理(1−1)〜(1−3)が行われる。また、SIPサーバAに障害が発生した場合、SIPサーバBは、ブラウザ端末AからSIPサーバBへのHTTPリクエストに基づいて、SIPサーバAから呼制御セッションを引き継ぐ。変形例1の図16のその他のフローは上記実施形態と同様である。図17は処理(1−1)及び(1−3)で送受信される各パケットに含まれる情報の記述例である。
SIPサーバAの呼制御部12は、ブラウザ端末AからHTTPリクエストを受信する(処理(1−1)参照)。
呼制御部12は、HTTPリクエストの受信に応じて、呼ID及びSIPセッションIDを設定するとともに、HTTPセッションIDを設定する。HTTPセッションIDとは、各端末とSIPサーバとの間で行われるHTTPセッションを識別するための識別子である。このHTTPセッションIDに基づけば、どの端末とどのSIPサーバとの間のどのHTTPセッションであるかを識別可能である。また、呼制御部12は、呼ID、SIPセッションID及びHTTPセッションIDを含む呼設定要求及びセッション情報を生成する。
呼制御部12は、HTTPリクエストの受信に応じて、呼ID及びSIPセッションIDを設定するとともに、HTTPセッションIDを設定する。HTTPセッションIDとは、各端末とSIPサーバとの間で行われるHTTPセッションを識別するための識別子である。このHTTPセッションIDに基づけば、どの端末とどのSIPサーバとの間のどのHTTPセッションであるかを識別可能である。また、呼制御部12は、呼ID、SIPセッションID及びHTTPセッションIDを含む呼設定要求及びセッション情報を生成する。
テーブル生成部14は、呼制御部12からの呼設定要求に基づいて、図示しないセッション連携テーブルをRAM20に生成し、SIPサーバBに送信する(処理(1−2)及び(c1)参照)。セッション連携テーブルとは、異なるプロトコルのセッションを関係づけるためのテーブルである。図18は図16中の(c1)に示すセッション連携テーブルの一例である。呼制御部12が呼IDを12345678と設定し、HTTPセッションIDをH1234と設定した場合、図18に示すセッション連携テーブルが生成される。これにより、呼制御セッションとHTTPセッションとが関係づけられる。なお、セッション連携テーブルには、現段階で呼制御セッションを行っている主サーバとしてSIPサーバAが登録され、代替サーバとしてSIPサーバBが登録されている。代替サーバとしては、クラスタ構成テーブル23に基づいて、主サーバとクラスタを構成しており、呼制御セッションを引き継ぎ可能なSIPサーバが登録される。
呼制御部12は、HTTPリクエストに応じてHTTPに基づく200OKメッセージを生成し、ブラウザ端末Aに送信する。このとき、図17に示すようにブラウザ端末AにHTTPセッションIDが通知される。また、呼制御部12は、HTTPリクエストに応じてSIPに基づくINVITE(i)メッセージを生成し、IP電話Aに送信する(処理(1−3)参照)。
図16に示すようにSIPサーバAに障害が発生したとする。このとき、ユーザの入力に応じてブラウザ端末AがSIPサーバAにメッセージを送信した場合、SIPサーバAで障害が発生しているためSIPサーバAからの応答は無い。そこで、ブラウザ端末Aは、HTTPセッションIDとしてH1234を含むGETメソッドのHTTPリクエストをSIPサーバBに送信する(処理(12)参照)。SIPサーバBは、HTTPリクエストからHTTPセッションIDを取得し、またセッション連携テーブルからHTTPセッションIDに基づいて呼IDを取得する。これにより、SIPサーバBは、取得した呼IDに基づいて該当するセッション情報を取得し、SIPサーバAから呼制御セッションを引き継ぐことができる。例えば、ユーザがWWW画面から「切断」ボタンをクリックした場合、SIPサーバBは、セッション情報に基づいて、IP電話A及びIP電話BにBYEメッセージを送信し、呼制御セッション及びメディアセッションを終了させる(処理(13)、(14)参照)。
以上のように代替サーバであるSIPサーバBは、主サーバであるSIPサーバAで生成したセッション連携テーブルを保持する。よって、SIPサーバBは、ブラウザ端末AからのHTTPメッセージに基づいて、メディアセッションの終了などの呼制御セッションをSIPサーバAから引き継ぐことができる。一方、ユーザはブラウザ端末Aからメディアセッションの終了などの呼制御セッションを実行させることができる。
なお、前述の図14のステップS2において、呼制御部12は、呼ID及びSIPセッションIDに加えてHTTPセッションIDを設定し、これらのIDを含む呼設定要求及びセッション情報を生成する。また、ステップS3、S4において、テーブル生成部14は、呼制御部12から呼設定要求を受信すると、情報テーブル22の準備に加えて、呼ID及びHTTPセッションID等が設定されたセッション連携テーブルを生成する。
なお、セッション連携テーブルを生成及び複製するタイミングは、前述のタイミングに限定されず、呼制御セッションの開始後ならいずれの時点でも良く、例えばセッション情報を複製するタイミングと同じであっても良い。
また、処理(1−3)の200OKメッセージにより、HTTPセッションIDに加えて、主サーバ及び代替サーバの情報をブラウザ端末Aに通知しても良い。これにより、主サーバに障害が発生した場合、ブラウザ端末Aはどの代替サーバにアクセスすれば良いかが分かる。
また、処理(1−3)の200OKメッセージにより、HTTPセッションIDに加えて、主サーバ及び代替サーバの情報をブラウザ端末Aに通知しても良い。これにより、主サーバに障害が発生した場合、ブラウザ端末Aはどの代替サーバにアクセスすれば良いかが分かる。
(6−2)変形例2
変形例2では、サービスサーバを介してメディアセッションが行われる場合において、メディアセッションの成立を判断する方法について説明する。図19は変形例2に係るネットワーク構成図である。上記実施形態の図1と異なる点はネットワーク1にサービスサーバ2が接続されている点であり、その他の構成は図1と同様である。図20は変形例2に係る呼制御セッションを含むフローの一例である。呼制御セッションの様子は上記実施形態の図2と同様であり、異なる点は送受信されるメディア情報であり、また情報テーブル22に格納される情報である。図21は変形例2に係るSIPサーバAのハードウェア構成及び機能構成を示すブロック図である。上記実施形態の図3と異なる点はRAM20が特定アドレステーブル24を有する点であり、その他の構成は図3と同様である。
変形例2では、サービスサーバを介してメディアセッションが行われる場合において、メディアセッションの成立を判断する方法について説明する。図19は変形例2に係るネットワーク構成図である。上記実施形態の図1と異なる点はネットワーク1にサービスサーバ2が接続されている点であり、その他の構成は図1と同様である。図20は変形例2に係る呼制御セッションを含むフローの一例である。呼制御セッションの様子は上記実施形態の図2と同様であり、異なる点は送受信されるメディア情報であり、また情報テーブル22に格納される情報である。図21は変形例2に係るSIPサーバAのハードウェア構成及び機能構成を示すブロック図である。上記実施形態の図3と異なる点はRAM20が特定アドレステーブル24を有する点であり、その他の構成は図3と同様である。
サービスサーバ2は、例えば、通話の録音、通話中の各種アナウンス及びメディアデータの加工などの各種サービスを提供する。SIPサーバAは、自身のサービス以外にサービスサーバ2によるサービスを提供する場合、IP電話A及びIP電話Bのメディアデータの送信先アドレスをサービスサーバ2に設定する。
送信先アドレスの設定方法を次に説明する。SIPサーバAの特定アドレステーブル24は、サービスサーバ2と複数の特定アドレスとの対応づけを記憶している。図22は特定アドレステーブルの一例である。サービスサーバ2に対して、メディアデータの送信先アドレスであるC値が複数対応づけられている。SIPサーバAの呼制御部12は、IP電話A及びIP電話Bそれぞれに、特定アドレステーブル24から選択した特定アドレスを割り当てる。例えば、呼制御部12は、IP電話Aがメディアデータを送信すべき送信先アドレスとして10.254.214.110を割り当て、IP電話Bがメディアデータを送信すべき送信先アドレスとして10.254.214.100を割り当てる。メディアセッションが成立した場合、IP電話A及びIP電話Bは、割り当てられた送信先アドレスを用いてメディアデータの送受信を行う。
送信先アドレスの設定方法を次に説明する。SIPサーバAの特定アドレステーブル24は、サービスサーバ2と複数の特定アドレスとの対応づけを記憶している。図22は特定アドレステーブルの一例である。サービスサーバ2に対して、メディアデータの送信先アドレスであるC値が複数対応づけられている。SIPサーバAの呼制御部12は、IP電話A及びIP電話Bそれぞれに、特定アドレステーブル24から選択した特定アドレスを割り当てる。例えば、呼制御部12は、IP電話Aがメディアデータを送信すべき送信先アドレスとして10.254.214.110を割り当て、IP電話Bがメディアデータを送信すべき送信先アドレスとして10.254.214.100を割り当てる。メディアセッションが成立した場合、IP電話A及びIP電話Bは、割り当てられた送信先アドレスを用いてメディアデータの送受信を行う。
上記の場合、SIPサーバAは、サービスサーバ2に対応付けられた特定アドレスが、IP電話A及びIP電話Bに割り当てられたことを検出することで、メディアセッションの成立を判断する。つまり、SIPサーバAがIP電話A及びIP電話Bに送信した送信先アドレスが特定アドレステーブル24に記憶されているアドレスであることを判断する。以下に具体的に説明する。
SIPサーバAとIP電話A及びIP電話Bとの間には、図20に示すような呼制御セッションが行われる。図20における処理(1)〜(9)のうち処理(4)及び処理(8)における各パケットに含まれる情報の記述が上記実施形態と異なる。図23は変形例2におけるINVITE(ii)メッセージの記述例、図24は変形例2におけるINVITE(iii)メッセージの記述例である。上記実施形態と同様に、監視部13は呼制御セッションにおいて送受信されるメッセージから送信先アドレスを抽出する。テーブル生成部14は送信先アドレスを情報テーブル22に格納する。図25は、図20中の(a1)、(a2)、(b1)〜(b3)の各時点での情報テーブルを示す。(a1)及び(a2)の時点の情報テーブル22は上記実施形態と同様である。
処理(4)において、呼制御部12は、200OK(i)メッセージをIP電話Aから受信すると、図23に示すINVITE(ii)メッセージを生成してIP電話Bに送信する。監視部13はメディア情報からC値として10.254.214.100を抽出する。情報テーブル22は図20の(b1)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Bに送信したメッセージに含まれるC値は10.254.214.100であることを示している。
また、処理(6)において、呼制御部12が図9に示す200OK(ii)メッセージをIP電話Bから受信すると、情報テーブル22は図13の(b2)に示す状態となる。
また、処理(8)において、呼制御部12は、図24に示すINVITE(iii)メッセージを生成してIP電話Aに送信する。監視部13はメディア情報からC値として10.254.214.110を抽出する。情報テーブル22は図13の(b3)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Aに送信したメッセージに含まれるC値は10.254.214.110であることを示している。
また、処理(8)において、呼制御部12は、図24に示すINVITE(iii)メッセージを生成してIP電話Aに送信する。監視部13はメディア情報からC値として10.254.214.110を抽出する。情報テーブル22は図13の(b3)に示す状態となる。このときの情報テーブル22は、SIPサーバAがIP電話Aに送信したメッセージに含まれるC値は10.254.214.110であることを示している。
複製判断部15は、SIPサーバAがIP電話A及びIP電話Bに送信した送信先アドレスが、特定アドレステーブル24に記憶されているかを判断する。(a1)、(a2)、(b1)及び(b2)の時点の情報テーブル22では、SIPサーバAがIP電話Aに送信した送信先アドレスは0.0.0.0であり、特定アドレステーブル24には記憶されていないアドレスである。一方、(b3)の時点の情報テーブル22では、SIPサーバAがIP電話Aに送信した送信先アドレスは10.254.214.110であり、SIPサーバAがIP電話Bに送信した送信先アドレスは10.254.214.100であり、いずれも特定アドレステーブル24に記憶されているアドレスである。よって、複製判断部15はメディアセッションが成立したと判断する。なお、ここではサービスサーバに複数の異なるIPアドレスが割り当てられており、IP電話A、Bに対して異なるIPアドレスが利用される例について示したが、同一のIPアドレスを割り当て、ポート番号のみが異なる構成であっても構わない。
サービスサーバ2を介してメディアセッションを行う場合にも上記実施形態と同様にSIPサーバの処理負荷及びネットワーク負荷を減らすことができる。
(6−3)変形例3
上記実施形態では、メディア情報のうち送信先アドレスを抽出して情報テーブル22に格納する。変形例3では、メディア情報からさらにポート番号を抽出して情報テーブル22に格納する。
(6−3)変形例3
上記実施形態では、メディア情報のうち送信先アドレスを抽出して情報テーブル22に格納する。変形例3では、メディア情報からさらにポート番号を抽出して情報テーブル22に格納する。
図26は図2中の(a1)〜(a5)の各時点での変形例3の情報テーブルを示す。
変形例3の監視部13は、図5〜図11を参照してC値及び送信先ポート番号を含むm値を抽出し、テーブル生成部14は情報テーブル22に抽出された値を格納する。複製判断部15は、IP電話A及びIP電話B間で送信先アドレス及び送信先ポート番号が送受信されたかを検出する。つまり、さらに、変形例3では、複製判断部15は、IP電話Aが送信先アドレス及び送信先ポート番号を含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレス及び送信先ポート番号を含むメッセージをIP電話Bに送信することを検出する。さらに、複製判断部15は、IP電話Bが送信先アドレス及び送信先ポート番号を含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレス及び送信先ポート番号を含むメッセージをIP電話Aに送信することを検出する。上記(4−6)では端末とサーバとの間で仮のメディアセッションを特殊なIPアドレス(例えば0.0.0.0)によって成立させる場合について説明したが、これにより複製判断部15は仮のメディアセッションを特殊なポート番号(例えば0)により成立させる場合であっても端末間のメディアセッションの成立を正確に判断することができる。
変形例3の監視部13は、図5〜図11を参照してC値及び送信先ポート番号を含むm値を抽出し、テーブル生成部14は情報テーブル22に抽出された値を格納する。複製判断部15は、IP電話A及びIP電話B間で送信先アドレス及び送信先ポート番号が送受信されたかを検出する。つまり、さらに、変形例3では、複製判断部15は、IP電話Aが送信先アドレス及び送信先ポート番号を含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレス及び送信先ポート番号を含むメッセージをIP電話Bに送信することを検出する。さらに、複製判断部15は、IP電話Bが送信先アドレス及び送信先ポート番号を含むメッセージをSIPサーバAに送信し、SIPサーバAがその送信先アドレス及び送信先ポート番号を含むメッセージをIP電話Aに送信することを検出する。上記(4−6)では端末とサーバとの間で仮のメディアセッションを特殊なIPアドレス(例えば0.0.0.0)によって成立させる場合について説明したが、これにより複製判断部15は仮のメディアセッションを特殊なポート番号(例えば0)により成立させる場合であっても端末間のメディアセッションの成立を正確に判断することができる。
例えば、音声案内サービスに接続する場合などにおいて、接続先のIPアドレスは予め設定可能であるのに対し、動的に決定されるポート番号は予め設定不可能である場合に有効である。例えば、最初のIP電話Aに対するSIPメッセージのC値にはIPアドレスが指定され、m値のポート番号には0が設定される。
(6−4)変形例4
上記実施形態では、図2においてSIPサーバAがINVITE(iii)メッセージをIP電話Aに送信し(処理(8)参照)、情報テーブル22が(a5)の状態になると、複製判断部15はメディアセッションが成立したと判断する。しかし、変形例4では、前述のように情報テーブル22に基づいて判断を行うとともに、さらにメディアセッション成立を判断する根拠となったメッセージに対して、200OKメッセージ及びACKメッセージの送受信が行われたかどうかを判断する。具体的に、監視部13は、INVITE(iii)メッセージに対してIP電話Aが200OK(iii)メッセージを送信したことを検出し、また200OK(iii)メッセージに対してSIPサーバAがACKメッセージをIP電話Aに送信した(処理(9)、(10)参照)ことを検出する。複製判断部15は、検出結果を受信し、これらのメッセージの送受信が行われた後にメディアセッションが成立したと判断する。
(6−4)変形例4
上記実施形態では、図2においてSIPサーバAがINVITE(iii)メッセージをIP電話Aに送信し(処理(8)参照)、情報テーブル22が(a5)の状態になると、複製判断部15はメディアセッションが成立したと判断する。しかし、変形例4では、前述のように情報テーブル22に基づいて判断を行うとともに、さらにメディアセッション成立を判断する根拠となったメッセージに対して、200OKメッセージ及びACKメッセージの送受信が行われたかどうかを判断する。具体的に、監視部13は、INVITE(iii)メッセージに対してIP電話Aが200OK(iii)メッセージを送信したことを検出し、また200OK(iii)メッセージに対してSIPサーバAがACKメッセージをIP電話Aに送信した(処理(9)、(10)参照)ことを検出する。複製判断部15は、検出結果を受信し、これらのメッセージの送受信が行われた後にメディアセッションが成立したと判断する。
SIPでは、SIPサーバと発信端末及び着信端末との間の呼制御セッションは、通話の要求、応答及び確認の3段階で行われる。よって、情報テーブルによりメディアセッションが成立したと判断し、かつ200OKメッセージ及びACKメッセージの送受信を検出することで、確実にメディアセッションの成立を判断することができる。
<第2実施形態例>
第1実施形態では、代替サーバであるSIPサーバBは、メディアセッションの成立後にセッション情報をSIPサーバAから受信する。第2実施形態では、SIPサーバBは、メディアセッション成立前に一旦セッション情報をSIPサーバAから受信し、その後のセッション情報の受信はメディアセッションの成立後に行う。これにより、メディアセッションが成立する前にSIPサーバAで障害が発生した場合でも、SIPサーバBはSIPサーバAによる呼制御セッションを引き継ぐことができる。
<第2実施形態例>
第1実施形態では、代替サーバであるSIPサーバBは、メディアセッションの成立後にセッション情報をSIPサーバAから受信する。第2実施形態では、SIPサーバBは、メディアセッション成立前に一旦セッション情報をSIPサーバAから受信し、その後のセッション情報の受信はメディアセッションの成立後に行う。これにより、メディアセッションが成立する前にSIPサーバAで障害が発生した場合でも、SIPサーバBはSIPサーバAによる呼制御セッションを引き継ぐことができる。
(1)構成
第2実施形態の全体構成、機能構成及びハードウェア構成は第1実施形態と同様であるので説明を省略する。
(2)処理の概要
(2−1)
図27は第2実施形態例に係る呼制御セッションを含むフローの一例である。図27中の処理(1)〜(4)、処理(6)〜(8)は、第1実施形態の処理(1)〜(7)と同じであり、図27中の(a1)〜(a4)は第1実施形態の同一符号の情報テーブルと同じである。
第2実施形態の全体構成、機能構成及びハードウェア構成は第1実施形態と同様であるので説明を省略する。
(2)処理の概要
(2−1)
図27は第2実施形態例に係る呼制御セッションを含むフローの一例である。図27中の処理(1)〜(4)、処理(6)〜(8)は、第1実施形態の処理(1)〜(7)と同じであり、図27中の(a1)〜(a4)は第1実施形態の同一符号の情報テーブルと同じである。
ブラウザ端末Aは、ユーザAからの要求に応じて、発呼要求であるGETメソッドのHTTPリクエストをSIPサーバAに送信する(処理(1)参照)。次に、SIPサーバA、IP電話A及びIP電話B間で、INVITE(i)メッセージ、200OK(i)メッセージ及びINVITE(ii)メッセージの送受信が行われる(処理(2)〜(4)参照)。
SIPサーバAの複製処理部15は、タイミングは特に限定されないが、メディアセッションの成立前に一旦セッション情報を複製し、SIPサーバAとクラスタを構成するSIPサーバBに送信する(処理(5)参照)。さらに、SIPサーバAのテーブル生成部14は、接続状態テーブルを生成する。ここで、SIPサーバAの呼制御部12は、HTTPリクエストの受信に基づいて接続開始通知を生成している。テーブル生成部14は、接続開始通知を受信し、接続状態テーブルにおいて接続状態を接続準備中に設定する。接続準備中とは、呼制御セッションの最中でありメディアセッションの接続準備中であることを意味する。図28は、図27の(d1)に示す接続状態テーブルの一例である。呼ID毎に、主サーバ、代替サーバ、IP電話Aのアドレス、IP電話Bのアドレス及び接続状態が登録されている。図28の接続状態テーブルでは、呼制御セッションは呼IDが12345678であり、接続状態は接続準備中に設定されている。SIPサーバAの呼制御部12は、接続状態テーブルをSIPサーバBに送信する(図27中の処理(5)及び(d1)参照)。
その後、SIPサーバAの複製判断部15がメディアセッションが成立したと判断した場合には、SIPサーバAの呼制御部12は接続完了通知を生成してSIPサーバBに送信する。これにより、SIPサーバBのテーブル生成部14は、接続状態を接続完了に変更する。例えば、呼IDが11111111の呼制御セッションではメディアセッションが成立し、接続状態が接続完了に設定されている。
SIPサーバAの呼制御部12は、接続状態が接続準備中に設定された接続状態テーブルを複製し、接続開始通知とともにSIPサーバBに送信する。SIPサーバBは、SIPサーバAから接続開始通知を受信すると、前述の接続状態テーブルを受信して保持する。
その後、呼制御セッションに伴うメッセージの送受信が行われている時にSIPサーバAで障害が発生したとする。SIPサーバBは、SIPサーバAで障害が発生したことを検出するための確認パケットを常時送信しており、応答パケットに基づいてSIPサーバAでの障害を検出する(処理(9)、(10)参照)。
その後、呼制御セッションに伴うメッセージの送受信が行われている時にSIPサーバAで障害が発生したとする。SIPサーバBは、SIPサーバAで障害が発生したことを検出するための確認パケットを常時送信しており、応答パケットに基づいてSIPサーバAでの障害を検出する(処理(9)、(10)参照)。
SIPサーバBの呼制御部12は、接続状態テーブルにおいて、代替サーバがSIPサーバBであり、主サーバがSIPサーバAであり、接続状態が接続準備中であるレコードを検索する。つまり、SIPサーバAにより制御されている呼制御セッションのうち、メディアセッションが成立しておらず、セッションが完了していない呼制御セッションを検索する。障害の発生によりSIPサーバAでは呼制御セッションを継続することができない。よって、SIPサーバBは、検索された呼制御セッションに関係するIP電話A及びIP電話BにBYEメッセージを送信し、SIPサーバAによる呼制御セッションを終了させる(処理(11)、(12)参照)。
その後、IP電話A及びIP電話Bは代替サーバであるSIPサーバBを介して呼制御セッションを行い、メディアセッションを成立させる(処理(13)〜(15)参照)。
以上より、代替サーバは、主サーバで障害が発生した場合、主サーバによる呼制御セッションのうち、まだ接続処理が完了していない中途半端な状態にある呼制御セッションを一旦開放することにより、システムの安定性を向上させることができる。
以上より、代替サーバは、主サーバで障害が発生した場合、主サーバによる呼制御セッションのうち、まだ接続処理が完了していない中途半端な状態にある呼制御セッションを一旦開放することにより、システムの安定性を向上させることができる。
(2−2)
上記(2−1)で生成した接続状態テーブルに関してリソースの無駄をなくす例について以下に説明する。
図29は第2実施形態例に係る呼制御セッションを含むフローの別の一例である。図29中の処理(1)〜(8)は、上記(2−1)と同じである。SIPサーバAがIP電話AにINVITE(iii)メッセージを送信すると(処理(9)参照)、例えばIP電話Aがコードが500のエラーメッセージを送信したとする(処理(10)参照)。SIPサーバAの呼制御部12は、エラーメッセージをIP電話Aから受信すると、ACKメッセージ及びメディアセッションが不成立であることを示す接続失敗通知を生成する。呼制御部12は、IP電話AにACKメッセージを送信するとともに(処理(11)参照)、SIPサーバBに接続失敗通知を送信する(処理(12)参照)。
上記(2−1)で生成した接続状態テーブルに関してリソースの無駄をなくす例について以下に説明する。
図29は第2実施形態例に係る呼制御セッションを含むフローの別の一例である。図29中の処理(1)〜(8)は、上記(2−1)と同じである。SIPサーバAがIP電話AにINVITE(iii)メッセージを送信すると(処理(9)参照)、例えばIP電話Aがコードが500のエラーメッセージを送信したとする(処理(10)参照)。SIPサーバAの呼制御部12は、エラーメッセージをIP電話Aから受信すると、ACKメッセージ及びメディアセッションが不成立であることを示す接続失敗通知を生成する。呼制御部12は、IP電話AにACKメッセージを送信するとともに(処理(11)参照)、SIPサーバBに接続失敗通知を送信する(処理(12)参照)。
SIPサーバBの呼制御部12は、接続失敗通知を受信すると、接続状態テーブルにおいて関連するレコードを削除する。SIPサーバBの呼制御部12は、SIPサーバAにより制御されている呼制御セッションのうち、メディアセッションが成立していない呼制御セッションを検索し、検索されたレコードを削除する。つまり、SIPサーバBの呼制御部12は、接続失敗通知に応じて、代替サーバがSIPサーバBであり、主サーバがSIPサーバAであり、接続状態が接続準備中であるレコードを検索し削除する。これにより、不要なレコードを削除してリソースの無駄をなくす。なお、IP電話Aにおいてエラーが発生したものの、SIPサーバAは呼制御セッションを継続可能である。図30は接続状態テーブルにおいて不要なレコードが削除される様子を示す模式図である。
(3)処理の流れ
次に、SIPサーバでのセッション情報複製方法の処理の流れについて図31、図32を用いて説明する。図31及び図32は、第2実施形態に係るSIPサーバでのセッション情報複製方法の全体の流れを示すフローチャートの一例である。図31は主サーバであるSIPサーバAでの処理の流れであり、図32は代替サーバであるSIPサーバBでの処理の流れである。
次に、SIPサーバでのセッション情報複製方法の処理の流れについて図31、図32を用いて説明する。図31及び図32は、第2実施形態に係るSIPサーバでのセッション情報複製方法の全体の流れを示すフローチャートの一例である。図31は主サーバであるSIPサーバAでの処理の流れであり、図32は代替サーバであるSIPサーバBでの処理の流れである。
(3−1)
まず、図31を用いて主サーバであるSIPサーバAでの処理の流れについて説明する。
ステップS11:SIPサーバAの送受信部11がパケットを送受信するとステップS2に進み、パケットを送受信していない場合は待機する。
まず、図31を用いて主サーバであるSIPサーバAでの処理の流れについて説明する。
ステップS11:SIPサーバAの送受信部11がパケットを送受信するとステップS2に進み、パケットを送受信していない場合は待機する。
ステップS12:呼制御部12は、発話要求であるGETメソッドのHTTPリクエストを受信すると、呼ID及びSIPセッションIDを設定するとともに、これらのIDを含む呼設定要求、セッション情報及び接続開始通知を生成する。セッション情報DB21はセッション情報を記憶する。
一方、呼制御部12は、IP電話からメディアセッションの切断要求を受信すると、終了要求を生成する。
一方、呼制御部12は、IP電話からメディアセッションの切断要求を受信すると、終了要求を生成する。
呼制御部12は、呼制御セッションに伴うメッセージ及び呼設定要求を監視部13及びテーブル生成部14に送信する。
監視部13がメッセージを受信するとステップS18に進む。また、テーブル生成部14が呼設定要求を受信するか、呼制御部12が終了要求を生成するとステップS13に進む。
監視部13がメッセージを受信するとステップS18に進む。また、テーブル生成部14が呼設定要求を受信するか、呼制御部12が終了要求を生成するとステップS13に進む。
ステップS13〜S15:テーブル生成部14は、呼制御部12から呼設定要求を受信すると、情報テーブル22を準備するととともに、呼ID、主サーバ、代替サーバ及び各IP電話のアドレス等を設定した接続状態テーブルを生成する(S13、S14)。さらに、テーブル生成部14は、呼制御部12からの接続開始通知を受けて該当する呼IDの接続状態を接続準備中に設定する(S15)。
ステップS16:複製処理部16は、メディアセッションの成立前に一旦セッション情報を複製するとともに、接続状態テーブルを複製し、これらを送信する
ステップS17:送受信部11は、呼制御部12が生成した接続開始通知を代替サーバであるSIPサーバBに送信する。
ステップS18、S19:呼制御部12は、受信したメッセージがエラーメッセージかどうかを判断する。エラーメッセージである場合は、呼制御部12は、接続失敗通知を生成し代替サーバであるSIPサーバBに送信する。エラーメッセージで無い場合はステップS20に進む。
ステップS17:送受信部11は、呼制御部12が生成した接続開始通知を代替サーバであるSIPサーバBに送信する。
ステップS18、S19:呼制御部12は、受信したメッセージがエラーメッセージかどうかを判断する。エラーメッセージである場合は、呼制御部12は、接続失敗通知を生成し代替サーバであるSIPサーバBに送信する。エラーメッセージで無い場合はステップS20に進む。
ステップS20〜S22:メディアセッションの成立判断処理を行い(S20)、メディアセッションが成立した場合は接続完了通知を生成し、セッション情報を複製してSIPサーバBに送信する(S21)。その後、情報テーブル22を初期化する(S22)。
(3−2)
次に、図32を用いて代替サーバであるSIPサーバBでの処理の流れについて説明する。
(3−2)
次に、図32を用いて代替サーバであるSIPサーバBでの処理の流れについて説明する。
ステップS23:呼制御部12は、受信したパケットに主サーバであるSIPサーバAからの通知が含まれるかを判断する。パケットに主サーバからの通知が含まれる場合はステップS24に進み、そうでない場合はステップS30に進む。
ステップS24、S25:呼制御部12は、通知が接続開始通知である場合は、SIPサーバAから接続状態テーブルを受信する。
ステップS24、S25:呼制御部12は、通知が接続開始通知である場合は、SIPサーバAから接続状態テーブルを受信する。
ステップS26、S27:呼制御部12は、通知が接続完了通知である場合は、接続状態テーブルの該当レコードの接続状態を接続準備中から接続完了に変更する。
ステップS28、S29:呼制御部12は、通知が接続失敗通知である場合は、接続状態テーブルの該当レコードを削除する。これによりリソースの無駄を省くことができる。
ステップS30:呼制御部12は、確認パケットに対する応答パケットを受信し、主ノードであるSIPサーバAで障害が発生しているかを判断する。主ノードで障害が発生している場合はステップS31に進み、そうでない場合はステップS33に進む。
ステップS28、S29:呼制御部12は、通知が接続失敗通知である場合は、接続状態テーブルの該当レコードを削除する。これによりリソースの無駄を省くことができる。
ステップS30:呼制御部12は、確認パケットに対する応答パケットを受信し、主ノードであるSIPサーバAで障害が発生しているかを判断する。主ノードで障害が発生している場合はステップS31に進み、そうでない場合はステップS33に進む。
ステップS31:呼制御部12は、接続状態テーブルにおいて、SIPサーバAにより制御されている呼制御セッションのうち、メディアセッションが成立していない呼制御セッションを検索する。
ステップS32:SIPサーバBの呼制御部12は、検索されたレコードに関連するIP電話A及びIP電話BにBYEメッセージを送信し、SIPサーバAによる呼制御セッションを終了させる。
ステップS32:SIPサーバBの呼制御部12は、検索されたレコードに関連するIP電話A及びIP電話BにBYEメッセージを送信し、SIPサーバAによる呼制御セッションを終了させる。
ステップS33:呼制御部12は、BYEメッセージなど終了要求をIP電話に送信しSIPサーバBによる呼制御セッションを終了させる。それ以外の場合は、ステップS1に戻る。
(4)変形例
上記実施形態では、接続準備中の呼制御セッションにおいて障害が発生した時に、その呼制御セッションを開放できれば良い。よって、主サーバにより制御されている呼制御セッションのうち、接続準備中である呼制御セッションを把握できれば良い。よって、接続状態テーブルでは、少なくとも呼ID又は主サーバの識別子と、接続状態とが対応付けられていれば良い。
(4)変形例
上記実施形態では、接続準備中の呼制御セッションにおいて障害が発生した時に、その呼制御セッションを開放できれば良い。よって、主サーバにより制御されている呼制御セッションのうち、接続準備中である呼制御セッションを把握できれば良い。よって、接続状態テーブルでは、少なくとも呼ID又は主サーバの識別子と、接続状態とが対応付けられていれば良い。
また、メディアセッション成立前にセッション情報及び接続状態テーブルを生成してSIPサーバBに送信するタイミングは上記タイミングに限定されない。例えば、前記タイミングは、SIPサーバAがGETメソッドのHTTPリクエストを受信してから、メディアセッションが成立するまでの間のどのタイミングでも良い。ただし、SIPサーバAがHTTPリクエストを受信した時にセッション情報及び接続状態テーブルを生成してSIPサーバBに送信すると好ましい。これにより、呼制御セッションの初期に障害が発生した場合でも、代替サーバでが主サーバの呼制御セッションを引き継ぐことができる。
上記実施形態では、SIPサーバAで接続状態テーブルを生成及び複製し、SIPサーバBに送信する。しかし、SIPサーバBが接続状態テーブルを生成しても良い。例えば、SIPサーバAの複製処理部15は、タイミングは特に限定されないが、メディアセッションの成立前に一旦セッション情報を複製しSIPサーバBに送信する。さらに、SIPサーバAの呼制御部12は、SIPサーバAがメディアセッションの接続準備中である旨の通知をSIPサーバBに送信する。SIPサーバBのテーブル生成部14は、セッション情報及び前記通知に基づいて接続状態テーブルを生成する。
上記実施形態では、SIPサーバBはSIPサーバAから接続完了通知を受信すると、接続状態テーブルの接続状態を接続完了に変更する。しかし、SIPサーバBは、接続状態が接続完了に変更された接続状態テーブルをSIPサーバAから受信するようにしても良い。
セッション情報と接続状態テーブルとは一体であっても良い。例えば、セッション情報に接続状態を含めても良い。
セッション情報と接続状態テーブルとは一体であっても良い。例えば、セッション情報に接続状態を含めても良い。
また、第1実施形態と同様に、SIPサーバBがセッション連携テーブルを保持しても良い。セッション連携テーブルをSIPサーバAからSIPサーバBに送信するタイミングは特に限定されないが、例えばメディアセッション成立前に一旦セッション情報が複製され送信されるのと同じタイミングでも良い。また、セッション情報が複製され送信されるよりも前のタイミングセッション連携テーブルを生成し送信しても良い。
<その他の実施例>
上記実施形態では、ブラウザ端末から発呼するサービスを例に挙げて説明したが、IP電話から直接発呼する場合にも本発明を適用可能である。この場合、まず、IP電話AからINVITEメッセージがSIPサーバAに送信される。SIPサーバAはIP電話AからのINVITEメッセージをIP電話Bに転送する。さらに、IP電話A及びIP電話B間でSIPサーバAを介して200OKメッセージ及びACKメッセージの送受信が行われ、メディアセッションが成立する。
上記実施形態では、ブラウザ端末から発呼するサービスを例に挙げて説明したが、IP電話から直接発呼する場合にも本発明を適用可能である。この場合、まず、IP電話AからINVITEメッセージがSIPサーバAに送信される。SIPサーバAはIP電話AからのINVITEメッセージをIP電話Bに転送する。さらに、IP電話A及びIP電話B間でSIPサーバAを介して200OKメッセージ及びACKメッセージの送受信が行われ、メディアセッションが成立する。
上記実施形態では、図3に示す各機能部により本発明の処理がなされているが、機能部全体として本発明の処理が成されれば良く、各処理の機能部の主体は図3の構成に限定されない。
上記実施形態では、SIPサーバは2台しか記載していないが、3台以上のSIPサーバがネットワーク100に接続されクラスタを構成していても良い。
上記実施形態では、SIPサーバは2台しか記載していないが、3台以上のSIPサーバがネットワーク100に接続されクラスタを構成していても良い。
また、GETメソッドではなくPOSTメソッドによりHTTPリクエストを送信しても良い。
また、確認パケットの送信により障害を検出しているが、障害の検出方法はこれに限定されない。
また、前述したセッション情報複製方法を実行するシステム、前記セッション情報複製方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disc−Read Only Memory)、MO(Magneto Optical disk)、DVD(Digital Video Disc)、DVD−ROM、DVD−RAM(DVD−Random Access Memory)、BD(Blue-ray Disc)、半導体メモリを挙げることができる。前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、確認パケットの送信により障害を検出しているが、障害の検出方法はこれに限定されない。
また、前述したセッション情報複製方法を実行するシステム、前記セッション情報複製方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disc−Read Only Memory)、MO(Magneto Optical disk)、DVD(Digital Video Disc)、DVD−ROM、DVD−RAM(DVD−Random Access Memory)、BD(Blue-ray Disc)、半導体メモリを挙げることができる。前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
以上の実施形態及及びその他の実施形態に関し、更に以下の付記を開示する。
<付記>
(付記1)
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバが実行するセッション情報複製方法であって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
を含むセッション情報複製方法。
<付記>
(付記1)
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバが実行するセッション情報複製方法であって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
を含むセッション情報複製方法。
(付記2)
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信したメディア情報の前記着信端末への送信を検出し、かつ、前記着信端末から受信したメディア情報の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記1に記載のセッション情報複製方法。
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信したメディア情報の前記着信端末への送信を検出し、かつ、前記着信端末から受信したメディア情報の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記1に記載のセッション情報複製方法。
発信端末及び着信端末は、メディアセッションを開始する前に、呼制御セッションにおいてメディア情報を互いに送受信することでネゴシエーションを行い、メディアデータの送受信方法を確定する。よって、発信端末及び着信端末間においてメディア情報が送受信されたことを検出することで、メディアセッションの成立を判断することができる。よって、呼制御サーバは、発信端末から送信されたメディア情報を着信端末に送信したことを検出し、逆に着信端末から送信されたメディア情報を発信端末に送信したことを検出することで、メディアセッションが成立したと判断することができる。
ここで、メディア情報とはメディアデータの送受信方法を記述した情報であり、例えばメディアデータの送信先である送信先アドレス及びポート番号、送信可能なメディアデータの種類、メディアデータの符号化方式及び送信プロトコルなどが含まれる。
(付記3)
前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先アドレスを含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信した送信先アドレスの前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先アドレスの前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記2に記載のセッション情報複製方法。
(付記3)
前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先アドレスを含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信した送信先アドレスの前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先アドレスの前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記2に記載のセッション情報複製方法。
発信端末及び着信端末は、メディアセッションを行うためには、少なくともメディアデータを送信すべき送信先アドレスをそれぞれ取得する必要がある。よって、送信先アドレスが、発信端末及び着信端末間で呼制御サーバを介して送受信されたことを検出することで、メディアセッションの成立を判断することができる。
(付記4)
前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先ポート番号をさらに含み、
前記複製判断ステップでは、さらに、前記監視ステップにおいて、前記発信端末から受信した送信先ポート番号の前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先ポート番号の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
(付記4)
前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先ポート番号をさらに含み、
前記複製判断ステップでは、さらに、前記監視ステップにおいて、前記発信端末から受信した送信先ポート番号の前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先ポート番号の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
送信先アドレスの送受信に加えて、ポート番号が、発信端末及び着信端末間で呼制御サーバを介して送受信されたことを検出することで、仮のメディアセッションを特殊なポート番号(例えば0)により成立させる場合であっても端末間のメディアセッションの成立を正確に判断することができる (付記5)
特定のサービスを提供するサービスサーバに対して複数の特定アドレスを対応づけて格納する特定アドレス格納ステップと、
前記呼制御セッションにおいて、前記発信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスのうち第1特定アドレスを割り当て、前記着信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスから、前記第1特定アドレスとは異なる第2特定アドレスを割り当てる送信先アドレス割当ステップと、
をさらに含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末に送信する送信先アドレスが前記第1特定アドレスであり、前記着信端末に送信する送信先アドレスが前記第2特定アドレスであることを検出すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
特定のサービスを提供するサービスサーバに対して複数の特定アドレスを対応づけて格納する特定アドレス格納ステップと、
前記呼制御セッションにおいて、前記発信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスのうち第1特定アドレスを割り当て、前記着信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスから、前記第1特定アドレスとは異なる第2特定アドレスを割り当てる送信先アドレス割当ステップと、
をさらに含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末に送信する送信先アドレスが前記第1特定アドレスであり、前記着信端末に送信する送信先アドレスが前記第2特定アドレスであることを検出すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
サービスサーバは、例えば、通話の録音、通話中の各種アナウンス及びメディアデータの加工などの各種サービスを提供する。呼制御サーバは、自身のサービス以外にサービスサーバによるサービスを提供する場合、発信端末及び着信端末のメディアデータの送信先をサービスサーバに設定する。このとき、呼制御サーバは、サービスサーバに対応づけられた複数の特定アドレスの中から、発信端末及び着信端末がメディアデータを送信すべき送信先アドレスをそれぞれ割り当てる。発信端末及び着信端末が割り当てられた送信先アドレスを用いてメディアデータの送受信を行うとメディアセッションが成立する。よって、呼制御サーバが発信端末及び着信端末それぞれに第1特定アドレス及び第2特定アドレスを送信したことに基づいて、メディアセッションの成立を判断することができる。
(付記6)
前記複製判断ステップでは、さらに、前記送信先アドレスへの前記メディアデータの送信を了解するメッセージを前記発信端末及び前記着信端末から受信すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
呼制御セッションを例えばSIP(Session Initiation Protocol)で行う場合、通話の要求、応答及び確認の3段階で行われる。例えば、呼制御サーバは、発信端末からメディア情報を含むINVITEメッセージを受信すると、そのメディア情報を含むINVITEメッセージを着信端末に送信する。これに対して、呼制御サーバが発信端末に200OKメッセージを送信すると、発信端末はACKメッセージを送信する。一方、着信端末がメディア情報を参照して200OKを送信すると、呼制御サーバは着信端末にACKメッセージを送信する。このように呼制御サーバと発信端末及び着信端末との呼制御セッションは3段階で行われるため、呼制御サーバは200OKメッセージ又はACKメッセージの送受信を検出することで、確実にメディアセッションの成立を判断することができる。
前記複製判断ステップでは、さらに、前記送信先アドレスへの前記メディアデータの送信を了解するメッセージを前記発信端末及び前記着信端末から受信すると、前記メディアセッションが成立したと判断する、付記3に記載のセッション情報複製方法。
呼制御セッションを例えばSIP(Session Initiation Protocol)で行う場合、通話の要求、応答及び確認の3段階で行われる。例えば、呼制御サーバは、発信端末からメディア情報を含むINVITEメッセージを受信すると、そのメディア情報を含むINVITEメッセージを着信端末に送信する。これに対して、呼制御サーバが発信端末に200OKメッセージを送信すると、発信端末はACKメッセージを送信する。一方、着信端末がメディア情報を参照して200OKを送信すると、呼制御サーバは着信端末にACKメッセージを送信する。このように呼制御サーバと発信端末及び着信端末との呼制御セッションは3段階で行われるため、呼制御サーバは200OKメッセージ又はACKメッセージの送受信を検出することで、確実にメディアセッションの成立を判断することができる。
(付記7)
前記他の呼制御サーバによる呼制御セッションの開始後から、前記呼制御セッションにより制御されるメディアセッションの成立前までのいずれかの時点において、前記他の呼制御サーバによる呼制御セッションの実行に必要なセッション情報を受信するセッション情報受信ステップをさらに含む、付記1に記載のセッション情報複製方法。
前記他の呼制御サーバによる呼制御セッションの開始後から、前記呼制御セッションにより制御されるメディアセッションの成立前までのいずれかの時点において、前記他の呼制御サーバによる呼制御セッションの実行に必要なセッション情報を受信するセッション情報受信ステップをさらに含む、付記1に記載のセッション情報複製方法。
一の呼制御サーバは、他の呼制御サーバにより制御されるメディアセッションの成立前に一旦セッション情報を受信する。よって、他の呼制御サーバにより制御されるメディアセッションの成立前に、他の呼制御サーバにおいて障害が発生した場合でも、セッション情報に基づいて他の呼制御サーバによる呼制御セッションを引き継ぐことができる。
(付記8)
前記セッション情報受信ステップでは、前記他の呼制御サーバによる呼制御セッションの開始時に、前記セッション情報を前記他の呼制御サーバから受信する、付記7に記載のセッション情報複製方法。
(付記8)
前記セッション情報受信ステップでは、前記他の呼制御サーバによる呼制御セッションの開始時に、前記セッション情報を前記他の呼制御サーバから受信する、付記7に記載のセッション情報複製方法。
呼制御セッションの開始時とは、呼制御セッションを開始するための最初のメッセージが送受信された時を言う。呼制御セッションの初期段階でセッション情報を受信することで、呼制御セッションの初期段階での障害発生にも対応することができる。
(付記9)
前記他の呼制御サーバの障害発生を検出する障害検出ステップと、
前記障害発生を検出すると、前記セッション情報に基づいて前記他の呼制御サーバによる呼制御セッションを終了させるための終了要求を送信する終了要求送信ステップと、
をさらに含む付記7に記載のセッション情報複製方法。
(付記9)
前記他の呼制御サーバの障害発生を検出する障害検出ステップと、
前記障害発生を検出すると、前記セッション情報に基づいて前記他の呼制御サーバによる呼制御セッションを終了させるための終了要求を送信する終了要求送信ステップと、
をさらに含む付記7に記載のセッション情報複製方法。
メディアセッションの成立前に他の呼制御サーバに障害が発生した場合でも、一の呼制御サーバが他の呼制御サーバによる呼制御セッションの終了を制御することができる。
(付記10)
前記他の呼制御サーバによる呼制御セッションの状態を記憶する状態記憶ステップをさらに含む、付記7に記載のセッション情報複製方法。
(付記10)
前記他の呼制御サーバによる呼制御セッションの状態を記憶する状態記憶ステップをさらに含む、付記7に記載のセッション情報複製方法。
これにより、引き継ぎの必要な呼制御セッションを把握することができる。一の呼制御サーバは、他の呼制御サーバで障害が発生した場合、他の呼制御サーバによる呼制御セッションのうち、まだメディアセッションが成立していない、つまり完了していない呼制御セッションを検索して引き継ぐ。
(付記11)
前記他の呼制御サーバの呼制御セッションにより制御されるメディアセッションが不成立であるとの接続失敗通知を前記他の呼制御サーバから受信する接続失敗通知受信ステップと、
前記接続失敗通知を受信すると、前記状態記憶ステップで記憶された他の呼制御サーバによる呼制御セッションの状態を削除する削除ステップと、
をさらに含む付記10に記載のセッション情報複製方法。
(付記11)
前記他の呼制御サーバの呼制御セッションにより制御されるメディアセッションが不成立であるとの接続失敗通知を前記他の呼制御サーバから受信する接続失敗通知受信ステップと、
前記接続失敗通知を受信すると、前記状態記憶ステップで記憶された他の呼制御サーバによる呼制御セッションの状態を削除する削除ステップと、
をさらに含む付記10に記載のセッション情報複製方法。
メディアセッションが不成立になった場合には、関連する呼制御セッションの記憶を削除することでリソースの無駄をなくすことができる。
(付記12)
前記呼制御セッションは(Session Initiation Protocol)に基づいており、
前記監視ステップでは、前記呼制御セッションで送受信されるメッセージにおいて、SDP(Session Description Protocol)により記述された前記メディア情報を監視する、付記1に記載のセッション情報複製方法。
(付記12)
前記呼制御セッションは(Session Initiation Protocol)に基づいており、
前記監視ステップでは、前記呼制御セッションで送受信されるメッセージにおいて、SDP(Session Description Protocol)により記述された前記メディア情報を監視する、付記1に記載のセッション情報複製方法。
SIPに基づいた呼制御セッションではメッセージが送受信される。メッセージは、要求の種別を記述したスタートライン、呼制御セッションの送信元及び送信先などを記述したヘッダ、メディア情報を含むボディから構成される。メディア情報は、メディアデータを送受信する端末のアドレス及びポート番号、メディアデータの種類、符号化方式などのメディアデータの送受信方法に関する情報であり、SDPで記述されている。このようなメディア情報を参照することで、メディアセッションの成立を判断することができる。
(付記13)
メディアセッションの開始を他の呼制御サーバに要求するHTTP(Hypertext Transfer Protocol)によるHTTPセッションの識別子と、前記HTTPセッションにより開始する前記他の呼制御サーバによる呼制御セッションの識別子と、の対応付けを、前記他の呼制御サーバから受信し記憶する対応付け記憶ステップをさらに含む、付記11に記載のセッション情報複製方法。
メディアセッションの開始を他の呼制御サーバに要求するHTTP(Hypertext Transfer Protocol)によるHTTPセッションの識別子と、前記HTTPセッションにより開始する前記他の呼制御サーバによる呼制御セッションの識別子と、の対応付けを、前記他の呼制御サーバから受信し記憶する対応付け記憶ステップをさらに含む、付記11に記載のセッション情報複製方法。
例えば、発呼者のIP電話、発呼者のブラウザ端末、他の呼制御サーバ及び着呼者のIP電話がネットワークを介して接続されている。発呼者がブラウザ端末で発呼者の電話番号及び着呼者の電話番号を入力して発呼したとする。このような場合、発呼者のブラウザ端末及び他の呼制御サーバ間のHTTPセッションと、発呼者のIP電話、着呼者のIP電話及び他の呼制御サーバ間の呼制御セッションと、を対応づける。この対応付けは、前記他の呼制御サーバ及び一の呼制御サーバなど複数の呼制御サーバに共有される。前記他の呼制御サーバに障害が発生し、発呼者がブラウザ端末から一の呼制御サーバにHTTPメッセージを送信したとする。一の呼制御サーバは、HTTPメッセージからHTTPセッションの識別子を取得し、さらに前記対応付けから呼制御セッションの識別子を取得する。これにより、一の呼制御サーバは他の呼制御サーバによる呼制御セッションを引き継ぐことができる。一方、ユーザはブラウザ端末からメディアセッションの終了などの呼制御セッションを実行させることができる。
(付記14)
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信手段と、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成手段と、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視手段と、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断手段と、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理手段と、
を含む呼制御サーバ。
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信手段と、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成手段と、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視手段と、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断手段と、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理手段と、
を含む呼制御サーバ。
(付記15)
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させるコンピュータが実行するセッション情報複製プログラムであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
をコンピュータに実行させるためのセッション情報複製プログラム。
発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させるコンピュータが実行するセッション情報複製プログラムであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
をコンピュータに実行させるためのセッション情報複製プログラム。
11:送受信部
12:呼制御部
13:監視部
14:テーブル生成部
15:複製判断部
16:複製処理部
21:セッション情報DB
22:情報テーブル
23:クラスタ構成テーブル
24:特定アドレステーブル
12:呼制御部
13:監視部
14:テーブル生成部
15:複製判断部
16:複製処理部
21:セッション情報DB
22:情報テーブル
23:クラスタ構成テーブル
24:特定アドレステーブル
Claims (10)
- 発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバが実行するセッション情報複製方法であって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
を含むセッション情報複製方法。 - 前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信したメディア情報の前記着信端末への送信を検出し、かつ、前記着信端末から受信したメディア情報の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、請求項1に記載のセッション情報複製方法。
- 前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先アドレスを含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末から受信した送信先アドレスの前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先アドレスの前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、請求項2に記載のセッション情報複製方法。 - 前記メディア情報は、前記メッセージの受信側が前記メディアデータを送信すべき送信先ポート番号をさらに含み、
前記複製判断ステップでは、さらに、前記監視ステップにおいて、前記発信端末から受信した送信先ポート番号の前記着信端末への送信を検出し、かつ、前記着信端末から受信した送信先ポート番号の前記発信端末への送信を検出すると、前記メディアセッションが成立したと判断する、請求項3に記載のセッション情報複製方法。 - 特定のサービスを提供するサービスサーバに対して複数の特定アドレスを対応づけて格納する特定アドレス格納ステップと、
前記呼制御セッションにおいて、前記発信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスのうち第1特定アドレスを割り当て、前記着信端末がメディアデータを送信すべき送信先アドレスとして、前記複数の特定アドレスから、前記第1特定アドレスとは異なる第2特定アドレスを割り当てる送信先アドレス割当ステップと、
をさらに含み、
前記複製判断ステップでは、前記監視ステップにおいて、前記発信端末に送信する送信先アドレスが前記第1特定アドレスであり、前記着信端末に送信する送信先アドレスが前記第2特定アドレスであることを検出すると、前記メディアセッションが成立したと判断する、請求項3に記載のセッション情報複製方法。 - 前記他の呼制御サーバによる呼制御セッションの開始後から、前記呼制御セッションにより制御されるメディアセッションの成立前までのいずれかの時点において、前記他の呼制御サーバによる呼制御セッションの実行に必要なセッション情報を受信するセッション情報受信ステップをさらに含む、請求項1に記載のセッション情報複製方法。
- 前記セッション情報受信ステップでは、前記他の呼制御サーバによる呼制御セッションの開始時に、前記セッション情報を前記他の呼制御サーバから受信する、請求項6に記載のセッション情報複製方法。
- 前記他の呼制御サーバによる呼制御セッションの状態を記憶する状態記憶ステップをさらに含む、請求項6に記載のセッション情報複製方法。
- 発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させる呼制御サーバであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信手段と、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成手段と、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視手段と、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断手段と、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理手段と、
を含む呼制御サーバ。 - 発信端末及び着信端末間でメディアデータを送受信するためのメディアセッションを成立させるコンピュータが実行するセッション情報複製プログラムであって、
前記メディアセッションを成立させるための呼制御セッションにおいて、前記発信端末及び前記着信端末とメッセージの送受信を行う送受信ステップと、
前記呼制御セッションの実行に必要なセッション情報を生成するセッション情報生成ステップと、
前記メッセージに含まれる、メディアデータの送受信方法を定義したメディア情報を監視する監視ステップと、
前記メディア情報の監視結果に基づいて、前記メディアセッションの成立又は不成立を判断する複製判断ステップと、
前記メディアセッションが成立する場合、前記セッション情報を複製し、少なくとも1の他の呼制御サーバに送信する複製処理ステップと、
をコンピュータに実行させるためのセッション情報複製プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008076330A JP5169362B2 (ja) | 2008-03-24 | 2008-03-24 | セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム |
US12/405,841 US8296447B2 (en) | 2008-03-24 | 2009-03-17 | Method for copying session information, call control server for executing the same, and computer product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008076330A JP5169362B2 (ja) | 2008-03-24 | 2008-03-24 | セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009230540A true JP2009230540A (ja) | 2009-10-08 |
JP5169362B2 JP5169362B2 (ja) | 2013-03-27 |
Family
ID=41089962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008076330A Expired - Fee Related JP5169362B2 (ja) | 2008-03-24 | 2008-03-24 | セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8296447B2 (ja) |
JP (1) | JP5169362B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011056030A3 (en) * | 2009-11-09 | 2011-09-22 | Samsung Electronics Co., Ltd. | Method and apparatus for giving monopoly of call in call transmission/reception system using upnp |
WO2012019546A1 (zh) * | 2010-08-12 | 2012-02-16 | 中兴通讯股份有限公司 | 一种实现网络电话呼叫建立的方法及系统 |
JPWO2014020742A1 (ja) * | 2012-08-02 | 2016-07-11 | 株式会社Murakumo | 負荷分散装置、情報処理システム、方法およびプログラム |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9357025B2 (en) * | 2007-10-24 | 2016-05-31 | Social Communications Company | Virtual area based telephony communications |
US20230344878A1 (en) * | 2010-01-26 | 2023-10-26 | Sococo, Inc. | Visual Communications |
CN102932319B (zh) * | 2011-08-12 | 2016-03-16 | 上海贝尔股份有限公司 | 一种用于保持通话的方法和装置 |
US9148359B2 (en) * | 2011-12-22 | 2015-09-29 | Voipfuture Gmbh | Correlation of media plane and signaling plane of media services in a packet-switched network |
US20130163582A1 (en) * | 2011-12-26 | 2013-06-27 | Jaya MEGHANI | Systems and methods of managing communication requests in a voip communication system |
JP2014103614A (ja) * | 2012-11-22 | 2014-06-05 | Hitachi Ltd | 通信システム |
US9197994B2 (en) * | 2014-01-29 | 2015-11-24 | Kaseya Limited | Identifying mobile device location and corresponding support center locations to provide support services over a network |
EP3494686B1 (en) | 2016-08-05 | 2020-12-30 | Telefonaktiebolaget LM Ericsson (publ) | Transport protocol server relocation |
US10805845B2 (en) | 2016-08-05 | 2020-10-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Supporting transport protocol server relocation |
US10630696B1 (en) * | 2016-09-23 | 2020-04-21 | Wells Fargo Bank, N.A. | Storing call session information in a telephony system |
US11025765B2 (en) * | 2019-09-30 | 2021-06-01 | Harman International Industries, Incorporated (STM) | Wireless audio guide |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004229166A (ja) * | 2003-01-27 | 2004-08-12 | Murata Mach Ltd | 通信端末装置 |
JP2005267016A (ja) * | 2004-03-17 | 2005-09-29 | Vodafone Kk | サーバ装置 |
JP2006350632A (ja) * | 2005-06-15 | 2006-12-28 | Oki Electric Ind Co Ltd | アプリケーション管理システム、アプリケーション管理方法、サーバ及び通信システム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6404870B1 (en) * | 1998-09-14 | 2002-06-11 | Cisco Technology, Inc. | Method and apparatus for authorization based phone calls in packet switched networks |
KR100689540B1 (ko) * | 2000-03-20 | 2007-03-08 | 삼성전자주식회사 | 사설 아이피 네트워크를 통한 다중 통화 장치 및 방법 |
NO20010069L (no) * | 2001-01-05 | 2002-07-08 | Ericsson Telefon Ab L M | Flerbrukerapplikasjoner i multimedianett |
US7272651B1 (en) * | 2001-08-28 | 2007-09-18 | Cisco Technology, Inc. | RSVP transmitter proxy |
WO2004107671A1 (ja) * | 2003-05-27 | 2004-12-09 | Fujitsu Limited | 通信装置 |
JP3788447B2 (ja) * | 2003-06-30 | 2006-06-21 | 株式会社日立製作所 | セッション制御サーバ、プレゼンスサーバ、セッション制御装置、当該セッション制御装置に適用されるソフトウェア、セッション制御方法、およびネットワークシステム |
CA2533773C (en) | 2003-08-14 | 2011-09-27 | Oracle International Corporation | Transparent session migration across servers |
US20050076099A1 (en) * | 2003-10-03 | 2005-04-07 | Nortel Networks Limited | Method and apparatus for live streaming media replication in a communication network |
SE528466C2 (sv) * | 2004-07-05 | 2006-11-21 | Ericsson Telefon Ab L M | En metod och apparat för att genomföra en kommunikationssession mellan två terminaler |
JP5026964B2 (ja) * | 2004-07-09 | 2012-09-19 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | マルチメディア通信システムにおいて異なったサービスを提供する方法および装置 |
US7805517B2 (en) * | 2004-09-15 | 2010-09-28 | Cisco Technology, Inc. | System and method for load balancing a communications network |
JP4319971B2 (ja) | 2004-11-22 | 2009-08-26 | 株式会社日立製作所 | セッション情報管理システム、セッション情報管理方法およびそのプログラム |
JP4664127B2 (ja) * | 2005-06-16 | 2011-04-06 | パナソニック株式会社 | 通信端末および通信切替方法 |
JP2007004361A (ja) | 2005-06-22 | 2007-01-11 | Mitsubishi Electric Corp | 負荷分散装置 |
US8099504B2 (en) * | 2005-06-24 | 2012-01-17 | Airvana Network Solutions, Inc. | Preserving sessions in a wireless network |
US7668904B2 (en) * | 2005-07-28 | 2010-02-23 | International Business Machines Corporation | Session replication |
US7702947B2 (en) * | 2005-11-29 | 2010-04-20 | Bea Systems, Inc. | System and method for enabling site failover in an application server environment |
US8185794B2 (en) * | 2006-01-05 | 2012-05-22 | Telefonaktiebolaget L M Ericsson (Publ) | Media container file management |
CN101005649A (zh) * | 2006-01-19 | 2007-07-25 | 华为技术有限公司 | 一种多方通信业务的连接建立方法及系统 |
CN101083541B (zh) * | 2006-05-31 | 2013-05-01 | 朗迅科技公司 | Ims网关系统和方法 |
US7711848B2 (en) * | 2006-06-15 | 2010-05-04 | Oracle International Corporation | System using session initiation protocol for seamless network switching in a media streaming session |
US8842818B2 (en) * | 2006-06-30 | 2014-09-23 | Avaya Inc. | IP telephony architecture including information storage and retrieval system to track fluency |
US8255457B2 (en) * | 2006-09-01 | 2012-08-28 | Microsoft Corporation | Adaptive content load balancing |
US7661027B2 (en) * | 2006-10-10 | 2010-02-09 | Bea Systems, Inc. | SIP server architecture fault tolerance and failover |
US8406123B2 (en) * | 2006-12-11 | 2013-03-26 | International Business Machines Corporation | Sip presence server failover |
JP2008219454A (ja) * | 2007-03-05 | 2008-09-18 | Hitachi Ltd | 通信内容監査支援システム |
US20080228926A1 (en) * | 2007-03-13 | 2008-09-18 | Asher Shiratzky | Methods, media, and systems for balancing session initiation protocol server load |
US20080250097A1 (en) * | 2007-04-04 | 2008-10-09 | Adadeus S.A.S | Method and system for extending the services provided by an enterprise service bus |
US8396054B2 (en) * | 2007-05-03 | 2013-03-12 | Utbk, Llc | Systems and methods to facilitate searches of communication references |
-
2008
- 2008-03-24 JP JP2008076330A patent/JP5169362B2/ja not_active Expired - Fee Related
-
2009
- 2009-03-17 US US12/405,841 patent/US8296447B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004229166A (ja) * | 2003-01-27 | 2004-08-12 | Murata Mach Ltd | 通信端末装置 |
JP2005267016A (ja) * | 2004-03-17 | 2005-09-29 | Vodafone Kk | サーバ装置 |
JP2006350632A (ja) * | 2005-06-15 | 2006-12-28 | Oki Electric Ind Co Ltd | アプリケーション管理システム、アプリケーション管理方法、サーバ及び通信システム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011056030A3 (en) * | 2009-11-09 | 2011-09-22 | Samsung Electronics Co., Ltd. | Method and apparatus for giving monopoly of call in call transmission/reception system using upnp |
CN102648619A (zh) * | 2009-11-09 | 2012-08-22 | 三星电子株式会社 | 使用通用即插即用在呼叫发送/接收系统中提供呼叫独占的方法和装置 |
US10623197B2 (en) | 2009-11-09 | 2020-04-14 | Samsung Electronics Co., Ltd | Method and apparatus for giving monopoly of call in call transmission/reception system using UPnP |
WO2012019546A1 (zh) * | 2010-08-12 | 2012-02-16 | 中兴通讯股份有限公司 | 一种实现网络电话呼叫建立的方法及系统 |
CN102377887A (zh) * | 2010-08-12 | 2012-03-14 | 中兴通讯股份有限公司 | 一种实现网络电话呼叫建立的方法及系统 |
JPWO2014020742A1 (ja) * | 2012-08-02 | 2016-07-11 | 株式会社Murakumo | 負荷分散装置、情報処理システム、方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US8296447B2 (en) | 2012-10-23 |
US20090240803A1 (en) | 2009-09-24 |
JP5169362B2 (ja) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5169362B2 (ja) | セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム | |
JP5145339B2 (ja) | クライアントにより制御される動的コール転送 | |
Rosenberg et al. | SIP: session initiation protocol | |
Rosenberg et al. | RFC3261: SIP: session initiation protocol | |
CN1674580B (zh) | 因特网多媒体子系统服务控制机制的响应信息过滤方法 | |
US20080228926A1 (en) | Methods, media, and systems for balancing session initiation protocol server load | |
JP2007504758A (ja) | 遠隔通信ネットワークシステムおよびセッション開始プロトコルを使用する通信サービス方法 | |
EP2079024A1 (en) | Proxy server, communication system, communication method, and program | |
JP2008104112A (ja) | 送信経路設定装置、送信経路設定方法および送信経路設定プログラム | |
JP2005229273A (ja) | サーババックアップ装置 | |
JP2009296138A (ja) | 通信システム | |
JP4633395B2 (ja) | サブスクライブ−通知サービスとの仮想接続 | |
US20160308977A1 (en) | Session reconstruction using proactive redirect | |
JP2008219461A (ja) | 通信履歴情報管理システム、sipクライアント端末、履歴サーバおよび通信履歴情報管理方法 | |
CN1988546A (zh) | 获取会话起始协议消息传输路径的方法及系统 | |
US20040160985A1 (en) | System and method for network address translation and session management | |
US8503429B2 (en) | Processing requests and generating responses in session initiation protocol (SIP) | |
US10686849B2 (en) | Data processing | |
JP4608371B2 (ja) | Sipサービス変換装置、およびその方法 | |
JP4723676B2 (ja) | セッション状態の通知に係る通信方法、サーバ、およびプログラム | |
JP2007208542A (ja) | 呼制御信号転送装置、呼制御信号転送方法および呼制御信号転送プログラム | |
CN109067659B (zh) | 一种会话建立方法、路由器及会话系统 | |
KR100894906B1 (ko) | 세션 설정 프로토콜 기반의 ip 멀티미디어 서비스를제공하는 단말장치, 호 세션 제어 기능 장치 및 이를이용한 서비스 요청 송/수신 방법 | |
CN101189850B (zh) | Ims网络中处理sip消息的方法、系统及装置 | |
WO2015131466A1 (zh) | 基于会话初始协议sip的数据业务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101119 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121217 |
|
LAPS | Cancellation because of no payment of annual fees |