以下に、本発明の一実施の形態について説明する。
図1は、本施の形態に係る電話システムの概略構成図である。
図示するように、本実施の形態に係る電話システムは、複数のアナログ電話機4を収容したPBX(Private Branch Exchange)3と、PBX3およびVoIP(Voice over Internet Protocol)網5間に複数配置されたVoIPゲートウェイ1−1〜1−n(以下、VoIPゲートウェイ1とも呼ぶ)と、VoIPゲートウェイ1−1〜1−nをVoIP網5に接続するハブ2と、を備えている。
VoIPゲートウェイ1−1〜1−nには、VoIP網5上のアドレスとして共通のアドレスが割り当てられる。また、VoIPゲートウェイ1−1〜1−nは、LAN6を介して互いに接続されており、VoIPゲートウェイ1−1〜1−nのうちの一つが着信当番となるように、LAN6を介して互いにネゴシエーションを行う。
着信当番のVoIPゲートウェイ1は、VoIP網5からの着信を処理して呼制御シーケンスを実施するとともに、自VoIPゲートウェイ1の状態が所定の当番交代条件を満足するに至ったか否かを監視する。そして、当番交代条件を満足するに至ったならば、VoIPゲートウェイ1−1〜1−n間で予め定められた当番順番に従い、LAN6を介して他のいずれか一つのVoIPゲートウェイ1に着信当番依頼を送信して、自VoIPゲートウェイ1を着信当番から外す。一方、着信当番でないVoIPゲートウェイ1は、VoIP網5からの着信を無視するとともに、着信当番依頼を受信したならば、自VoIPゲートウェイ1を着信当番に決定する。
ハブ2は、リピータ機能およびブリッジ機能を有しており、VoIP網5から受信したパケットをリピータ機能によりVoIPゲートウェイ1−1〜1−nのそれぞれに中継するとともに、VoIPゲートウェイ1−1〜1−nから受信したパケットをブリッジ機能によりVoIP網5へ中継する。
図2および図3は、VoIPゲートウェイ1を起動させた場合の動作を説明するためのシーケンス図である。ここでは、説明を簡単にするために、三台のVoIPゲートウェイ1−1〜1−3を順次起動した場合を例示している。
まず、VoIPゲートウェイ1−1が起動したものとする(S100)。VoIPゲートウェイ1−1は、マスタゲートウェイ(マスタGW)問合せをLAN6へマルチキャスト送信する。そして、所定の再送インターバル内にこのマスタGW問合せに対する応答がないならば、マスタGW問合せを繰り返しマルチキャスト送信する(S101)。
ここでは、起動しているVoIPゲートウェイ1がVoIPゲートウェイ1−1のみなので、VoIPゲートウェイ1−1は、マスタGW問合せに対する応答を受信することなく、所定の問合せ時間の経過によりタイムアウトする(S102)。これを受けて、VoIPゲートウェイ1−1は、自VoIPゲートウェイ1−1をマスタGWに設定し(S103)、マスタGWとしての以下の処理を開始する。
まず、VoIPゲートウェイ1−1は、VoIP網5上に存在する所定のDHCP(Dynamic Host Configuration Protocol)サーバにアクセスし、このDHCPサーバからVoIP網5上のIPアドレスを取得する(S104)。そして、自VoIPゲートウェイ1−1のIPアドレスを設定する。具体的には、VoIP網5上のアドレスとして、DHCPサーバから取得したIPアドレス(グローバルアドレス)を設定し、LAN6上のアドレスとして所定のIPアドレス(ローカルアドレス)を設定する(S105)。
つぎに、VoIPゲートウェイ1−1は、VoIP網5上に存在する所定のSIP(Session Initiation Protocol)サーバにアクセスし、このSIPサーバに自VoIPゲートウェイ1−1の登録情報を記述する(S106)。
それから、VoIPゲートウェイ1−1は、着信当番の順番リストを新たに作成して、この順番リストの最上位に自VoIPゲートウェイ1−1を登録する。また、VoIP網5からの着信を処理する権限である着信当番を獲得する(S107)。その後、VoIPゲートウェイ1−1は、この順番リストをLAN6へマルチキャスト送信する(S108)。
つぎに、VoIPゲートウェイ1−2が起動したものとする(S109)。VoIPゲートウェイ1−2は、マスタGW問合せをLAN6へマルチキャスト送信する(S110)。これを受けて、マスタGWであるVoIPゲートウェイ1−1は、VoIPゲートウェイ1−2にマスタGW通知を返信する(S111)。VoIPゲートウェイ1−2は、VoIPゲートウェイ1−1からマスタGW通知を受け取ると、自VoIPゲートウェイ1−2をスレーブゲートウェイ(スレーブGW)に設定し(S112)、スレーブGWとしての以下の処理を開始する。
まず、VoIPゲートウェイ1−2は、マスタGWであるVoIPゲートウェイ1−1にアクセスし、このVoIPゲートウェイ1−1からVoIP網5上およびLAN6上のIPアドレスを取得する(S113)。ここで、VoIPゲートウェイ1−1は、VoIP網5上のIPアドレスとして、自VoIPゲートウェイ1−1に設定されているVoIP網5上のIPアドレスをVoIPゲートウェイ1−2に通知する。また、LAN6上のIPアドレスとして、LAN6上でユニークなIPアドレスをVoIPゲートウェイ1−2に通知する。
つぎに、VoIPゲートウェイ1−2は、自VoIPゲートウェイ1−2のIPアドレスを設定する。具体的には、VoIP網5上のアドレスとして、VoIPゲートウェイ1−1から取得したVoIPゲートウェイ1−1と共通のIPアドレス(グローバルアドレス)を設定し、LAN6上のアドレスとして、VoIPゲートウェイ1−1から取得したLAN6上でユニークなIPアドレス(ローカルアドレス)を設定する(S114)。それから、VoIPゲートウェイ1−2は、マスタGWであるVoIPゲートウェイ1−1にアクセスし、このVoIPゲートウェイ1−1に自VoIPゲートウェイ1−2の登録情報を登録する(S115)。
さて、VoIPゲートウェイ1−1は、VoIPゲートウェイ1−2の登録情報を登録すると、このVoIPゲートウェイ1−2を着信当番の順番リストの最後尾に追加して、着信当番の順番リストを更新する(S116)。それから、VoIPゲートウェイ1−1は、この順番リストをLAN6へマルチキャスト送信する(S117)。これを受けて、VoIPゲートウェイ1−2は、この順番リストを記憶する。
その後、マスタGWであるVoIPゲートウェイ1−1は、スレーブGWであるVoIPゲートウェイ1−2に定期的にマスタGW生存通知を送信し、これを受けて、VoIPゲートウェイ1−2は、VoIPゲートウェイ1−1にマスタGW生存通知応答を返信する(S118)。これにより、VoIPゲートウェイ1−1およびVoIPゲートウェイ1−2は、互いの生存を確認し合う。
つぎに、VoIPゲートウェイ1−3が起動したものとする(S119)。VoIPゲートウェイ1−3は、マスタGW問合せをLAN6へマルチキャスト送信する(S120)。これを受けて、マスタGWであるVoIPゲートウェイ1−1は、VoIPゲートウェイ1−3にマスタGW通知を返信する(S121)。VoIPゲートウェイ1−3は、VoIPゲートウェイ1−1からマスタGW通知を受け取ると、自VoIPゲートウェイ1−3をスレーブGWに設定し(S122)、VoIPゲートウェイ1−2と同様に、スレーブGWとしての以下の処理を開始する。
すなわち、VoIPゲートウェイ1−3は、マスタGWであるVoIPゲートウェイ1−1にアクセスし、このVoIPゲートウェイ1−1からVoIP網5上およびLAN6上のIPアドレスを取得する(S123)。ここで、VoIPゲートウェイ1−1は、VoIP網5上のIPアドレスとして、自VoIPゲートウェイ1−1に設定されているVoIP網5上のIPアドレスをVoIPゲートウェイ1−3に通知する。また、LAN6上のIPアドレスとして、LAN6上でユニークなIPアドレスをVoIPゲートウェイ1−3に通知する。
つぎに、VoIPゲートウェイ1−3は、自VoIPゲートウェイ1−3のIPアドレスを設定する。具体的には、VoIP網5上のアドレスとして、VoIPゲートウェイ1−1から取得したVoIPゲートウェイ1−1、1−2と共通のIPアドレス(グローバルアドレス)を設定し、LAN6上のアドレスとして、VoIPゲートウェイ1−1から取得したLAN6上でユニークなIPアドレス(ローカルアドレス)を設定する(S124)。それから、VoIPゲートウェイ1−3は、マスタGWであるVoIPゲートウェイ1−1にアクセスして、VoIPゲートウェイ1−1に自VoIPゲートウェイ1−3の登録情報を登録する(S125)。
さて、VoIPゲートウェイ1−1は、VoIPゲートウェイ1−3の登録情報を登録すると、このVoIPゲートウェイ1−3を着信当番の順番リストの最後尾に追加して、着信当番の順番リストを更新する(S126)。それから、VoIPゲートウェイ1−1は、この順番リストをLAN6へマルチキャスト送信する(S127)。これを受けて、VoIPゲートウェイ1−3は、この順番リストを記憶する。また、VoIPゲートウェイ1−2は、記憶している順番リストを、新たに受信した順番リストに置き換える。
その後、マスタGWであるVoIPゲートウェイ1−1は、スレーブGWであるVoIPゲートウェイ1−3に定期的にマスタGW生存通知を送信し、これを受けて、VoIPゲートウェイ1−3は、VoIPゲートウェイ1−1にマスタGW生存通知応答を返信する(S128)。これにより、VoIPゲートウェイ1−1およびVoIPゲートウェイ1−3は、互いの生存を確認し合う。
図4および図5は、VoIP網5からVoIPゲートウェイ1に着信した場合の動作を説明するためのシーケンス図である。ここでは、説明を簡単にするために、三台のVoIPゲートウェイ1−1〜1−3が起動中の場合を例示している。なお、着信当番の順番リストには、VoIPゲートウェイ1−1、1−2、1−3がこの順で登録されており、また、初期状態においては、VoIPゲートウェイ1−1が着信当番を獲得しているものとする。
ハブ2は、VoIPゲートウェイ1−1〜1−3に割り当てられた共通のIPアドレスを送信先とするINVITEメッセージをVoIP網5から受信すると(S200)、リピータ機能により、このINVITEメッセージを複製してVoIPゲートウェイ1−1〜1−3のそれぞれに中継する(S201)。
ここで、着信当番を獲得していないVoIPゲート1−2、1−3は、このINVITEメッセージを無視(破棄)する(S202−1、S202−2)。一方、着信当番を獲得しているVoIPゲートウェイ1−1は、このINVITEメッセージに基づく着信処理(呼制御シーケンス)を開始する(S203)。
すなわち、VoIPゲートウェイ1−1は、INVITEメッセージの送信元に180Ringingを送信する(S204)。ハブ2は、VoIPゲートウェイ1−1から180Ringingを受信すると、ブリッジ機能によりこの180RingingをVoIP網5に中継する(S205)。
また、VoIPゲートウェイ1−1は、PBX3に着信信号を送信する(S206)。そして、PBX3から応答信号を受信したならば(S207)、INVITEメッセージの送信元宛ての200OKメッセージを送信する(S208)。ハブ2は、VoIPゲートウェイ1−1から200OKメッセージを受信すると、ブリッジ機能によりこの200OKメッセージをVoIP網5に中継する(S209)。
以上により、VoIPゲートウェイ1−1とVoIP網5との間にセッションが確立される(S210)。一方、VoIPゲートウェイ1−1とPBX3との間に通話チャネルが確立される(S211)。VoIPゲートウェイ1−1は、VoIP網5との間に確立されたセッションと、PBX3との間に確立された通話チャネルとを中継する(S212)。これにより、PBX3に収容されたアナログ電話機4と、VoIP網5に接続された相手端末との間の通話が可能となる。
ここで、ハブ2は、VoIP網5から受信した、VoIPゲートウェイ1に共通のIPアドレスを送信先とするRTP(Realtime Transport Protocol)パケットを、リピータ機能により複製してVoIPゲートウェイ1−1〜1−3のそれぞれに中継する(S213)。しかし、着信処理を実施してセッション確立に関与したVoIPゲートウェイ1−1のみが、このRTPパケットを中継し(S212)、セッション確立に関与していないVoIPゲートウェイ1−2、1−3は、このRTPパケットを無視(破棄)する(S214−1、S214−2)。
つぎに、VoIPゲートウェイ1−1は、自VoIPゲートウェイ1−1の稼働状態が、所定の当番交代条件を満足するに至ったか否かを判断する(S215)。ここで、当番交代条件とは、VoIPゲートウェイ1−1〜1−3間で負荷分散を図るため、着信当番を獲得しているVoIPゲートウェイ1を着信当番から外す(他のVoIPゲートウェイ1に着信当番を交代させる)ための条件であり、着信当番を獲得しているVoIPゲートウェイ1に所定の負荷が新たに追加された場合に、当番交代条件を満足するように設定される。具体的には、着信当番を獲得しているVoIPゲートウェイ1がPBX3との間に確立している通話チャネル数が自VoIPゲートウェイ1で処理可能な最大チャネル数に達していること、着信当番を獲得しているVoIPゲートウェイ1がVoIP網5との間に確立しているセッション数が自VoIPゲートウェイ1で処理可能な最大セッション数に達していること、あるいは、自VoIPゲートウェイ1が着信当番を獲得してからの着信処理の実施回数が所定回数に達していることなどが、当番交代条件として設定される。
ここで、VoIPゲートウェイ1−1の稼働状態が当番交代条件を満足するに至ったものとする。このとき、VoIPゲートウェイ1−1は、獲得した着信当番を放棄する(S216)。それから、VoIPゲートウェイ1−1は、予め記憶してある着信順番の順番リストを参照し、この順番リスト中、自VoIPゲートウェイ1−1のつぎに記述されているVoIPゲートウェイ1−2を着信当番の引継先に決定する(S217)。そして、LAN6を介してVoIPゲートウェイ1−2に着信当番依頼を送信する(S218)。
VoIPゲートウェイ1−2は、VoIPゲートウェイ1−1から着信当番依頼を受信すると、LAN6を介して、このVoIPゲートウェイ1−1に応答を返信する(S219)。それから、VoIPゲートウェイ1−2は、自VoIPゲートウェイ1−2の稼働状態に基づいて、着信当番の引受可否を判定する(S220)。具体的には、PBX3との間に確立している通話チャネル数が自VoIPゲートウェイ1で処理可能な最大チャネル数に達している場合、あるいはVoIP網5との間に確立しているセッション数が自VoIPゲートウェイ1で処理可能な最大セッションル数に達している場合に、着信当番の引受不可と判定し、それ以外の場合は着信当番の引受可能と判定する。
ここで、VoIPゲートウェイ1−2が着信当番の引受可能と判定したものとする。これを受けて、VoIPゲートウェイ1−2は着信当番を獲得する(S221)。これにより、VoIPゲートウェイ1−1からVoIPゲートウェイ1−2に着信当番が変更される。
その後、ハブ2は、VoIPゲートウェイ1−1〜1−3に割り当てられた共通のIPアドレスを送信先とするINVITEメッセージをVoIP網5から受信すると(S222)、このINVITEメッセージを、リピータ機能により複製してVoIPゲートウェイ1−1〜1−3のそれぞれに中継する(S223)。
ここで、着信当番を獲得していないVoIPゲート1−1、1−3は、このINVITEメッセージを無視する(S224−1、S224−2)。一方、着信当番を獲得しているVoIPゲートウェイ1−2は、このINVITEメッセージに基づく着信処理(呼制御シーケンス)を開始する(S225)。
すなわち、VoIPゲートウェイ1−2は、INVITEメッセージの送信元に180Ringingを送信し(S226)、ハブ2は、この180RingingをVoIPゲートウェイ1−2から受信すると、ブリッジ機能により、この180RingingをVoIP網5に中継する(S227)。
また、VoIPゲートウェイ1−2は、PBX3に着信信号を送信し(S228)、PBX3から応答信号を受信したならば(S229)、INVITEメッセージの送信元に200OKメッセージを送信する(S230)。ハブ2は、この200OKメッセージをVoIPゲートウェイ1−2から受信すると、ブリッジ機能により、この200OKメッセージをVoIP網5に中継する(S231)。
以上により、VoIPゲートウェイ1−2とVoIP網5との間にセッションが確立される(S232)。一方、VoIPゲートウェイ1−2とPBX3との間に通話チャネルが確立される(S233)。VoIPゲートウェイ1−2は、VoIP網5との間に確立されたセッションと、PBX3との間に確立された通話チャネルとを中継する(S234)。これにより、PBX3に収容されたアナログ電話機4とVoIP網5に接続された相手端末との間の通話が可能となる。
ここで、ハブ2は、VoIP網5から受信した、VoIPゲートウェイ1に共通のIPアドレスを送信先とするRTPパケットを、リピータ機能により複製してVoIPゲートウェイ1−1〜1−3のそれぞれに中継する(S235)。しかし、着信処理を実施してセッション確立に関与したVoIPゲートウェイ1−2のみがこのRTPパケットを中継し(S234)、セッション確立に関与していないVoIPゲートウェイ1−1、1−3は、このRTPパケットを無視する(S236−1、S236−2)。
つぎに、VoIPゲートウェイ1−2は、自VoIPゲートウェイ1−2の稼働状態が当番交代条件を満足するに至ったか否かを判断する(S237)。ここで、VoIPゲートウェイ1−2の稼働状態が当番交代条件を満足するに至ったものとする。このとき、VoIPゲートウェイ1−2は、獲得した着信当番を放棄する(S238)。それから、VoIPゲートウェイ1−2は、予め記憶してある着信順番の順番リストを参照し、この順番リスト中、自VoIPゲートウェイ1−2のつぎに記述されているVoIPゲートウェイ1−3を着信当番の引継先に決定する(S239)。そして、LAN6を介してVoIPゲートウェイ1−2に着信当番依頼を送信する(S240)。
VoIPゲートウェイ1−3は、VoIPゲートウェイ1−2から着信当番依頼を受信すると、LAN6を介して、このVoIPゲートウェイ1−2に応答を返信する(S241)。それから、VoIPゲートウェイ1−3は、自VoIPゲートウェイ1−3の稼働状態に基づいて、着信当番の引受可否を判定する(S242)。
ここで、VoIPゲートウェイ1−3が着信当番の引受不可と判定したものとする。このとき、VoIPゲートウェイ1−3は、予め記憶してある着信順番の順番リストを参照し、自VoIPゲートウェイ1−3が順番リストの最後尾なので、順番リストの最初に記述されているVoIPゲートウェイ1−1を着信当番の引継先に決定する(S243)。そして、LAN6を介してVoIPゲートウェイ1−1に着信当番依頼を送信する(S244)。
さて、VoIPゲートウェイ1−1は、VoIPゲートウェイ1−3から着信当番依頼を受信すると、LAN6を介してこのVoIPゲートウェイ1−3に応答を返信する(S245)。それから、VoIPゲートウェイ1−1は、自VoIPゲートウェイ1−1の稼働状態に基づいて着信当番の引受可否を判定する(S246)。ここで、VoIPゲートウェイ1−1が着信当番の引受可能と判定したものとする。このとき、VoIPゲートウェイ1−1は着信当番を獲得する(S247)。これにより、VoIPゲートウェイ1−3を飛ばして、VoIPゲートウェイ1−2からVoIPゲートウェイ1−1に着信当番が変更される。
つぎに、VoIPゲートウェイ1の詳細を説明する。
図6は、VoIPゲートウェイ1の概略機能構成図である。
図示するように、VoIPゲートウェイ1は、VoIP網インターフェース部10と、LANインターフェース部11と、PBXインターフェース部12と、呼制御部13と、通話制御部14と、登録クライアント部15と、登録サーバ部16と、順番リスト記憶部17と、稼働状態監視部18と、着信当番決定部19と、を備えている。
VoIP網インターフェース部10は、VoIP網5(ハブ2)に接続するためのインターフェースである。
LANインターフェース部11は、LAN6に接続するためのインターフェースである。そして、PBXインターフェース部12は、PBX3に接続するためのインターフェースである。ここで、PBXインターフェース部12は、PBX3との間で複数の通話チャネルを同時並列的に確立できるよう構成されている。
呼制御部13は、SIPに従いVoIP網5上のSIPサーバと呼制御シーケンスを実行することにより、VoIP網5上の相手端末との間にセッションを確立する。また、呼制御部13は、SIPによる呼制御シーケンスに連動して、PBX3との間で予め定められた呼制御プロトコルに従い、PBX3と呼制御シーケンスを実行することにより、PBX3との間に通話チャネルを確立する。そして、VoIP網5上の相手端末との間に確立されたセッションと、PBX3との間に確立された通話チャネルとを中継するように、通話制御部14に指示する。
なお、呼制御部13において、VoIP網インターフェース部10を介してVoIP網5(ハブ2)から送られてくるSIPパケットを処理すべきか否かの判断は、SIPパケットに含まれているCall−IDに基づいて行われる。すなわち、呼制御部13は、VoIP網5から受信したSIPパケットに含まれているCall−IDが、自VoIPゲートウェイ1で処理したINVITEメッセージのSIPパケットと同じCall−IDならば処理し、異なるならば無視する。
通話制御部14は、呼制御部13の指示に従い、VoIP網5上の相手端末との間に確立されたセッションを介して送受信されるRTPパケット、およびPBX3との間に確立された通話チャネルを介して送受信される音声信号間の中継処理を行う。すなわち、通話制御部14は、セッションを介してVoIP網5上の相手端末から受信したRTPパケットから音声信号を取り出し、この音声信号を、通話チャネルを介してPBX3に送信する。また、通話チャネルを介してPBX3から受信した音声信号をRTPパケットに格納し、このRTPパケットを、セッションを介してVoIP網5上の相手端末に送信する。
なお、通話制御部14において、VoIP網インターフェース部10を介してVoIP網5(ハブ2)から送られてくるRTPパケットを処理すべきか否かの判断は、RTPパケットに含まれているSession−IDに基づいて行われる。すなわち、通話制御部14は、VoIP網5から受信したRTPパケットに含まれているSession−IDが、呼制御部13によって確立されたセッションのSession−IDならば処理し、そうでないならば無視する。
登録クライアント部15は、DHCPクライアント機能およびSIPレジストラクライアント機能を有し、登録サーバ部16の指示に従い、これらの機能を利用してIPアドレスの取得および自VoIPゲートウェイ1の登録処理を行う。
具体的には、登録クライアント部15は、自VoIPゲートウェイ1がマスタGWに設定されていることを登録サーバ部16から通知された場合、DHCPクライアント機能により、VoIP網インターフェース部10を介して所定のDHCPサーバにアクセスし、このDHCPサーバからVoIP網5上のIPアドレスを取得する。そして、DHCPサーバから取得したIPアドレスを、自VoIPゲートウェイ1のVoIP網5上のアドレスとして設定し、所定のIPアドレスを、自VoIPゲートウェイ1のLAN6上のアドレスとして設定する。また、登録クライアント部15は、SIPレジストラクライアント機能により、VoIP網インターフェース部10を介して所定のSIPサーバにアクセスし、このSIPサーバに自VoIPゲートウェイ1の登録情報を登録する。
また、登録クライアント部15は、自VoIPゲートウェイ1がスレーブGWに設定されていることを、マスタGWのアドレス情報(ローカルアドレス)とともに登録サーバ部16から通知された場合、DHCPクライアント機能により、LANインターフェース部11を介してマスタGWにアクセスし、このマスタGWからVoIP網5上のIPアドレスおよびLAN6上のIPアドレスを取得する。そして、これらの取得したアドレスを、自VoIPゲートウェイ1のVoIP網5上のアドレス、LAN6上のアドレスとして設定する。また、登録クライアント部15は、SIPレジスタクライアント機能により、LANインターフェース部11を介してマスタGWにアクセスして、このマスタGWに自VoIPゲートウェイ1の登録情報を登録する。
登録サーバ部16は、自VoIPゲートウェイ1の起動時にマスタGWの確認を行い、マスタGWが存在するならば自VoIPゲートウェイ1をスレーブGWに設定し、マスタGWが存在しないならば自VoIPゲートウェイ1をマスタGWに設定する。
また、登録サーバ部16は、DHCPサーバ機能およびSIPレジストラサーバ機能を有し、自VoIPゲートウェイ1がマスタGWに設定されている場合に、DHCPサーバ機能によりスレーブGWにIPアドレスを付与するとともに、SIPレジストラサーバ機能によりスレーブGWの登録処理を行う。
さらに、登録サーバ処理部16は、自VoIPゲートウェイ1がマスタGWに設定されている場合、着信当番の順番リストを作成・更新して順番リスト記憶部17に記憶するとともに、この順番リストの配布を行い、自VoIPゲートウェイ1がスレーブGWに設定されている場合、マスタGWから配布された順番リストを取得して、この順番リストを順番リスト記憶部17に記憶する。
順番リスト記憶部17には、着信当番の担当順が記述された順番リストが記憶される。この順番リストは、自VoIPゲートウェイ1がマスタGWならば、登録サーバ部16によって作成・更新され、自VoIPゲートウェイ1がスレーブGWならば、登録クライアント部15によってマスタGWから取得される。
稼働状態監視部18は、自VoIPゲートウェイ1の稼働状態(特に処理中のセッション数あるいは通話チャネル数)を監視する。
着信当番決定部19は、自VoIPゲートウェイ1を含む複数のVoIPゲートウェイ1−1〜1−nのうちの一つが着信当番となるように着信当番の担当を決定する。
具体的には、自VoIPゲートウェイ1がマスタGWに設定された場合に、着信当番決定部19は、自VoIPゲートウェイ1を着信当番に決定する。
また、他のVoIPゲートウェイ1から着信当番依頼を受信した場合、着信当番決定部19は、稼働状態監視部18により取得された自VoIPゲートウェイ1の稼働状態に基づいて着信当番の引受可否を判定する。そして、引受可能と判定したならば、自VoIPゲートウェイ1を着信当番に決定する。一方、引受不可と判定したならば、順番リスト記憶部17に記憶されている順番リストにおいて、自VoIPゲートウェイ1のつぎに記述されているVoIPゲートウェイ1(自VoIPゲートウェイ1の記述がリスト最後尾ならば、リスト先頭に記述されているVoIPゲートウェイ1)を新たな着信当番に決定する。
また、自VoIPゲートウェイ1が着信当番である場合、着信当番決定部19は、稼働状態監視部18により取得された自VoIPゲートウェイ1の稼働状態が所定の当番交代条件を満足するに至ったか否かを監視する。そして、自VoIPゲートウェイ1の稼働状態が当番交代条件を満足するに至ったならば、順番リスト記憶部17に記憶されている順番リストにおいて、自VoIPゲートウェイ1のつぎに記述されているVoIPゲートウェイ1(自VoIPゲートウェイ1の記述がリスト最後尾ならば、リスト先頭に記述されているVoIPゲートウェイ1)を新たな着信当番に決定する。
図7は、VoIPゲートウェイ1の起動時の動作を説明するためのフロー図である。このフローは、VoIPゲートウェイ1に電源が投入されて起動されることにより開始される。
まず、登録サーバ部16は、LANインターフェース部11を介してLAN6に、所定の再送インターバルで繰り返し、マスタGW問合せをマルチキャスト送信する(S301)。また、登録サーバ部16は、所定の問合せ時間を経過するまでの間、LANインターフェース部11を介して他のVoIPゲートウェイ1からマスタGW通知を受信するのを待つ(S302)。
所定の問合せ時間を経過するまでの間に、他のVoIPゲートウェイ1からマスタGW通知を受信しなかった場合(S302でNO)、登録サーバ部16は、自VoIPゲートウェイ1をマスタGWに設定し(S303)、その旨を登録クライアント部15に通知する。
これを受けて、登録クライアント部15は、VoIP網インターフェース部10を介してVoIP網5上の所定のDHCPサーバにアクセスし、このDHCPサーバからVoIP網5上のIPアドレスを取得する。そして、登録クライアント部15は、自VoIPゲートウェイ1のVoIP網5上のアドレスとして、DHCPサーバから取得したIPアドレスをVoIP網インターフェース部10に設定するとともに、自VoIPゲートウェイ1のLAN6上のアドレスとして所定のIPアドレスをLANインターフェース部11に設定する(S304)。
つぎに、登録クライアント部15は、VoIP網インターフェース部10を介してVoIP網5上の所定のSIPサーバにアクセスし、このSIPサーバに自VoIPゲートウェイ1の登録情報を登録する(S305)。
つぎに、登録サーバ部16は、先頭に自VoIPゲートウェイ1の情報が記述された着信当番の順番リストを作成し、この順番リストを順番リスト記憶部17に記憶する(S306)。さらに、登録サーバ部16は、LANインターフェース部11を介してLAN6に、この順番リストをマルチキャスト送信する(S307)。
一方、所定の問合せ時間内に、他のVoIPゲートウェイ1からマスタGW通知を受信した場合(S302でYES)、登録サーバ部16は、自VoIPゲートウェイ1をスレーブGWに設定し(S308)、その旨を登録クライアント部15に通知する。
これを受けて、登録クライアント部15は、LANインターフェース部11を介してマスタGW(マスタGW通知の送信元アドレス)にアクセスし、マスタGWからVoIP網5上のIPアドレスおよびLAN6上のIPアドレスを取得する。そして、登録クライアント部15は、マスタGWから取得したVoIP網5上のIPアドレス、LAN6上のIPアドレスを、それぞれ、VoIP網インターフェース部10、LANインターフェース部11に設定する(S309)。
つぎに、登録クライアント部15は、LANインターフェース部11を介してマスタGWにアクセスし、このマスタGWに自VoIPゲートウェイ1の登録情報を登録する(S310)。また、登録クライアント部15は、LANインターフェース部11を介してマスタGWとの間でマスタGW生存通知およびその応答のやり取りを開始する(S311)。
つぎに、登録サーバ部16は、LANインターフェース部11を介してマスタGWからマルチキャスト送信された着信当番の順番リストを受信し、この順番リストを順番リスト記憶部17に記憶する(S312)。
図8(A)は、マスタGWに設定されたVoIPゲートウェイ1の登録サーバ部16の動作を説明するためのフロー図である。
マスタGWに設定されたVoIPゲートウェイ1において、登録サーバ部16は、LANインターフェース部11を介して他のVoIPゲートウェイ1からマスタGW問合せを受信すると(S321でYES)、LANインターフェース部11を介して、このマスタGW問合せの送信元に、自VoIPゲートウェイ1のアドレス情報を含むマスタGW通知を返信する(S322)。
また、登録サーバ部16は、LANインターフェース部11を介して他のVoIPゲートウェイ1(スレーブGW)からアドレス要求を受信すると(S323でYES)、このVoIPゲートウェイ1のVoIP網5上のアドレスとして、自VoIPゲートウェイ1と同じIPアドレスを割り当てるとともに、このVoIPゲートウェイ1のLAN6上のアドレスとして、DHCPサーバ機能により生成したLAN6上でユニークなアドレスを割り当てる。そして、これらのアドレスをアドレス要求元のVoIPゲートウェイ1に送信する(S324)。
また、登録サーバ部16は、LANインターフェース部11を介して他のVoIPゲートウェイ1(スレーブGW)から登録要求を受信すると(S325でYES)、SIPレジストラサーバ機能により、このVoIPゲートウェイ1の登録情報を登録する(S326)。また、登録サーバ部16は、LANインターフェース部11を介してこのスレーブGWとの間でマスタGW生存通知およびその応答のやり取りを開始する(S327)。さらに、登録サーバ部16は、順番リスト記憶部17に記憶されている着信当番の順番リストの最後尾にこのVoIPゲートウェイ1の情報を記述して、この順番リストを更新するとともに、LANインターフェース部11を介してLAN6に、更新後の順番リストをマルチキャスト送信する(S328)。
図8(B)は、スレーブGWに設定されたVoIPゲートウェイ1の登録サーバ部16の動作を説明するためのフロー図である。
スレーブGWに設定されたVoIPゲートウェイ1において、登録サーバ部16は、LANインターフェース部11を介して、マスタGWに設定されたVoIPゲートウェイ1からマルチキャスト送信された着信当番の順番リストを受信すると(S331でYES)、順番リスト記憶部17に記憶されている着信当番の順番リストを、新たに受信した順番リストに更新する(S332)。
図9は、VoIPゲートウェイ1の着信当番依頼受信時の動作を説明するためのフロー図である。このフローは、LANインターフェース部11が、着信当番を放棄した他のVoIPゲートウェイ1から着信当番依頼を受信することにより開始される。
まず、着信当番決定部19は、受信した着信当番依頼に添付されている送信履歴を取得するとともに、LANインターフェース部11を介して着信当番依頼の送信元に応答を返信する(S341)。つぎに、稼働状態監視部18は、自VoIPゲートウェイ1の稼働状態を取得して(S342)、この稼働状態を着信当番決定部19に渡す。
これを受けて、着信当番決定部19は、この稼働状態から、PBX3との間に確立している通話チャネル数を特定し、この通話チャネル数が自VoIPゲートウェイ1で処理可能な最大チャネル数に達しているか否かを判断する(S343)。そして、PBX3との間に確立している通話チャネル数が最大チャネル数に達していないならば(S343でNO)、着信当番決定部19は、この稼働状態から、VoIP網5との間に確立しているセッション数を特定し、このセッション数が自VoIPゲートウェイ1で処理可能な最大セッション数に達しているか否かをさらに判断する(S344)。そして、VoIP網5との間に確立しているセッション数が最大セッション数に達していないならば(S344でNO)、着信当番決定部19は、着信当番を獲得して、その旨を呼制御部13に通知する(S345)。
一方、PBX3との間に確立している通話チャネル数が自VoIPゲートウェイ1で処理可能な最大チャネル数に達している場合(S343でYES)、あるいはVoIP網5との間に確立しているセッション数が自VoIPゲートウェイ1で処理可能な最大セッション数に達している場合(S344でYES)、着信当番決定部19は、受信した着信当番依頼に添付されていた送信履歴に、自VoIPゲートウェイ1が送信元として記述されているか否かを調べる(S345)。
そして、自VoIPゲートウェイ1が送信履歴に記述されている場合、つまり着信当番依頼が、本実施に形態に係る電話システムを構成するVoIPゲートウェイ1−1〜1−nを一巡したならば(S345でYES)、着信当番決定部19は、自VoIPゲートウェイ1の稼働状態にかかわらず、着信当番を獲得して、その旨を呼制御部13に通知する(S346)。
一方、自VoIPゲートウェイ1が送信履歴に記述されていない場合、つまり着信当番依頼が、本実施に形態に係る電話システムを構成するVoIPゲートウェイ1−1〜1−nを一巡していないならば(S345でNO)、着信当番決定部19は、順番リスト記憶部17に記憶されている着信当番の順番リストにおいて、自VoIPゲートウェイ1のつぎに記述されているVoIPゲートウェイ1(自VoIPゲートウェイ1の記述がリスト最後尾ならば、リスト先頭に記述されているVoIPゲートウェイ1)を新たな着信当番に決定する(S347)。それから、着信当番決定部19は、受信した着信当番依頼に添付されていた送信履歴に自VoIPゲートウェイ1を送信元として追記する。そして、この送信履歴が添付された着信当番依頼を、LANインターフェース部11を介して、新たな着信当番に決定されたVoIPゲートウェイ1に送信し(S348)、このVoIPゲートウェイ1から応答を受信する(S349)。
図10は、VoIPゲートウェイ1の、VoIP網5からの着信時の動作を説明するためのフロー図である。このフローは、VoIP網インターフェース部10がハブ2を介してVoIP網5からINVITEメッセージを受信することにより開始される。
まず、呼制御部13は、自VoIPゲートウェイ1が着信当番を獲得しているか否かを判断する(S361)。自VoIPゲートウェイ1が着信当番を獲得していないならば(S361でNO)、このINVITEメッセージを無視してこのフローを終了する。一方、自VoIPゲートウェイ1が着信当番を獲得しているならば(S361でYES)、このINVITEメッセージに基づく着信処理(呼制御シーケンス)を開始する(S362)。
このとき、PBX3との間に確立している通話チャネル数が自VoIPゲートウェイ1で処理可能な最大チャネル数に達しているならば、あるいはVoIP網5との間に確立しているセッション数が自VoIPゲートウェイ1で処理可能な最大セッション数に達しているならば、話中処理を開始する。
つぎに、呼制御部13は、例えばアナログ電話機4のユーザがいずれも不在なためPBX3からの応答がないなど、セッションおよび通話チャネルを確立することなく着信処理が終了したならば(S363でNO)、このフローを終了する。一方、この着信処理により、VoIP網5との間にセッションが確立されるとともに、PBX3との間に通話チャネルが確立されたならば(S363でYES)、これらのセッションおよび通話チャネルを中継するように、通話制御部14に指示する。
これを受けて、通話制御部14は、VoIP網5上の相手端末との間に確立されたセッションを介して送受信されるRTPパケット、およびPBX3との間に確立された通話チャネルを介して送受信される音声信号間の中継処理を開始する(S364)。
つぎに、稼働状態監視部18は、自VoIPゲートウェイ1の稼働状態を取得して(S365)、この稼働状態を着信当番決定部19に渡す。
これを受けて、着信当番決定部19は、この稼働状態に基づいて、自VoIPゲートウェイ1の稼働状態が当番交代条件を満足しているか否かを判断する(S366)。そして、自VoIPゲートウェイ1の稼働状態が当番交代条件を満足していないならば(S366でNO)、このフローを終了する。
一方、自VoIPゲートウェイ1の稼働状態が当番交代条件を満足しているならば(S366でYES)、着信当番決定部19は、獲得した着信当番を放棄し、その旨を呼制御部13に通知する(S367)。それから、着信当番決定部19は、順番リスト記憶部17に記憶されている着信当番の順番リストにおいて、自VoIPゲートウェイ1のつぎに記述されているVoIPゲートウェイ1(自VoIPゲートウェイ1の記述がリスト最後尾ならば、リスト先頭に記述されているVoIPゲートウェイ1)を新たな着信当番に決定する(S368)。そして、自VoIPゲートウェイ1が送信元として記述された送信履歴を作成し、この送信履歴が添付された着信当番依頼を、LANインターフェース部11を介して、新たな着信当番に決定されたVoIPゲートウェイ1に送信して(S369)、このVoIPゲートウェイ1から応答を受信する(S370)。そして、このフローを終了する。
以上、本発明の一実施の形態について説明した。
本実施の形態に係る電話システムでは、複数のアナログ電話機4を収容するPBX3をVoIP網5に接続するVoIPゲートウェイ1を複数設け、これらのVoIPゲートウェイ1に対して、VoIP網5上のアドレスとして共通のアドレスを割り当てるとともに、着信当番の順番リストにより着信当番を割り当てている。そして、この共通のアドレスに対するINVITEメッセージがVoIP網5から着信した場合に、着信当番のVoIPゲートウェイ1のみが、このINVITEメッセージを処理して呼制御シーケンスを実施し、着信当番でないVoIPゲートウェイ1はこのINVITEメッセージを無視する。また、着信当番のVoIPゲートウェイ1は、自VoIPゲートウェイ1が所定の当番交代条件を満足したか否かを判断し、この当番交代条件を満足したならば、着信当番の順番リストに従い、他のいずれか一つのVoIPゲートウェイ1に着信当番を移す。
このため、本実施の形態によれば、VoIP網5上のアドレスとして共通のアドレスが割り当てられた複数のVoIPゲートウェイ1にVoIP網5からINVITEメッセージが着信した場合に、このINVITEメッセージを処理するVoIPゲートウェイ1を動的に割り振ることができるので、複数のVoIPゲートウェイ1間における負荷分散を図ることができる。
また、本実施の形態において、VoIPゲートウェイ1における処理中のチャネル数もしくはセッション数が、このVoIPゲートウェイ1で処理可能な最大チャネル数あるいは最大セッション数に達した場合に、当番交代条件を満足したものと判断することにより、VoIPゲートウェイ1に処理能力以上の数の着信が振り分けられるのを防止することができる。
また、本実施の形態において、着信当番を獲得してからのVoIPゲートウェイ1の着信処理回数が所定回数に達した場合に、このVoIPゲートウェイ1の当番交代条件を満足したものと判断することにより、各VoIPゲートウェイ1に、より均等に着信を振り分けることが可能となり、より効果的に負荷分散を図ることができる。
また、本実施の形態において、着信当番を獲得していないVoIPゲートウェイ1は、他のVoIPゲートウェイ1から着信当番依頼を受信した場合に、自VoIPゲートウェイ1において処理中のチャネル数もしくはセッション数が、自VoIPゲートウェイ1で処理可能な最大チャネル数あるいは最大セッション数に達しているならば、着信当番を獲得することなく、着信当番の順番リストに従い、他のいずれか一つのVoIPゲートウェイ1に着信当番依頼を送信している。このため、VoIPゲートウェイ1に処理能力以上の数の着信が振り分けられるのをさらに防止することができる。
また、本実施の形態では、ハブ2を介して複数のVoIPゲートウェイ1をVoIP網5に接続している。ここで、ハブ2は、VoIP網5から受信したパケットについては、複製してVoIPゲートウェイ1のそれぞれに中継する一方、各VoIPゲートウェイ1から受信したパケットについては、複製することなくVoIP網5へ中継する。このため、VoIPゲートウェイ1から送信されたパケットがLAN6上に重複送出されるのを防止することができ、これによりLAN6の輻輳を低減できる。
なお、本発明は上記の実施の形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
例えば、上記の実施の形態において、VoIPゲートウェイ1は、他のVoIPゲートウェイ1から着信当番依頼を受信した場合において、着信当番の引受不可と判定したならば、自VoIPゲートウェイ1が新たな着信当番を決定して、この新たな着信当番に決定されたVoIPゲートウェイ1に着信依頼当番を送信している。しかし、本発明はこれに限定されない。VoIPゲートウェイ1は、受信した着信当番依頼に対して着信当番の引受不可と判定した場合に、この着信当番依頼の送信元であるVoIPゲートウェイ1に対して、着信当番の引受不可応答を返信するようにしてもよい。この場合、着信当番依頼送信元のVoIPゲートウェイ1が新たな着信当番を決定して、この新たな着信当番に決定されたVoIPゲートウェイ1に着信依頼当番を送信する。この新たな着信当番は、例えば着信当番の順番リストにおいて、着信当番の引受不可応答を返信したVoIPゲートウェイ1のつぎに記述されているVoIPゲートウェイ1(着信不可応答を返信したVoIPゲートウェイ1が順番リストの最後尾に記述されているならば、順番リストの先頭に記述されているVoIPゲートウェイ1)に決定すればよい。
この場合、着信当番の順番リストに記述されているすべてのVoIPゲートウェイ1が着信当番の引受不可応答を返信したならば、着信当番依頼の送信元であるVoIPゲートウェイ1が、自VoIPゲートウェイ1の稼働状態にかかわらず、着信当番を獲得するようにする。
また、上記の実施の形態において、図6に示すVoIPゲートウェイ1の機能構成は、ASIC(Application Specific Integrated Circuit)、およびFPGA(Field Programmable Gate Array)などの集積ロジックICによりハード的に実現されるものでもよいし、あるいは、DSP(Digital Signal Processor)などの計算機によりソフトウエア的に実現されるものでもよい。もしくは、CPU、メモリ、HDD、DVD−ROM等の補助記憶装置、およびNIC(Network Interface Card)、モデム等の通信インターフェースを備えたPC(Personal Computer)等の汎用コンピュータにおいて、CPUが所定のプログラムを補助記憶装置からメモリ上にロードして実行することで実現されるものでもよい。
また、上記の実施の形態では、アナログ電話機4を収容するPBX3をVoIP網5に接続するVoIPゲートウェイ1を例にとり説明したが、本発明はこれに限定されない。本発明は、内線端末を収容するPBXをVoIP網5に接続するVoIPゲートウェイに広く適用できる、例えば、本発明は、IP電話機を収容するIP−PBXをVoIP網5に接続するVoIPゲートウェイにも適用可能である。