(57)【特許請求の範囲】
【請求項１】
ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントであって、
予め特定された基本動作を行うと共に前記ネットワークに予め接続された一時アプリサーバから前記ＳＩＰ規格による通信内容を定めた一時アプリをダウンロードするベース機能実行部と、
前記一時アプリを動作させて前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信を行う一時アプリ動作部とを備えると共に、
前記ベース機能実行部が、
前記一時アプリ動作部が以前のバージョンの前記一時アプリによる前記通信の動作を開始したことを捕捉するリクエスト捕捉機能と、
前記リクエスト捕捉機能が前記通信の開始を捕捉した際に前記一時アプリ動作部の動作状態を予め備えられた記憶手段に一時的に記憶する動作状態記憶機能と、
前記一時アプリ動作部の動作状態を一時的に記憶させてから、前記一時アプリサーバから最新バージョンの一時アプリをダウンロードして前記一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる一時アプリ更新機能と
を有することを特徴とするＳＩＰクライアント。
【請求項２】
前記ベース機能実行部が、前記基本動作を開始する時に前記一時アプリ更新機能を実行することを特徴とする、請求項１に記載のＳＩＰクライアント。
【請求項３】
前記リクエスト捕捉機能が、前記他のＳＩＰクライアントからの接続要求を受けた時にこれを捕捉して前記一時アプリ更新機能を実行させることを特徴とする、請求項１に記載のＳＩＰクライアント。
【請求項４】
前記一時アプリとは異なるアプリを動作させるその他のアプリ実行部を備えると共に、
前記ベース機能実行部が、前記その他のアプリ実行部からのＳＩＰ処理要求を受けた時に前記一時アプリ更新機能を実行させるＡＰＩを有することを特徴とする、請求項１に記載のＳＩＰクライアント。
【請求項５】
前記一時アプリ更新機能が、前記一時アプリサーバに登録された最新の前記一時アプリのバージョン番号を当該一時アプリサーバから取得してこれを前記一時アプリ動作部で動作中の前記一時アプリのバージョン番号と比較し、この両者が異なっている場合に前記一時アプリサーバから前記最新バージョンの一時アプリをダウンロードしてこれを前記一時アプリ動作部に動作させることを特徴とする、請求項１に記載のＳＩＰクライアント。
【請求項６】
ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、
予め特定された基本動作をベース機能実行部が開始し、
前記ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信の動作を一時アプリ動作部が開始し、
前記以前のバージョンの一時アプリが前記通信を開始しようとしたことを前記ベース機能実行部のリクエスト捕捉機能が捕捉し、
前記通信開始が捕捉された際に、前記以前のバージョンの一時アプリの動作状態を前記ベース機能実行部の動作状態記憶機能が予め備えられた記憶手段に一時的に記憶し、
前記一時アプリサーバから前記ベース機能実行部の一時アプリ更新機能が最新バージョンの一時アプリをダウンロードして前記一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる
ことを特徴とするＳＩＰ更新方法。
【請求項７】
ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、
前記ＳＩＰクライアントが備えるコンピュータに、
予め特定された基本動作を開始する手順、
前記ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信の動作を開始する手順、
前記以前のバージョンの一時アプリが前記通信を開始しようとしたことを捕捉する手順、
前記通信開始が捕捉された際に、前記以前のバージョンの一時アプリの動作状態を予め備えられた記憶手段に一時的に記憶する手順、
および前記一時アプリサーバから最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる手順
を実行させることを特徴とするＳＩＰ更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＳＩＰクライアント、ＳＩＰ更新方法およびプログラムに関し、特にベンダーや実装などの違いに基づくＳＩＰクライアントの相互接続性に係る問題点を解決しうるＳＩＰクライアント等に関する。
【背景技術】
【０００２】
ＳＩＰ（Session Initiation Protocol）は、インターネット上でリアルタイムに音声データ、映像データ、テキストデータなどの通信を行うことのできる呼制御プロトコルであり、ＩＥＴＦ（Internet Engineering Task Force）によって国際規格のＲＦＣ３２６１として定義されているセッション管理プロトコルである。ＳＩＰは、特にＶｏＩＰ（Voice over Internet Protocol）とシグナリングとを組み合わせたいわゆるインターネット電話において、幅広く使用されている。
【０００３】
ＳＩＰによるインターネット電話は、インターネットに接続されたＳＩＰサーバと複数のＳＩＰクライアントにより構成されている。ＳＩＰクライアントは、各々のユーザが持つ固定電話、携帯電話（フィーチュアフォン）、スマートフォン、パーソナルコンピュータ（ＰＣ）などの端末装置に実装された機能であり、その実装形態は端末の種類に応じて様々である。ＳＩＰサーバは、ネットワーク上に設置され電話サービスを提供する業者によって管理されるサーバコンピュータである。
【０００４】
インターネット電話による通話を開始する際は、まず通話を行う発呼側・着呼側の両ＳＩＰクライアントが、ＳＩＰサーバに予め登録（レジストレーション）されている必要がある。レジストレーションは、通常の場合、各端末の電源が入れられた際に実施される。この際、ＳＩＰクライアントの位置情報（ＩＰアドレスなど）がＳＩＰサーバに記録される。また、レジストレーションは端末の生存確認のために定期的に実施される必要があるので、各ＳＩＰクライアントは決められた周期で定期的に再レジストレーションの動作を行う。
【０００５】
発呼は発呼側端末で着呼側端末の電話番号またはＵＲＬを入力して発呼指令の操作を行うことによって開始される。発呼側端末のＳＩＰクライアントは、ＳＩＰサーバへ「着呼側端末の電話番号またはＵＲＬ」を含むインバイト（INVITE）メッセージを送信する。ＳＩＰサーバは受け取ったメッセージに記入された電話番号またはＵＲＬをキーに着呼側端末を特定し、着呼側端末がレジストレーション済みであればその位置情報に基づいてインバイトメッセージを着呼側端末へ転送する。
【０００６】
インバイトメッセージを受け取った着呼側端末のＳＩＰクライアントは、着信をユーザに知らせる。ユーザが着呼指令の操作を行うと、着呼側端末のＳＩＰクライアントは発呼側端末のＳＩＰクライアントとの間でＳＩＰメッセージを継続して交換して「セッション確立」となり、通話を開始する。
【０００７】
これに関連する技術文献として、以下の各々がある。その中でも特許文献１には、ＳＩＰ端末が各々保持する識別情報によって相互通信を許可するという接続規制方法が記載されている。特許文献２には、ＳＩＰサーバを設けなくても端末が相互に接続可能であるという中継装置が記載されている。特許文献３には、ＳＩＰの各端末のアップグレードについての技術が記載されている。非特許文献１には、上記のＳＩＰの概要が記載されている。非特許文献２にも、同様にＳＩＰの概要が記載されている。特に非特許文献２には、後述する「相互接続性」に係る問題の解消に向けて、規格および実装の両面から行われている取り組みについて記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−０９９１６８号公報
【特許文献２】特開２００７−００６２１７号公報
【特許文献３】特開２００６−０１９１１１号公報
【非特許文献】
【０００９】
【非特許文献１】坂口克彦、「ＳＩＰ入門〜プロトコル概要からユビキタス時代を築くＳＩＰとその動向〜」、２００４年１２月２日、ソフトフロント株式会社、［平成２３年１２月１２日検索］、インターネット＜URL：http://www.nic.ad.jp/ja/materials/iw/2004/proceedings/T17.pdf＞
【非特許文献２】大江将史、インターネット１０分講座「ＶｏＩＰとＳＩＰ」、ＪＰＮＩＣニュースレターＮｏ．２９、社団法人日本ネットワークインフォメーションセンター（ＪＰＮＩＣ）、２００５年３月
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述の非特許文献１〜２にも記載されているが、ＳＩＰを利用したＶｏＩＰの利用が広がるにつれて、ベンダーごとの相互接続性、即ち同じＳＩＰ（ＲＦＣ３２６１）という国際規格に対応した機器同士であっても、ベンダーが異なると相互接続が正常にできないことが多いということが問題となっている。以下、このことについて説明する。
【００１１】
ＲＦＣ３２６１では、ＳＩＰによるセッション制御の基本的な部分のみを定義しており、様々なサービスの実現に必要な処理を厳密に定義していない点や、同一のサービスを実現する方法が複数定義されている点がある。さらに、各々のベンダーが、開発したサーバや端末にＳＩＰを実装する際に「対応するＳＩＰヘッダの種類」「許容するＳＩＰ−ＵＲＬの長さ」「タグ値の桁数」などに独自の拡張や制限などを設けている。
【００１２】
その結果、ＳＩＰにベンダーごとの「方言」ができ、ベンダーごとの相互接続性が保証されていない状態になっているのが実情である。サーバや端末が同一のＲＦＣ３２６１に準拠していても、ベンダーが異なると、たとえば「通話ができない」「特定の機能を利用できない」などのような相互接続上の課題が発生することがある。
【００１３】
（ベンダーが異なることによる問題点）
図１３は、ベンダーが異なる機器が混在するＳＩＰシステム９０１の一例について示す説明図である。このＳＩＰシステム９０１は、ベンダーＡ社製のＳＩＰクライアント９１０Ａと、ベンダーＢ社製のＳＩＰクライアント９１０Ｂと、ベンダーＣ社製のＳＩＰクライアント９１０Ｃと、ベンダーＤ社製のＳＩＰクライアント９１０Ｄと、ベンダーＣ社製のＳＩＰサーバ９２０とが、ネットワーク９３０を介して相互に接続されて構成される。
【００１４】
ＳＩＰクライアント９１０Ａはデータ形式「Ａ」の全機能に対応する。ＳＩＰクライアント９１０Ｂはデータ形式「Ｂ」の全機能に対応し、データ形式「Ｄ」「Ｅ」の基本部分のみ（基本的な呼接続のみ）対応する。ＳＩＰクライアント９１０Ｃはデータ形式「Ｃ」の全機能に対応し、データ形式「Ｅ」の基本部分のみ対応する。ＳＩＰクライアント９１０Ｄはデータ形式「Ｄ」にフル対応する。ＳＩＰサーバ９２０はデータ形式「Ｃ」の全機能に対応し、データ形式「Ｄ」「Ｅ」の基本部分のみ対応する。
【００１５】
この結果、ＳＩＰクライアント９１０ＣとＳＩＰサーバ９２０は、いずれもベンダーＣ社製であり、いずれも（ベンダーＣ社独自の）データ形式「Ｃ」の全機能に対応しているので、この両者間では全機能を問題なく利用できる。基本的な呼接続だけでなく、たとえばプレゼンスサービスや位置情報サービスなどのような、データ形式「Ｃ」において備えられたベンダーＣ社独自のサービスを利用することもできる。
【００１６】
しかしながら、これ以外の組み合わせでは、全機能に対応したものは無い。ＳＩＰクライアント９１０Ｂ−ＳＩＰサーバ９２０間（データ形式「Ｄ」「Ｅ」）、ＳＩＰクライアント９１０Ｂ−ＳＩＰクライアント９１０Ｃ間（データ形式「Ｅ」）、ＳＩＰクライアント９１０Ｂ−ＳＩＰクライアント９１０Ｄ間（データ形式「Ｄ」）、ＳＩＰクライアント９１０Ｄ−ＳＩＰサーバ９２０間（データ形式「Ｄ」）が基本的な呼接続のみ可能となり、他の組み合わせでは接続不可能となる。
【００１７】
たとえば、ＳＩＰクライアント９１０Ａがフル対応するデータ形式「Ａ」は、ＳＩＰクライアント９１０Ｂ〜ＤとＳＩＰサーバ９２０がいずれも対応していないので、ＳＩＰクライアント９１０Ａは他のＳＩＰクライアントやＳＩＰサーバと接続して通話することができない。他の組み合わせにおいても、これと同様の問題が発生する。
【００１８】
図１３では、「全機能対応で接続可能」な組み合わせを「太い実線矢印」、「基本的な呼接続のみ可能」な組み合わせを「細い実線矢印」、「接続不可能」な組み合わせを「破線矢印」で各々示している。全機能対応で接続可能な組み合わせはＳＩＰクライアント９１０Ｃ−ＳＩＰサーバ９２０間しか存在せず、他は全て基本的な呼接続のみ可能、もしくは接続不可能である。
【００１９】
（実装が異なることによる問題点）
図１４は、同一ベンダーであっても実装が異なる機器が混在するＳＩＰシステム１００１の一例について示す説明図である。このＳＩＰシステム１００１は、全て同一のベンダー製のＳＩＰクライアント１０１０Ａ〜ＤとＳＩＰサーバ１０２０とが、ネットワーク１０３０を介して相互に接続されて構成される。
【００２０】
ＳＩＰクライアント１０１０ＡはハードウェアとしてＳＩＰを実装する固定電話であり、「オーディオＡ」「オーディオＢ」という２種類の音声メディア形式に対応する。ＳＩＰクライアント１０１０ＢはファームウェアとしてＳＩＰを実装する携帯電話であり、「オーディオＢ」「オーディオＣ」という２種類の音声メディア形式と、「ビデオＡ」「ビデオＢ」という２種類の動画メディア形式に対応する。
【００２１】
ＳＩＰクライアント１０１０ＣはソフトウェアとしてＳＩＰを実装するスマートフォンまたはＰＣであり、「オーディオＡ」「オーディオＢ」という２種類の音声メディア形式に対応し、「アプリケーションＡ」をインストール済みである。ＳＩＰクライアント１０１０ＤもソフトウェアとしてＳＩＰを実装するスマートフォンまたはＰＣであり、「オーディオＣ」「オーディオＤ」という２種類の音声メディア形式と、「ビデオＡ」という１種類の動画メディア形式に対応し、「アプリケーションＡ」「アプリケーションＢ」をインストール済みである。
【００２２】
ＳＩＰクライアント１０１０Ａ〜ＤとＳＩＰサーバ１０２０は全て同一ベンダー製であるので、図１３で示したような接続性の問題は発生しないはずである。しかしながら、ＳＩＰクライアント１０１０Ａ〜Ｄは各々ＳＩＰの実装形式やバージョンが異なり、その結果として対応するメディア形式や機能が異なる場合がある。そのため、ＳＩＰクライアント１０１０Ａ〜Ｄの各々で、接続して通話することのできない組み合わせや、機能の制限される組み合わせが発生する。
【００２３】
たとえば、ＳＩＰクライアント１０１０Ａは、ＳＩＰクライアント１０１０Ｂと「オーディオＢ」という音声メディア形式を介して通話可能ではあるが、ＳＩＰクライアント１０１０Ｃ〜Ｄとは共通して利用できるメディア形式が存在しないので通話できない。また、ＳＩＰクライアント１０１０Ｂは他の全てのＳＩＰクライアントと接続は可能ではあるが、ＳＩＰクライアント１０１０Ｃとの間では共通して利用できる動画メディア形式が存在しないので、音声通話だけしかできない。
【００２４】
（バージョンアップの問題点）
図１５は、図１４に示したＳＩＰシステム１００１におけるバグ修正やバージョンアップに係る問題について示す説明図である。ＳＩＰサーバ１０２０は管理者が頻繁にバージョンアップを行っており、システムで利用される全てのＳＩＰヘッダ形式「Ａ」〜「Ｆ」が利用可能となっている。
【００２５】
これに対して、ＳＩＰクライアント１０１０ＡはハードウェアとしてＳＩＰを実装する固定電話であるので、ＳＩＰのバージョンアップにはハードウェアの交換が必要となる。そのため、出荷時点で対応していたヘッダ形式「Ａ」「Ｂ」の２種類しか対応できない。
【００２６】
ＳＩＰクライアント１０１０ＢはファームウェアとしてＳＩＰを実装する携帯電話であるので、ＳＩＰのバージョンアップはファームウェアの更新によって可能である。しかしながら、ファームウェアの更新はユーザにとっては煩雑な操作が必要となるので、頻繁に行うことはできない。そのため、ヘッダ形式「Ａ」「Ｂ」「Ｃ」の３種類しか対応できない。
【００２７】
ＳＩＰクライアント１０１０Ｃ〜ＤはいずれもソフトウェアとしてＳＩＰを実装するスマートフォンまたはＰＣであるので、ＳＩＰのバージョンアップはソフトウェアの更新によって容易にできる。しかしながら、その更新を行うかどうかは、ユーザ各々に依存するのが実情である。そのため、ソフトウェアを頻繁に更新するユーザとそうでないユーザがどうしても出てしまう。
【００２８】
ＳＩＰクライアント１０１０Ｃは、バージョン「１．０」のＳＩＰクライアントソフトウェアをインストールしているので、ＳＩＰヘッダ形式「Ａ」〜「Ｅ」の５種類に対応する。ＳＩＰクライアント１０１０Ｄは、バージョン「２．０」のＳＩＰクライアントソフトウェアをインストールしているので、ＳＩＰヘッダ形式「Ａ」〜「Ｆ」の６種類に対応する。
【００２９】
非特許文献２には、このような相互接続性に係る問題点の解決のために、相互接続性の検証やこれに伴う規格の改定などが進められていることが記載されている。しかしながら、規格の改定によって相互接続性の問題が解決されるとしても、実際に改定された規格に基づく新たなハードウェア、ファームウェア、もしくはソフトウェアの導入が必要となる。改定された規格を導入するかどうかはユーザ各々に依存するので、これを導入せずに同じＳＩＰクライアントを使い続けるユーザが１人でもいる限り、この問題は解決されない。
【００３０】
本発明の目的は、ベンダーや実装などの違いに基づく相互接続性に係る問題点を解決し、全てのユーザが最新の仕様に基づくＳＩＰを利用可能とするＳＩＰクライアント、ＳＩＰ更新方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００３１】
上記目的を達成するため、本発明に係るＳＩＰクライアントは、ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントであって、予め特定された基本動作を行うと共にネットワークに予め接続された一時アプリサーバからＳＩＰ規格による通信内容を定めた一時アプリをダウンロードするベース機能実行部と、一時アプリを動作させて他のＳＩＰクライアントもしくはＳＩＰサーバとの通信を行う一時アプリ動作部とを備えると共に、ベース機能実行部が、一時アプリ動作部が以前のバージョンの一時アプリによる通信の動作を開始したことを捕捉するリクエスト捕捉機能と、リクエスト捕捉機能が通信の開始を捕捉した際に一時アプリ動作部の動作状態を予め備えられた記憶手段に一時的に記憶する動作状態記憶機能と、一時アプリ動作部の動作状態を一時的に記憶させてから、一時アプリサーバから最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて動作状態を継続させる一時アプリ更新機能とを有することを特徴とする。
【００３２】
上記目的を達成するため、本発明に係るＳＩＰ更新方法は、ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、予め特定された基本動作をベース機能実行部が開始し、ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる他のＳＩＰクライアントもしくはＳＩＰサーバとの通信の動作を一時アプリ動作部が開始し、以前のバージョンの一時アプリが通信を開始しようとしたことをベース機能実行部のリクエスト捕捉機能が捕捉し、通信開始が捕捉された際に、以前のバージョンの一時アプリの動作状態をベース機能実行部の動作状態記憶機能が予め備えられた記憶手段に一時的に記憶し、一時アプリサーバからベース機能実行部の一時アプリ更新機能が最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて動作状態を継続させることを特徴とする。
【００３３】
上記目的を達成するため、本発明に係るＳＩＰ更新プログラムは、ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、ＳＩＰクライアントが備えるコンピュータに、予め特定された基本動作を開始する手順、ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる他のＳＩＰクライアントもしくはＳＩＰサーバとの通信の動作を開始する手順、以前のバージョンの一時アプリが通信を開始しようとしたことを捕捉する手順、通信開始が捕捉された際に、以前のバージョンの一時アプリの動作状態を予め備えられた記憶手段に一時的に記憶する手順、および一時アプリサーバから最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて動作状態を継続させる手順を実行させることを特徴とする。
【発明の効果】
【００３４】
本発明は、上述したように、ＳＩＰによる通信の開始を捕捉して一時アプリサーバから最新の一時アプリをダウンロードするように構成したので、ユーザが特に意識しなくても常に最新の一時アプリを利用してＳＩＰの通信を行うことが可能となる。これによって、全てのユーザが最新の仕様に基づくＳＩＰを利用可能であるという優れた特徴を持つＳＩＰクライアント、ＳＩＰ更新方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に係るＳＩＰシステムの全体的な構成について示す説明図である。
【図２】図１に示したＳＩＰシステムで、一時アプリサーバを導入する前後での変化について示す説明図である。
【図３】図１に示した固定電話のＳＩＰクライアントの構成について示す説明図である。
【図４】図１に示した携帯電話のＳＩＰクライアントの構成について示す説明図である。
【図５】図１に示したスマートフォンまたはＰＣのＳＩＰクライアントの構成について示す説明図である。
【図６】図３〜５に示したベース機能実行部および一時アプリ実行部の構成についてより詳しく示す説明図である。
【図７】図３〜５に示したＳＩＰクライアントが、ベース機能を起動する際の動作を示すフローチャートである。
【図８】図７のステップＳ３０２として示した一時アプリ更新機能の動作の詳細を示すフローチャートである。
【図９】図３〜５に示したＳＩＰクライアントが、ＳＩＰレジストレーションを行う際の動作を示すフローチャートである。
【図１０】図３〜５に示したＳＩＰクライアントが、発呼の動作を行う際の動作を示すフローチャートである。
【図１１】図３〜５に示したＳＩＰクライアントが、着呼の動作を行う際の動作を示すフローチャートである。
【図１２】図３〜５に示したＳＩＰクライアントが、他アプリからのＳＩＰ処理要求を受けた際の動作を示すフローチャートである。
【図１３】ベンダーが異なる機器が混在するＳＩＰシステムの一例について示す説明図である。
【図１４】同一ベンダーであっても実装が異なる機器が混在するＳＩＰシステムの一例について示す説明図である。
【図１５】図１４に示したＳＩＰシステムにおけるバグ修正やバージョンアップに係る問題について示す説明図である。
【発明を実施するための形態】
【００３６】
（実施形態）
以下、本発明の実施形態の構成について添付図１〜２および６に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るＳＩＰクライアント１０は、ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰによって通信するＳＩＰクライアントであって、予め特定された基本動作を行うと共にネットワークに予め接続された一時アプリサーバからＳＩＰ規格による通信内容を定めた一時アプリをダウンロードするベース機能実行部１００と、一時アプリを動作させて他のＳＩＰクライアントもしくはＳＩＰサーバとの通信を行う一時アプリ動作部２００とを備えると共に、ベース機能実行部が、一時アプリ動作部が以前のバージョンの一時アプリによる通信の動作を開始したことを捕捉するリクエスト捕捉機能（第１のリクエスト捕捉機能１０４）と、リクエスト捕捉機能が通信開始を捕捉した際に一時アプリの動作中の状態を予め備えられた記憶手段に一時的に記憶する動作状態記憶機能１０７と、一時アプリ動作部の動作状態を一時的に記憶させてから、一時アプリサーバから最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて動作状態を継続させる一時アプリ更新機能１０２とを有する。
【００３７】
また、このベース機能実行部１００は、基本動作を開始する時に一時アプリ更新機能を実行する。そしてリクエスト捕捉機能（第２のリクエスト捕捉機能１０５）が、他のＳＩＰクライアントからの接続要求を受けた時にこれを捕捉して一時アプリ更新機能を実行させる。さらに、ベース機能および一時アプリと異なるアプリを動作させるその他のアプリ実行部３００を備えると共に、ベース機能実行部１００が、その他のアプリ実行部からのＳＩＰ処理要求を受けた時に一時アプリ更新機能を実行させるＡＰＩ１０１を有する。
【００３８】
そして一時アプリ更新機能１０２は、一時アプリサーバに登録された最新の一時アプリのバージョン番号を当該一時アプリサーバから取得してこれを一時アプリ動作部で動作中の一時アプリのバージョン番号と比較し、この両者が異なっている場合に一時アプリサーバから最新バージョンの一時アプリをダウンロードしてこれを一時アプリ動作部に動作させる。
【００３９】
以上の構成を備えることによって、このＳＩＰクライアントは、ベンダーや実装などの違いに基づくＳＩＰクライアントの相互接続性に係る問題点を解決し、全てのユーザが最新の仕様に基づくＳＩＰを利用可能なものとなる。
以下、これをより詳細に説明する。
【００４０】
図１は、本発明の実施形態に係るＳＩＰシステム１の全体的な構成について示す説明図である。このＳＩＰシステム１は、複数台のＳＩＰクライアント１０Ａ〜Ｄと、ＳＩＰサーバ２０とが、ネットワーク４０を介して相互に接続されて構成される。ＳＩＰクライアントの台数は、ここでは例として４台を図示しただけであり、実際はこれより多くても少なくてもよい。また、ＳＩＰサーバ２０が複数台のコンピュータであってもよい。
【００４１】
ＳＩＰクライアント１０Ａは固定電話であり、ハードウェアとして実装されたベース機能を備える。このベース機能で、メディアは「オーディオＡ」、ヘッダは「Ａ」「Ｂ」の各種類に対応する。ここでいうベース機能とは、各々のＳＩＰクライアントが最初から備えている通信機能のことをいい、各ＳＩＰクライアントは本来このベース機能によって他のＳＩＰクライアントおよびＳＩＰサーバとの通信を行うものである。
【００４２】
ＳＩＰクライアント１０Ｂは携帯電話であり、ファームウェアとして実装されたベース機能を備える。このベース機能で、メディアは「オーディオＢ」「オーディオＣ」、ヘッダは「Ａ」「Ｂ」「Ｃ」の各種類に対応する。
【００４３】
ＳＩＰクライアント１０ＣはスマートフォンまたはＰＣであり、ソフトウェアとして実装されたベース機能を備える。このベース機能はバージョン「１．０」であり、メディアは「オーディオＢ」「ビデオＡ」、ヘッダは「Ａ」「Ｂ」「Ｃ」「Ｄ」の各種類に対応する。
【００４４】
ＳＩＰクライアント１０ＤもスマートフォンまたはＰＣであり、ソフトウェアとして実装されたベース機能を備える。このベース機能はバージョン「２．０」であり、メディアは「オーディオＡ」「オーディオＢ」「ビデオＡ」「ビデオＢ」、ヘッダは「Ａ」「Ｂ」「Ｃ」「Ｄ」「Ｆ」の各種類に対応する。
【００４５】
このため、各々のベース機能だけでは通話のできないＳＩＰクライアントの組み合わせが、ＳＩＰシステム１の中に存在する。たとえば、ＳＩＰクライアント１０ＡとＳＩＰクライアント１０Ｂは、対応するヘッダの種類で共通するものが存在する（ヘッダ「Ａ」「Ｂ」は共通している）が、対応するメディアの種類で共通するものが存在しない（ＳＩＰクライアント１０Ａは「オーディオＡ」のみ対応、これに対してＳＩＰクライアント１０Ｂは「オーディオＢ」「オーディオＣ」のみ対応）ので、通話ができない。
【００４６】
そこで本実施形態に係るＳＩＰシステム１では、ネットワーク４０にさらに一時アプリサーバ３０が接続される。図２は、図１に示したＳＩＰシステム１で、一時アプリサーバ３０を導入する前後での変化について示す説明図である。この一時アプリサーバ３０は、メディアは「オーディオＡ〜Ｄ」「ビデオＡ〜Ｂ」の全種類、ヘッダは「Ａ〜Ｆ」の全種類に対応した一時アプリのマスタデータ３０Ａを予め記憶しており、各々のＳＩＰクライアント１０Ａ〜Ｄからの要求に応じてこの一時アプリを配布する。
【００４７】
各ＳＩＰクライアント１０Ａ〜Ｄは、ＳＩＰによる実際の通話にはベース機能を使用せず、全て一時アプリをダウンロードして使用する。そして、各ＳＩＰクライアント１０Ａ〜Ｄは、ＳＩＰメッセージの送受信に係る動作を行うたびに一時アプリサーバ３０にアクセスして、最新の一時アプリをダウンロードして使用する。このことによって、各ＳＩＰクライアント１０Ａ〜Ｄは、メディア形式は全種類、ヘッダ形式も全種類に対応することが可能となる。
【００４８】
各々のＳＩＰクライアント１０Ａ〜Ｄで動作するベース機能は、該ベース機能が当該ＳＩＰクライアント上で起動したタイミング、もしくは当該ＳＩＰクライアント上で動作している一時アプリがＳＩＰメッセージを送受信しようとしているタイミングで、一時アプリサーバ３０から最新の一時アプリをダウンロードし、これを動作中の一時アプリと入れ替える機能を持つ。また、各ＳＩＰクライアント上で動作する一時アプリおよびベース機能には、一時アプリを入れ替えても一時アプリが入れ替え前の状態から処理を再開できる機能を持つ。
【００４９】
これにより、全てのＳＩＰクライアント１０Ａ〜Ｄで動作する一時アプリは、ユーザによるバージョンアップ操作がなくとも、また一時アプリサーバ３０上の一時アプリがバグ修正やバージョンアップのために新バージョンに入れ替えられても、各ＳＩＰクライアントがＳＩＰメッセージの送受信を実施する際には必ずネットワーク上に公開されている最新の一時アプリと同一のものとなる。
【００５０】
そのため、各ＳＩＰクライアント間で利用できるサービスは常に同一であり、しかも常に最新となる。また、システム全体のバグ修正および新規サービスの追加も、ユーザが特に意識して操作する必要は無く、短期間に行うことが可能となる。
【００５１】
前述したように、ＳＩＰクライアント１０Ａは固定電話、ＳＩＰクライアント１０Ｂは携帯電話、ＳＩＰクライアント１０ＣはスマートフォンまたはＰＣでベース機能のバージョンは「１．０」、ＳＩＰクライアント１０ＤもスマートフォンまたはＰＣでベース機能のバージョンは「２．０」、という点での違いはある。以下、これら各々のベース機能および一時アプリの実装形態の違いについて説明する。
【００５２】
図３は、図１に示した固定電話のＳＩＰクライアント１０Ａの構成について示す説明図である。ＳＩＰクライアント１０Ａは、ベース機能をハードウェアとして実現する電気回路であるベース機能実行部１００Ａと、一時アプリを実行するためのコンピュータとしての基本的な構成を備える。即ち、アプリケーションソフトの動作主体であるプロセッサ１１と、プログラムおよびデータを記憶する記憶手段１２と、ネットワーク４０を介して他の装置との通信を行う通信手段１３とを備える。
【００５３】
ＳＩＰクライアント１０Ａはさらに、ユーザからの画面操作を受け付け、また処理結果をユーザに画面として提示する画面入出力手段１４と、ユーザからの音声入力を受け付け、またユーザに通信相手からの音声を出力する音声入出力手段１５とを備える。プロセッサ１１は後述する一時アプリ実行部２００およびその他のアプリ実行部３００として機能する。記憶手段１２は、ダウンロードした一時アプリを記憶する一時アプリ記憶部１２Ａ、および動作中の一時アプリの動作状態を記憶する動作状態記憶部１２Ｂといった記憶領域が確保されている。
【００５４】
図４は、図１に示した携帯電話のＳＩＰクライアント１０Ｂの構成について示す説明図である。ＳＩＰクライアント１０Ｂは、図３に示されたＳＩＰクライアント１０Ａの構成と比較して、ハードウェアとしてのベース機能実行回路１００Ａは備えられていない。そのかわり、記憶手段１２にベース機能を実現するためのファームウェアを記憶する記憶領域であるファームウェア記憶部１２Ｃが追加されている。
【００５５】
これによって、プロセッサ１１は、ファームウェアによって実現されるベース機能実行部１００Ｂとしても機能する。一時アプリ実行部２００およびその他のアプリ実行部３００については、図３に示されたＳＩＰクライアント１０Ａと同一である。
【００５６】
図５は、図１に示したスマートフォンまたはＰＣのＳＩＰクライアント１０Ｃ〜Ｄの構成について示す説明図である。ＳＩＰクライアント１０Ｃ〜Ｄのハードウェアとしての構成はＳＩＰクライアント１０Ｂと同一ではあるが、記憶手段１２のファームウェア記憶部１２Ｃが、たとえば米国アップルコンピュータ社のｉＯＳ（登録商標）や米国グーグル社のアンドロイド（登録商標）などのようなオペレーティングシステム（Operating System、基本ソフト。以後ＯＳという）を記憶するＯＳ記憶部１２Ｄ、およびベース機能を実現するためのアプリケーションソフトであるベース機能アプリを記憶するベース機能アプリ記憶部１２Ｅに置換されている。
【００５７】
これによって、プロセッサ１１は、まずＯＳを起動するＯＳ実行部１５０として機能し、このＯＳの管理下でベース機能アプリ、一時アプリ、およびその他のアプリが動作することによって、各々ベース機能実行部１００Ｃ、一時アプリ実行部２００およびその他のアプリ実行部３００が、図３〜５に示したＳＩＰクライアント１０ＡおよびＢと同様に機能する。
【００５８】
ＳＩＰクライアント１０Ｃ〜Ｄは、ベース機能アプリ記憶部１２Ｅに記憶されているベース機能アプリのバージョンが前述のように異なる。しかしながら、本実施形態ではＳＩＰに係る実際の通信は最新の一時アプリによって行うので、各々のベース機能アプリが対応するヘッダやデータ形式のバージョンによる違いは、本実施形態では発生しない。
【００５９】
図３〜５に示した各々のＳＩＰクライアント１０の構成の相違点をまとめると、ＳＩＰクライアント１０Ａは固定電話で、ベース機能はハードウェアとして実装されているので、電源を投入すればすぐに動作可能である。
【００６０】
ＳＩＰクライアント１０Ｂは携帯電話で、ベース機能はプロセッサ１１上で直接動作可能なファームウェアとして実装されているので、電源投入後に記憶手段１２から直接プロセッサに読み込まれて動作する。
【００６１】
ＳＩＰクライアント１０Ｃ〜ＤはスマートフォンまたはＰＣで、ベース機能はソフトウェアとして実装されているので、電源投入後まずＯＳが起動され、その上にベース機能アプリが読み込まれて動作する。
【００６２】
しかしながら、いずれもベース機能を搭載し、また一時アプリを動作させていることは共通している。そのため、本明細書ではこれらを総称してＳＩＰクライアント１０という。ベース機能実行部１００Ａ〜Ｃは、起動時、もしくは当該ＳＩＰクライアント上で動作中の一時アプリがＳＩＰメッセージを送受信しようとしたタイミングで、一時アプリを一時アプリサーバ３０からダウンロードし、動作している一時アプリと入れ替える。この動作は図３〜５に示した実装形態の違いに関わらず同一である。本明細書では、これらを総称してベース機能実行部１００という。
【００６３】
図６は、図３〜５に示したベース機能実行部１００（１００Ａ、１００Ｂ、１００Ｃ）および一時アプリ実行部２００の構成についてより詳しく示す説明図である。実装形態の違いに関わらず、各々のＳＩＰクライアント１０は以下に説明するベース機能を初期状態で実行可能で、かつ一時アプリをダウンロードして実行可能である構成であることは共通している。図６では、実装形態の違いに関わらず共通している機能について説明するため、各々の機能を概念的に図示している。
【００６４】
ベース機能実行部１００は、ベース機能の実行によって、一時アプリ更新機能１０２、一時アプリダウンロード機能１０３、第１のリクエスト捕捉機能１０４、第２のリクエスト捕捉機能１０５、動作状態記憶機能１０７、ＡＰＩ１０１、タイマー１０６、ダウンロード省略設定記憶機能１０８といった各機能部として機能する。
【００６５】
一時アプリ更新機能１０２は、ベース機能のメイン処理部である。一時アプリ更新機能１０２は、他の各機能部からの情報や信号に応じて判断処理を行い、必要に応じて他の機能部へ処理を指示するメインコントローラであり、中でも一時アプリ実行部２００で動作する一時アプリを更新する動作を行う。
【００６６】
ＡＰＩ１０１は、その他のアプリ実行部３００で実行される各種アプリとの情報のやり取りの際に利用するインターフェース機能部（ＡＰＩ、Application Programming Interface）である。ＡＰＩ１０１の実装形態としては、ＬＳＩ、コマンド群、メッセージキュー、共有メモリなどがある。
【００６７】
一時アプリダウンロード機能１０３は、一時アプリのファイルを一時アプリサーバ３０からダウンロードして記憶手段１２に記憶させる機能である。タイマー１０６は一時アプリダウンロード機能１０３が最後に一時アプリのファイルをダウンロードしてきた時間を記録するために使用されるタイマーである。第１のリクエスト捕捉機能１０４、第２のリクエスト捕捉機能１０５、動作状態記憶機能１０７の各々については後述する。
【００６８】
その他のアプリ実行部３００は、たとえばウェブブラウザや電話帳などのような、ベース機能や一時アプリとは別のソフトウェア（これを本明細書ではその他のアプリという）を実行する。
【００６９】
一時アプリ実行部２００は、一時アプリを動作させる。一時アプリは、ベース機能と連動してプロセッサ１１上でＳＩＰクライアントとして動作するソフトウェアである。
【００７０】
一時アプリのマスタデータ３０Ａは一時アプリサーバ３０上にシステム管理者により設置され、各ＳＩＰクライアント１０はこの一時アプリを使用時にだけダウンロードして使用し、定常的に保持しない。また各ＳＩＰクライアント１０は、ベース機能起動時、もしくは一時アプリのＳＩＰメッセージ送受信時に、ベース機能が一時アプリサーバ３０からダウンロードする最新の一時アプリによって一時アプリを更新する。
【００７１】
一時アプリ実行部２００は、一時アプリの実行によって、入出力機能２０１、一時アプリメイン機能２０２、ＳＩＰリクエスト機能２０３といった各機能部として機能する
一時アプリメイン機能２０２は、一時アプリのメイン処理部である。一時アプリメイン機能２０２は、入出力機能２０１、ＳＩＰリクエスト機能２０３からの情報または信号を受信したあと判断処理を行い、次に行う処理を決定する。一時アプリメイン機能２０２は、必要に応じて他の機能部に処理を指示する。
【００７２】
入出力機能２０１は、画面入出力手段１４および音声入出力手段１５を介してユーザからの操作入力および音声入力を受け付け、またユーザに対して画面出力および音声出力を行う。
【００７３】
ＳＩＰリクエスト機能２０３は、ＳＩＰの送受信処理を担当する機能部である。ＳＩＰリクエスト機能２０３は、一時アプリメイン機能２０２からのＳＩＰメッセージ送信要求信号を第１のリクエスト捕捉機能１０４を介して受け取ると、要求された内容のＳＩＰメッセージを作成し、ネットワーク４０に対して第２のリクエスト捕捉機能１０５を介して送信処理を行う。
【００７４】
ＳＩＰリクエスト機能２０３はまた、ネットワーク４０から第２のリクエスト捕捉機能１０５を介してＳＩＰメッセージを受信すると、そのＳＩＰメッセージを一時アプリメイン機能２０２が処理しやすいフォーマットに変換して、その内容を第１のリクエスト捕捉機能１０４を介して一時アプリメイン機能２０２へ送信する。
【００７５】
動作状態記憶機能１０７は、一時アプリの入換え可否状態や一時アプリが利用しているデータを、記憶手段１２上の動作状態記憶部１２Ｂに記憶するための機能である。一時アプリ更新機能１０２は、動作状態記憶部１２Ｂに記録されている情報を参照することで、一時アプリ入れ換えのタイミングを把握して、その一時アプリの入れ替えを実行する。入れ換えられた一時アプリは動作状態記憶部１２Ｂを参照して、入れ換えられる直前までの動作状態を引き継いで処理を再開する。ダウンロード省略設定記憶機能１０８は、一時アプリのダウンロードに伴う通信の発生をなるべく減らしたい場合などに、該一時アプリのダウンロードを省略可能とするか否かについての初期設定を、記憶手段１２上の動作状態記憶部１２Ｂに記憶するための機能である。
【００７６】
第１のリクエスト捕捉機能１０４は、一時アプリメイン機能２０２がＳＩＰリクエスト機能２０３に対して特定のＳＩＰメッセージを送信するよう要求した場合にこれを捕捉し、その旨と補足された情報とを一時アプリ更新機能１０２に通知する。
【００７７】
第２のリクエスト捕捉機能１０５は、ネットワーク４０を介して他の装置から特定のＳＩＰメッセージを受信した場合にこれを捕捉し、その旨と補足された情報とを一時アプリ更新機能１０２に通知する。
【００７８】
（ベース機能起動時の動作）
図７は、図３〜５に示したＳＩＰクライアント１０が、ベース機能を起動する際の動作を示すフローチャートである。ベース機能の機能がソフトウェアもしくはファームウェアで実現される場合（図３）と、ハードウェアで実現される場合（図４〜５）とでは、ベース機能が起動されるまでの各装置の動作過程は異なる。しかしながら、ベース機能が起動されてからの動作は、各装置で共通となる。図７では、各装置で共通する動作を示している。
【００７９】
まずベース機能が初期化され（ステップＳ３０１）、その初期化が完了すると、一時アプリ更新機能１０２は図８で後述する一時アプリ更新機能を実行する（ステップＳ３０２）。そして、この一時アプリ更新の動作が正常に完了したか否かを、一時アプリ更新機能１０２が判断する（ステップＳ３０３）。正常に完了すればステップＳ３０４に処理が進み、正常に完了していなければベース機能は異常終了となる。
【００８０】
一時アプリ更新の動作が正常に完了すれば（ステップＳ３０３がイエス）、一時アプリ更新機能１０２は一時アプリ実行部２００にその一時アプリを起動させ（ステップＳ３０４）、これが正常に起動したか否かを判断する（ステップＳ３０５）。正常に起動すれば正常終了となってそのまま処理を継続し、正常に起動していなければベース機能と一時アプリはいずれも異常終了となる。
【００８１】
（一時アプリ更新の動作）
図８は、図７のステップＳ３０２として示した一時アプリ更新機能１０２の動作の詳細を示すフローチャートである。一時アプリ更新機能１０２はまず、タイマー１０６に時刻が記録されているか否かを確認する（ステップＳ４０１）。タイマー１０６に時刻が記録されていない場合は、「初回処理時」と判断し、そのままステップＳ４０３以降に処理を進める。
【００８２】
タイマー１０６に時刻が記録されている場合は（ステップＳ４０１がイエス）、その時刻（即ち一時アプリの更新が完了した時刻）から現在までの時刻が、あらかじめ与えられた閾値を越えているか（即ち一時アプリの更新から所定の時間が経過したか）否かを確認する（ステップＳ４０２）。経過していればステップＳ４０３以降に処理を進める。経過していなければ、異常終了とする。
【００８３】
一時アプリ更新機能１０２は、引き続き、記憶手段１２に一時アプリが記憶されているか否かを確認する（ステップＳ４０３）。記憶されていなければそのままステップＳ４０６以降に処理を進める。記憶されていれば、次に一時アプリ更新機能１０２はネットワーク４０を介して一時アプリサーバ３０にアクセスして一時アプリの最新バージョンのバージョン番号を取得し、これを記憶手段１２に記憶されている一時アプリのバージョン番号と比較して、一致するか否かを判断する（ステップＳ４０４）。
【００８４】
バージョン番号が一致しなければ（ステップＳ４０４がノー）、記憶手段１２に記憶されている一時アプリは最新のものではないので、一時アプリ更新機能１０２はステップＳ４０６以降に処理を進める。一致すれば（ステップＳ４０４がイエス）、記憶手段１２に記憶されている一時アプリは最新のものであるので、次に一時アプリ更新機能１０２はダウンロード省略設定記憶機能１０８に記憶されている「ダウンロード省略設定」が有効か無効かを判断し（ステップＳ４０５）、無効ならステップＳ４０６以降に処理を進める。有効ならステップＳ４１０以降に処理を進める。
【００８５】
そして一時アプリ更新機能１０２は、ネットワーク４０を介して一時アプリサーバ３０にアクセスして、最新の一時アプリのダウンロードを要求し、この要求に応じて一時アプリサーバ３０から送られてくる最新の一時アプリを受信して（ステップＳ４０６）、正常にダウンロードできたか否かを判断する（ステップＳ４０７）。ここで、正常にダウンロードできたか否かについては、ダウンロードしたファイルの容量や誤り検出符号など、公知の手法によって判断することが可能である。正常にダウンロードできていれば、ステップＳ４１０以降に処理を進める。
【００８６】
ステップＳ４０７で、正常にダウンロードできていないと判断された場合（ステップＳ４０７がノー）、一時アプリ更新機能１０２は、そのダウンロード失敗があらかじめ与えられた回数に到達したか否かを判断して（ステップＳ４０８）、到達していなければあらかじめ与えられた秒数だけ処理を待ち合わせた上で（ステップＳ４０９）、ステップＳ４０６に戻って同一の一時アプリのダウンロードを再試行する。ダウンロード失敗があらかじめ与えられた回数に到達すれば、異常終了とする。
【００８７】
一時アプリ更新機能１０２はこれに続いて、動作状態記憶機能１０７を参照し、ダウンロードした一時アプリが差し替え処理を実施しても問題が無い状態であるか否かを判断する（ステップＳ４１０）。ここでいう「差し替え処理を実施しても問題が無い状態」とは、一時アプリがＳＩＰクライアント１０上に存在しないか、または一時アプリがＳＩＰクライアント１０上に存在するが当該一時アプリを消去しても新しい（ダウンロードされた）一時アプリによって消去前の状態を復元できるという状態をいい、その状態であるか否かを一時アプリ更新機能１０２が動作状態記憶機能１０７を参照することによって確認する。
【００８８】
差し替え処理を実施しても問題が無い状態であれば、一時アプリ更新機能１０２はそのまま現在動作中の一時アプリの動作を停止させてその動作状態を動作状態記憶機能１０７に一時記憶させてから、ステップＳ４０６で新しくダウンロードした一時アプリの動作を開始して動作状態記憶機能１０７に一時記憶された動作状態を引き継いで処理を継続させる処理、即ち差し替え処理を実施して（ステップＳ４１１）、その差し替え処理の完了時刻をタイマー１０６に記録し（ステップＳ４１２）、後続の処理（図７のステップＳ３０３以降など）に進む。
【００８９】
ステップＳ４１０で、一時アプリの差し替え処理を実施したら問題のある状態であれば（ステップＳ４１０がノー）、一時アプリ更新機能１０２は上述のステップＳ４０８〜４０９と同様に、あらかじめ与えられた回数に到達するまで、あらかじめ与えられた秒数だけ処理を待ち合わせた上でステップＳ４１０からの処理をやり直す（ステップＳ４１３〜４１４）。この処理をやり直した回数があらかじめ与えられた回数に到達すれば、異常終了とする。
【００９０】
（ＳＩＰレジストレーションの動作）
ＳＩＰレジストレーションとは、前述のようにＳＩＰサーバ２０がＳＩＰシステム１に参加している各ＳＩＰクライアント１０の生存を確認するための動作である。そのため、各ＳＩＰクライアント１０は、レジスター（REGISTER）リクエストをＳＩＰサーバ２０に送信する。
【００９１】
本実施形態では、一時アプリ動作部２００の一時アプリメイン機能２０２が、ＳＩＰサーバ２０宛のレジスターリクエストをＳＩＰリクエスト機能２０３に渡すところを第１のリクエスト捕捉機能１０４が捕捉して、以下の図９に示す動作を行う。より具体的には、ユーザが画面入出力手段１４および入出力機能２０１を介して通話開始を指示した場合、あるいは一時アプリメイン機能２０２が予め与えられた周期で自動的に開始する場合などがある。
【００９２】
図９は、図３〜５に示したＳＩＰクライアント１０が、ＳＩＰレジストレーションを行う際の動作を示すフローチャートである。一時アプリ動作部２００の一時アプリメイン機能２０２がＳＩＰサーバ２０宛のレジスターリクエストをＳＩＰリクエスト機能２０３に渡すと、第１のリクエスト捕捉機能１０４がこれを捕捉し（ステップＳ５０１）、ベース機能実行部１００の一時アプリ更新機能１０２にその旨を通知する（ステップＳ５０２）。
【００９３】
一時アプリ更新機能１０２はこの通知を受けて（ステップＳ５０３）、図７のステップＳ３０２と同様に、図８に示した一時アプリ更新の動作を行う（ステップＳ５０４）。この動作が完了してから、一時アプリ更新機能１０２は第１のリクエスト捕捉機能１０４に、捕捉していたレジスターリクエストをＳＩＰリクエスト機能２０３に渡すよう指示し（ステップＳ５０５）、第１のリクエスト捕捉機能１０４はそのレジスターリクエストをＳＩＰリクエスト機能２０３に渡す（ステップＳ５０６）。ＳＩＰリクエスト機能２０３は、このレジスターリクエストをＳＩＰサーバ２０宛に送信する（ステップＳ５０７）。以上でＳＩＰレジストレーションの動作は完了である。
【００９４】
（発呼の動作）
ＳＩＰクライアント１０が、ＳＩＰシステム１に参加している他のＳＩＰクライアント１０（他端末）を呼び出す動作、すなわち発呼の動作は、具体的には、ユーザが画面入出力手段１４および入出力機能２０１を介して通話開始を指示した場合、あるいは一時アプリメイン機能２０２が内部処理で開始する場合などに行われる。その場合、一時アプリ動作部２００の一時アプリメイン機能２０２が、他端末宛のインバイト（INVITE）リクエストをＳＩＰリクエスト機能２０３に渡す。本実施形態では、これを第１のリクエスト捕捉機能１０４が捕捉して、以下の図１０に示す動作を行う。
【００９５】
図１０は、図３〜５に示したＳＩＰクライアント１０が、発呼の動作を行う際の動作を示すフローチャートである。一時アプリ動作部２００の一時アプリメイン機能２０２が他端末宛のインバイトリクエストをＳＩＰリクエスト機能２０３に渡すと、第１のリクエスト捕捉機能１０４がこれを捕捉し（ステップＳ６０１）、ベース機能実行部１００の一時アプリ更新機能１０２にその旨を通知する（ステップＳ６０２）。
【００９６】
一時アプリ更新機能１０２はこの通知を受けて（ステップＳ６０３）、図７のステップＳ３０２および図９のステップＳ５０４と同様に、図８に示した一時アプリ更新の動作を行う（ステップＳ６０４）。この動作が完了してから、一時アプリ更新機能１０２は第１のリクエスト捕捉機能１０４に、捕捉していたインバイトリクエストをＳＩＰリクエスト機能２０３に渡すよう指示し（ステップＳ６０５）、第１のリクエスト捕捉機能１０４はそのインバイトリクエストをＳＩＰリクエスト機能２０３に渡す（ステップＳ６０６）。ＳＩＰリクエスト機能２０３は、このインバイトリクエストを本来の宛先である他端末宛に送信する（ステップＳ６０７）。以上で発呼の動作は完了である。
【００９７】
（着呼の動作）
ＳＩＰクライアント１０が、ＳＩＰシステム１に参加している他のＳＩＰクライアント１０（他端末）から呼び出される動作、すなわち着呼の動作は、具体的には、ネットワーク４０を介して他のＳＩＰクライアント１０から第一インバイト（1st-INVITE）リクエストを受信した場合に行われる。本実施形態では、これを第２のリクエスト捕捉機能１０５が捕捉して、以下の図１１に示す動作を行う。
【００９８】
図１１は、図３〜５に示したＳＩＰクライアント１０が、着呼の動作を行う際の動作を示すフローチャートである。ベース機能実行部１００の第２のリクエスト捕捉機能１０５が第一インバイトリクエストを受信すると（ステップＳ７０１）、ベース機能実行部１００の一時アプリ更新機能１０２にその旨を通知する（ステップＳ７０２）。
【００９９】
一時アプリ更新機能１０２はこの通知を受けて（ステップＳ７０３）、図７のステップＳ３０２、図９のステップＳ５０４および図１０のステップＳ６０４と同様に、図８に示した一時アプリ更新の動作を行う（ステップＳ７０４）。この動作が完了してから、一時アプリ更新機能１０２は第２のリクエスト捕捉機能１０５に、捕捉していたインバイトリクエストを一時アプリメイン機能２０２に渡すよう指示し（ステップＳ７０５）、第２のリクエスト捕捉機能１０５はそのインバイトリクエストを一時アプリメイン機能２０２に渡す（ステップＳ７０６）。以上で着呼の動作は完了である。
【０１００】
（他アプリからのＳＩＰ処理要求を受けた際の動作）
その他のアプリ実行部３００では、ウェブブラウザや電話帳などのような、ベース機能や一時アプリとは別のソフトウェア（その他のアプリ）が実行されるが、そこで実行される「その他のアプリ」が、ＡＰＩ１０１を介してＳＩＰ処理を要求する場合がある。
【０１０１】
たとえば、「その他のアプリ」が電話帳アプリである場合には、その中に記憶されている番号もしくはＵＲＩに対してユーザからの操作入力を受けた場合に、そこに発呼を要求する。また「その他のアプリ」がウェブブラウザである場合には、そこで表示されているウェブページ中の番号もしくはＵＲＩに対してユーザからの操作入力（クリックやタップなど）を受けた場合に、そこに発呼を要求する。
【０１０２】
その場合、その他のアプリ実行部３００からのその処理要求をＡＰＩ１０１が受けて、要求された内容に対応する処理を行う。図１２は、図３〜５に示したＳＩＰクライアント１０が、他アプリからのＳＩＰ処理要求を受けた際の動作を示すフローチャートである。その他のアプリ実行部３００で実行されるその他のアプリがＳＩＰ処理要求をベース機能実行部１００に対して送信すると、ＡＰＩ１０１がこれを受け（ステップＳ８０１）、一時アプリ更新機能１０２にその旨を通知する（ステップＳ８０２）。
【０１０３】
一時アプリ更新機能１０２はこの通知を受けて（ステップＳ８０３）、図７のステップＳ３０２、図９のステップＳ５０４、図１０のステップＳ６０４および図１１のステップＳ７０４と同様に、図８に示した一時アプリ更新の動作を行う（ステップＳ８０４）。この動作が完了してから、一時アプリ更新機能１０２はこのＳＩＰ処理要求に応じた処理を行う（ステップＳ８０５）。以上でこの動作は完了である。
【０１０４】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るＳＩＰ更新方法は、ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰによって通信するＳＩＰクライアント１０にあって、予め特定された基本動作をベース機能実行部が開始し、ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる他のＳＩＰクライアントもしくはＳＩＰサーバとの通信の動作を一時アプリ動作部が開始し、以前のバージョンの一時アプリが通信を開始しようとしたことをベース機能実行部のリクエスト捕捉機能が捕捉し（図９・ステップＳ５０１〜５０３）、通信開始が捕捉された際に、以前のバージョンの一時アプリの動作状態をベース機能実行部の動作状態記憶機能が予め備えられた記憶手段に一時的に記憶し、一時アプリサーバからベース機能実行部の一時アプリ更新機能が最新バージョンの一時アプリをダウンロードして一時アプリ動作部にこの最新バージョンの一時アプリを動作させて動作状態を継続させる（図９・ステップＳ５０４〜５０６）。
【０１０５】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するＳＩＰクライアント１０のプロセッサ１１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【０１０６】
前述した各ＳＩＰクライアントの相互接続性に係る問題は、各々の端末のベンダーがＳＩＰの通信仕様に独自の拡張や制限などを加えていることが原因である。そこで本実施形態では、各ＳＩＰクライアントがそれぞれ備えている（各ベンダー独自の）通信仕様を使用するのではなく、ＳＩＰに係る全ての通信を統一された仕様の一時アプリによって行うようにすることで、この問題を解決することができる。
【０１０７】
また、各ＳＩＰクライアントは、ＳＩＰに係る通信を行うたびに最新の一時アプリをダウンロードして、これを利用して通信を行う。そのため、たとえばバグ修正や新機能追加などで一時アプリがバージョンアップされた場合も、全てのＳＩＰクライアントにこのバージョンアップがすぐに反映される。従って、どのＳＩＰクライアントも、常に最新かつ共通の仕様でＳＩＰに係る通信を行うことが可能となる。その際、ユーザが意識してバージョンアップなどのような操作を行う必要は無い。ＳＩＰシステムの管理者にとっては、全てのＳＩＰクライアントを任意のタイミングで更新することが可能となるので、バグの修正や新機能の追加などを容易に行うことが可能となる。
【０１０８】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１０９】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１１０】
（付記１）  ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントであって、
予め特定された基本動作を行うと共に前記ネットワークに予め接続された一時アプリサーバから前記ＳＩＰ規格による通信内容を定めた一時アプリをダウンロードするベース機能実行部と、
前記一時アプリを動作させて前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信を行う一時アプリ動作部とを備えると共に、
前記ベース機能実行部が、
前記一時アプリ動作部が以前のバージョンの前記一時アプリによる前記通信の動作を開始したことを捕捉するリクエスト捕捉機能と、
前記リクエスト捕捉機能が前記通信の開始を捕捉した際に前記一時アプリ動作部の動作状態を予め備えられた記憶手段に一時的に記憶する動作状態記憶機能と、
前記一時アプリ動作部の動作状態を一時的に記憶させてから、前記一時アプリサーバから最新バージョンの一時アプリをダウンロードして前記一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる一時アプリ更新機能と
を有することを特徴とするＳＩＰクライアント。
【０１１１】
（付記２）  前記ベース機能実行部が、前記基本動作を開始する時に前記一時アプリ更新機能を実行することを特徴とする、付記１に記載のＳＩＰクライアント。
【０１１２】
（付記３）  前記リクエスト捕捉機能が、前記他のＳＩＰクライアントからの接続要求を受けた時にこれを捕捉して前記一時アプリ更新機能を実行させることを特徴とする、付記１に記載のＳＩＰクライアント。
【０１１３】
（付記４）  前記一時アプリとは異なるアプリを動作させるその他のアプリ実行部を備えると共に、
前記ベース機能実行部が、前記その他のアプリ実行部からのＳＩＰ処理要求を受けた時に前記一時アプリ更新機能を実行させるＡＰＩを有することを特徴とする、付記１に記載のＳＩＰクライアント。
【０１１４】
（付記５）  前記一時アプリ更新機能が、前記一時アプリサーバに登録された最新の前記一時アプリのバージョン番号を当該一時アプリサーバから取得してこれを前記一時アプリ動作部で動作中の前記一時アプリのバージョン番号と比較し、この両者が異なっている場合に前記一時アプリサーバから前記最新バージョンの一時アプリをダウンロードしてこれを前記一時アプリ動作部に動作させることを特徴とする、付記１に記載のＳＩＰクライアント。
【０１１５】
（付記６）  ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、
予め特定された基本動作をベース機能実行部が開始し、
前記ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信の動作を一時アプリ動作部が開始し、
前記以前のバージョンの一時アプリが前記通信を開始しようとしたことを前記ベース機能実行部のリクエスト捕捉機能が捕捉し、
前記通信開始が捕捉された際に、前記以前のバージョンの一時アプリの動作状態を前記ベース機能実行部の動作状態記憶機能が予め備えられた記憶手段に一時的に記憶し、
前記一時アプリサーバから前記ベース機能実行部の一時アプリ更新機能が最新バージョンの一時アプリをダウンロードして前記一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる
ことを特徴とするＳＩＰ更新方法。
【０１１６】
（付記７）  ネットワークを介して相互に接続された他のＳＩＰ（Session Initiation Protocol）クライアントもしくはＳＩＰサーバと相互に接続してＳＩＰ規格に準拠して通信するＳＩＰクライアントにあって、
前記ＳＩＰクライアントが備えるコンピュータに、
予め特定された基本動作を開始する手順、
前記ネットワークに予め接続された一時アプリサーバから予めダウンロードされた以前のバージョンの一時アプリによる前記他のＳＩＰクライアントもしくは前記ＳＩＰサーバとの通信の動作を開始する手順、
前記以前のバージョンの一時アプリが前記通信を開始しようとしたことを捕捉する手順、
前記通信開始が捕捉された際に、前記以前のバージョンの一時アプリの動作状態を予め備えられた記憶手段に一時的に記憶する手順、
および前記一時アプリサーバから最新バージョンの一時アプリをダウンロードして前記一時アプリ動作部にこの最新バージョンの一時アプリを動作させて前記動作状態を継続させる手順
を実行させることを特徴とするＳＩＰ更新プログラム。
【産業上の利用可能性】
【０１１７】
本発明は、ＳＩＰを利用した通信を行うネットワークにおいて利用することができる。
【符号の説明】
【０１１８】
１  ＳＩＰシステム
１０、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ  ＳＩＰクライアント
１１  プロセッサ
１２  記憶手段
１２Ａ  一時アプリ記憶部
１２Ｂ  動作状態記憶部
１２Ｃ  ファームウェア記憶部
１２Ｄ  ＯＳ記憶部
１２Ｅ  ベース機能アプリ記憶部
１３  通信手段
１４  画面入出力手段
１５  音声入出力手段
２０  ＳＩＰサーバ
３０  一時アプリサーバ
３０Ａ  マスタデータ
４０  ネットワーク
１００、１００Ａ、１００Ｂ、１００Ｃ  ベース機能実行部
１０１  ＡＰＩ
１０２  一時アプリ更新機能
１０３  一時アプリダウンロード機能
１０４  第１のリクエスト捕捉機能
１０５  第２のリクエスト捕捉機能
１０６  タイマー
１０７  動作状態記憶機能
１５０  ＯＳ実行部
２００  一時アプリ実行部
２０１  入出力機能
２０２  一時アプリメイン機能
２０３  ＳＩＰリクエスト機能
３００  その他のアプリ実行部
【図１】
0005857789.tif 000002
【図２】
0005857789.tif 000003
【図３】
0005857789.tif 000004
【図４】
0005857789.tif 000005
【図５】
0005857789.tif 000006
【図６】
0005857789.tif 000007
【図７】
0005857789.tif 000008
【図８】
0005857789.tif 000009
【図９】
0005857789.tif 000010
【図１０】
0005857789.tif 000011
【図１１】
0005857789.tif 000012
【図１２】
0005857789.tif 000013
【図１３】
0005857789.tif 000014
【図１４】
0005857789.tif 000015
【図１５】
0005857789.tif 000016