本発明の第1の実施の形態を、図面を用いて説明する。
代表例として、移動端末がホーム網のアプリケーションを利用する際の通信方法を詳細に説明する。
図1は、本発明の第1の実施の形態の通信網の構成例を示す説明図である。
本実施の形態における通信網は、IP網N1と、無線アクセス網N2(N2a、N2b)(RAN:Radio Access Network)とによって構成される。UE7は、第3世代移動通信プロトコルに準拠した端末である。ただし、本発明の効果を奏することができる構成である限り、無線アクセス網N2は、固定網によって置き換えられてもよく、UE7は、固定端末、或いは、無線LANなどその他の移動通信プロトコルに準拠した端末であってもよい。
図1には、例として、二つのUE7を示す。以下、二つのUE7を区別して記載する場合、符号に添字「a」又は「b」を付して、例えばUE7a及びUE7bのように記載する。その他の構成要素も、同様の規則に従って記載される。なお、UE7a及びUE7bは、それぞれ、後述するPrivate User Identity UE#1及びUE#2によって識別される。
IP網N1とRAN N2とは、アクセスゲートウェイ装置(AGW)6(6a、6b)を介して接続される。アクセスゲートウェイ装置6の代わりに、ルータなど、他の通信装置を介して、IP網N1とRAN N2が接続されてもよい。アクセスゲートウェイ装置6は、UE7とIP網N1との間で送受信されるIPパケットを転送する機能を提供する。
IP網N1は、AS1、HSS2、S−CSCF3(3a、3b)、I−CSCF4(4a、4b)及びP−CSCF5(5a、5b)を備える。
AS1は、アプリケーションの実行を制御する機能を備える。
HSS2は、加入者情報を保持する。加入者情報は、例えば、UE7の認証情報、及び、UE7が加入するアプリケーションの情報等を含む。加入者情報を参照することによって、各UE7がAS1によって提供されるサービスを受けることができるか否かを判定することができる。
P−CSCF5、I−CSCF4及びS−CSCF3は、セッション制御機能を備える。P−CSCF5は、UE7が最初にアクセスするCSCFである。I−CSCF4は、UE7が利用するS−CSCF3を特定する機能を備える。S−CSCF3は、UE7のセッション状態を制御及び管理する機能を備える。
UE7は、移動通信機能、及び、SIPプロトコルを処理する機能を備える。UE7は、SIP識別子としてSIP URIを保持する。
なお、図1には、例として、S−CSCF3、I−CSCF4、P−CSCF5、AGW 6、RAN N2及びUE7を、それぞれ二つずつ示した。しかし、本発明を実施する際に、これらの構成要素の数は任意であってよい。
図2は、本発明の第1の実施の形態のS−CSCF3の構成例を示す説明図である。
S−CSCF3は、回線32(32a、32b)を収容するインタフェース部(IF)31(31a、31b)と、CPU34と、メモリ35と、データベース(DB)36とによって構成される。各構成要素は、バス33で接続される。
メモリ35には、プロトコル処理を実行するプログラム38及びS−CSCF処理を実行するプログラム37が記憶されている。メモリ35には、さらに他のプログラムが記憶されてもよい。
CPU34は、メモリ35に記憶されたプログラムを実行するプロセッサである。以下の説明においてS−CSCF3が実行する処理は、実際には、CPU34がいずれかのプログラムを実行することによって実行される。
プロトコル処理を実行するプログラム38は、SIP信号制御を実行するプログラム、及び、DIAMETER信号制御を実行するプログラムを含む。SIP信号制御を実行するプログラムは、S−CSCF3がIP網N1上に存在する通信装置との間で信号を送信又は受信するための機能を備える。DIAMETER信号制御を実行するプログラムは、S−CSCF3がHSS2との間で信号を送信又は受信するための機能を備える。
S−CSCF処理を実行するプログラム37は、アプリケーションフィルタリング情報の参照又は更新に利用される処理プログラム(PSIフィルタ参照処理50、PSIフィルタ更新処理80及びセッション終了時のPSIフィルタ更新処理90)、セッション処理を実行する処理プログラム(セッション処理)、位置登録処理を実行する処理プログラム(位置登録処理)、UE7の位置登録情報の格納に利用される登録情報テーブル200、PSIフィルタ情報の格納に利用されるPSIフィルタ情報テーブル210、PSIの識別子とアプリケーションサーバとの対応情報を管理するPSIリスト220、及び、位置登録されているUE7のサービスプロファイルを含む。データベース36が、PSIフィルタ情報テーブル210、PSIリスト220及びサービスプロファイルを含んでもよい。なお、PSI(Public Service Identity)とは、アプリケーション識別子を示す。
S−CSCF3がPSIフィルタ参照処理50、PSIフィルタ更新処理80、セッション終了時のPSIフィルタ更新処理90、PSIフィルタ情報テーブル210を備えることによって、S−CSCF3がアプリケーションへのアクセスを制限することができる。
図4Aは、本発明の第1の実施の形態の登録情報テーブル200の構成の一例を示す説明図である。
S−CSCF3は、端末の位置登録処理を実行する際、登録情報テーブル200を参照及び更新する。
登録情報テーブル200は、少なくとも、Private User Identity 201と、各Private User Identity 201に対応するPublic User Identity 202、Contact 203、認証情報204、及び、サービスプロファイル205とを格納する。ここで、Private User Identity 201は、UE7の認証に用いられる識別子である。Public User Identity 202は、UE7の公開アドレスである。Contact 203は、接続先アドレスである。
S−CSCF3は、UE7の位置登録時に、位置登録されるUE7の認証情報204及びサービスプロファイル205を、HSS2から取得する。
登録情報テーブル200は、さらに有効期限206を含んでもよい。登録情報テーブル200が有効期限206を含む場合、S−CSCF3は有効期限206を経過したエントリを削除することができる。
図4Aの例では、エントリ200−1のPrivate User Identity 201として「UE#1」が格納され、エントリ200−1のPublic User Identity 202として「sip:user1_public1@home1.net」が格納され、エントリ200−1のContact 203として「ue#1」が格納されている。このエントリは、図1に示すUE7aに対応する。
図4Bは、本発明の第1の実施の形態のPSIフィルタ情報テーブル210の構成の一例を示す説明図である。
S−CSCF3は、AS1にメッセージを送信する際、PSIフィルタ情報テーブル210を参照する。PSIフィルタ情報テーブル210は、少なくとも、UE7のPublic User Identity 211と、各UE7に対して割り当てられたPSI212との対応関係を格納する。PSI212には、UE7にサービスを提供するサーバ(例えばAS1)の識別子、又は、そのサーバがUE7に提供するサービスの識別子が格納される。
図4Bの例では、エントリ210−1のPublic User Identity 211として「sip:user1_public1@home1.net」が格納され、エントリ210−1のPSI212として、AS1が提供する会議室の識別子である「conf1@as1.home.net」が格納されている。これは、「sip:user1_public1@home1.net」によって識別されるUE7aが、AS1によって提供される会議室「conf1@as1.home.net」へのアクセスを許可されていることを示す。この場合、S−CSCF3は、UE7aからAS1のアドレス「conf1@as1.home.net」へのメッセージの通過を許可する。このときS−CSCF3が実行する処理については、後で詳細に説明する(図12等参照)。
さらに、図4Bの例では、エントリ210−2のPublic User Identity 211として「sip:user1_public1@home1.net」が格納され、エントリ210−2のPSI212として、AS1が提供する会議サーバの識別子である「conference_factory@as1.home1.net」が格納されている。これは、UE7aが、AS1によって提供される会議サーバ「conference_factory@as1.home1.net」へのアクセスを許可されていることを示す。この場合、S−CSCF3は、UE7aからAS1のアドレス「conf1@as1.home.net」へのメッセージの通過を許可する。
図4Cは、本発明の第1の実施の形態のPSIリストテーブル220の構成の一例を示す説明図である。
S−CSCF3は、AS1にメッセージを送信する際、PSIリストテーブル220を参照する。PSIリストテーブル220は、S−CSCFが通過を許可するPSI221を格納する。
図3は、本発明の第1の実施の形態のAS(Application Server)1の構成例を示す説明図である。
特に、図3には、会議サービスを提供するAS1の構成例を示す。ただし、本発明の効果を奏することができる構成である限り、AS1が提供するサービスは、他のアプリケーション(例えば、Push to Talk又はInstant Messageなど)であってもよい。
AS1は、回線12(12a、12b)を収容するインタフェース部(IF)11(11a、11b)と、CPU14と、メモリ15と、データベース(DB)16とによって構成される。各構成要素は、バス13で接続される。
メモリ15には、プロトコル処理を実行するプログラム18と、アプリケーションの実行制御を実行するプログラム17とが記憶されている。メモリ15には、さらに他のプログラムが記憶されてもよい。
CPU14は、メモリ15に記憶されたプログラムを実行するプロセッサである。以下の説明においてAS1が実行する処理は、実際には、CPU14がいずれかのプログラムを実行することによって実行される。
プロトコル処理を実行するプログラム18は、SIP信号制御を実行するプログラム、及び、DIAMETER信号制御を実行するプログラムを含む。SIP信号制御を実行するプログラムは、AS1がIP網N1上に存在する通信装置との間で信号を送信又は受信するための機能を備える。DIAMETER信号制御を実行するプログラムは、AS1がHSS2との間で信号を送信又は受信するための機能を備える。
アプリケーションの実行制御を実行するプログラム17は、PSI割り当て処理プログラム60、PSI割当解除処理を実行するプログラム70、PSI状態管理テーブル240、アプリケーション毎に実行を制御する処理プログラム(アプリケーション処理)、及び、参加者リスト250を含む。
PSI割当処理プログラム60及びPSI割当解除処理を実行するプログラム70は、アプリケーション起動中にAS1が動的にアプリケーション識別子の割当及び解除をするための機能を備える。アプリケーション処理は、例えば、会議サービスの実行を制御する機能を備える。
データベース16が、PSI状態管理テーブル240及び参加者リスト250を含んでもよい。
AS1が、PSI割り当て処理プログラム60、PSI割当解除処理を行うプログラム70、PSI状態管理テーブル240及び参加者リスト250を備えることによって、AS1は、アプリケーションの実行制御中にユーザ等に割り当てたPSIをPSI状態管理テーブル240の該当エントリに設定することができる。
図5Aは、本発明の第1の実施の形態のPSI状態テーブル240の構成の一例を示す説明図である。
PSI状態テーブル240は、少なくとも、AS1がアプリケーション処理中に割り当てたPSI241と、各PSIの状態(State)242との対応関係を格納する。状態242には、「active」、「inactive」又は「仮割り当て」等、各PSIの状態を示す値が格納される。例えば、図5Aのエントリ240−1には、PSI241「conf1@as1.home.net」と状態242「Active」との対応関係が格納される。
PSI状態テーブル240は、エントリの有効期限を示す有効期限243を含んでもよい。PSI状態テーブル240が有効期限243を含む場合、AS1は、上記テーブルから有効期限243を経過したエントリを削除することができる。
図5Bは、本発明の第1の実施の形態の参加者リスト250のテーブル構成の一例を示す説明図である。
参加者リスト250には、PSI251と、各PSI251が示すアプリケーションに参加するユーザの公開アドレス(Public User Identity)252との対応関係が格納される。例えば、エントリ250−1には、PSI251「conf1@as1.home.net」と、Public User Identity 252「sip:user1_public1@home1.net、 sip:user2_public1@home1.net」との対応関係が格納される。
次に、IPv6(Internet Protocol Version 6)パケットフォーマットについて説明する。IPv6パケットは、IPv6基本ヘッダと、これに続く拡張ヘッダと、これらのヘッダに続くペイロードとによって構成される。このIPv6基本ヘッダは、送信元アドレスと、着信先アドレスとを含む。以下、このフォーマットに準拠したIPv6パケットを用いて説明をするが、本発明の効果が発揮される限り、IPv6以外のプロトコル、例えばIPv4(Internet Protocol Version 4)に準拠したパケットを用いてもよい。
次に、SIPメッセージを含むパケットフォーマットについて説明する。SIPメッセージは、TCP/UDPなどのトランスポートプロトコルのデータ部に格納される。トランスポートプロトコルのヘッダとデータ部は、IPv6パケットフォーマットのペイロードに格納される。
次に、SIPメッセージのフォーマットについて説明する。
SIPメッセージは、少なくとも要求又は応答を示すstart−lineと、SIPメッセージのパラメータが設定されるmessage−headerとによって構成される。SIPメッセージを用いて、端末間通信に利用するメディア情報等を送信する場合、SIPメッセージは、メディア情報等が格納されるmessage−bodyを含む。
次に、DIAMETERメッセージを含むパケットフォーマットについて説明する。DIAMETERメッセージは、TCP/SCTPなどのトランスポートプロトコルのデータ部に格納される。トランスポートプロトコルのヘッダとデータ部は、IPv6パケットフォーマットのペイロードに格納される。
次に、図6、図7、図8及び図9を参照して、図1に示すRAN N2aに在圏するUE#1(7a)がS−CSCF3aにIMS位置登録を行い、UE1#(7a)とUE#2(7b)の間で会議サービスを起動するシーケンスを説明する。
図6は、本発明の第1の実施の形態のUE#1(7a)が位置登録を行う手順を説明するシーケンス図である。
第1の実施の形態のUE7aは、AGW6aとの間に、例えばPPP(Point to Point Protocol)などのリンクを確立し、DHCPなどを用いてP−CSCF5aのアドレスを取得する。或いは、PPPリンク確立時に、AGW6aがUE7aにP−CSCF5aのアドレスを通知してもよい。
RAN N2上に存在するUE7aは、AGW6aとの間にリンクを確立する(101)。リンク確立時に、UE7aはDHCPアドレスを取得し、DHCPからP−CSCF5aのアドレスを取得する。さらに、UE7aは、AGW6aとの間にリンク確立した後、IPアドレスを取得する。例えば、UE7aは、AGW6aからIPv6ルータ広告を受信することによって、IPアドレスを取得することができる。
本実施の形態において、UE7aは、モバイルIP端末ではなく、RAN N2aにおいてIPアドレスue#1を取得したとする。UE7aがモバイルIP対応端末である場合、UE7aは、RAN N2aで取得したアドレスをモバイルIPの気付アドレスとして利用する。
UE7aは、利用するIPアドレスをIP網N1に登録するため、DHCPサーバからアドレスを取得したP−CSCF5aにSIP登録メッセージ(SIP REGISTER)を送信する(102)。
P−CSCF5aは、上記SIP登録メッセージ(REGISTER)のStart−lineに含まれるUE7のSIP URIから、I−CSCF4aを特定する。このSIP登録メッセージは、UE7aの公開アドレス(Public User Identity)、認証用のアドレス(Private User Identity)及びContactアドレスを含む。本実施の形態では、UE7aのPublic User Identityをsip:user1_public1@home1.netとし、UE7aのPrivate User IdentityをUE#1とする。Contactアドレスとして、UE7aがRAN N2aで取得したアドレス(ue#1)が設定される。
P−CSCF5aは、I−CSCF4aに上記SIP登録メッセージ(REGISTER)を送信する(103)。
I−CSCF4aは、ステップ103で受信したSIP登録メッセージに含まれるUE7aの公開アドレスを検索キーとして、HSS2に加入者情報問い合わせメッセージ(UAR: User Authorization Request)を送信する(104)。
HSS2は、UE7aの公開アドレスを検索キーとして加入者情報を参照し、UE7aにS−CSCF3aを割り当てる。そして、HSS2は、I−CSCF4aにS−CSCF3aのアドレス情報を含む応答メッセージ(URR: User Authorization Response)を送信する(105)。
I−CSCF4aは、ステップ105で受信したS−CSCF3a宛に上記SIP登録メッセージ(REGISTER)を送信する(106)。
S−CSCF3aは、上記SIP位置登録メッセージ(REGISTER)を受信すると、UE7aがSIP登録されているか否かを確認する。この確認は、S−CSCF3aが、REGISTER(106)に含まれるPublic User Identity(図6の例では、「UE#1」)を検索キーとして、登録情報テーブル200を検索することによって実行される。
該当するエントリ(図6の例では、Public User Identityが「UE#1」であるエントリ)が存在しない場合、登録対象のUE7aはまだ登録されていない。この場合、S−CSCF3aは、位置登録処理として初回登録処理を起動する。そして、S−CSCF3aは、登録対象のUE7aの認証情報を取得するため、HSS2に問い合わせ(MAR: Multimedia Autentication Request)を送信する(107)。ここで、S−CSCF3aには、予めHSS2のアドレスが設定されているものとする。
HSS2は、REGISTER(106)に含まれるPublic User Identity及びPrivate User Identityを検索キーとして、UE7aの認証情報を検索し、S−CSCF3aにUE7aの認証情報を送信する(MAA: Multimedia Autentication Response)(108)。ここで、HSS2は、UE7aに割り当てられたS−CSCFアドレスとして、S−CSCF3aのアドレスを格納する。
S−CSCF3aは、HSSから認証情報を受信すると、情報登録テーブル200に新規エントリ(200−1)を作成し、Private User Identity、Public User Identity、及び、HSS2から受信した認証情報を新規エントリ200−1に格納する(図4A参照)。
続いて、S−CSCF3aは、I−CSCF4a及びP−CSCF5a経由で、UE7aにSIPのエラー応答(401 Unauthorized)を送信する(109、110及び111)。このエラー応答は、UE7aが認証演算に利用する情報を含む。
UE7aは、ステップ111で受信した情報を用いて認証演算を行い、Private User Identity、Public User Identity、Contactアドレス及び認証演算結果を含むSIP登録メッセージ(REGISTER)をP−CSCF5aに送信する(112)。
P−CSCF5aは、ステップ112で受信したSIP登録メッセージをI−CSCF4aに送信する(113)。
I−CSCF4aは、ステップ113で受信したSIP登録メッセージに含まれるUE7aの公開アドレスを検索キーとして、HSS2に加入者情報問い合わせメッセージ(UAR: User Authorization Request)を送信する(114)。
HSS2は、UE7aの公開アドレスを検索キーとして加入者情報を参照する。HSS2には、ステップ107受信時に、UE7aが利用するS−CSCFアドレスとして、S−CSCF3aが登録されている。そこで、HSS2は、I−CSCF4aにS−CSCF3aのアドレス情報を含む応答メッセージ(URR:User Authorization Response)を送信する(115)。
I−CSCF4aは、ステップ115で受信したS−CSCF3a宛に上記SIP登録メッセージ(REGISTER)を送信する(116)。
S−CSCF3aは、UE7aがSIP登録されているか否かを確認する。この確認は、S−CSCF3aがREGISTER(116)に含まれるPublic User Identityを検索キーとして、登録情報テーブル200を検索することによって実行される。ここで、S−CSCF3aは、ステップ108受信時に登録されたエントリ200−1を検出し、そのエントリ200−1から認証情報を読み出す。
S−CSCF3aは、エントリ200−1から読み出した認証情報と、ステップ116で受信した認証演算結果を用いて、UE7aの認証処理を行う。UE7aの認証がOKであれば、登録情報テーブル200のエントリ200−1のContactフィールド203に、ステップ116で受信したSIP REGISTERに含まれるContact header(ue#1)を格納する(117)。
S−CSCF3aは、HSS2にUE7aの加入者情報を問い合わせる(SAR:Service Assignment Request)(118)。HSS2は、ユーザ認証用識別子であるPrivate User Identity毎に加入者情報(Service Profile)を保持する。Serivce Profileには、通信用識別子(Public User Identity)、Core Network Service Authorization及びInitial Filter Criteriaを設定することができる。
「Initial Filter Criteria」には、AS1と、そのAS1の起動条件「Service Point Trigger」との対応関係を示す情報が含まれる。「Service Point Trigger」には、SIP要求メッセージに含まれる情報(Request−URI、SIP Method、SIP Header、SDPなど)等がアプリケーションに応じて設定される。
HSS2は、Private User Identityを検索キーとして、UE7aの加入者情報(Service Profile)からInitial Filter Criteriaを読み出し、S−CSCF3aに通知する(SAA: Service Assignment Response)(119)。
S−CSCF3aは、Public User Identityを検索キーとして、登録情報テーブル200を検索し、検索されたエントリ200−1にHSS2から受信したService Profileを格納する(120)。このService Profileは、S−CSCF3aが最初のSIP要求メッセージを受信したとき、アプリケーションサーバの起動要否を決定するために利用される。
S−CSCF3aは、I−CSCF4a及びP−CSCF5a経由でUE7aにSIP登録の正常応答(200)を送信する(121、122及び123)。
P−CSCF5aは、ステップ122の応答を受信すると、UE7aに割り当てられたS−CSCF3aのアドレスの情報を一定期間保持する。
上記のS−CSCF3aへの登録は、UE7aのIPアドレスが変わらない場合でも、S−CSCF3aが管理するSIP登録情報のエントリ有効期限を更新する目的で、所定の周期で繰り返して実行される。
次に、UE7aが会議サービスを起動する手順について説明する。
図7は、本発明の第1の実施の形態のUE7aが会議サービスを起動する手順を説明するシーケンス図である。
UE7aは、セッション確立要求メッセージ(INVITE)を送信する(131)。セッション確立要求メッセージとは、セッション制御メッセージの一つである。本実施の形態の場合、AS1にアプリケーションの起動(本実施の形態では、会議サービスの起動)を要求するメッセージである。このセッション確立要求メッセージは、Request URIとして、会議サービスを提供するAS1のアドレス(例えば、conference_factory@as1.home1.net)を含み、例えば、P−Preferred−Identity headerとして、UE7aの公開アドレス(Public User Identity)(例えば、sip:user1_public1@home1.net)を含む。
P−CSCF5aは、上記セッション確立要求メッセージ(INVITE)を受信すると、UE7aに割り当てられたS−CSCF3aのアドレスを読み出し、S−CSCF3aにセッション確立要求メッセージ(INVITE)を送信する(132)。その後、P−CSCF5aは、UE7aに上記INVITEへの暫定応答(100 Trying)を送信する(133)。
S−CSCF3aは、上記セッション確立要求メッセージ(INVITE)を受信すると、P−CSCF5aに上記INVITEへの暫定応答(100 Trying)を送信し、図12に示すPSIフィルタ参照処理ルーチン50を起動する(134)。
図12は、本発明の第1の実施の形態のPSIフィルタ参照処理ルーチン50を説明するフローチャートである。
図2において説明したように、PSIフィルタ参照処理50は、S−CSCF3のメモリ35に格納され、CPU34によって実行されるプログラム37のサブプログラムである。従って、図12の説明においてS−CSCF3aが実行する処理は、実際にはCPU34によって実行される。
まず、S−CSCF3aは、受信したSIPメッセージが、REGISTER以外のInitial SIP Requestであるか否かを確認する(51)。ここで、REGISTER以外のInitial SIP Requestとは、新しいSIP dialogを確立するSIP要求、又は、単一トランザクション用SIP要求である。
受信したSIPメッセージがInitial SIP Requestである場合(すなわち、ステップ51で「Yes」と判定された場合)、S−CSCF3aは、Public User Identityを検索キーとして、登録情報テーブル200を検索し、AS1が提供するサービス(本実施の形態の場合、会議サービス)を起動してよいか否かを確認する(52)。ここで、S−CSCF3aは、ステップ120で格納されたService Profileを参照し、UE7aが会議サービスに加入していることを確認する。UE7aが会議サービスに加入している場合、UE7aは、会議サービスの提供を受けることができる。この場合、ステップ52において、AS1が提供する会議サービスを起動してよい(すなわち、「あり」)と判定される。
次に、S−CSCF3aは、UE7aのPublic User Identityを検索キーとして、PSIフィルタ情報テーブル210を検索する(53)。
ステップ53において、該当エントリが存在しない場合、S−CSCF3aは、PSIフィルタ情報テーブル210に新規エントリ210−2を作成し、UE7aのPublic User Identity(sip:user1_public1@home1.net)と、Request URIに設定されたアドレス(conference_factory@as1.home1.net)を格納する(54、155)。
なお、ステップ53の判定において、「該当エントリ」とは、受信したメッセージの送信元であるUE7aのPublic User IdentityをPublic User Identity 211として含み、かつ、受信したメッセージのRequest URIとして設定されたアドレス(conference_factory@as1.home1.net)をPSI212として含むエントリである。この「該当エントリ」の意味は、後で説明するステップ57の判定においても同様である。
ステップ54において新規エントリが追加された結果、AS1が提供するサービスと、そのサービスを利用するユーザとの間の対応関係がPSIフィルタ情報テーブル210に登録される。以後、メッセージの送信元のユーザと、送信先のAS1が提供するサービスとの対応関係が、PSIフィルタ情報テーブル210に登録されている場合、そのメッセージが正当なアクセスであると判定され、メッセージ(パケット)の通過が許可される。
その後、S−CSCF3aは、PSIリスト220を参照し、AS1のアドレスを特定する(55)。
その後、S−CSCF3aは、AS1にSIP INVITEを送信し(56、136)、本ルーチンを終了する。
ステップ53において、該当エントリが存在する場合、S−CSCF3aは、ステップ54を実行せずにステップ55を実行する。
図7のステップ134においてPSIフィルタ参照処理ルーチン50が起動された場合、S−CSCF3aが受信したメッセージは、Initial SIP Requestである。このため、図12のステップ51では、必ず「Yes」と判定される。しかし、図7の別のステップ(例えば、後述するステップ156)においてPSIフィルタ参照処理ルーチン50が起動された場合、S−CSCF3aが受信したメッセージがInitial SIP Requestでない場合がある。
ステップ51において、SIPメッセージがInitial SIP Requestでないと判定された場合、S−CSCF3aは、UE7aのPublic User Identityを検索キーとして、PSIフィルタ情報テーブル210を検索する(57)。
具体的には、ステップ57において、S−CSCF3aは、S−CSCF3aが受信したメッセージを対象として、PSIフィルタ情報テーブル210に該当エントリが存在するか否かを判定する。
ステップ57において、該当エントリが存在すると判定された場合、受信したメッセージの送信元であるUE7aのPublic User Identityと、受信したメッセージのRequest URIとの対応関係が、該当エントリに格納された対応関係と一致する。この場合、S−CSCF3aが受信したAS1宛のメッセージは、正当なアクセスであると考えられる。この場合、S−CSCF3aは、AS1のアドレスを特定し、その後、S−CSCF3aが受信したメッセージをAS1に送信し(136、56)、本ルーチン50を終了する。例えば、S−CSCF3aがセッション確立要求メッセージ(INVITE)を受信したことによって本ルーチン50が起動した場合、そのINVITEがステップ56において送信される。その結果、会議サービスが起動される。
ステップ57において、該当エントリが存在しないと判定された場合、S−CSCF3aが受信したメッセージは、不正なアクセスであると考えられる。例えば、PSIフィルタ情報テーブル210に、図4Bに示すエントリ210−1及び210−2のみが格納されている場合において、Public User Identityが「sip:user2_public1@home1.net」であるUE7bから送信されたメッセージをS−CSCF3aが受信した場合、そのPublic User IdentityはPSIフィルタ情報テーブル210に格納されていない。この場合、S−CSCF3aは、受信したUE7bからのメッセージを不正なアクセスであると判定し、エラー処理(58)を実行し、本ルーチンを終了する。
また、ステップ55において、PSIリスト220に、起動しようとする会議サービスのPSI221が存在しない場合、S−CSCF3aはエラー処理(58)を実行し、本ルーチンを終了する。
ここで、再び図7を参照する。
AS1は、上記セッション確立要求メッセージ(INVITE)を受信すると(136)、S−CSCF3aに上記INVITEへの暫定応答(100 Trying)を送信し(137)、アプリケーション処理プログラムを起動する。本実施の形態において、AS1は、会議サービスを提供するアプリケーションサーバである。
会議サービス用アプリケーション処理プログラムを起動中、AS1は、UE7aに会議室割り当てが必要であると判断し、PSI割当処理ルーチン60を起動する(138)。AS1は、PSI割当処理ルーチン60を実行することによって、UE7a用に仮のPSIを動的に割り当て、そのPSIをUE7a用会議室の特定に利用する。
図15は、本発明の第1の実施の形態のPSI割当処理ルーチン60を説明するフローチャートである。
図3において説明したように、PSI割当処理60は、AS1のメモリ15に格納され、CPU14によって実行されるプログラム17のサブプログラムである。従って、図15の説明においてAS1が実行する処理は、実際にはCPU14によって実行される。
AS1は、PSI割り当て要求を受けると(61)、PSI「conf1@as1.home1.net」」を生成し、生成したPSI「conf1@as1.home1.net」」をキーとしてPSI状態テーブル240を検索する。
生成したPSIを含むエントリが存在しない場合、AS1は、新規エントリ240−1を生成し、生成したPSI「conf1@as1.home1.net」をPSI 241に、状態「仮割り当て」をState 242に格納する(62)。
続いて、AS1は、上記PSIを含む暫定応答183をS−CSCF3aに送信し(63、139)、S−CSCF3aからの応答を待つ。なお、上記暫定応答183のContact headerには、AS1が生成したPSI「conf1@as1.home1.net」及びis focusパラメータが設定される。
再び図7を参照する。
S−CSCF3aは、AS1からSIP INVITEの暫定応答183を受信し(139)、PSIフィルタ更新処理ルーチン80を起動する。
図13は、本発明の第1の実施の形態のPSIフィルタ更新処理ルーチン80を説明するフローチャートである。
図2において説明したように、PSIフィルタ更新処理80は、S−CSCF3のメモリ35に格納され、CPU34によって実行されるプログラム37のサブプログラムである。従って、図13の説明においてS−CSCF3aが実行する処理は、実際にはCPU34によって実行される。
S−CSCF3aは、AS1から暫定応答183を受信すると(81)、受信した暫定応答183のContact Headerに、is focusパラメータが含まれるか否かを判断する(82)。
Contact Headerがis focusパラメータを含む場合、S−CSCF3aは、Contact HeaderからPSI(conf1@as1.home1.net)を抽出する。S−CSCF3aは、SIPプロトコルのDialog IDから、UE7aのPublic User Identityを抽出し、UE7aのPublic User Identityを検索キーとして、PSIフィルタ情報テーブル210を検索する。
PSIフィルタ情報テーブル210に、暫定応答183の送信先であるUE7aのPublic User IdentityをPublic User Identity 211として含み、かつ、Contact Headerから抽出されたPSI(conf1@as1.home1.net)をPSI212として含むエントリが存在しない場合、UE7aがこれから受けようとするサービスの識別子と、UE7aの識別子との対応関係がまだPSIフィルタ情報テーブル210に格納されていない。この場合、S−CSCF3aは、新規エントリ(210−1)にUE7aのPublic User Identity(sip:user1_public1@home1.net)と上記PSI(conf1@as1.home1.net)の対応情報を格納し(83、140)、本ルーチンを終了する。
ステップ82において、暫定応答183のContact Headerにis focusパラメータが含まれない場合、S−CSCF3aは、PSIフィルタ情報テーブル210を更新することなく、本ルーチンを終了する。
再び図7のシーケンスに戻り、説明を続ける。
S−CSCF3aは、INVITEへの暫定応答183をP−CSCF5a経由でUE7aへ送信する(141、142)。
UE7aは、暫定応答183(142)の受信をAS1に通知するため、PRACK(Provisional Response Acknowledgment)を送信する(143)。
S−CSCF3aは、PRACKを受信すると、PSIフィルタ参照処理ルーチン50を起動する(156)。この場合、PRACKメッセージはInitial SIP Requestではないため、S−CSCF3aは、UE7aのPublic User IdentityをキーとしてPSIフィルタ情報テーブル210を検索する(57)。ここで、S−CSCF3aは、ステップ155で更新されたエントリ(210−2)を該当エントリとして検出し、上記PRACKメッセージをAS1へ送信する。
ステップ57において、PSIフィルタ情報テーブル210に該当エントリが存在しない場合、S−CSCF3aは、エラー処理を実行し(58)、本ルーチン50を終了する。S−CSCF3aがPSIフィルタ情報テーブル210及びPSIフィルタ参照処理ルーチン50を保持することによって、S−CSCF3aは、PSIを用いたフィルタリングを実行することが可能になる。
AS1は、PRACKを正常に受信したことを示す応答メッセージ(200 OK)をUE7aに送信する(144)。
S−CSCF3aは、ステップ144の200 OKを受信すると、PSIフィルタ更新処理ルーチン80を起動する。しかし、この場合、is focusパラメータは含まれない(81、82)。よって、S−CSCF3aは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
続いて、UE7aは、リソース予約の完了を通知するため、AS1にUPDATEメッセージを送信する(145)。
S−CSCF3aは、UPDATEメッセージ(145)を受信すると、ステップ156と同様にPSIフィルタ参照処理ルーチン50を起動する(157)。この場合、UPDATEメッセージはInitial SIP Requestではないため、S−CSCF3aは、UE7aのPublic User IdentityをキーとしてPSIフィルタ情報テーブル210を検索する(57)。ここで、S−CSCF3aは、ステップ155で更新されたエントリ(210−2)を該当エントリとして検出し、上記UPDATEメッセージをAS1へ送信する。
ステップ57において、PSIフィルタ情報テーブル210に該当エントリが存在しない場合、S−CSCF3aは、エラー処理を実行し(58)、本ルーチン50を終了する。
AS1は、UPDATEメッセージ(145)を受信すると、UPDATEを正常に受信したことを示す応答メッセージ(200 OK)をS−CSCF3a及びP−CSCF5a経由でUE7aに送信する(146)。
S−CSCF3aは、ステップ146の200 OKを受信すると、PSIフィルタ更新処理ルーチン80を起動する。しかし、この場合、is focusパラメータは含まれない(81、82)。よって、S−CSCF3aは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
AS1は、UPDATEメッセージ(145)を受信すると、ステップ138で仮割り当てされたPSIを正式に割り当て、PSI状態管理テーブル240の該当エントリのState 242を「仮割り当て」から「ACTIVE」に更新する(147)。さらに、AS1は、AS1がステップ138で割り当てたPSI(conf1@as1.home1.net)を検索キーとして、参加者リスト250を検索する。参加者リスト250に、PSI「conf1@as1.home1.net」を含むエントリ存在する場合、AS1は、UE7aのPublic User IdentityをそのエントリのPublic User Identity 252に追加する。
一方、PSI「conf1@as1.home1.net」を含むエントリが参加者リスト250に存在しない場合、AS1は、新規エントリ(250−1)を追加し、PSI「conf1@as1.home1.net」とUE7aのPublic User Identityとの対応情報を格納する(147)。
AS1は、ステップ147で割り当てたPSIとUE7aのPublic User Identityの対応情報をHSS2に通知(PUR: Profile Update Request)する(148)。HSS2は、ステップ148の通知を受信すると、通知に含まれる対応情報を格納し、PURの応答メッセージ(PUA: Profile Update Response)をS−CSCF3aに送信する(149、150)。
AS1は、ステップ136で受信したINVITEへの最終応答200 OKをS−CSCF3a、P−CSCF5a経由でUE7aに送信する(151、153)。
S−CSCF3aは、ステップ151の200 OKを受信すると、PSIフィルタ更新処理ルーチン80を起動する。しかし、この場合、受信した応答にis focusパラメータは含まれない(81、82)。よって、S−CSCF3aは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
UE7aは、上記正常応答メッセージ(153)を受信すると、応答確認メッセージ(ACK)をP−CSCF5a及びS−CSCF3a経由でAS1に送信する(154)。
S−CSCF3aは、ACKメッセージ(154)を受信すると、ステップ156と同様にPSIフィルタ参照処理ルーチン50を起動する(160)。この場合、ACKメッセージはInitial SIP Requestではないため(51)、S−CSCF3aは、UE7aのPublic User IdentityをキーとしてPSIフィルタ情報テーブル210を検索する(57)。ここで、S−CSCF3aは、ステップ155で更新されたエントリ(210−2)を該当エントリとして検出し、上記ACKメッセージをAS1へ送信する。
ステップ57において、UE7aのPublic User Identityを含むエントリがPSIフィルタ情報テーブル210に存在しない場合、S−CSCF3aは、エラー処理を実行し(58)、本ルーチン50を終了する。
UE7aは、以上のシーケンスに従って、AS1が実行を制御する会議サービスを起動する。以上のシーケンスを実行することによって、UE7aが参加する会議室用のアドレス宛のメッセージの通過をS−CSCF3aが許可又は禁止するメカニズムを提供することが可能になる。この結果、AS1への許可されていない(すなわち、不正な)メッセージの転送を防ぐことができる。
次に、UE7aが会議室にUE7bを召集する手順を説明する。
図8は、本発明の第1の実施の形態のUE7aが会議室にUE7bを召集する手順を説明するシーケンス図である。
ここで、UE7bは、図6に示すUE7aの登録と同様の手順によって、S−SCCF3bに登録されているものとする。
UE7aは、UE7bを会議サービスに召集するため、REFERメッセージをP−CSCF5a経由でS−CSCF3aに送信する。REFERメッセージのRequest URIヘッダには、UE7bのPublic User Identity(SIP: user2_public1@home1.net)が設定される。また、REFERメッセージのRefer−to headerには、UE7aがUE7bを召集する会議室の識別子(conf1@as1.home1.com)が含まれる。
S−CSCF3aは、上記REFERメッセージのRequest URIから、UE7bが契約する網(ホーム網)に存在するI−CSCF4bを特定し、特定されたI−CSCF4bへREFERメッセージを送信する(161)。
I−CSCF4bは、ステップ161で受信したSIP REFERメッセージに含まれるUE7bの公開アドレスを検索キーとして、HSS2に位置情報問い合わせメッセージ(LIR: Location Information Request)を送信する(162)。
HSS2は、UE7bの公開アドレスを検索キーとして加入者情報を参照し、UE7bに割り当てられているS−CSCF3bのアドレスを検出する。そして、HSS2は、S−CSCF3bのアドレス情報を含む応答メッセージ(LIA: Location Information Answer)をI−CSCF4bに送信する(163)。
I−CSCF4bは、上記メッセージLIAに含まれるS−CSCF3b宛にSIP REFERメッセージを送信する(164)。
ステップ164を受信したS−CSCF3bは、PSIフィルタ参照処理ルーチン50を起動する(165)。上記REFERメッセージ(164)は、Initial SIP Requestであるため(51)、S−CSCF3bは、登録時にHSSからダウンロードした加入者情報(Serivice Profile)を参照して、アプリケーションサーバを起動するか否かを判断する(52)。
ここで、S−CSCF3bは、UE7bが会議サービスに加入していると判定し、S−CSCF3bが保持するPSIフィルタ情報テーブル210にUE7b用のエントリを格納する(166)。ここで格納されるUE7b用のエントリは、UE7bの公開アドレス(Public User Identity)と、REFER−to headerに設定されている会議室を示すPSI(conf1@as1.home1.net)との対応関係を示す情報を含む。
その後、S−CSCF3bは、P−CSCF5b経由でUE7bにSIP REFERメッセージを送信する(167)。
UE7bは、上記SIP要求の正常応答(応答コード:202)を、P−CSCF5b、S−CSCF3b、I−CSCF4b、S−CSCF3a及びP−CSCF5a経由でUE7aに送信する(168)。
応答コードを受信したUE7bは、UE7aにREFER(167)で受信したイベントの状態を通知するため、UE7aにSIP NOTIFYメッセージを送信する(169)。
UE7aは、上記SIP NOTIFYを受信すると、UE7bにNOTIFYへの正常応答(200)を送信する(170)。
ステップ167のSIP REFERメッセージを受信したUE7bは、召集された会議室に参加する場合、後述する図9のシーケンスを実行する(171)。
UE7bが会議室への参加処理(図9)を終了すると、UE7bは、UE7aにSIP NOTIFYメッセージを送信し、会議室への参加処理終了を通知する(172)。UE7aは、上記SIP NOTIFYメッセージを正常に受信すると、応答コード200をUE7bに送信する(173)。
以後、S−CSCF3a及びS−CSCF3bは、SIP要求メッセージを受信すると、PSIフィルタ参照処理ルーチン50を起動する。その結果、S−CSCF3a及びS−CSCF3bは、SIP要求メッセージの送信元のUE7の識別子と、送信先のAS1の識別子(又は、UE7が受けているサービスの識別子)との対応関係が、PSIフィルタ情報テーブルに格納されている情報が示す対応関係と一致するか否かを判定する(57)。これらの対応関係が一致する場合のみ、S−CSCF3a及びS−CSCF3bは、SIP要求メッセージをAS1に送信する(56)。これらの対応関係が一致しない場合、受信したSIP要求メッセージが不正なものであるため、S−CSCF3a及びS−CSCF3bは、SIP要求メッセージをAS1に送信せずに、エラー処理を実行する(58)。
次に、UE7bがUE7aに召集された会議室に参加する手順を説明する。
図9は、本発明の第1の実施の形態のUE7bがUE7aに召集された会議室に参加する手順を説明するシーケンス図である。
UE7bは、ステップ167で受信した会議室のPSI(例えば、conference_factory@as1.home1.net)をRequest URIとして設定したセッション確立要求メッセージ(INVITE)を送信する(181)。このSIP INVITEは、例えば、P−Preferred−Identity headerにUE7bの公開アドレス(Public User Identity)を含む。
P−CSCF5bは、上記セッション確立要求メッセージ(INVITE)を受信すると、UE7bに割り当てられたS−CSCF3bのアドレスを読み出し、S−CSCF3bにセッション確立要求メッセージ(INVITE)を送信する(183)。その後、P−CSCF5bは、UE7bに上記INVITEへの暫定応答(100 Trying)を送信する(182)。
S−CSCF3bは、上記セッション確立要求メッセージ(INVITE)を受信すると、P−CSCF5bに上記INVITEへの暫定応答(100 Trying)を送信し、図12に示すPSIフィルタ参照処理ルーチン50を起動する(184)。以下の手順のうち、既に説明した手順については、詳細な説明を省略する。
まず、S−CSCF3bは、SIPメッセージが、REGISTER以外のInitial SIP Requestであるか否かを確認する(51)。ここで、REGISTER以外のInitial SIP Requestとは、新しいSIP dialogを確立するSIP要求、又は、単一トランザクション用SIP要求である。
受信したSIP要求がInitial SIP Requestである場合、S−CSCF3bは、Public User Identityを検索キーとして、登録情報テーブル200を検索し、AS1を起動するか否かを確認する(52)。ここで、S−CSCF3bは、UE7bの登録時にS−CSCF3bがHSSから取得したService Profileを参照し(185)、UE7aが会議サービスに加入していることを確認する。
次に、S−CSCF3bは、Public User Identityを検索キーとして、PSIフィルタ情報テーブル210を検索する(53)。ここで、S−CSCF3bは、ステップ166で更新されたエントリを検出する(199)。
その後、S−CSCF3bは、PSIリスト220を参照し、AS1のアドレスを特定し(56)、AS1にSIP INVITEを送信し(186)、本ルーチン50を終了する。
AS1は、上記セッション確立要求メッセージ(INVITE)を受信すると(186)、S−CSCF3bに上記INVITEへの暫定応答(100 Trying)を送信し(187)、アプリケーション処理プログラムを起動する。本実施の形態において、AS1は、会議サービスを提供するアプリケーションサーバである。
会議サービス用アプリケーション処理プログラムを起動中、AS1は、上記INVITEのRequest URIに設定されたPSI(conf1@as1.home1.net)を検索キーとして、PSI状態テーブル240を検索する。ここで、AS1は、エントリ240−1を検出し、上記PSIの状態242を確認する(188)。PSIの状態が「active」である場合、上記PSIはAS1によって割り当てられたと判定できる。
続いて、AS1は、PSI(conf1@as1.home1.net)を検索キーとして、参加者リスト250を検索する。AS1は、ステップ147で生成されたエントリ250−1を検出し、そのエントリ250−1のPublic User Identity 252に、UE7bのPublic User Identity(sip:user2_public1@home1.net)を追加する。
続いて、AS1は、上記PSIを含む暫定応答183をS−CSCF3bに送信し(189)、S−CSCF3bからの応答を待つ。
S−CSCF3bは、AS1からSIP INVITEの暫定応答183を受信すると(189)、PSIフィルタ更新処理ルーチン80を起動する(81)。
ステップ82において、上記暫定応答183のContact Headerにis focusパラメータが含まれない場合、S−CSCF3bは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
S−CSCF3bは、INVITEへの暫定応答183をP−CSCF5b経由でUE7bへ送信する(190、191)。
UE7bは、暫定応答(191)の受信をAS1に通知するため、PRACKを送信する(192)。
S−CSCF3bは、PRACKを受信すると、PSIフィルタ参照処理ルーチン50を起動する。この場合、PRACKメッセージはInitial SIP Requestではないため(51)、S−CSCF3bは、UE7bのPublic User IdentityをキーとしてPSIフィルタ情報テーブル210を検索する(57)。ここで、S−CSCF3bは、ステップ166で更新されたエントリを検出し、上記PRACKメッセージをAS1へ送信する。
ステップ57において、PSIフィルタ情報テーブル210に該当エントリが存在しない場合、S−CSCF3bは、エラー処理を実行し(58)、本ルーチン50を終了する。
以上のように、S−CSCF3bは、PSIフィルタ情報テーブル210を保持し、PSIフィルタ参照処理ルーチン50を実行することによって、PSIを用いたフィルタリングを行うことが可能になる。言い換えると、S−CSCF3bは、UE7bが参加する会議室用のアドレス宛のメッセージの通過を、PSIに基づいて許可又は禁止することができる。
AS1は、PRACKを正常に受信したことを示す応答メッセージ(200 OK)をUE7bに送信する(193)。S−CSCF3bは、200 OKを受信すると、PSIフィルタ更新処理ルーチン80を起動する。しかし、この場合、受信したメッセージにis focusパラメータは含まれない(81、82)。よって、S−CSCF3bは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
続いて、UE7bは、リソース予約の完了を通知するため、AS1にUPDATEメッセージを送信する(194)。
S−CSCF3bは、UPDATEメッセージ(194)受信すると、PSIフィルタ参照処理ルーチン50を起動して、UE7bのPublic User IdentityをキーとしてPSIフィルタ情報テーブル210を検索する(57)。ここで、S−CSCF3bは、ステップ166で更新されたエントリを検出し、上記UPDATEメッセージをAS1へ送信する。
ステップ57において、UE7bのPublic User Identityを含むエントリがPSIフィルタ情報テーブル210に存在しない場合、S−CSCF3bは、エラー処理を実行し(58)、本ルーチン50を終了する。
AS1は、UPDATEメッセージ(194)を受信すると、UPDATEを正常に受信したことを示す応答メッセージ(200 OK)を、S−CSCF3b及びP−CSCF5b経由でUE7bに送信する(195)。
S−CSCF3bは、200 OKを受信すると、PSIフィルタ更新処理ルーチン80を起動する。しかし、この場合、受信したメッセージにis focusパラメータは含まれない(81、82)。よって、S−CSCF3bは、PSIフィルタ情報テーブル210を更新することなく、本ルーチン80を終了する。
続いて、AS1は、ステップ186で受信したINVITEへの最終応答200を、S−CSCF3b及びP−CSCF5b経由でUE7bに送信する(196)。
UE7bは、上記正常応答メッセージ196を受信すると、応答確認メッセージ(ACK)をP−CSCF5b及びS−CSCF3b経由でAS1に送信する(197)。
以上の処理によって、UE7bは、UE7aに召集された会議室(conf1@as1.home1.net)へ参加することが可能になる。
次に、UE7bがUE7aに召集された会議室から退出する手順を説明する。
図10は、本発明の第1の実施の形態のUE7bが、UE7aに召集された会議室から退出する手順を説明するシーケンス図である。
UE7bは、P−CSCF5b及びS−CSCF3b経由で、AS1に解放要求(BYE)メッセージを送信する(501、502、503)。この解放要求(BYE)のRequest URIには、UE7bがUE7aから招待された会議室(以下の説明において、UE7bが退室しようとする会議室)を示すアプリケーション識別子PSI(conf1@as1.home1.net)が設定される。
S−CSCF3bは、解放要求(BYE)を受信すると(502)、PSIフィルタ更新処理(セッション終了時)のルーチン90を起動する。
図14は、本発明の第1の実施の形態のPSIフィルタ更新処理(セッション終了時)ルーチン90を説明するフローチャートである。
図2において説明したように、PSIフィルタ更新処理(セッション終了時)90は、S−CSCF3のメモリ35に格納され、CPU34によって実行されるプログラム37のサブプログラムである。従って、図14の説明においてS−CSCF3aが実行する処理は、実際にはCPU34によって実行される。
S−CSCF3bは、解放要求(BYE)を受信すると(91)、UE7bが退室しようとする会議室を示すPSI(conf1@as1.home1.net)を検索キーとして、PSIフィルタ情報テーブル210を検索する(92)。ここで、S−CSCF3bは、ステップ190で生成されたエントリを検出する。
ステップ92において、検索条件に適合するエントリがある場合、S−CSCF3bは、AS1に開放要求(BYE)を送信し、AS1からの応答を待つ(93)。
ステップ92において、PSIフィルタ情報テーブル210に、検索条件に適合するエントリが存在しない場合、S−CSCF3bは、通常のBYE送信処理を実行する(96)。
ここで、再び図10を参照する。AS1は、上記解放要求(BYE)(503)を受信すると、UE7bが退室しようとする会議室を示すPSI(conf1@as1.home1.net)を検索キーとして参加者リスト250を検索する。AS1は、ステップ188で更新されたエントリ(250−1)を検出し、検出されたエントリのPublic User Identity 252からUE7bの情報を削除する(504)。
その後、AS1は、UE7bに解放要求(BYE)の正常終了(200 OK)を送信する(505)。
上記正常応答505を受信したS−CSCF3bは、PSIフィルタ更新処理(セッション終了時)ルーチンを再開する(94)。再び図14を参照する。S−CSCF3bは、ステップ92において検出されたエントリからUE7bのPublic User Identityを削除し(506、95)、本ルーチン90を終了する。
PSIを利用するユーザがアプリケーションの利用を終了した場合、S−CSCF3は、PSIフィルタ更新処理(セッション終了時)ルーチン90を実行することによって、PSIとユーザの対応情報を更新することができる。その後、S−CSCF3は、更新された対応情報に基づいて、メッセージの通過の許可又は禁止を判定する。その結果、あるユーザから、そのユーザが既に利用を終了したアプリケーションに関するメッセージを受けたS−CSCF3は、そのメッセージの通過を禁止する。
次に、UE7aが会議室から退出するとともに、会議室を終了する手順を説明する。
図11は、本発明の第1の実施の形態のUE7aが会議室から退出するとともに、会議室を終了する手順を説明するシーケンス図である。
UE7aは、P−CSCF5a、S−CSCF3a経由でAS1に解放要求(BYE)メッセージを送信する(521、522、523)。この解放要求(BYE)のRequest URIには、UE7aがAS1から受信した会議室(以下の説明において、UE7bが退室しようとする会議室)を示すアプリケーション識別子PSI(conf1@as1.home1.net)が設定される。
S−CSCF3aは、解放要求(BYE)を受信すると(522)、PSIフィルタ更新処理(セッション終了時)のルーチン90を起動する(91)。
S−CSCF3aは、UE7aが退室しようとする会議室を示すPSI(conf1@as1.home1.net)を検索キーとして、PSIフィルタ情報テーブル210を検索する(92)。ここで、S−CSCF3aは、ステップ155で生成されたエントリ(210−1)を検出する。
ステップ92において、検索条件に適合するエントリがある場合、S−CSCF3aは、AS1に開放要求(BYE)を送信し、AS1からの応答を待つ(93)。
ステップ92において、PSIフィルタ情報テーブル210に、検索条件に適合するエントリが存在しない場合、S−CSCF3aは、通常のBYE送信処理を実行する(96)。
AS1は、上記解放要求(BYE)(523)を受信すると、UE7aが退室しようとする会議室を示すPSI(conf1@as1.home1.net)を検索キーとして参加者リスト250を検索する。AS1は、ステップ147で更新されたエントリ(250−1)を検出し、検出されたエントリのPublic User Identity 252からUE7aの情報を削除する。このとき、エントリ250−1のPSIを利用するPublic User Identityが存在しなくなるため、AS1は、エントリ250−1をテーブル250から削除する。
AS1は、テーブル250からエントリを削除したとき、PSI割当解除処理ルーチン70を起動し、PSI割当解除を要求する(524)。
図16は、本発明の第1の実施の形態のPSI割当解除処理ルーチン70を説明するフローチャートである。
図3において説明したように、PSI割当解除処理70は、AS1のメモリ15に格納され、CPU14によって実行されるプログラム17のサブプログラムである。従って、図16の説明においてAS1が実行する処理は、実際にはCPU14によって実行される。
AS1は、PSI割当解除要求を受信すると(71)、削除対象PSIを検索キーとして、PSI状態テーブルを検索する。ここで、AS1は、ステップ138で仮割当を行い、ステップ147で正式に割り当てたエントリ240−1を検出し、そのエントリ240−1を削除する(72)。
さらに、AS1は、HSS2に、HSS2が管理するPSI情報の更新を要求する(PUR: Profile Update Request)(73、525)。
HSS2は、ステップ149で更新したActivateしたPSIをdeactivateし(526)、AS1に応答(PUA:Profile Update Answer)を送信する(527)。
AS1は、HSS2からPUA(527)を受信すると(528)、PSI割当解除処理ルーチン70を終了する。
ここで、図11に戻り、シーケンスの説明を続ける。
その後、AS1は、UE7aに解放要求(BYE)の正常終了(200 OK)を送信する(528、530、531)。
上記正常応答528を受信したS−CSCF3aは、PSIフィルタ更新処理(セッション終了時)ルーチンを再開する(94)。S−CSCF3aは、ステップ92において検出されたエントリからUE7aのPublic User Identityを削除し(95、529)、本ルーチン90を終了する。
AS1がPSIフィルタ更新処理(セッション終了時)ルーチン90を備えることにより、PSIを利用するユーザがアプリケーションの利用を終了した場合、AS1はPSIとユーザの対応情報を更新できる。
S−CSCF3がPSIフィルタ更新処理(セッション終了時)のルーチン90を実行することによって、S−CSCF3は、PSIを用いたアクセス制御を動的に実行することができる。すなわち、AS1への不正アクセスを防止することが可能になる。
なお、本実施の形態において、S−CSCF3とHSS2は、同一の通信装置によって実現されてもよい。或いは、本実施の形態において、S−CSCF3とAS1は、同一の装置によって実現されてもよい。或いは、本実施の形態において、S−CSCF3とAS1とHSS2は、同一の装置によって実現されてもよい。或いは、S−CSCF3、I−CSCF4及びP−CSCF5が同一の装置によって実現されてもよい。
以上、本発明の第1の実施の形態によると、UE7がアプリケーションの利用を開始する時に、S−CSCF3は、アプリケーション識別子とユーザ(UE7)の公開アドレスとを対応付けて、PSIフィルタ情報テーブル210として保持する。そして、UE7がプリケーションの利用を終了すると、S−CSCF3は、上記対応を解除する。S−CSCF3は、UE7が利用するアプリケーション識別子を、パケットフィルタリング情報として利用することができる。
具体的には、S−CSCF3は、UE7又はその他の端末からAS1宛のメッセージを含むパケットを受信したとき(例えば、図7のステップ134、155、156、157、160、図9のステップ192及び194等)、図12に示すPSIフィルタ参照処理ルーチン50を実行する。メッセージがInitial SIP Requestでない場合、S−CSCF3は、PSIフィルタ情報テーブル210に該当エントリが存在するか否かを判定する(57)。
ステップ57において該当エントリが存在する場合、受信したメッセージをAS1に送信することは、不正アクセスに該当しない。このため、S−CSCF3は、受信したメッセージを含むパケットの通過を許可し、そのパケットをAS1に送信する(56)。
一方、ステップ57において該当エントリが存在しない場合、受信したメッセージをAS1に送信することは、不正アクセスに該当する。このため、S−CSCF3は、受信したメッセージを含むパケットの通過を禁止し、エラー処理を実行する(58)。
このように、S−CSCF3がアプリケーション識別子を用いてパケットフィルタリングを行うことによって、AS1への不正アクセスを防ぐことができる。
次に、本発明の第2の実施の形態を、図面を用いて説明する。
上記の第1の実施の形態では、S−CSCF3が、受信したパケットの通過を許可するか否かを判定することによってAS1への不正なアクセスを防止した。これに対して、第2の実施の形態のS−CSCF3は、パケットの通過を制御しない。代わりに、第2の実施の形態では、AS1が、受信したパケットが要求するアプリケーションを実行するか否かを判定する。
第2の実施の形態は、上記のようなAS1によるパケットフィルタリングを実現するため、AS1が、アプリケーション識別子を用いたフィルタリング手段を備えることを特徴とする。
AS1が上記のパケットフィルタリング手段を備えることによって、AS1は、S−CSCF3から信号を受信したとき、アプリケーション識別子(PSI)を用いたパケットフィルタリングを実行することが可能になる。
本発明の第2の実施の形態の通信網は、第1の実施の形態と同様であるため、説明を省略する(図1参照)。以下、本発明の第2の実施の形態が第1の実施の形態と相違する点についてのみ説明する。
第2の実施の形態において、S−CSCF3のメモリ37は、PSIフィルタ参照処理50、PSIフィルタ更新処理80、PSIフィルタ更新処理(セッション終了時)90及びPSIフィルタ情報テーブル210を備えない。
第2の実施の形態において、AS1のメモリ17は、さらに、PSIフィルタ処理270を備える。
図17は、本発明の第2の実施の形態のS−CSCF3の構成例を示す説明図である。
第2の実施の形態において、S−CSCF3のメモリ37は、PSIフィルタ参照処理50、PSIフィルタ更新処理80、PSIフィルタ更新処理(セッション終了時)90、PSIフィルタ情報テーブル210を記憶しなくてもよい点が、第1の実施の形態(図2参照)と異なる。その他の点は、第1の実施の形態と同様であるため、説明を省略する。
図18は、本発明の第2の実施の形態のAS1の構成例を示す説明図である。
第2の実施の形態において、AS1のメモリ17は、第1の実施の形態と同様、プログラム17及び18を記憶する。第2の実施の形態のプログラム17は、さらに、PSIフィルタ処理270を含む。また、第2の実施の形態におけるPSI状態テーブル240は、AS1が動的に割り当てたPSIに加えて、事前設定されるPSI(例えば、conference_factory@as1.home1.net)も格納する。第2の実施の形態のAS1のメモリ17以外の構成は、第1の実施の形態と同じである。
PSIフィルタ処理270については、図19を参照して詳細に説明する。AS1がPSIフィルタ処理270を備え、AS1がメッセージを受信する際、PSIフィルタ処理270を起動することによって、AS1がPSIを用いたフィルタリング機能を提供することができる。
図19は、本発明の第2の実施の形態におけるアプリケーションフィルタイリングに利用されるPSIフィルタ処理ルーチン270を説明するフローチャートである。
既に説明したPSI割当処理ルーチン60等と同様、PSIフィルタ処理ルーチン270は、実際にはAS1のCPU14によって実行される。
本ルーチン270は、AS1がセッション制御メッセージを受信したときに起動される。
最初に、AS1は、受信したセッション制御メッセージに含まれるPSIをキーとしてPSI状態テーブル240を検索し、キーとしたPSIを含むエントリがあるか否かを判定する(271)。AS1は、ステップ271の条件に適合するエントリが存在する場合のみアプリケーションを実行し(272)、適合するエントリが存在しない場合、エラー応答を送信する(273)。
以上の処理によって、AS1は、パケット受信時、UE7の公開アドレス及びアプリケーション識別子(PSI)をパケットフィルタリングの条件として利用することができる。すなわち、AS1は、PSIを用いてアクセス制御を提供することができる。
第2の実施の形態におけるUE7の登録手順は、第1の実施の形態と同様である(図6参照)。
図20は、本発明の第2の実施の形態において、UE7aがアプリケーション(会議サービス)を起動する手順を説明するシーケンス図である。
以下、図20に示す手順のうち、図7と同じ手順については、説明を省略する。
本実施の形態のS−CSCF3aは、図7に示すステップ155、140、156、157及び160を実行しない。また、本実施の形態のS−CSCF3aは、ステップ144、146及び151において、PSIフィルタ更新処理ルーチン80(図13参照)を実行しない。代わりに、ステップ136、143、145及び154において、AS1がPSIフィルタ処理ルーチン270(図19参照)を実行する。
図21は、本発明の第2の実施の形態において、UE7aがUE7bを会議サービスに召集する手順を説明するシーケンス図である。
以下、図21に示す手順のうち、図8と同じ手順については、説明を省略する。
本実施の形態のS−CSCF3bは、図8に示すステップ166を実行しない。また、本実施の形態のS−CSCF3bは、ステップ168、169、170、172及び173において、PSIフィルタ参照処理ルーチン50(図12参照)を実行しない。
図22は、本発明の第2の実施の形態において、UE7bが会議サービスに参加する手順を説明するシーケンスを図である。
以下、図22に示す手順のうち、図9と同じ手順については、説明を省略する。
本実施の形態のS−CSCF3bは、図9に示すステップ199を実行しない。また、本実施の形態のS−CSCF3bは、ステップ192、194及び197において、PSIフィルタ参照処理ルーチン50(図12参照)を実行しない。また、本実施の形態のS−CSCF3bは、ステップ187、189、193、195及び196において、PSIフィルタ更新処理ルーチン80(図13参照)を実行しない。代わりに、ステップ186、192、194及び197において、AS1がPSIフィルタ処理ルーチン270(図19参照)を実行する。
図23は、本発明の第2の実施の形態において、UE7bが会議サービスから退出する手順を説明するシーケンスを図である。
以下、図23に示す手順のうち、図10と同じ手順については、説明を省略する。
本実施の形態のS−CSCF3bは、図10に示すステップ506を実行しない。また、本実施の形態のS−CSCF3bは、ステップ502において、セッション終了時のPSIフィルタ更新処理ルーチン90(図14参照)を実行しない。
図24は、本発明の第2の実施の形態において、UE7aが会議サービスを終了する手順を説明するシーケンスを図である。
以下、図24に示す手順のうち、図11と同じ手順については、説明を省略する。
本実施の形態のS−CSCF3aは、図11に示すステップ529を実行しない。また、本実施の形態のS−CSCF3aは、ステップ522において、セッション終了時のPSIフィルタ更新処理ルーチン90(図14参照)を実行しない。
以上、本発明の第2の実施の形態によれば、S−CSCF3がPSIを用いたフィルタリングを実行する代わりに、AS1が、パケットを受信したときに、PSIフィルタ処理ルーチン270を起動することによって、AS1に対する不正なアクセスを防止する。
なお、本実施の形態において、S−CSCF3とHSS2は、同一の通信装置によって実現されてもよい。
或いは、本実施の形態において、S−CSCF3とAS1は、同一の装置によって実現されてもよい。或いは、本実施の形態において、S−CSCF3とAS1とHSS2とが同一の装置によって実現されてもよい。或いは、S−CSCF3、I−CSCF4及びP−CSCF5が同一の装置によって実現されてもよい。
本発明の第2の実施の形態によると、AS1は、UE7が利用するPSI情報を管理し、そのPSIに基づいてパケットフィルタリングを実行する。その結果、S−CSCF3がPSIを用いたフィルタリング機能を備えることなく、AS1がPSIを用いたパケットフィルタリング機能を提供することができる。
次に、本発明の第3の実施の形態を、図面を用いて説明する。
図25は、本発明の第3の実施の形態の通信網の構成例を示す説明図である。
本発明の第1の実施の形態は、UE7がSIPに準拠した通信を実行することを前提としていた。このため、SIPサーバであるS−CSCF3等がSIPメッセージのやり取りを制御した。しかし、本発明は、SIP以外のプロトコルにも適用することができる。本発明の第3の実施の形態は、UE7がHTTPに準拠した通信を実行する場合に本発明を実施する例を示す。なお、HTTPは一例であり、他のプロトコルが適用される場合にも、本発明を実施することができる。
本実施の形態における通信網は、IP網N1と、無線アクセス網N2(N2a、N2b)(RAN: Radio Access Network)とによって構成される。UE7は、第3世代移動通信プロトコルに準拠した端末である。ただし、本発明の効果を奏することができる構成である限り、無線アクセス網N2は固定網であってもよく、UE7は、固定端末、或いは、無線LANなどその他の移動通信プロトコルに準拠した端末であってもよい。
IP網N1とRAN N2とは、アクセスゲートウェイ装置(AGW)6(6a、6b)を介して接続される。アクセスゲートウェイ装置6の代わりに、ルータなど、他の通信装置を介して、IP網N1とRAN N2が接続されてもよい。アクセスゲートウェイ装置6は、UEとIP網N1との間で送受信されるIPパケットを転送する機能を提供する。
IP網N1は、ゲートウェイ装置(GW)701、リダイレクトサーバ702及びサーバ703を備える。
リダイレクトサーバ702は、UE7からHTTPリクエストを受信したとき、アプリケーションを提供するサーバ703の情報をUE7に通知する(リダイレクトする)機能を備える。
サーバ703は、アプリケーションの実行を制御する機能を備える。
ゲートウェイ装置(GW)701は、第1の実施の形態のS−CSCF3と同様に、リダイレクトサーバ702から、通信先のサーバ703上で提供されるアプリケーションの識別情報を受信すると、端末UE7の識別情報と上記アプリケーションの識別情報の対応関係を示す情報を保持する。この情報は、例えば、第1の実施の形態のPSIフィルタ情報テーブル210と同様の情報であってもよい。
また、GW701は、第1の実施の形態のS−CSCF3と同様に、サーバ703宛の要求を受信したとき、上記対応関係を示す情報を参照し、サーバ703へのアクセス可否を判断する。
GW701は、上記のように、第1の実施の形態のS−CSCF3と同様の機能を備えることによって、UE7から信号を受信したとき、アプリケーション識別子を用いたパケットフィルタリング機能を提供することができる。
次に、本発明の第4の実施の形態を、図面を用いて説明する。
図26は、本発明の第4の実施の形態における通信網の構成例を示す説明図である。
本実施の形態における通信網は、IP網N1にフィルタ装置8が接続させる点において、第1の実施の形態の通信網と相違する。
フィルタ装置8は、少なくとも、IP網N1に接続されるインタフェース(図示省略)と、インタフェースに接続されるCPU(図示省略)と、CPUに接続されるメモリ(図示省略)と、を備える。
CPUは、メモリに記憶されたプログラムを実行するプロセッサである。
メモリには、第1の実施の形態におけるS−CSCF3のメモリ35と同様、PSIフィルタ参照処理、PSIフィルタ更新処理、PSIフィルタ更新処理(セッション終了時)、PSIフィルタ情報テーブル及びPSIリストが記憶される。これらの処理プログラム及びテーブル等は、第1の実施の形態において説明したように、パケットフィルタリングのために使用される。
フィルタ装置8が、上記のように、パケットフィルタリングのための処理を実行することによって、パケットフィルタリングの機能と、本来のS−CSCF3の機能を別の装置に実装することが可能になる。
以上、本発明の実施の形態によれば、SIP通信機能を備える通信制御装置が、アプリケーションサーバが生成したアプリケーション識別子を含むメッセージを受信すると、端末とアプリケーション識別子の対応情報を格納する。SIP通信機能を備える通信制御装置は、端末からSIPメッセージを受信すると、上記の対応情報を参照して、アプリケーションサーバへのアクセスを制御する。これによって、SIP通信機能を備える通信制御装置は、動的に生成された識別子を用いたアクセス制御を提供することができる。この結果、不正なアプリケーション識別子を用いたアプリケーションサーバへのアクセスを防ぐことができる。