以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係る通信システムの全体図である。この通信システムは、インターネット3と、インターネット3に接続された3つのLAN1,2,5とから構成されている。LAN1,2,5とは、物理的に離れた場所に構築されたネットワークである。たとえば、LAN1が本社ビルに構築されたローカルネットワークであり、LAN2,5がそれぞれ別の支社ビルに構築されたローカルネットワークであり、これら3つのLAN1,2,5が、グローバルなネットワークであるインターネット3にそれぞれ接続されている。
LAN1には、図に示すように、通信端末11,12が接続されている。通信端末11,12には、それぞれプライベートIPアドレスが付与されている。このように、一般には、LANに接続される端末には、LANの中でのみユニークに管理されたプライベートIPアドレスが付与されている。また、LAN1には、中継サーバ13が接続されている。中継サーバ13は、LAN1に接続されるとともに、インターネット3にも接続されている。中継サーバ13には、LANインタフェース用のプライベートIPアドレスとWANインタフェース用のグローバルIPアドレスが付与されている。
LAN2には、プライベートIPアドレスが付与された通信端末21,22が接続されている。また、LAN2には、中継サーバ23が接続されている。中継サーバ23は、LAN2に接続されるとともに、インターネット3にも接続され、LANインタフェース用のプライベートIPアドレスとWANインタフェース用のグローバルIPアドレスが付与されている。
同様にLAN5には、プライベートIPアドレスが付与された通信端末51,52が接続されている。また、LAN5には、中継サーバ53が接続されている。中継サーバ53は、LAN5に接続されるとともに、インターネット3にも接続され、LANインタフェース用のプライベートIPアドレスとWANインタフェース用のグローバルIPアドレスが付与されている。
さらに、インターネット3には、SIPサーバ4が接続されている。SIPサーバ4は、中継サーバ13,23,53がSIP(Session Initiation Protocol)を利用した通信を行うときに、SIPメソッドやレスポンスなどを中継するプロキシーサーバとしての機能や、中継サーバ13,23,53のアカウントを登録するSIPレジストラサーバとしての機能を備えている。
一方、LAN1に接続されている中継サーバ13は、SIPを利用して、LAN1に接続されている通信端末11,12等のアカウントを登録するSIPレジストラサーバとしての機能を備えている。
つまり、図2に示すように、中継サーバ13は、通信端末11,12との関係では、通信端末11,12から受信した登録要求(REGISTER)に基づいて、アカウントを登録するSIPレジストラサーバとして機能し、SIPサーバ4との関係では、SIPサーバ4に対してアカウントの登録要求(REGISTER)を送信するクライアントとして機能する。
同様に、LAN2,5に接続されている各中継サーバ23,53も、SIPを利用して、LAN2,5に接続されている通信端末21,22等、51,52等のアカウントを登録するSIPレジストラサーバとしての機能を備えている。
つまり、図2に示すように、中継サーバ23,53は、通信端末21,22、51,52との関係では、通信端末21,22、51,52から受信した登録要求(REGISTER)に基づいて、アカウントを登録するSIPレジストラサーバとして機能し、SIPサーバ4との関係では、SIPサーバ4に対してアカウントの登録要求(REGISTER)を送信するクライアントとして機能する。
図3は、中継サーバ13,23,53の機能ブロック図である。中継サーバ13,23,53は、同様の機能を備えているので、同じ図面を用いて説明する。中継サーバ13,23,53は、LANインタフェース101、WANインタフェース102、通信制御部103、ローカルアカウント情報データベース104、中継情報データベース105を備えている。
LANインタフェース101は、プライベートIPアドレスを利用して、LANに接続された通信端末との通信を行うインタフェースである。つまり、中継サーバ13は、LANインタフェース101を利用して、通信端末11,12等と通信を行い、中継サーバ23は、LANインタフェース101を利用して、通信端末21,22等と通信を行い、中継サーバ53は、LANインタフェース101を利用して、通信端末51,52等と通信を行う。
WANインタフェース102は、グローバルIPアドレスを利用して、グローバルネットワークであるインターネット3に接続されたSIPサーバ4や、インターネット3に接続されたその他の通信サーバ、通信端末と通信を行うインタフェースである。なお、本実施の形態においては、中継サーバがWANインタフェースを備える構成としているが、WANとの接続はルータが行い、その配下に中継サーバを設置する形態であってもよい。
通信制御部103は、LANインタフェース101およびWANインタフェース102を介して行う様々な通信を制御する処理部である。通信制御部103は、TCP/IPや、UDP、SIPなどのプロトコルに従った様々な通信処理を制御する。
通信制御部103の1つの機能は、LANに接続されている通信端末から、アカウントの登録要求(REGISTER)を受信し、その通信端末のアカウント情報をローカルアカウント情報データベース104に登録することである。たとえば、中継サーバ13は、通信端末11からアカウントの登録要求(REGISTER)を受信し、通信端末11のアカウント情報をローカルアカウント情報データベース104に登録する。
通信制御部103は、また、他の中継サーバとの間で、アカウント情報を交換し、自装置が保持するアカウント情報をその中継サーバに送信するとともに、その中継サーバが保持するアカウント情報を受信して自装置のローカルアカウント情報データベース104に登録する処理を実行する。そして、他の中継サーバに、その中継サーバが保持しているアカウント情報に変更が発生した場合に、変更通知と変更後のアカウント情報とを継続して送信することを要求する変更通知設定を行い、自装置のアカウント情報に変更が発生した場合には、変更通知設定が行われている中継サーバに対して、変更通知と変更後のアカウント情報とを送信する処理を実行する。この処理は、SIPでは後述するように、SUBSCRIBEおよびNOTIFYのメソッドによる通知イベントを利用して行われる。通知イベントでは、通知イベントを実行する期間を設定することができる。オペレータ操作などによって、SUBSCRIBEメソッドを送信することにより、通知イベントを利用した変更通知設定が行われると、それ以降は、通知イベントが実行可能な期間中、SUBSCRIBEメソッドを受信した側の中継サーバのアカウント情報に変更が生じた場合、その都度、NOTIFYメソッドにより、SUBSCRIBEメソッドを送信した側の中継サーバに、変更通知と新たなアカウント情報の通知とが行われる。
通知されるアカウント情報は、ローカルアカウント情報データベース104に登録される。変更があれば、その都度、変更後の内容が登録され、継続的に更新される。
通信制御部103は、また、他の中継サーバとの間で、構築されている中継用の通信セッションの中継経路情報を含む中継情報を交換し、自装置が保持する中継情報をその中継サーバに送信するとともに、その中継サーバが保持する中継情報を受信して自装置の中継情報データベース105に登録する処理を実行する。そして、他の中継サーバに、その中継サーバが保持している中継情報に変更が発生した場合に、変更通知と変更後の中継情報とを継続して送信することを要求する変更通知設定を行い、自装置の中継情報に変更が発生した場合には、変更通知設定が行われている中継サーバに対して、変更通知と変更後の中継情報とを送信する処理を実行する。この処理は、先のアカウント情報の場合と同様に、SUBSCRIBEおよびNOTIFYのメソッドによる通知イベントを利用して行われる。通知イベントでは、通知イベントを実行する期間を設定することができる。オペレータ操作などによって、SUBSCRIBEメソッドを送信することにより、通知イベントを利用した変更通知設定が行われると、それ以降は、通知イベントが実行可能な期間中、SUBSCRIBEメソッドを受信した側の中継サーバの中継情報に変更が生じた場合、その都度、NOTIFYメソッドにより、SUBSCRIBEメソッドを送信した側の中継サーバに、変更通知と新たな中継情報の通知とが行われる。
通知される中継情報は、中継情報データベース105に登録される。変更があれば、その都度、変更後の内容が登録され、継続的に更新される。
INVITEメソッドによって他の中継サーバと直接通信可能な中継用の通信セッションを構築する際、相手の中継サーバの中継情報に変更が発生した場合に、変更通知と変更後の中継情報とを送信することを要求するか否かが指定できる。変更通知を要求しないことを指定した場合には、例えば、SUBSCRIBEメソッドによる変更通知設定が行われない、あるいはSUBSCRIBEメソッドによる変更通知設定が行われても、NOTIFYのメソッドによる通知が一回だけ行われ、その後に変更が発生しても変更通知等は送信されない。つまり、中継情報の変更通知は、相手の中継サーバに対して要求するか否かを選択できる。例えば、SUBSCRIBEメソッドにおける通知イベントの実行期間を非常に短い値にすれば、相手からは1回しかNOTIFYによる通知が来ないこととなる。
また、同様に、INVITEメソッドによって他の中継サーバと直接通信可能な中継用の通信セッションを構築する際、この通信セッションによって形成される中継経路情報を、中継情報に含めるか否かについても指定できる。つまり、中継サーバは、この中継経路情報を中継情報に含めないことを指定することで、新たに構築される中継用の通信セッションを秘匿状態に保持することができる。
さらに通信制御部103は、同じLAN内の通信端末から、他のLAN内の通信端末のアカウントを指定した通信要求を受けると、他の中継サーバから受信したアカウント情報から指定されたアカウントが登録されている中継サーバを決定し、該当する中継サーバとの間で、直接通信可能な中継用の通信セッションが構築されているか否かを検出する。そして、直接通信可能な中継用の通信セッションが構築されていない場合は、交換した中継情報から中継経路を決定して、中継経路上の中継サーバとの中継用の通信セッションを通じて、間接的に、通信端末間の通信データを中継する制御を行う。
通信制御部103は、また、SIPサーバ4に対して中継サーバ自身のアカウント登録を行うための登録要求(REGISTER)を送信する機能を備える。
通信制御部103は、他にも、相手側の中継サーバ13,23,53との間で、トネリングセッションを接続して維持する機能を備えている。つまり、中継サーバ13,23,53は、いずれか一方から、SIPのINVITEメソッドを送信することで、中継サーバ13,23,53間でトネリングセッションを確立することができる。中継サーバ13,23,53の通信制御部103は、この確立されたトネリングセッションを維持することで、LAN1,2,5に接続された通信端末間の通信データを中継することが可能となる。
つまり、LAN1,2,5に接続された通信端末には、後述するようにそれぞれプライベートなアカウントが付与されているため、互いに別のLAN1,2,5に配置された通信端末と通信する場合、宛先のプライベートなアカウントが指定されることになる。しかし、このプライベートなアカウントが指定されたSIPコマンドなどの通信データは、中継サーバ13,23,53間において、カプセル化され、他方の中継サーバ13,23,53に中継されるのである。受信側の中継サーバ13,23,53は、中継されてきたSIPコマンドを取り出し、プライベートなアカウントを指定した通信データを、該当する通信端末に対して中継送信するのである。
図4は、SIPサーバ4の機能ブロック図である。SIPサーバ4は、図に示すように、WANインタフェース41、通信制御部42、中継サーバアカウント情報データベース43を備えている。
WANインタフェース41は、グローバルIPアドレスを利用して、インターネット3に接続されたサーバ、端末との間で通信を行うインタフェースである。SIPサーバ4は、WANインタフェース41を利用して、中継サーバ13,23,53と通信可能としている。
通信制御部42は、WANインタフェース41を介して行う様々な通信を制御する処理部である。通信制御部42は、TCP/IPやUDP、SIPなどのプロトコルに従った通信処理を制御する。
通信制御部42の1つの機能は、インターネット3に接続されている中継サーバから、アカウントの登録要求(REGISTER)を受信し、当該中継サーバのアカウント情報を中継サーバアカウント情報データベース43に登録することである。たとえば、SIPサーバ4は、中継サーバ13からアカウントの登録要求(REGISTER)を受信し、中継サーバ13のアカウント情報を中継サーバアカウント情報データベース43に登録する。
通信制御部42は、他にも、中継サーバ13,23,53から送信された様々なSIPメソッドやレスポンスなどの通信データを他方の中継サーバに中継する機能を備える。
以上の通り構成された通信システムにおける通信処理の流れについて、図5および図6の処理シーケンス図を参照しながら説明する。なお、図5は、ステップS1からステップS10までのシーケンスを示し、それに続くステップS11からステップS16までのシーケンスを示すのが図6である。
ここでは、図1に示すように、中継サーバ13と中継サーバ23との間で直接中継用の通信セッションが構築され、中継サーバ13と中継サーバ53との間で直接中継用の通信セッションが構築される。そして、LAN2内の通信端末21とLAN5内の通信端末51との間での通信データが、中継サーバ23から中継サーバ13を経由して中継サーバ53に至る中継経路を経て、間接的に中継されるまでの通信処理の流れを示している。以下、詳細に説明する。
まず、中継サーバ13が、SIPサーバ4に対してアカウントの登録要求(REGISTER)を送信する(ステップS1)。図5に示すように、ここでは、中継サーバ13が、自身のアカウント(SIP:relay-server1@sip.srv)の登録要求を行う。SIPサーバ4は、OKレスポンスを中継サーバ13に返信し、中継サーバ13のアカウントと中継サーバ13のグローバルIPアドレスとを対応付けて中継サーバアカウント情報データベース43に登録する。パスワード認証を行う場合には、あらかじめ中継サーバアカウント情報データベース43に、中継サーバのアカウントとパスワードとを対応付けて登録しておく。この場合、ユーザは、登録要求時に合わせてパスワードを送信するのである。そして、パスワード認証が成功した場合に、IPアドレスと対応付けられてアカウントが登録されることになる。
続いて、中継サーバ23が、SIPサーバ4に対してアカウントの登録要求(REGISTER)を送信する(ステップS2)。ここでは、中継サーバ23が、自身のアカウント(SIP:relay-server2@sip.srv)の登録要求を行う。SIPサーバ4は、OKレスポンスを中継サーバ23に返信し、中継サーバ23のアカウントと中継サーバ23のグローバルIPアドレスとを対応付けて中継サーバアカウント情報データベース43に登録する。同様に、パスワード認証を行うようにしてもよい。
次に、通信端末11が、中継サーバ13に対してアカウントの登録要求(REGISTER)を送信する(ステップS3)。ここでは、通信端末11が、自身のカウント(SIP:0001@privatesip1)の登録要求を行う。中継サーバ13は、OKレスポンスを行い、通信端末11のアカウントと通信端末11のプライベートIPアドレスとを対応付けてローカルアカウント情報データベース104に登録する。パスワード認証を行う場合には、あらかじめローカルアカウント情報データベース104に、通信端末のアカウントとパスワードとを対応付けて登録しておく。この場合、ユーザは、登録要求時に合わせてパスワードを送信するのである。そして、パスワード認証が成功した場合に、IPアドレスと対応付けられてアカウントが登録されることになる。
次に、通信端末21が、中継サーバ23に対してアカウントの登録要求(REGISTER)を送信する(ステップS4)。ここでは、通信端末21が、自身のアカウント(SIP:0002@privatesip2)の登録要求を行う。中継サーバ23は、OKレスポンスを行い、通信端末21のアカウントと通信端末21のプライベートIPアドレスとを対応付けてローカルアカウント情報データベース104に登録する。この場合も、同様にパスワード認証を行ってもよい。
以上により、中継サーバ13,23のSIPサーバ4に対するアカウント登録が完了し、通信端末11,21の中継サーバ13,23に対するアカウント登録が完了する。
次に、中継サーバ13が、中継サーバ23に対する接続要求コマンド(INVITEメソッド)を、SIPサーバ4に送信する(ステップS5)。このINVITEメソッドでは、接続要求先の中継サーバ23のアカウント(SIP:relay-sever2@sip.srv)が指定されている。SIPサーバ4は、中継サーバアカウント情報データベース43を参照することで、中継サーバ23のグローバルIPアドレスを取得する。そして、SIPサーバ4は、中継サーバ13から送信されたINVITEメソッドを中継サーバ23に中継する。
このようにして、接続要求コマンドが中継サーバ13から中継サーバ23に送信されると、SIPサーバ4を介して中継サーバ23から中継サーバ13に対してOKレスポンスが転送される。このようにして、接続要求コマンドが受け入れられると、中継サーバ13,23間でトネリングセッションが確立される(ステップS6)。
以上のステップS1からステップS6までの処理は、オペレータによって、ネットワークの初期設定として行われるのが一般的である。オペレータは、インターネット3を越えて接続したいLANに配置されている中継サーバをSIPサーバ4に登録する操作を行うのである。また、インターネット3を越えて通信を行いたい通信端末を中継サーバに登録する操作を行うのである。
次に、中継サーバ13が、中継サーバ23に対してSUBSCRIBEメソッドを利用して、中継サーバ23との間に、通知イベントを利用した変更通知設定を行う(ステップS7)。これによって、中継サーバ23がもつアカウント情報、あるいは中継情報に変更が発生した場合、その都度、NOTIFYメソッドにより、その変更通知および変更後のアカウント情報、あるいは変更後の中継情報が、中継サーバ23から中継サーバ13に通知されることとなる。なお、ここでは、いずれの情報もローカルアカウント情報LAに含まれているため、一括して変更後のローカルアカウント情報を通知すれば足りる。この通信は、SIPサーバ4を経由して行われる。あるいは、SIPサーバを経由せずに、直接中継サーバ23に対してSUBSCRIBEメソッドを送信するようにしてもよい。
ステップS7のSUBSCRIBEメソッドに基づいて、NOTIFYメソッドにより中継サーバ23から中継サーバ13に通知されるローカルアカウント情報LA1の内容を、図5のシーケンス図内に示している。
このローカルアカウント情報LA1は、中継サーバ23が配置されているLAN2に接続されている通信端末であって、中継サーバ23に対してアカウント登録を行った通信端末の情報を含んでいる。今の状態では、中継サーバ23に対しては、通信端末21がアカウントの登録を行っているので、ローカルアカウント情報LA1には、通信端末21のアカウント情報(SIP:0002@privatesip2)が記録されている。
ローカルアカウント情報LA1を受信した中継サーバ13は、その情報を、自装置のローカルアカウント情報データベース104に登録する。ただし、受信したアカウント情報については、そのアカウント情報の発信元である中継サーバのアカウント情報と対応付けて登録される。この場合であれば、通信端末21のアカウント(SIP:0002@privatesip2)が、中継サーバ23のアカウント(SIP:relay-server2@sip.srv)と対応付けて登録される。
また、ローカルアカウント情報LA1は、中継サーバ23が構築している直接通信可能な通信セッションの中継経路情報を含む中継情報を含んでいる。しかし、中継サーバ23は、まだ、中継サーバ13以外とは直接通信可能な通信セッションが構築されていないため、中継情報に含まれる中継経路情報が存在しないこと(none)が記録されている。ローカルアカウント情報LA1を受信した中継サーバ13は、その情報を、その中継情報の発信元である中継サーバ23のアカウント情報(SIP:relay-server2@sip.srv)と対応付けて自装置の中継情報データベース105に登録する。
次に、中継サーバ23が、中継サーバ13に対してSUBSCRIBEメソッドを利用して、中継サーバ13との間に、通知イベントを利用した変更通知設定を行う(ステップS8)。これによって、中継サーバ13がもつアカウント情報、あるいは中継情報に変更が発生した場合、その都度、NOTIFYメソッドにより、その変更通知および変更後のアカウント情報、あるいは中継情報が、中継サーバ13から中継サーバ23に通知されることとなる。この通信は、SIPサーバ4を経由して行われる。あるいは、SIPサーバを経由せずに、直接中継サーバ13に対してSUBSCRIBEメソッドを送信するようにしてもよい。
ステップS8のSUBSCRIBEメソッドに基づいて、NOTIFYメソッドにより中継サーバ13から中継サーバ23に通知されるローカルアカウント情報LA2の内容を、図5のシーケンス図内に示している。このローカルアカウント情報LA2は、中継サーバ13が配置されているLAN1に接続されている通信端末であって、中継サーバ13に対してアカウント登録を行った通信端末の情報を含んでいる。中継サーバ23は、その情報を、自装置のローカルアカウント情報データベース104に登録する。この場合であれば、通信端末11のアカウント(SIP:0001@privatesip1)と、中継サーバ13のアカウント(SIP:relay-server1@sip.srv)とを対応付けた状態で、ローカルアカウント情報データベース104に登録するのである。
ローカルアカウント情報LA2は、中継サーバ13が構築している直接通信可能な通信セッションの中継経路情報を含む中継情報を含んでいる。しかし、中継サーバ13もまた、中継サーバ23以外とは直接通信可能な通信セッションが構築されていないため、中継情報に含まれる中継経路情報が存在しないこと(none)が記録されている。ローカルアカウント情報LA2を受信した中継サーバ23は、その情報を、その中継情報の発信元である中継サーバ13のアカウント情報(SIP:relay-server1@sip.srv)と対応付けて自装置の中継情報データベース105に登録する。
このようにして、中継サーバ13と中継サーバ23とが、ローカルアカウント情報LA1,LA2を交換し、ローカルアカウント情報データベース104および中継情報データベース105に、それぞれ取得した情報を登録する。そして、LAN1に接続された通信端末11は、中継サーバ13にアクセスすることで、中継サーバ13が管理しているローカルアカウント情報データベース104を参照することが可能である。たとえば、通信端末11のユーザは、アドレス帳を参照するような操作により、ローカルアカウント情報データベース104の内容を参照することができる。同様に、LAN2に接続された通信端末21は、中継サーバ23が管理しているローカルアカウント情報データベース104を参照することができる。
以上のようにして、中継サーバ13と中継サーバ23との間で直接中継用の通信セッションが構築されるのである。続いて、さらに、中継サーバ13と中継サーバ53との間で直接中継用の通信セッションが構築される通信処理の流れを説明する。
中継サーバ53が、SIPサーバ4に対してアカウントの登録要求(REGISTER)を送信する(ステップS9)。ここでは、中継サーバ53が、自身のアカウント(SIP:relay-server3@sip.srv)の登録要求を行う。SIPサーバ4は、OKレスポンスを中継サーバ53に返信し、中継サーバ53のアカウントと中継サーバ53のグローバルIPアドレスとを対応付けて中継サーバアカウント情報データベース43に登録する。同様に、パスワード認証を行うようにしてもよい。
続いて、通信端末51が、中継サーバ53に対してアカウントの登録要求(REGISTER)を送信する(ステップS10)。中継サーバ53は、通信端末51のアカウント(SIP:0003@privatesip3)と通信端末51のプライベートIPアドレスとを対応付けてローカルアカウント情報データベース104に登録する。
次に、図6において、中継サーバ53は、中継サーバ13に対する接続要求コマンド(INVITEメソッド)を、SIPサーバ4に送信する(ステップS11)。このINVITEメソッドでは、接続要求先の中継サーバ13のアカウント(SIP:relay-sever1@sip.srv)が指定されている。SIPサーバ4は、中継サーバアカウント情報データベース43を参照することで、中継サーバ13のグローバルIPアドレスを取得する。そして、SIPサーバ4は、中継サーバ53から送信されたINVITEメソッドを中継サーバ13に中継する。
このようにして、接続要求コマンドが中継サーバ53から中継サーバ13に送信されると、SIPサーバ4を介して中継サーバ13から中継サーバ53に対してOKレスポンスが転送される。このようにして、接続要求コマンドが受け入れられると、中継サーバ53,13間でトネリングセッションが確立される(ステップS12)。なお、ステップS9からステップS12までの処理は、先のステップS1からS6までと同様に、オペレータによって、ネットワークの初期設定として行われる。
次に、中継サーバ53が、中継サーバ13に対してSUBSCRIBEメソッドを利用して、中継サーバ13との間に、通知イベントを利用した変更通知設定を行う(ステップS13)。これによって、中継サーバ13がもつローカルアカウント情報に含まれるアカウント情報、あるいは中継情報に変更が発生した場合、その都度、NOTIFYメソッドにより、その変更通知および変更後のローカルアカウント情報が、中継サーバ13から中継サーバ53に通知されることとなる。この通信は、SIPサーバ4を経由して行われる。あるいは、SIPサーバを経由せずに、直接中継サーバ13に対してSUBSCRIBEメソッドを送信するようにしてもよい。
ステップS13のSUBSCRIBEメソッドに基づいて、NOTIFYメソッドにより中継サーバ13から中継サーバ53に通知されるローカルアカウント情報LA3の内容を、図6のシーケンス図内に示している。このローカルアカウント情報LA3は、中継サーバ13が配置されているLAN1に接続されている通信端末であって、中継サーバ13に対してアカウント登録を行った通信端末の情報を含んでいる。今の状態では、中継サーバ13に対しては、通信端末11がアカウントの登録を行っているので、ローカルアカウント情報LA3には、通信端末11のアカウント情報(SIP:0001@privatesip1)が記録されている。
また、中継サーバ13は、中継サーバ23との間で直接通信可能な通信セッションが構築されているため、中継情報には、中継サーバ23との直接通信可能な通信セッションが構築されていることを示す中継経路情報(SIP:relay-sever2@sip.srv)が記録されている。また、その中継経路情報は、その中継サーバ23が配置されているLAN2に接続されている通信端末であって、中継サーバ23に対してアカウント登録を行った通信端末21のアカウント情報(SIP:0002@privatesip2)とともに記録されている。
ローカルアカウント情報LA3を受信した中継サーバ53は、受信したアカウント情報を、自装置のローカルアカウント情報データベース104に登録する。ただし、受信したアカウント情報については、そのアカウント情報の発信元である中継サーバのアカウント情報と対応付けて登録される。この場合であれば、通信端末11のアカウント(SIP:0001@privatesip1)が、中継サーバ13のアカウント(SIP:relay-server1@sip.srv)と対応付けて登録される。
また、中継サーバ53は、受信した中継情報を、自装置の中継情報データベース105に登録する。この場合であれば、中継経路情報(SIP:relay-sever2@sip.srv)が、その中継サーバ23の管理下にある通信端末21のアカウント情報(SIP:0002@privatesip2)とともに、中継サーバ13のアカウント(SIP:relay-server1@sip.srv)と対応付けて登録される。
次に、中継サーバ13が、中継サーバ53に対してSUBSCRIBEメソッドを利用して、中継サーバ53との間に、通知イベントを利用した変更通知設定を行う(ステップS14)。これによって、中継サーバ53がもつローカルアカウント情報に含まれるアカウント情報、あるいは中継情報に変更が発生した場合、その都度、NOTIFYメソッドにより、その変更通知および変更後のローカルアカウント情報が、中継サーバ53から中継サーバ13に通知されることとなる。この通信は、SIPサーバ4を経由して行われる。あるいは、SIPサーバを経由せずに、直接中継サーバ53に対してSUBSCRIBEメソッドを送信するようにしてもよい。
ステップS14のSUBSCRIBEメソッドに基づいて、NOTIFYメソッドにより中継サーバ53から中継サーバ13に通知されるローカルアカウント情報LA4の内容を、図6のシーケンス図内に示している。このローカルアカウント情報LA4は、中継サーバ53が配置されているLAN5に接続されている通信端末であって、中継サーバ53に対してアカウント登録を行った通信端末の情報を含んでいる。中継サーバ13は、受信したアカウント情報を、自装置のローカルアカウント情報データベース104に登録する。この場合であれば、通信端末51のアカウント(SIP:0003@privatesip3)と、中継サーバ53のアカウント(SIP:relay-server3@sip.srv)とを対応付けた状態で、ローカルアカウント情報データベース104に登録するのである。
また、ローカルアカウント情報LA4は、中継サーバ53が構築している直接通信可能な通信セッションの中継経路情報を含む中継情報を含んでいる。しかし、中継サーバ53は、まだ、中継サーバ13以外とは直接通信可能な通信セッションが構築されていないため、中継情報に含まれる中継経路情報が存在しないこと(none)が記録されている。ローカルアカウント情報LA4を受信した中継サーバ13は、その情報を、その中継情報の発信元である中継サーバ53のアカウント情報(SIP:relay-server3@sip.srv)と対応付けて自装置の中継情報データベース105に登録する。
このようにして、中継サーバ53と中継サーバ13とが、ローカルアカウント情報LA3,LA4を交換し、ローカルアカウント情報データベース104および中継情報データベース105に、それぞれ取得した情報を登録する。
中継サーバ13では、中継サーバ53との間で直接通信可能な中継用の通信セッションを構築されたことで、中継情報に変更が発生する。その結果、先に、中継サーバ23との間で発生している変更通知設定(ステップS8)に基づいて、NOTIFYメソッドにより、その変更通知および変更後の中継情報を含むローカルアカウント情報が、中継サーバ13から中継サーバ23に通知される(ステップS15)。
ステップS8のSUBSCRIBEメソッドに基づいて、NOTIFYメソッドにより中継サーバ13から中継サーバ23に通知されるローカルアカウント情報LA5の内容を、図6のシーケンス図内に示している。このローカルアカウント情報LA5は、中継サーバ13が配置されているLAN1に接続されている通信端末であって、中継サーバ13に対してアカウント登録を行った通信端末の情報(SIP:0001@privatesip1)が、中継サーバ13のアカウント(SIP:relay-server1@sip.srv)と対応付けた状態で含まれている。そして、中継情報として、新たに中継サーバ53との間で、直接通信可能な通信セッションが構築されていることを示す中継経路情報(SIP:relay-sever3@sip.srv)が、その中継サーバ53の管理下にある通信端末51のアカウント情報(SIP:0003@privatesip3)と対応付けされた状態で記録されている。
中継サーバ23は、中継サーバ13のアカウント(SIP:relay-server1@sip.srv)と対応付けた状態で、それぞれ、受信したアカウント情報を自装置のローカルアカウント情報データベース104に登録し、受信した中継情報を自装置の中継情報データベース105に登録して、変更後の情報に更新する。
次に、LAN2内の通信端末21とLAN5内の通信端末51との間での通信データが、中継サーバ23から中継サーバ13を経由して中継サーバ53に至る中継経路を経て、間接的に中継されるまでの通信処理の流れを説明する。
通信端末21のユーザは、中継サーバ23にアクセスし、アドレス帳を参照する。そして、通信端末51のアカウント(SIP:0003@privatesip3)を指定して、通信端末51への通信処理を実行する。これにより、通信端末21から宛先を通信端末51とするSIPコマンドが中継サーバ23に送信される(ステップS16)。
中継サーバ23は、通信端末51を宛先アカウントとして指定したSIPコマンドを受信すると、ローカルアカウント情報データベース104を参照し、当該宛先アカウントが登録されている中継サーバを特定する。この場合、通信端末51のアカウントは、中継サーバ53と対応付けて登録されているので、中継先として中継サーバ53が選択される。
次に、中継サーバ53との間で、直接通信可能な中継用の通信セッションが構築されているか否かを検出する。ここでは、中継サーバ23と中継サーバ53とは、直接通信可能な中継用の通信セッションが構築されていない。そこで、中継サーバ23は、中継情報データベース105を参照し、交換した中継情報から中継経路を決定する。
具体的には、自装置の中継情報データベース105に保持している中継情報には、中継サーバ23と中継用の通信セッションが構築されている中継サーバ13が、中継サーバ53との間で中継用の通信セッションが構築されていることが記録されている(ローカルアカウント情報LA5参照)。したがって、これを参照することで、中継サーバ13を経由する、中継サーバ53との間接的な中継経路を決定することができるのである。
中継経路を決定すると、中継サーバ23は、通信端末21から受信したSIPコマンドを、トネリングセッションを利用して、中継サーバ13に直接転送する(ステップS16.1)。さらに、中継サーバ13は、中継サーバ23から受信したSIPコマンドを、中継サーバ53に直接転送する(ステップS16.1.1)。そして、中継サーバ53から通信端末51に転送するのである(ステップS16.1.1.1)。このような手順により、通信端末21から送信されたSIPコマンドが、通信端末51に転送される。
通信端末51は、通信端末21から送信されたSIPコマンドを受信すると、通信端末21に対してSIPレスポンスを返信する。このレスポンスは、再びトネリングセッションを利用して中継サーバ53から中継サーバ13を経由して中継サーバ23に転送され、さらに、中継サーバ23によって通信端末21に転送されるのである。
INVITEメソッドによって他の中継サーバと直接通信可能な中継用の通信セッションを構築する際、相手の中継サーバの中継情報に変更が発生した場合に、変更通知と変更後の中継情報とを送信することを要求するか否かが指定できる。例えば、中継サーバ53が、先のステップS11で中継サーバ13と中継用の通信セッションを構築する際に、相手の中継サーバ13の中継情報に変更が発生した場合でも変更通知と変更後の中継情報とを送信することを要求しないと指定したとする。そうすると、ステップS13のSUBSCRIBEメソッドは送信されずに変更通知設定が行われない。あるいは有効期間が非常に短いSUBSCRIBEメソッドが送信され、それに基づくNOTIFYのメソッドによる通知が一回行われるだけで、その後に変更が発生しても変更通知等は送信されない。
加えて、INVITEメソッドによって他の中継サーバと直接通信可能な中継用の通信セッションを構築する際、この通信セッションによって形成される中継経路情報を中継情報に含めるか否かについても指定できる。例えば、中継サーバ53が、先のステップS11で中継サーバ13と中継用の通信セッションを構築する際に、これによって生成される中継経路情報を中継情報に含めないことを指定したとすると、ステップS15におけるローカルアカウント情報LA5には、その中継経路情報(SIP:relay-sever3@sip.srv)が、その中継先の中継サーバ53の管理下にある通信端末51のアカウント情報(SIP:0003@privatesip3)とともに存在しない。つまり、新たに構築された中継サーバ53と中継サーバ13との中継用の通信セッションを、他の中継サーバに対して秘匿状態にすることができる。
また、中継経路を他の中継サーバに公開するかどうかを許可することができる。そして、特定の中継サーバにだけ中継経路を公開することを許可することもできる。例えば、INVITEメソッドによって他の中継サーバと直接通信可能な中継用の通信セッションを構築する際、INVITEメソッドの属性として公開するかしないかを指定することができる(PUBLIC/PRIVATE)。そして、特定の中継サーバを指定すること(例えばPRIVATE=中継サーバ23など)により、その特定の中継サーバに対して中継経路の公開を許可することも可能である。
以上、説明したように、本実施の形態に係る通信システムを利用することで、LAN1,LAN2,LAN5に接続された通信端末は、インターネット3を越えて、他方のLAN1,2,5に接続された通信端末と通信を行うことが可能である。
そして、本実施の形態によれば、各中継サーバ13,23,53は、それぞれ直接通信経路を構築する必要がない。中継サーバを介して間接的に中継することができ、中継サーバ間の通信負荷を低減することができる。
中継サーバが、自動的かつリアルタイムに通信経路を構築するため、通信端末の移動等によって、登録されたアカウント情報等に変動があっても動的に対応できる。
構築された通信経路の情報は、秘匿状態に保持することができる。また、中継経路を構築する際、中継情報の変更通知を相手の中継サーバに対して要求するか否かが選択できる。