(57)【特許請求の範囲】
【請求項１】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御をコンピュータに実行させるＳＩＰアプリケーション制御プログラムであって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、
前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークであるレジストラフレームワーク処理ステップと
をコンピュータに実行させるＳＩＰアプリケーション制御プログラム。
【請求項２】
請求項１に記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクションプログラムと、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムとを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークであるプロキシフレームワーク処理ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
【請求項３】
請求項１または請求項２に記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムと、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクションプログラムとを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークであるＳＩＭＰＬＥフレームワーク処理ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
【請求項４】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の動作に応じたＳＩＰアプリケーションの制御を行うＳＩＰサーバであって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の呼び出し先を定義するコンテナ定義部と、
前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部からの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクション処理部と、ロケーションサーバへ接続して操作するロケーションサーバ操作アクション処理部と、レジストラアプリケーション固有の処理を行うレジストラアクション処理部とを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理部と
を備えるＳＩＰサーバ。
【請求項５】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御を実行するＳＩＰアプリケーション制御方法であって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、
前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理ステップと
を実行するＳＩＰアプリケーション制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＰ（Session Initiation Protocol）を利用するＳＩＰアプリケーションのためのＳＩＰアプリケーション制御プログラム、ＳＩＰサーバ、ＳＩＰアプリケーション制御方法に関するものである。
【背景技術】
【０００２】
ＳＩＰは、ＩＰ（Internet Protocol）電話等のセションを確立するためのプロトコルである。図９は、従来のＳＩＰアプリケーションシステムの構成の一例を示すブロック図である。従来のＳＩＰアプリケーションシステムにおいて、発行要求を行うＵＡＣ（ユーザエージェントクライアント）１と着信を行うＵＡＳ（ユーザエージェントサーバ）２は、それぞれ直接通信ができるように同一ネットワークに接続されており、ＳＩＰサーバ３を介して接続される。ＳＩＰサーバ３は、ロケーションサーバ４、認証サーバ５、プレゼンスサーバ６に直接又はネットワーク経由で接続され、それぞれにアクセスすることができる。なお、ＳＩＰサーバ３とロケーションサーバ４とは、通常、ＬＤＡＰ等のプロトコルで接続されることが一般的である。
【０００３】
ＵＡＣ１の利用者がＵＡＳ２の利用者に対して電話をかける場合、ＵＡＣ１の利用者による操作に従って、ＵＡＣ１はＳＩＰサーバ３に対して発行要求を行う。このときＵＡＣ１は、ＳＩＰサーバ３に対して、認証用のＩＤとパスフレーズ、接続先電話番号に相当するユニバーサルＳＩＰアドレスを通知する。ＳＩＰサーバ３は、認証サーバ５に対して、このＩＤとパスフレーズの問い合わせを行い、正しければ次の処理に進み、誤りがあれば、ＵＡＣ１にエラーを返却する。次に、ＳＩＰサーバ３は、ロケーションサーバ４へユニバーサルＩＰアドレスを通知して問い合わせを行い、ロケーションサーバ４から返却されるローカルＳＩＰアドレスを取得する。ロケーションサーバ４は、ＵＡＣ１やＵＡＳ２等の端末の位置情報を一元的又は分散的に管理し、代表アドレスであるユニバーサルＳＩＰアドレスからＩＰアドレス等を含んだ実際の論理位置情報であるローカルＳＩＰアドレスへの変換を行う。
【０００４】
この段階で、ＳＩＰサーバ３はＵＡＳ２のローカルＳＩＰアドレスを知っているので、更にＳＩＰサーバ３はＵＡＳ２への発呼要求を行う。ＵＡＳ２は、この発呼要求を受けて着信音等の通知方法を用いてＵＡＳ２の利用者に着信を通知する。ＵＡＳ２の利用者による着信の操作に従って、ＵＡＳ２はＳＩＰサーバ３に対して正常応答を返却し、ＳＩＰサーバ３は更にこの正常応答をＵＡＣ１に中継する。ＵＡＣ１は応答を正しく受け取ったことを示すＡＣＫ要求をＳＩＰサーバ３に通知し、ＳＩＰサーバ３はこのＡＣＫ要求をＵＡＳ２に中継する。
【０００５】
以上の処理が完了した段階でＳＩＰのセションの確立は完了し、ＵＡＣ１と
ＵＡＳ２はそれぞれお互いに直接通信用パケットを送信して通信を行う。なお、直接通信に利用されるプロトコルは発呼要求と正常応答のＳＩＰパケットの中に含まれる。
【０００６】
従来のＳＩＰアプリケーション開発においては、Ｊａｉｎ  ＳＩＰ  Ｓｅｒｖｌｅｔ仕様に基づくアーキテクチャで構成されている。図１０は、従来のＳＩＰサーバのアーキテクチャの一例を示すブロック図である。ＳＩＰサーバ３には、ＯＳ（オペレーティングシステム）１０がインストールされ、更にオペレーティングシステム１０上に、ミドルウェアであるＳＩＰ  Ｓｅｒｖｌｅｔコンテナ１１、Ｗｅｂコンテナ１２がインストールされている。ＳＩＰアプリケーションの開発者はＳＩＰ  Ｓｅｒｖｌｅｔコンテナ１１、Ｗｅｂコンテナ１２上にそれぞれ、複数のＳＩＰアプリケーション１３、複数のＷｅｂアプリケーション１４を配備する。
【０００７】
オペレーティングシステム１０は、ＵＡＣ１から送信されるＵＤＰ（User Datagram Protocol）又はＴＣＰ（Transmission Control Protocol）のＳＩＰパケットを解釈し、ポート番号等の情報からＳＩＰパケットと判断すると、その情報をＳＩＰ  Ｓｅｒｖｌｅｔコンテナ１１に通知する。ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ１１は、受信したＳＩＰパケットからＳＩＰメソッド情報及びヘッダ情報を抽出し、これらの情報とＳＩＰアプリケーションに添付される定義ファイルとを照合することにより、通知先のアプリケーションとそのＪａｖａ（登録商標）メソッド名を特定し、そのメソッドを呼び出す。
【０００８】
ＳＩＰアプリケーション１３には、ＳＩＰメソッドに対応するＪａｖａメソッドが定義されており、ＲＥＧＩＳＴＥＲ要求やＩＮＶＩＴＥ要求等のＳＩＰメソッドに対応するＪａｖａのメソッドが呼び出される仕様となっている。このＪａｖａメソッド内に、認証サーバ５に接続して認証を行う、ロケーションサーバ４との通信を行ってローカルＳＩＰアドレスを取得する等のビジネスロジック処理を記述することにより、ＳＩＰアプリケーションは目的の処理ができるようになる。
【０００９】
Ｗｅｂのアプリケーションの場合には、オペレーティングシステム１０がＴＣＰのパケットを解釈し、ポート番号からＷｅｂコンテナ１２を呼び出す。Ｗｅｂコンテナ１２は同様に、このパケットのＨＴＴＰメソッド情報やＨＴＴＰヘッダとＷｅｂアプリケーション１４に添付された定義ファイルとを照合することにより、呼び出すＪａｖａメソッドを決定し、呼び出しを行う。ＳＩＰコンテナ１３とＷｅｂコンテナ１４とは、相互に通信することができるようになっており、ＷｅｂからＳＩＰの呼び出し等の連携処理もできるようになっている。
【００１０】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。このサービス起動フレームワークは、セッションプロトコルのメッセージによって起動される複数のサービスを管理する方法及びシステムである。
【特許文献１】特開２００４−５３２４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、ＳＩＰを使ったアプリケーションは、ＨＴＴＰ（HyperText Transfer Protocol）等と比較して定型的な作業が多く発生するにもかかわらず、ロケーションサーバ４や認証サーバ５との接続や通信等の処理の全てをアプリケーション開発者が記述しなければならないことから、開発効率が低いという問題がある。
【００１２】
また、ＳＩＰアプリケーションの開発者は、上述のＪａｖａメソッドの単位で開発する必要がある。ＳＩＰアプリケーション内には複数のアプリケーションで共通に含まれる処理、即ち上述の従来例においてロケーションサーバ４を通じてユニバーサルＳＩＰアドレスからローカルＳＩＰアドレスに変換する処理や、ユーザを認証する処理が含まれている。しかしながら、ＳＩＰ  Ｓｅｒｖｌｅｔの開発者は、これらの関心事の単位でアプリケーションを開発することができないことから、ＳＩＰアプリケーションが複雑化するという問題点がある。
【００１３】
本発明は上述した問題点を解決するためになされたものであり、開発効率の高いＳＩＰアプリケーションのためのＳＩＰアプリケーション制御プログラム、ＳＩＰサーバ、ＳＩＰアプリケーション制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決するため、本発明は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御をコンピュータに実行させるＳＩＰアプリケーション制御プログラムであって、前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークであるレジストラフレームワーク処理ステップとをコンピュータに実行させるものである。
【００１５】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクションプログラムと、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムとを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークであるプロキシフレームワーク処理ステップをコンピュータに実行させることを特徴とするものである。
【００１６】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムと、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクションプログラムとを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークであるＳＩＭＰＬＥフレームワーク処理ステップをコンピュータに実行させることを特徴とするものである。
【００１７】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、前記フレームワークは更に、ＳＩＰ要求又はＳＩＰ応答の妥当性を検証するバリデーションアクションプログラムを呼び出し、エラーが発生した場合、エラー処理を行うエラーハンドリングアクションプログラムを呼び出すことを特徴とするものである。
【００１８】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、更に、各アクションプログラムの実行によってフォワード情報が与えられた場合、新たなＳＩＰアプリケーションセションを生成するフォワーディングアクションプログラムを呼び出すセション生成フレームワーク処理ステップをコンピュータに実行させることを特徴とするものである。
【００１９】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、前記フレームワークは、予め定義されたフレームワーク定義ファイルに基づいて、呼び出すアクションプログラムを決定することを特徴とするものである。
【００２０】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、ＳＩＰ要求における要求ＵＲＩに応じて呼び出すアクションプログラムを切り替えることを特徴とするものである。
【００２１】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、ＳＩＰ要求における必須プロトコルヘッダまたはＳＤＰに含まれるプロトコル情報に応じて呼び出すアクションプログラムを切り替えることを特徴とするものである。
【００２２】
また、本発明に係るＳＩＰアプリケーション制御プログラムにおいて、更に、各アクションプログラムの作成のために、前記フレームワークに対応する前記アクションプログラムの雛形を提供するアクションプログラム雛形提供ステップをコンピュータに実行させることを特徴とするものである。
【００２３】
また、本発明は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の動作に応じたＳＩＰアプリケーションの制御を行うＳＩＰサーバであって、前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の呼び出し先を定義するコンテナ定義部と、前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部からの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクション処理部と、ロケーションサーバへ接続して操作するロケーションサーバ操作アクション処理部と、レジストラアプリケーション固有の処理を行うレジストラアクション処理部とを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理部とを備えたものである。
【００２４】
また、本発明に係るＳＩＰサーバにおいて、更に、前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部からの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクション処理部と、前記認証アクション処理部と、前記ロケーションサーバ操作アクション処理部とを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークを実行するプロキシフレームワーク処理部を備えることを特徴とするものである。
【００２５】
また、本発明に係るＳＩＰサーバにおいて、更に、前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクション処理部と、前記ロケーションサーバ操作アクション処理部と、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクション処理部とを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークを実行するＳＩＭＰＬＥフレームワーク処理部を備えることを特徴とするものである。
【００２６】
また、本発明に係るＳＩＰサーバにおいて、前記フレームワークは更に、ＳＩＰ要求又はＳＩＰ応答の妥当性を検証するバリデーションアクション処理部を呼び出し、エラーが発生した場合、エラー処理を行うエラーハンドリングアクション処理部を呼び出すことを特徴とするものである。
【００２７】
また、本発明に係るＳＩＰサーバにおいて、更に、各アクション処理部の実行によってフォワード情報が与えられた場合、新たなＳＩＰアプリケーションセションを生成するフォワーディングアクション処理部を呼び出すセション生成フレームワーク処理部を備えることを特徴とするものである。
【００２８】
また、本発明に係るＳＩＰサーバにおいて、前記フレームワークは、予め定義されたフレームワーク定義ファイルに基づいて、呼び出すアクション処理部を決定することを特徴とするものである。
【００２９】
また、本発明に係るＳＩＰサーバにおいて、更に、各アクション処理部の作成のために、前記フレームワークに対応する前記アクション処理部の雛形を提供するアクション雛形提供部を備えることを特徴とするものである。
【００３０】
また、本発明は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御を実行するＳＩＰアプリケーション制御方法であって、前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理ステップとを実行するものである。
【発明の効果】
【００３１】
本発明によれば、ビジネスロジックを除いた部分をフレームワーク化することにより、開発者がアプリケーション間で共通の処理を記述する手間を省き、開発の効率化を実現することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００３３】
まず、本実施の形態に係るＳＩＰアプリケーションシステムの構成について説明する。
【００３４】
図１は、本実施の形態に係るＳＩＰアプリケーションシステムの構成の一例を示すブロック図である。図１において、図９と同一符号は図９に示された対象と同一又は相当物を示しており、ここでの説明を省略する。図９と比較すると図１は、従来のＳＩＰサーバ３の代わりに本実施の形態に係るＳＩＰサーバ２１を備える。
【００３５】
次に、ＳＩＰサーバのアーキテクチャの構成について説明する。
【００３６】
図２は、本実施の形態に係るＳＩＰサーバのアーキテクチャの一例を示すブロック図である。図２において、図１０と同一符号は図１０に示された対象と同一又は相当物を示しており、ここでの説明を省略する。図１０と比較すると図２は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ１１の代わりにＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３、コンテナ定義ファイル６１を備え、Ｗｅｂコンテナ１２の代わりにＷｅｂコンテナ２４を備え、Ｗｅｂアプリケーション１４の代わりにＷｅｂアプリケーション２６を備え、ＳＩＰアプリケーション１３の代わりにＳＩＰフレームワーク２５、ＳＩＰアクション２７、フレームワーク（ＦＷ）定義ファイル２８、フォワーディングアクション２９を備える。
【００３７】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３上には、ＳＩＰフレームワーク２５が配備される。このＳＩＰフレームワーク２５上には更に、ＳＩＰアクション２７及びフレームワーク定義ファイル２８が配備される。これらのＳＩＰアクション２７及びフレームワーク定義ファイル２８は開発者により作成されることを想定したものである。また、ＳＩＰフレームワーク２５上には、フォワーディングアクション２９を配備することができる。また、Ｗｅｂコンテナ２４上には、Ｗｅｂアプリケーション２６が配備される。
【００３８】
図３は、本実施の形態に係るＳＩＰアプリケーションの構成の一例を示すブロック図である。上述したようにＳＩＰアプリケーションは、主にＳＩＰアクション２７とＳＩＰフレームワーク２５で構成される。また、ＳＩＰアプリケーションとして、レジストラとして機能するレジストラアプリケーション３１、プロキシとして機能するプロキシアプリケーション３２、主にインスタントメッセージやプレゼンス管理のために用いられるＳＩＭＰＬＥ（SIP for Instant Messaging and Presence Leveraging Extensions）アプリケーション３３が実現される。
【００３９】
これらのＳＩＰアプリケーションに含まれるＳＩＰアクション２７は、機能毎のアクションとして作成され、認証アクション３４、バリデーションアクション３５、ロケーションサーバ操作アクション３６、エラーハンドリングアクション３７、レジストラアクション３８、プロキシアクション３９、ＳＩＭＰＬＥアクション４０から成る。
【００４０】
ＳＩＰフレームワーク２５は、ＳＩＰアプリケーションに共通の処理を行うもので、レジストラフレームワーク４１、プロキシフレームワーク４２、ＳＩＭＰＬＥフレームワーク４３で構成されており、それぞれレジストラアプリケーション３１、プロキシアプリケーション３２、ＳＩＭＰＬＥアプリケーション３３に対応するアクションの呼び出しを制御する。
【００４１】
コンテナ定義ファイル６１は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がどのフレームワークを呼び出すかを予め定義しておくものであり、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３が受信する要求に対応して呼び出すフレームワークが指定されている。
【００４２】
フレームワーク定義ファイル２８は、主に、各フレームワーク（レジストラフレームワーク４１、プロキシフレームワーク４２、ＳＩＭＰＬＥフレームワーク４３）がどのＪａｖａクラスをアクションとして呼び出すかを予め定義しておくものであり、関連するアクションについてインタフェースにおけるクラスを指定する。例えば、レジストラフレームワーク４１に関連する、認証アクション３４、バリデーションアクション３５、ロケーションサーバ操作アクション３６、エラーハンドリングアクション３７、レジストラアクション３８のそれぞれを実現するクラスは、予めフレームワーク定義ファイル２８に定義される。レジストラフレームワーク４１は、フレームワーク定義ファイル２８に基づいて各アクションを決定し、呼び出す。
【００４３】
また、フレームワーク定義ファイル２８には、ＳＩＰの要求ＵＲＩ（Uniform Resource Identifier）やＳＩＰ要求の必須プロトコルヘッダ又はＳＤＰ（Session Description Protocol）の種別に応じて、呼び出すアクションのセットが、予め定義される。プロキシフレームワーク４２は、フレームワーク定義ファイル２８に基づいて適切なアクションのセットを決定し、呼び出す。例えば、電話用とテレビ会議用とで異なるアクションのセットを利用するような場合にこの機能を利用する。
【００４４】
また、フレームワーク定義ファイル２８には、フレームワークが受け取るフォワード情報に対応する遷移先のアクションが予め定義される。セション生成用フレームワーク５４は、フレームワーク定義ファイル２８に基づいてフォワーディングアクション２９を決定し、呼び出す。
【００４５】
このフレームワーク定義ファイル２８によれば、フレームワークとアクションの呼び出し関係を容易に変更することができ、機能の切り替えや保守の効率が向上する。また、状況に応じて異なるアクションへ遷移させることができることから、従来のフレームワークにおけるアプリケーションのテンプレート化のように柔軟性や拡張性を犠牲にすることなく、複雑なアプリケーションを容易に記述することができる。
【００４６】
また、Ｗｅｂコンテナ２４がコンテナ定義ファイル６１を用いることにより、Ｗｅｂシステムからもフレームワークの呼び出しを行うことができ、ＷｅｂとＳＩＰが連携するアプリケーションを容易に構築することができる。
【００４７】
次に、各フレームワークと各アクションとの呼び出し関係について説明する。
【００４８】
図４は、本実施の形態に係る各フレームワークと各アクションとの間の呼び出し関係の一例を示すブロック図である。ＵＡＣ１からのＳＩＰ要求やＳＩＰ応答はＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３を介して各フレームワークに通知されるようになっており、逆に各フレームワークからＵＡＣ１へのＳＩＰ要求やＳＩＰ応答はＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３を経由して通知される。
【００４９】
また、各フレームワークは各アクションの呼び出しを行う。次に、その依存関係について詳細に記述する。認証アクション３４、バリデーションアクション３５、ロケーションサーバ操作アクション３６、エラーハンドリングアクション３７は、全てのフレームワークから呼び出される。レジストラアクション３８は、レジストラフレームワーク４１のみから呼び出される。プロキシアクション３９は、プロキシフレームワーク４２のみから呼び出される。ＳＩＭＰＬＥアクション４０は、ＳＩＭＰＬＥフレームワーク４３とレジストラフレームワーク４１から呼び出される。
【００５０】
また、上述したＳＩＰアプリケーションの開発環境について説明する。
【００５１】
開発者には各フレームワークが提供される他、各アクションを記述するための雛形またはインタフェースが提供される。従って、開発者はフレームワークに適したアクションが容易に作成できる。また、開発者は、ＳＩＰアプリケーションに共通する処理を見ることなく、ＳＩＰアプリケーションにおけるビジネスロジックの関心事の単位で、各アクションを記述することができる。
【００５２】
次に、各アクションの機能について説明する。
【００５３】
認証アクション３４には、ＳＩＰ要求又はＳＩＰ応答を認証するプログラムが記述される。ＳＩＰではＲＦＣ３２６１によりダイジェスト認証を行うことが規定されており、通常はＵＡＣ１から送信されるユーザＩＤとパスワードのダイジェスト値の妥当性を認証サーバ５に対して問い合わせるプログラムが、認証アクション３４に記述される。なお、認証アクションのプログラムはダイジェスト認証に限定するものではなく、基本認証等の既存の認証方式でも記述することは可能であり、他の認証方法が採用された際にはその認証方法に対応したプログラムを記述しても良い。
【００５４】
バリデーションアクション３５には、ＳＩＰ要求又はＳＩＰ応答のヘッダ及びボディ部分の妥当性を検証するプログラムが記述される。例えば、システムで必要とされるヘッダ情報が含まれていなければ、エラーをＵＡＣ１に返却するようなプログラムが、バリデーションアクション３５に記述される。
【００５５】
ロケーションサーバ操作アクション３６には、ロケーションサーバ４への接続、及びロケーションサーバ４に対してＵＡＣ１の情報を登録、検索、削除するプログラムが記述される。通常、ロケーションサーバ４との通信方法はＬＤＡＰ等のプロトコルが採用されることが多いが、このようにロケーションサーバ４との接続の部分を１個のアクションとして纏めることで、例えば接続方式がＬＤＡＰから内部データベースアクセスに変更になった場合でもロケーションサーバ操作アクション３６のみを変更すれば良い。
【００５６】
エラーハンドリングアクション３７には、フレームワーク４１〜４３やＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３内でエラーが発生した場合に、そのエラーの種類に応じて一定の動作をさせるためのプログラムが記述される。これにより、例えば電話番号誤りの情報を統計情報として取得するような場合に、プロキシアプリケーション３２とＳＩＭＰＬＥアプリケーション３３とで統一的な処理を行うことができる。
【００５７】
レジストラアクション３８には、レジストラアプリケーション３１固有に発生するビジネスロジックプログラムが記述される。例えば、１台のＳＩＰサーバ２１にログインできるＵＡＣ１の台数を制限するようなプログラムをここに記述することにより、ＳＩＰサーバ２１が過負荷になることを防止するようなプログラムを記述することができる。
【００５８】
プロキシアクション３９には、発呼要求のライフサイクルを定義するプログラムを記述する。即ち、最初に発呼要求が通知された際に呼び出される初期化処理、通信相手との接続前に呼び出されるビジネスロジックである接続前ビジネスロジック、セションが確立された直後に呼び出されるビジネスロジックである接続後ビジネスロジック、通信が完了した際に呼び出されるビジネスロジックである通話完了後ビジネスロジック、終了処理である。例えば、接続前と通信完了後にタイマをセットし、その時間を計測することで時間課金を行うプログラムを記述することができる。また、プロキシアクション３９は、セション生成用フレームワーク５４を呼び出すことができ、Ｂ２ＢＵＡ（Back-to-Back User Agent）や３ＰＣＣ（3rd Party Call Control）等のＳＩＰアプリケーションを新規に開始することができる。
【００５９】
ＳＩＭＰＬＥアクション４０には、レジストラフレームワーク３１から呼び出された場合にプレゼンス情報をウォッチャに通知するプログラムが記述される。また、ＳＩＭＰＬＥアクション４０には、ＳＩＭＰＬＥフレームワーク４３から呼び出された場合にウォッチャからのプレゼンス通知要求（ＳＵＢＳＣＲＩＢＥ要求）を処理したり、インスタントメッセージ通知要求（ＭＥＳＳＡＧＥ要求）を処理したりするプログラムが記述される。例えば、インスタントメッセージの履歴をデータベースで管理する、インスタントメッセージに特定の文字列が含まれる場合のみ第三者に再送信する、等のプログラムを記述することができる。
【００６０】
次に、各フレームワークの動作について説明する。
【００６１】
まず、レジストラフレームワーク４１の動作について説明する。
【００６２】
図５は、本実施の形態に係るレジストラフレームワークの動作の一例を示すシーケンス図である。図の下方向が時間の流れる方向を表す。予めコンテナ定義ファイル６１において、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＳＩＰのＲＥＧＩＳＴＥＲ要求を受信した際にはレジストラフレームワーク４１を呼び出すことが記述されている。また、ＵＡＣ１とレジストラフレームワーク４１は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３を介して通信ができる。
【００６３】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＵＡＣ１からのＲＥＧＩＳＴＥＲ要求を受信すると（Ｓ１１）、コンテナ定義ファイル６１に従ってレジストラフレームワーク４１が呼び出される（Ｓ１２）。すると、レジストラフレームワーク４１は、認証アクション３４（Ｓ１３）、バリデーションアクション３５（Ｓ１５）を順に呼び出す。レジストラフレームワーク４１は、これらのアクションを呼び出す際に、引数としてＳＩＰ要求及びＳＩＰ要求に含まれるボディ情報を渡す。認証アクション３４は、認証サーバ５を用いて認証を行う（Ｓ１４）。
【００６４】
エラーがなければ、レジストラフレームワーク４１は、ロケーションサーバ操作アクション３６の接続メソッドを呼び出し、ロケーションサーバ４との接続が確立される。レジストラフレームワーク４１は、ロケーションサーバ操作アクション３６の登録メソッドを呼び出し（Ｓ２１）、ＳＩＰ要求を行ったＵＡＣ１のＳＩＰユニバーサルアドレス及びＳＩＰローカルアドレスをロケーションサーバ４に登録する（Ｓ２２）。更に、レジストラフレームワーク４１は、ＳＩＭＰＬＥアクション４０を呼び出し、ＵＡＣ１のプレゼンスを知りたいウォッチャへの通知を実施しても良い。最後に、レジストラフレームワーク４１は、独自のビジネスロジックを実行するレジストラアクション３８を呼び出し（Ｓ２３）、処理を完了する。レジストラフレームワーク４１は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３に応答し（Ｓ２４）、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３は、ＵＡＣ１へ応答する（Ｓ２５）。
【００６５】
このシーケンス中の各アクションは、認証結果、バリデーション結果、途中で発生した例外等のエラー情報をレジストラフレームワーク４１に返却する。各アクション内でエラーが発生した場合、レジストラフレームワーク４１は、そのエラー情報をエラーハンドリングアクション３７に引き渡す。
【００６６】
次に、プロキシフレームワーク４２の動作について説明する。
【００６７】
図６は、本実施の形態に係るプロキシフレームワークの動作の一例を示すシーケンス図である。図の下方向が時間の流れる方向を表す。予めコンテナ定義ファイル６１において、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＳＩＰのＩＮＶＩＴＥ要求を受信した際にはプロキシフレームワーク４２を呼び出すことが記述されている。レジストラフレームワーク４１と同様、ＵＡＣ１とプロキシフレームワーク４２は、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３を介して通信ができる。
【００６８】
ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＵＡＣ１からのＩＮＶＩＴＥ要求を受信すると（Ｓ３１）、コンテナ定義ファイル６１に従ってプロキシフレームワーク４２が呼び出される（Ｓ３２）。すると、プロキシフレームワーク４２は、プロキシアクション３９の初期化メソッドｉｎｉｔ（）（Ｓ３３）、認証アクション３４（Ｓ３４）、バリデーションアクション３５（Ｓ３５）、ロケーションサーバ操作アクション３６（Ｓ３６）の接続メソッドを順に呼び出す。
【００６９】
まず、プロキシアクション３９の初期化メソッドにより、プロキシアプリケーションのライフサイクルが初期化される。認証アクション３４、バリデーションアクション３５、ロケーションサーバ操作アクション３６の役割はレジストラフレームワーク４１の場合と同様である。
【００７０】
次に、プロキシフレームワーク４２はロケーションサーバ操作アクション３６の検索メソッドｆｉｎｄ（）を呼び出す。このとき検索メソッドの引数として、ＳＩＰ要求及びボディ情報の他に、ユニバーサルＳＩＰアドレスが引き渡される。検索メソッドはロケーションサーバ４に問い合わせを行い、受け取ったユニバーサルＳＩＰアドレスに対応する１個又は複数個のローカルＳＩＰアドレス又は他のＳＩＰサーバのアドレスを取得し、プロキシフレームワーク４２に返却する。更にプロキシフレームワーク４２は、プロキシアクション３９の接続前ビジネスロジックｅｘｅｃｕｔｅ（）を呼び出す（Ｓ４１）。
【００７１】
プロキシフレームワーク４２は、ロケーションサーバ操作アクション３６の検索メソッドからの返却値に応じて、次に行う動作を決定する。返却値が１個のＳＩＰローカルアドレス又はＳＩＰサーバのアドレスの場合、プロキシフレームワーク４２は、そのアドレスへのＩＮＶＩＴＥ要求を実施するように、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３に通知する（Ｓ５１）。複数のローカルＳＩＰアドレス又はＳＩＰサーバのアドレスが返却された場合、プロキシフレームワーク４２は、リストの上位から順番にＩＮＶＩＴＥ要求を呼び出すように、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３に通知する。このとき、複数のＩＮＶＩＴＥ要求は非同期で行われる。ＳＩＰローカルアドレス又はＳＩＰサーバが１件も返却されない場合、プロキシフレームワーク４２は、相手先が見つからないエラーとして扱い、エラーハンドリングアクション３７を呼び出す。その後は従来と同様、ＵＡＣ１、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３、ＵＡＳ２の間でセションの確立が行われ、通話が開始される。
【００７２】
通話が開始されるとプロキシフレームワーク４２はプロキシアクション３９の接続後ビジネスロジックｎｏｔｉｆｙＣｏｎｎｅｃｔｅｄ（）を呼び出す（Ｓ４２）。また、通話が終了するとプロキシフレームワーク４２はプロキシアクション３９の通話完了後ビジネスロジックｎｏｔｉｆｙＴｅｒｍｉｎａｔｅｄ（）を呼び出す（Ｓ４３）。ここではＩＰ電話における通話という用語を用いたが、他の目的でＳＩＰを利用する場合でも、セションの確立前、確立後、完了後にビジネスロジックの呼び出しを行うことで同様の処理を行うことができる。
【００７３】
また、プロキシアクション３９の接続前ビジネスロジック、接続後ビジネスロジック、通話完了後ビジネスロジックは、フォワード情報を返却することができる。プロキシフレームワーク４２は、フォワード情報を受け取ると、別のセションの開始と判断し、セション生成用フレームワーク５４を呼び出す（Ｓ４５，Ｓ４６，Ｓ４７）。フレームワーク定義ファイル２８にはフォワード情報に対応する遷移先のアクションが定義されている。セション生成用フレームワーク５４は、フレームワーク定義ファイル２８に基づいて呼び出すフォワーディングアクション２９を決定し、呼び出す（Ｓ４８）。フォワーディングアクション２９では、ＳＩＰアプリケーションセションを新規に作成し、Ｂ２ＢＵＡや３ＰＣＣのセションを開始する。
【００７４】
最後にプロキシフレームワーク４２は、ライフサイクルを完了するために、プロキシアクション３９の終了処理メソッドｄｅｓｔｒｏｙ（）を呼び出す（Ｓ４４）。処理の途中でエラーが発生した場合、レジストラフレームワーク４１の場合と同様、プロキシフレームワーク４２は、エラーハンドリングアクション３７を呼び出し、エラー情報を通知する。
【００７５】
次に、ＳＩＭＰＬＥフレームワーク４３の動作について説明する。
【００７６】
予めコンテナ定義ファイル６１において、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＳＩＰのＳＵＢＳＣＲＩＢＥ要求及びＭＥＳＳＡＧＥ要求を受信した際にはプロキシフレームワーク４２を呼び出すことが記述されている。
【００７７】
まず、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＵＡＣ１からＳＵＢＳＣＲＩＢＥ要求を受信した場合について説明する。図７は、本実施の形態に係るＳＩＭＰＬＥフレームワークがＳＵＢＳＣＲＩＢＥ要求を受信した場合の動作の一例を示すシーケンス図である。図の下方向が時間の流れる方向を表す。ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＳＵＢＳＣＲＩＢＥ要求を受信すると（Ｓ７１）、コンテナ定義ファイル６１に従ってＳＩＭＰＬＥフレームワーク４３が呼び出される（Ｓ７２）。すると、ＳＩＭＰＬＥフレームワーク４３は、認証アクション３４（Ｓ７３）、バリデーションアクション３５（Ｓ７４）、ＳＩＭＰＬＥアクション４０のプレゼンス通知要求メソッド（Ｓ７５）を順に呼び出す。認証アクション３４、バリデーションアクション３５の役割はレジストラフレームワーク４１の場合と同様である。
【００７８】
プレゼンス通知要求メソッドは、プレゼンスサーバ６に接続してプレゼンス通知要求の管理を委譲する（Ｓ７６）。プレゼンスサーバ６は対象のＵＡＳのプレゼンス状態が変化した際に、そのプレゼンス状態をＵＡＣ１に通知する。このプレゼンス通知要求メソッドの動作は代表的な例を述べたが、プレゼンス通知要求メソッドに様々なビジネスロジックを実装することが可能である。例えば、プレゼンスサーバ６が別途用意できないような場合には、ＳＩＰサーバ２１内で全てのプレゼンス通知処理を実行することも可能である。
【００７９】
次に、ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＵＡＣ１からＭＥＳＳＡＧＥ要求を受信した場合について説明する。図８は、本実施の形態に係るＳＩＭＰＬＥフレームワークがＭＥＳＳＡＧＥ要求を受信した場合の動作の一例を示すシーケンス図である。ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ２３がＭＥＳＳＡＧＥ要求を受信すると（Ｓ８１）、コンテナ定義ファイル６１に従ってＳＩＭＰＬＥフレームワーク４３が呼び出される（Ｓ８２）。すると、ＳＩＭＰＬＥフレームワーク４３は、認証アクション３４（Ｓ８３）、バリデーションアクション３５（Ｓ８４）、ロケーションサーバ操作アクション３６の接続メソッド、検索メソッド（Ｓ８５）、ＳＩＭＰＬＥアクション４０のプレゼンス通知要求メソッド（Ｓ８６）を順に呼び出す。ロケーションサーバ操作アクション３６の接続メソッド及び検索メソッドの動作は、プロキシフレームワーク４２の場合と同様であり、インスタントメッセージの通知先を決定するために呼び出される。
【００８０】
次に、ＳＩＭＰＬＥフレームワーク４３は、ビジネスロジックが記述されたＳＩＭＰＬＥアクション４０のインスタントメッセージ通知メソッドを呼び出す。ＳＩＭＰＬＥアクション４０のインスタントメッセージ通知メソッドはフォワード情報を返却することが可能である。フォワード情報が返却された場合、ＳＩＭＰＬＥフレームワーク４３は、プロキシフレームワーク４２の場合と同様、セション生成用フレームワーク５４を呼び出す（Ｓ８７）。セション生成用フレームワーク５４は、フレームワーク定義ファイル２８に基づいて、必要なフォワーディングアクション２９を呼び出すことで（Ｓ８８）、新規のＢ２ＢＵＡセション又は３ＰＣＣセションを開始する。最後にＳＩＭＰＬＥフレームワーク４３は、ロケーションサーバ操作アクション３６の検索メソッドが返却したＳＩＰアドレスのリストに従ってインスタントメッセージを通知する。
【００８１】
以上詳述したように、本実施の形態によれば、各ＳＩＰメソッドの役割を明確化し、ビジネスロジックを除いた部分をフレームワーク化することにより、開発者が共通の処理を記述する手間を省き、ビジネスロジックのみを記述することにより、開発の効率化、高生産性が実現できる。更に、ビジネスロジック内の処理を関心事の単位で分離することにより、アプリケーションの構造が単純化され、ソフトウェアの再利用性や保守性が向上する。
【００８２】
更に、ＳＩＰサーバを構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ＳＩＰ制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ＳＩＰサーバを構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ハードディスク、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００８３】
なお、コンテナ定義ステップとコンテナ定義部は、実施の形態におけるコンテナ定義ファイルに対応する。
【００８４】
（付記１）  ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御をコンピュータに実行させるＳＩＰアプリケーション制御プログラムであって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、
前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークであるレジストラフレームワーク処理ステップと
をコンピュータに実行させるＳＩＰアプリケーション制御プログラム。
（付記２）  付記１に記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクションプログラムと、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムとを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークであるプロキシフレームワーク処理ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記３）  付記１または付記２に記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムと、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクションプログラムとを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークであるＳＩＭＰＬＥフレームワーク処理ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記４）  付記１乃至付記３のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
前記フレームワークは更に、ＳＩＰ要求又はＳＩＰ応答の妥当性を検証するバリデーションアクションプログラムを呼び出し、エラーが発生した場合、エラー処理を行うエラーハンドリングアクションプログラムを呼び出すことを特徴とするＳＩＰアプリケーション制御プログラム。
（付記５）  付記１乃至付記４のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、各アクションプログラムの実行によってフォワード情報が与えられた場合、新たなＳＩＰアプリケーションセションを生成するフォワーディングアクションプログラムを呼び出すセション生成フレームワーク処理ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記６）  付記１乃至付記５のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
前記フレームワークは、予め定義されたフレームワーク定義ファイルに基づいて、呼び出すアクションプログラムを決定することを特徴とするＳＩＰアプリケーション制御プログラム。
（付記７）  付記１乃至付記６のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
ＳＩＰ要求における要求ＵＲＩに応じて呼び出すアクションプログラムを切り替えることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記８）  付記１乃至付記７のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
ＳＩＰ要求における必須プロトコルヘッダまたはＳＤＰに含まれるプロトコル情報に応じて呼び出すアクションプログラムを切り替えることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記９）  付記１乃至付記８のいずれかに記載のＳＩＰアプリケーション制御プログラムにおいて、
更に、各アクションプログラムの作成のために、前記フレームワークに対応する前記アクションプログラムの雛形を提供するアクションプログラム雛形提供ステップをコンピュータに実行させることを特徴とするＳＩＰアプリケーション制御プログラム。
（付記１０）  ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の動作に応じたＳＩＰアプリケーションの制御を行うＳＩＰサーバであって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部の呼び出し先を定義するコンテナ定義部と、
前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部からの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクション処理部と、ロケーションサーバへ接続して操作するロケーションサーバ操作アクション処理部と、レジストラアプリケーション固有の処理を行うレジストラアクション処理部とを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理部と
を備えるＳＩＰサーバ。
（付記１１）  付記１０に記載のＳＩＰサーバにおいて、
更に、前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ処理部からの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクション処理部と、前記認証アクション処理部と、前記ロケーションサーバ操作アクション処理部とを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークを実行するプロキシフレームワーク処理部を備えることを特徴とするＳＩＰサーバ。
（付記１２）  付記１０または付記１１に記載のＳＩＰサーバにおいて、
更に、前記コンテナ定義部に基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクション処理部と、前記ロケーションサーバ操作アクション処理部と、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクション処理部とを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークを実行するＳＩＭＰＬＥフレームワーク処理部を備えることを特徴とするＳＩＰサーバ。
（付記１３）  付記１０乃至付記１２のいずれかに記載のＳＩＰサーバにおいて、
前記フレームワークは更に、ＳＩＰ要求又はＳＩＰ応答の妥当性を検証するバリデーションアクション処理部を呼び出し、エラーが発生した場合、エラー処理を行うエラーハンドリングアクション処理部を呼び出すことを特徴とするＳＩＰサーバ。
（付記１４）  付記１０乃至付記１３のいずれかに記載のＳＩＰサーバにおいて、
更に、各アクション処理部の実行によってフォワード情報が与えられた場合、新たなＳＩＰアプリケーションセションを生成するフォワーディングアクション処理部を呼び出すセション生成フレームワーク処理部を備えることを特徴とするＳＩＰサーバ。
（付記１５）  付記１０乃至付記１４のいずれかに記載のＳＩＰサーバにおいて、
前記フレームワークは、予め定義されたフレームワーク定義ファイルに基づいて、呼び出すアクション処理部を決定することを特徴とするＳＩＰサーバ。
（付記１６）  付記１０乃至付記１５のいずれかに記載のＳＩＰサーバにおいて、
更に、各アクション処理部の作成のために、前記フレームワークに対応する前記アクション処理部の雛形を提供するアクション雛形提供部を備えることを特徴とするＳＩＰサーバ。
（付記１７）  ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの動作に応じたＳＩＰアプリケーションの制御を実行するＳＩＰアプリケーション制御方法であって、
前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナの呼び出し先を定義するコンテナ定義ステップと、
前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、ＳＩＰ要求又はＳＩＰ応答を認証する認証アクションプログラムと、ロケーションサーバへ接続して操作するロケーションサーバ操作アクションプログラムと、レジストラアプリケーション固有の処理を行うレジストラアクションプログラムとを呼び出すことにより、ログイン又はログアウトの処理を行うフレームワークを実行するレジストラフレームワーク処理ステップと
を実行するＳＩＰアプリケーション制御方法。
（付記１８）  付記１７に記載のＳＩＰアプリケーション制御方法において、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、セションのタイミングに応じた処理を行うプロキシアクションプログラムと、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムとを呼び出すことにより、ＳＩＰ要求の中継処理を行うフレームワークを実行するプロキシフレームワーク処理ステップを実行することを特徴とするＳＩＰアプリケーション制御方法。
（付記１９）  付記１７または付記１８に記載のＳＩＰアプリケーション制御方法において、
更に、前記コンテナ定義ステップに基づく前記ＳＩＰ  Ｓｅｒｖｌｅｔコンテナからの呼び出しに基づいて、前記認証アクションプログラムと、前記ロケーションサーバ操作アクションプログラムと、ＳＩＭＰＬＥアプリケーション固有の処理を行うＳＩＭＰＬＥアクションプログラムとを呼び出すことにより、プレゼンス管理又はインスタントメッセージ送信を行うフレームワークを実行するＳＩＭＰＬＥフレームワーク処理ステップを実行することを特徴とするＳＩＰアプリケーション制御方法。
（付記２０）  付記１７乃至付記１９のいずれかにに記載のＳＩＰアプリケーション制御方法において、
更に、前記アクションプログラムの作成のために、前記フレームワークに対応する前記アクションプログラムの雛形を提供するアクションプログラム雛形提供ステップをコンピュータに実行することを特徴とするＳＩＰアプリケーション制御方法。
【図面の簡単な説明】
【００８５】
【図１】本実施の形態に係るＳＩＰアプリケーションシステムの構成の一例を示すブロック図である。
【図２】本実施の形態に係るＳＩＰサーバのアーキテクチャの一例を示すブロック図である。
【図３】本実施の形態に係るＳＩＰアプリケーションの構成の一例を示すブロック図である。
【図４】本実施の形態に係る各フレームワークと各アクションとの間の呼び出し関係の一例を示すブロック図である。
【図５】本実施の形態に係るレジストラフレームワークの動作の一例を示すシーケンス図である。
【図６】本実施の形態に係るプロキシフレームワークの動作の一例を示すシーケンス図である。
【図７】本実施の形態に係るＳＩＭＰＬＥフレームワークがＳＵＢＳＣＲＩＢＥ要求を受信した場合の動作の一例を示すシーケンス図である。
【図８】本実施の形態に係るＳＩＭＰＬＥフレームワークがＭＥＳＳＡＧＥ要求を受信した場合の動作の一例を示すシーケンス図である。
【図９】従来のＳＩＰアプリケーションシステムの構成の一例を示すブロック図である。
【図１０】従来のＳＩＰサーバのアーキテクチャの一例を示すブロック図である。
【符号の説明】
【００８６】
１  ＵＡＣ、２  ＵＡＳ、３，２１  ＳＩＰサーバ、４  ロケーションサーバ、５  認証サーバ、６  プレゼンスサーバ、１０  オペレーティングシステム、１１，２３  ＳＩＰ  Ｓｅｒｖｌｅｔコンテナ、１２，２４  Ｗｅｂコンテナ、１３  ＳＩＰアプリケーション、１４，２６  Ｗｅｂアプリケーション、２５  ＳＩＰフレームワーク、２７  ＳＩＰアクション、２８  フレームワーク定義ファイル、２９  フォワーディングアクション、３１  レジストラアプリケーション、３２  プロキシアプリケーション、３３  ＳＩＭＰＬＥアプリケーション、３４  認証アクション、３５  バリデーションアクション、３６  ロケーションサーバ操作アクション、３７  エラーハンドリングアクション、３８  レジストラアクション、３９  プロキシアクション、４０  ＳＩＭＰＬＥアクション、４１  レジストラフレームワーク、４２  プロキシフレームワーク、４３  ＳＩＭＰＬＥフレームワーク、５４  セション生成用フレームワーク、６１  定義ファイル。
【図１】
0004722687.tif 000002
【図２】
0004722687.tif 000003
【図３】
0004722687.tif 000004
【図４】
0004722687.tif 000005
【図５】
0004722687.tif 000006
【図６】
0004722687.tif 000007
【図７】
0004722687.tif 000008
【図８】
0004722687.tif 000009
【図９】
0004722687.tif 000010
【図１０】
0004722687.tif 000011