本開示の実施形態は、第1のユーザベースと、音声及び/またはビデオ呼及びIMチャットへのアクセスを提供する第1の通信クライアントアプリケーションとに基づくインターネットなどのパケットベースネットワーク上で実施される第1の通信システムと、第2のユーザベースと、それ自体はIMチャットへのアクセスのみを提供する(または、少なくとも、それ自体は音声またはビデオ呼へのアクセスは提供しない、またはそれ自体は第1の通信システムと互換性を有する音声またはビデオ呼へのアクセスを提供しない)第2の通信クライアントアプリケーションとに基づくパケットベースネットワーク上で実施される第2の通信システムとに関する。実施形態では、第2のIMのみに対応した(IM−only)システムはレガシー(legacy)IMシステムであると考えられ、第2のIMのみに対応したクライアントはレガシーIMクライアントであると考えられる(VoIPとIMを両方とも扱う第1の通信システム及び第1のクライアントとは対照的である)。
例えば、遠端でプラグインをダウンロードすることが必要であるため、すぐには呼を受けられないエンドポイントを第1のクライアントが発呼した場合、遠端クライアントは、バックグラウンド化(backgrounded)され、第1のクライアントから呼要求を受信するのに応じて、リバース呼(reverse call)確立要求を送信する。第1のクライアントにおいて、リバース呼要求を受信すると、そのリバース呼要求メッセージを所定時間内に受信したときには、自動的にその呼を受け付け、元の発呼者により開始された呼セットアップフロー中に、認証情報チェックとダウンロードを行う。
実施形態では、レガシーIMユーザはVoIPクライアントにアップグレードするように勧誘される。VoIPクライアントは、主要なコンシューマー向けの機能が充実した通信アプリケーションとなる。ネットワークの社会的中心が動くと、IMの世界はこれらのハブコンタクト相手とのオーディオ・ビデオ機能を事実上失う。そうすると、(すべてのユーザが移行するまで、劣っていると見なされるので)残りのネットワークの崩壊、不要な混乱、移行割合の低下などにつながる。統合サービスは、不都合な点を制限する役に立ち、第1のVoIP通信システムへの移行を加速する。これは、移行したユーザでもレガシーIMユーザに発呼(call)できるというウェブベースの発呼体験を提供することにより、行える。
統合サービスは、以前VoIPを使っていなかったユーザや、以前は第1の通信システムのユーザでなかったユーザが、ブラウザをプラグインとともに用いて、ビデオ及びオーディオの呼をできるようにする。この体験によりユーザはフルクライアントをダウンロードして使うよう促される。既存のVoIPクライアントのユーザは、話したいと思う、IMシステムメッセージングクライアントのコンタクト相手もいるかも知れない。高レベルでは、VoIPユーザ(招待主すなわち発呼者)は、コンタクト相手がオンラインであるとわかり、一定の条件がそろうと、コンタクト相手とビデオ呼を開始することができなければならない。コンタクト相手(被招待者すなわち被発呼者)は、適当なVoIPクライアントがアクティブでない場合、ウェブブラウザを用いて発呼できるプラグインのダウンロードをトリガーしインストールするURLを送信できる。
図1は、第1と第2の通信システムを実装できるパケット交換ネットワーク101を、実施形態ではインターネット等のワイドエリアインターネットワークを示す図である。ネットワーク101は、一以上の第1のサーバ104iを有する第1の通信システムのインフラストラクチャと、一以上のサーバ104iiを有する第2の通信システムのインフラストラクチャとを有する。また、ネットワーク101に接続されて、第1のユーザ端末102aと第2のユーザ端末102bを含む複数のユーザ端末がある。各ユーザ端末は、例えば、デスクトップコンピュータの、または携帯電話、タブレット、またはラップトップコンピュータなどの携帯ユーザ端末の形式である。図1にはタブレットとラップトップを示したが、これは例示を目的としたものであり、それぞれはどんな種類のユーザ端末であってもよい。下記の例を目的として、第1のユーザ端末102aは(発呼者の)発呼端末であり、第2のユーザ端末102bは(被発呼者の)被発呼端末である。
図2は、ユーザ端末102を示すブロック図であり、第1のユーザ端末102aと第2のユーザ端末102bに見いだされるコンポーネントを示している。ユーザ端末102は、一以上の実行部を有するプロセッサ204の形式の処理装置と、電子的記憶媒体及び/または磁気的記憶媒体などの一以上の記憶媒体を有するメモリ202の形式の記憶手段とを有する。ユーザ端末102は、複数の入出力(I/O)デバイス、すなわち、例えばマイクロホン208、スピーカ210、ビデオカメラ214及び/または画面214など(それぞれ端末102の内部または外部にあるもの)も有する。さらに、ユーザ端末102は、他のユーザ端末102と、及び第1と第2の通信システムのサーバ104i、104iiと、パケット交換ネットワーク101により通信する一以上の送受信デバイスを有する。一以上の送受信デバイスは、無線ローカルエリアネットワークの無線ルータ無線アクセスポイントを介してネットワーク101に接続するWiFiその他の短距離ローカル送受信器208と、電話の地上通信線またはケーブル接続などの有線接続を介してネットワーク101に接続する内部モデム216と、セルラ基地局(nodeBと呼ぶこともある)を介してネットワーク101に接続する3GPP送受信器などのセルラ送受信器と、外部モデムを介してネットワーク101に接続するUSBインタフェースその他の外部インタフェースとのうちの一以上を有し得る。メモリ202、I/Oデバイス208,210,212,214,及び一以上の送受信器206,216,218,220は、それぞれプロセッサ204と動作可能に結合している。
メモリ202は、プロセッサ204で実行されるように構成されたコンピュータ読み取り可能コードを記憶している。これには、オペレーティングシステムと、そのオペレーティングシステムの制御下で実行され、一般的にはオペレーティングシステムにより実行のスケジューリングがされる一以上のアプリケーションとが含まれる。第1と第2の端末102a、102bのそれぞれにおいて、それぞれのメモリ202は、パケット交換ネットワーク101により、例えば、インターネットにより実装された通信システムを用いて他のユーザ端末と通信する少なくとも1つの通信クライアントを有する。
図3は、第1のユーザ端末102a上で実行されるように構成されたオペレーティングシステムとアプリケーションを例示している。第1の端末102aは、オペレーティングシステム302と、そのオペレーティングシステム302の制御下で実行される、第1の通信システムの通信クライアントアプリケーションである第1のクライアントアプリケーション310のインスタンスと、任意的に、一以上の他のアプリケーション304、例えば、ウェブブラウザ、電子メールクライアント、及び/またはビデオゲームとを有する。アプリケーション304、310は、オペレーティングシステム302により第1の端末102aのプロセッサ204上で実行するスケジューリングがされ、例えば、複数のアプリケーションが、インターリーブされ、及び/またはプロセッサの異なるスレッドまたは実行ユニットを用いて、並行して実行されるようスケジューリングされる。
第1のクライアント310は、パケット交換ネットワーク101により音声及び/またはビデオの符号化と伝送をするためのユーザインタフェース(UI)レイヤ316、クライアントエンジン314、及びオーディオ及び/またはビデオ(A/V)レイヤを有する。例えば、H263やH264などの適当な符号化標準を用いて符号化し、VoIPなどの適当なパケットベースの方法を用いて伝送するため、符号化したビデオをパッケージングする。クライアントエンジン314は、少なくとも、第1の通信システムを用いて他のユーザ端末と呼を確立するための呼設定シグナリング(call set−up signalling)をする役割を果たす発呼エンジンを有する。発呼エンジンは、2つの区別できるメッセージタイプ(呼確立要求(call establishment request)とそれに対応する呼受諾応答(call acceptance response))を用いる呼確立イベントの発呼フロー(call flow)を確定する呼設定プロトコルで設定されている。
クライアントエンジン314とA/Vレイヤ312とを用いて、第1のユーザ端末102a上で実行された第1のクライアント310は、第1の通信システム(例えば、VoIP)を用いて、第1の端末102aの送受信器206、216、218、220のうちの1つと、パケット交換ネットワーク101とを介して、他のユーザ端末上のクライアントと通話(calls)できる。すなわち、ライブの、リアルタイムの通話(phone calls)をできる。以下、VoIPについて説明するが、言うまでもなくこれは単なる例である。
実施形態では、第1のクライアント310がIMと音声及びビデオ通話(voice and video calls)の機能も有しているとき、クライアントエンジンは、第1の通信システムを用いてIMシグナリングするためのプロトコル(第2の通信システムのIMと互換性を有していてもよいが、必ずしも互換である必要はない)も有する。
さらに、第1のVoIPクライアント310のクライアントエンジン314は、タイマー317を有し、その機能は後で詳細に説明する。
図4は、第2のユーザ端末102b上で実行されるように構成されたオペレーティングシステムとアプリケーションを例示している。第2の端末102bは、オペレーティングシステム318と、そのオペレーティングシステム318の制御下で実行される、(第2の通信システムの通信クライアントアプリケーションである)第2のクライアントアプリケーション320のインスタンスと、任意的に、ウェブブラウザ324、補足的VoIPアプリケーション(VoIPプラグインなど)、及び/またはその他の一以上のアプリケーション326(電子メールクライアント及び/またはビデオゲームなど)を有する。アプリケーション320、322、324、326は、オペレーティングシステム318により第2の端末102bのプロセッサ204上で実行するスケジューリングがされ、例えば、複数のアプリケーションが、インターリーブされ、及び/またはプロセッサの異なるスレッドまたは実行ユニットを用いて、並行して実行されるようスケジューリングされる。
第2のユーザ端末102bのプロセッサ204上で実行された時、第2のクライアントは、第2のユーザ端末102bの送受信器206、216、218、220のうちの1つと、パケット交換ネットワーク101とを介して、第2の通信システム(例えば、レガシーIMシステム)により、他のユーザ端末と、ライブ通話(live calls)以外に通信(IMチャットセッションなど)をできる。以下、IMについて説明するが、言うまでもなくこれは単なる例である。
補助的VoIPアプリケーション322は、最初は無かったりアクティブでなかったりするが、第1の端末102aからの呼要求の着信(incoming call request)に応じて、ダウンロード及び/またはインストールできる。補足的VoIPアプリケーション322は、第1のクライアント310のものと互換性を有する発呼エンジンとA/Vレイヤとを有し、第2のユーザ端末102b上にインストールされ実行された時、第1の通信システムを用いて、それぞれの送受信器とパケット交換ネットワーク101とを介して、他のユーザ端末上のクライアントと、一以上のライブの音声またはビデオ通話を行える。これは、少なくとも、第1の端末102a上の第1のクライアント310とのライブの音声またはビデオ通話(voice or video call)を含むが、実施形態では、補足的VoIPクライアント322も第2の端末102bのユーザに他の端末の他のユーザと通話できるようにするように構成され、着信(incoming call)によりトリガーされたインストールの後に、このユーザとそのユーザ端末102bは、第2の通信システムに加えて(またはその替わりに)第1のVoIP通信システムに組み込まれる。実施形態では、補足的VoIPアプリケーション322は、第2の端末102b上のアプリケーション(例えば、ウェブブラウザ224など)へのプラグインとして提供されるが、スタントアロンアプリケーションでもよい。以下、ウェブブラウザ324へのプラグインに関して説明するが、言うまでもなくこれは単なる例である。
ここで図5を参照する。図5は、第1と第2の通信システム間の統合に関わる様々な要素を示すブロック図であり、これらのコンポーネントに関連する対応呼フロー(call flow)も示している。
第1の通信システムのインフラストラクチャは、第1の通信システムの一以上のサーバ104i上に実装される統合サービス(integration service)502と、実施形態では第1の通信システムの一以上のサーバ104i上に実装される呼インフラストラクチャ504とを有する。別の一実施形態では、呼インフラストラクチャは、その他の複数のユーザ端末102に分散したピア・ツー・ピアインフラストラクチャとして、またはサーバベース及びピア・ツー・ピアのトポロジを組み合わせて(mix)実装できる。しかし、一実施形態として、以下、呼インフラストラクチャ504について完全にサーバベースのトポロジに関して説明する。
統合サービス502と呼インフラストラクチャ504はそれぞれ、パケット交換ネットワーク102と、第1のユーザ端末102aの送受信器206、216、218、220のうちの1つとを介して、第1のユーザ端末102a上の第1のVoIPクライアント310のクライアントエンジン314に、動作可能に結合されている。統合サービス502は、パケット交換ネットワーク101と、第2のユーザ端末102bの送受信器206、216、218、220のうちの1つとを介して、第2のユーザ端末102b上の第2のレガシーIMクライアント320に動作可能に結合されている。呼インフラストラクチャ504は、インストールされると、パケット交換ネットワーク102と、第2のユーザ端末102bの送受信器206、216、218、220のうちの1つとを介して、第2のユーザ端末102b上のVoIPプラグイン322に動作可能に結合されている。
第2の通信システムのインフラストラクチャは、第2の通信システムの一以上のサーバ104iiに実装されたレガシーIMサーバシステムを有する。レガシーIMサーバシステムは、パケット交換ネットワーク101と第1のユーザ端末102aの送受信器206、216、218、220のうちの1つとを介して、第1のユーザ端末102a上の第1のVoIPクライアント310のクライアントエンジン314に動作可能に結合され、パケット交換ネットワーク101と第2のユーザ端末102bの送受信器206、216、218、220のうちの1つとを介して、第2のユーザ端末102b上の第2のレガシーIMクライアント320に動作可能に結合される。
これらの要素が実行するように構成される動作を、図5に示したステップS10ないしS70を参照して、例として説明する。
ステップS10の始めに、被発呼者(callee)は、例えば、オペレーティングシステム302のデスクトップ上で実行されている第1のユーザ端末102a上の第1のVoIPクライアント310にログインする。被発呼者は、第1の通信システムの自分のユーザ名その他のユーザ識別子(及びパスワードなどのその他の任意の認証情報)を含む、第1のVoIP通信システムの自分の認証情報(credentials)でログインできる。
被発呼者は、第2のレガシーIM通信システムにリンクしたVoIP通信システムに自分のアカウントを有している。実施形態では、これは、レガシーIMシステムにおいてユーザ名またはその他の識別子を有する発呼者も含み、VoIPシステムの発呼者のユーザ名または識別子と、レガシーIMシステムにおける同じ発呼者のユーザ名または識別子との間にはマッピングが設けられている。発呼者のVoIPアカウントはレガシーIMシステムにリンクされているので、これによりVoIPクライアント310は、レガシーIMシステムにおける被発呼者のコンタクト相手リストにアクセスできる。発呼者のVoIPクライアント310は、それらのコンタクト相手のプレゼンス情報(presence information)にもアクセスできる。プレゼンス情報は、どのコンタクト相手がオンラインまたはオフラインか、または連絡不可(unavailable)を選択しているかを示す。実施形態では、プレゼンス情報は、呼フローで用いる他の情報も含む。これは後で詳しく説明する。IMレガシーシステムのユーザ識別子、コンタクト相手リスト、アカウントをリンクするマッピング、及び/またはプレゼンス情報は、レガシーIMサーバシステム104iiに記憶され、発呼者のVoIPクライアント310によりそこからアクセスすることができる。
このように、ステップS10において、第1の端末102a上の発呼者のクライアントアプリケーション310は、レガシーIMサーバシステム104iiにアクセスして、レガシーIMシステムから一以上のコンタクト相手のユーザ名またはその他の識別子と、任意的に一以上のコンタクト相手のプレゼンス情報の一部または全部を取得する。
ステップS20において、発呼者は、レガシーIMシステム上にいる一以上のコンタクト相手、すなわち被発呼者の1人と話すことを選択する。それがトリガーになり、発呼者のクライアント310が、ネットワーク101を介して統合サービス502にシグナリングし、呼要求リファレンス(call request reference)を生成する。これは、統合サービス502において少なくとも一時的に記憶され、被発呼者の端末102b上のレガシーIMクライアント320に対して利用可能にされる。
ステップS30において、また発呼者のクライアント310は、第1の呼確立要求を、被発呼者の端末102b上のレガシーIMクライアント320に送信する。実施形態では、この第1の呼確立要求は、ネットワーク101により、レガシーIMサーバシステム104iiを介して送信でき、または代替的に、ネットワーク101により直接送信してもよい。
実施形態では、発呼者の端末102a上の発呼者クライアント310により生成された第1の呼確立要求は、被発呼者端末102b上のレガシーIMクライアント320を、プラグイン322などの補足的VoIPアプリケーションをダウンロード及び/またはインストールさせるように構成された特性を有する。これは、被発呼者端末がプラグイン322を取得できるネットワークアドレスを指定する、第1の呼確立要求中に含まれるリンク(例えば、インターネットアドレスを指定するURLなどのパケット交換ネットワーク101上のアドレスを(この場合、DNSなどの適当なアドレスルックアップを介して代わりに)指定するリンク)により行える。発呼者端末102aの発呼者クライアント310によりリンクを直接挿入してもよいし、発呼者端末から送信された第1の呼要求が、レガシーIMサーバシステム104iiに適当なリンクを挿入させる信号を含んでいてもよい。別の一実施形態では、被発呼者クライアント322または端末102bがプラグインのロケーションを事前に知っていれば、リンクは必要ない。他の一実施形態では、ダウンロードは必要ないかも知れない。例えば、被発呼者端末102bには潜在的にまだインストールされていないプラグイン322がすでに記憶されていて、被発呼者端末102b上で実行するためには、インストール(例えば、解凍も含む)だけすればよく、ダウンロードしなくてもよいかも知れない。
被発呼者端末102bにおいて第1の呼確立要求を受信した時、ダウンロード及び/またはインストール(installation)の起動は完全に自動であってもよいし、ユーザにVoIPプラグイン322をダウンロード及び/またはインストールをするかマニュアル選択するように問うプロンプトの表示を含んでいてもよい。マニュアルプロンプトの場合、これは被発呼者が呼に応えたいか問うプロンプトと同じであってもよい。被発呼者のレガシーIMクライアント320は、第1の呼確立要求に適宜反応するように構成されている。
ステップS40において、被発呼者は、(マニュアルプロンプトが関わる場合)クリックするか、その他の方法で、第1の呼確立要求により起動された動作(activity)を選択する。これにより、レガシーIMシステムにログインし、発呼者と被発呼者に関する識別子情報を有するIMクライアント310中の内部ブラウザが開く。あるいは、ダウンロード及び/またはインストールは、被発呼者からのマニュアル入力を必要とせずに、完全に自動で生じてもよい。
実施形態では、発呼者クライアントからの第1の呼確立要求は、第1のVoIP通信システム中の被発呼者のユーザ名またはその他の識別子の生成を起動するように構成され、それにより被発呼者がVoIP通信システムにアクセスで、(少なくとも発呼者と)通話をできる特性を有するように構成されていている。再び、この起動は、被発呼者クライアント320による第1の呼確立要求の受信時に完全に自動的に行われても良いし、被発呼者に提示されるマニュアルユーザプロンプトを介して行われても良い(例えば、これは、ダウンロード及び/またはインストールをするか問うのと同じプロンプトであってもよいし、被発呼者に、呼に応えたいか問うのと同じプロンプトであってもよいし、別のプロンプトであってもよい)。VoIP通信システムにおいて被発呼者を識別する被発呼者の新しい識別子は、レガシーIMシステムにおけるその被発呼者のアイデンティティ(identity)にリンクしている(例えば、104i及び/または104iiなどのサーバにおけるマッピングによる)。幾つかの実施形態では、新しい識別子は、自動的に生成及びリンクされ、被発呼者はこれを見る必要はなく、両方のシステムで古いユーザ名または識別子を、外見上シームレスに統合されたかのように、利用し続けることができる。
ステップS50において、被発呼者端末102b上のブラウザ324は、統合サービス502で、呼要求参照(call request reference)を確認(verify)する。代替的実施形態では、統合サービス502で参照を確認するステップは省略することもできるし、代替的な確認装置(verification arrangements)を導入することもできる。
必要な確認がうまくいけば、ステップS60において、被発呼者端末102bでVoIPプラグイン322がインストールされる。
ステップS70において、プラグイン322は、標準VoIP呼インフラストラクチャ502を用いて、発呼者端末102b上に発呼者VoIPクライアント310に、コールバック(call back)を開始する。コールバックは、呼設定プロトコルの呼受諾応答の返信は含まず、新しくインストールされたVoIPクライアント322から返送される他の呼設定プロトコルの呼確立要求を含む。実施形態では、プラグイン322は、前のステップで取得した(例えば、ステップS30の第1の呼設定要求に含まれていた、またはステップS20とS50で提供された参照から取得した)、第1の通信システムにおいて発呼者を識別するユーザ名その他の識別子に基づいて、発呼者端末102aに要求を送信できる。プラグイン322は、第1のVoIP通信システムにおける発呼者のユーザ名または識別子と、ユーザ名をアドレスにマッピングする呼インフラストラクチャ504とを用いたアドレスルックアップ(address look up)に基づき、パケット交換ネットワーク101上の発呼者のネットワークアドレス(例えば、IPアドレス)を発見できる。このコールバックは、完全に自動的であっても、被発呼者の確認を求めるマニュアルプロンプトを含むものであってもよい。マニュアルプロンプトの場合、これは、プラグイン322をダウンロード及び/またはインストールし、新しいユーザ名を生成するのと同じプロンプトであってもよいし、被発呼者に、その呼に応えたいか問うのと同じプロンプトであってもよいし、あるいは、別のプロンプトであってもよい。
このように、発呼者端末102a上のVoIPクライアント310のクライアントエンジン314は、被発呼者端末102b上のプラグイン322から、リバース呼(reverse call)確立要求の返信を受ける。クライアントエンジン314は、呼設定(call set−up)を完了するため、これを受けなくてはならない。ここに開示した実施形態では、クライアントエンジン314は、タイマー317を有し、このタイマー317を用いて、所定制限時間以内に被発呼者端末102bから返信されることを条件に、リバース呼確立要求で指定された呼を自動的に受けるように構成されている。呼を受けると、発呼者クライアント310のクライアントエンジン314は、被発呼者端末102b上のプラグイン322に呼受諾応答(call acceptance response)を自動的に送信し、こうして呼が確立される。VoIPクライアント310と322はそれぞれ発呼者と被発呼者にこの趣旨の表示を出力するように構成されている。呼は、関連するI/Oデバイス208、210、212及び/または214により進行する。
実施形態では、この呼のセッションは、呼と同時に設定され、すなわち、セッション確立要求と受諾応答が、それぞれリバース呼確立要求と呼受諾応答とともに交換される。
プロセス中、例えば、被発呼者端末102bがプラグイン322をダウンロードしインストールするのを待っている間に、実施形態では、発呼者クライアント310は、リバース呼確立プロセスを含まない従来の電話発信でするように、同じ電話発信(「リンギング」)メッセージまたはインジケーションを表示する。プロセスは被発呼者側でも自動化されるので、呼に、他の呼と何らかの違いがあることを知る必要がある発呼者から完全に隠すこともできる。例えば、発呼者は、被発呼者が新しいクライアント322をダウンロードまたはインストールしており、または新しいユーザ名を生成していることを知る必要はなく、システムは、発呼者に対して、通常の呼に対して被発呼者が応えるのを単に待っているように見せかける。
所定制限時間は、発呼者またはそのVoIPクライアント310による呼フロー(call flow)の勧め(instigation)から、例えば、発呼者によるクライアント310のユーザインタフェースにおけるコントロールの選択から、またはクライアント310による第1の呼確立要求の生成または送信から、またはかかるイベントに関する他の適当な時点から測る。所定制限時間は一定であってもよいし、発呼者により、または第1のVoIP通信システムのプロバイダーにより設定された(例えば、クライアント310のインタフェースを介して設定された)、設定であってもよい。実施形態では、制限時間は30秒ないし90秒であり、これは一般的にユーザががまんできる範囲を表している。一実施形態では、制限時間は60秒である。
発呼側の近端端末において他の着信呼要求を受信した場合、遠端はreadyではなく、元の要求には単純なacceptanceで応えられないので、第2の呼要求が、同じ呼フローの一部として、一定の時間ウィンドウ内に到着すれば、近端端末により自動的に受諾される。すなわち、発信元の発呼者は、コールバック要求を、所定時間内に受信すれば、自動的に受諾し、発信元の発呼者には一回の呼設定の一部であるように見える。
そうでなく、リバース呼確立要求を制限時間内に受け取らなければ、発呼者クライアント310のクライアントエンジンは、呼をタイムアウト(time out)とし、呼確立の試みは失敗する。発呼者クライアント310は、発呼者に、その旨のメッセージその他の表示を提示するように構成されていてもよい。実施形態では、発呼者には、単に被発呼者が呼に応えなかったように見える。
上記の通り、実施形態では、発呼者端末102a上のVoIPクライアント310のクライアントエンジン314は、被発呼者端末102bのプレゼンス情報にアクセスできる。これは、被発呼者端末102bが現在、呼を受ける準備ができているかに関する情報を含む。代替的または追加的に、プレゼンス情報は、被発呼者端末102b上の第2のレガシーIMクライアント320が、リバース呼確立に基づき上で説明した種類のプロセスをサポートしているか、例えば、プラグイン322へのリンク時に、または第1の呼確立要求におけるかかる他の起動時に動作することができるか、またはかかるリンクまたは起動は認識されない。
かかるプレゼンス情報を用いて、発呼者端末上のクライアント310のクライアントエンジン314は、その振る舞いを適宜適合するように構成され得る。例えば、プレゼンス情報から被発呼者側が関連プロセスをサポートしていないと判断すると、被発呼者端末102bにおいてプラグイン322のダウンロード及び/またはインストールを起動する上記種類の第1の呼確立要求のインスタンスを送信する。他方、発呼者クライアント310がプレゼンス情報から、かかるプロセスがサポートされていない、または被発呼者端末102bが呼を受けられる(例えば、適当なVoIPクライアントがインストールされている)ため、かかるプロセスが必要ないと判断すると、発呼者クライアント310は従来の種類の呼確立要求を送信し得る。
さらに別の代替的または追加的実施形態では、発呼者クライアント310は、プレゼンス情報から、コールバックプロセスがサポートされている、及び/または第1の要求が送信された時に被発呼者端末が準備できていないと判断すると、自分の状態を適宜適合させられる。すなわち、被発呼者端末102bからメッセージを受信すると、タイミング条件を適用することを含む自動受諾プロセスを適用することを知っている。他方、発呼者クライアント310が、プレゼンスから、第1の要求が送信された時に、被発呼者端末の準備ができている(例えば、適切なVoIPクライアントがすでにインストールされている)と判断すると、被発呼者端末102bからメッセージを受信(received back)した時、自動受諾プロセスや時間条件は適用しない。
言うまでもなく、上記の実施形態は単なる例として説明したものである。
例えば、本開示は、被発呼者クライアントが、適切な音声またはビデオ発呼クライアントアプリケーションをインストールされていないため、呼を受ける準備ができていない場合には限定されない。他の一シナリオでは、発呼者と被発呼者がそれぞれのユーザ端末にインストールされた同じ通信システムのクライアントのインスタンスを有していても(例えば、両者が互換性のあるVoIPクライアントを有していても)、発呼者は、被発呼者がバックグラウンド状態にあり、その呼をすぐには取れない時に、発呼を試みるかも知れない。オペレーティングシステムは、その制御下で通信クライアントなどのアプリケーションが実行されるが、アプリケーションをバックグラウンド状態にして、それによりアプリケーションの実行が停止され、またはフォアグラウンド(foreground)状態と比較して限られた数の処理サイクルしか割り当てられない。この状態では、通信クライアントは、ネットワークポートにアクセスしない。すなわち、入来する呼確立要求を受け取ることができず、または入来する呼確立要求を処理するリソースを有しない。
よって、他の実施形態では、被発呼者端末は、すでに音声またはビデオクライアント(例えば、VoIPクライアント)のインスタンス全部がインストールされているが、このクライアントアプリケーションは、停止され、またはフォアグラウンド状態と比較して限られた数のプロセッササイクルをスケジューリングされるバックグラウンド状態(一般的には、アプリケーションが実行されているオペレーティングシステムによりそのアプリケーションはこの状態にされる)になっているため第1の呼確立要求の時に呼を受けることができない。例えば、被発呼者クライアントは、フルスクリーンアプリケーション(例えば、ビデオゲーム)などの他のアプリケーションを優先して、または被発呼者端末がスタンバイモードにパワーダウンされている間に、停止または抑制される。かかるシナリオでは、被発呼者クライアントは、呼を受けることができるようになる前に、ウェークアップしなければならない。実施形態では、第1の呼確立要求は、被発呼者のクライアントが発呼者端末上の発信クライアントにリバース呼確立要求を送信(send back)するのに応じて、被発呼者の音声またはビデオ呼クライアントに、バックグラウンド状態からウェークアップさせる。
かかる実施形態では、第1の呼確立要求は、オペレーティングシステムのプッシュ通知サービス(push notification service)を介してプッシュ通知のペイロードで配信でき、またはプッシュ通知サービスのプッシュ通知を少なくとも利用して、被発呼クライアントをウェークアップする。プッシュ通知サービスは、プッシュ通知要求が発呼者クライアントなどの他の要素により送信されたときに、ウェークアップさせるバックグラウンド状態のアプリケーションをトリガーする目標オペレーティングシステムへのプッシュ通知を生成する、オペレーティングシステムのプロバイダーにより提供される、またはサポートされるネットワーク要素である。幾つかの場合に、プッシュ通知サービスは、ウェークアップ時にアプリケーションに配信できるペイロードを有する拡張プッシュ通知(augmented push notification)をサポートできる。あるいは、バックグラウンド状態化されたクライアントにまだネットワークポートまたは、要求を受ける(listen)するのに十分なリソースが割り当てられている場合、サーバ104iまたは104iiを介して第1の呼確立要求を配信できる。
他の一変形例では、被発呼者は、第1の通信システムの音声またはビデオ呼クライアントをインストールされているが、そのクライアントにはログインしておらず、例えば、IMシステムなどの第2の通信システムのクライアントにログインしているだけである。その場合、被発呼者がログインすると、リバース呼確立メッセージが送信される。第1の呼確立メッセージは、被発呼者端末をトリガーして、被発呼者にログインするように促す。
さらに、上記の説明は、発呼者端末102aのクライアント310において実施される自動受諾プロセスに関するものである。しかし、別の実施形態では、一以上の通信システムの一以上のサーバ104i及び/または104iiなどの中間ネットワーク要素において実施することもできる。かかる代替案では、中間サーバは、第1の呼確立要求を発呼者端末から受信し、それを被発呼者端末に転送し、サーバで、リバース呼確立要求を受信し、時間条件と自動受諾とをこれに適用する。この中間サーバは、制限時間内に受信すると、呼受諾応答のインスタンスを、発呼者端末と被発呼者端末に送信することにより、呼設定を完了する。
さらに別の実施形態では、第2の通信システムは必ずしもIMだけではない。例えば、被発呼者端末は、第1のシステムと互換性がないレガシーVoIPのクライアントを有してもよい。また、実施形態では、IM「のみ」とは、VoIPを除くことを意味し、ファイル転送などのその他の通信形式を排除する必要はない(ユーザ間の他のすべての通信形式を排除することも可能である)。
統合サービス502は、第1のVoIP通信システムのインフラストラクチャの一部として上で説明したが、別の実施形態では、統合サービス502は、(もしあれば)第2のレガシーIMシステムのインフラストラクチャの一部であると考えても良いし、または2つのシステムのインフラストラクチャ間で共有されても良いし、第三者により提供されてもよい。
さらに、ノードAとBの間で(例えば、ユーザ端末間またはサーバとユーザ端末間で)呼確立要求または呼受諾応答などのメッセージを送信することは、メッセージの本質的な意味または機能が搬送される限り、メッセージの形式をそれらのノード間で修正したり変換したりできないことを意味するものではない。
一般的に、ここに説明する機能はどれも、ソフトウェア、ファームウェア、ハードウェア(例えば、固定的な論理回路)、またはこれらの組合せで実装できる。ここで用いる「モジュール」、「機能」、「コンポーネント」及び「ロジック」との用語は、一般的に、ハードウェア、ソフトウェア、ファームウェア、ハードウェアまたはこれらの組み合わせを表す。ソフトウェア実装の場合、モジュール、機能、またはロジックは、プロセッサ(例えば、CPU)により実行された時、タスクを実行するプログラムコードを表す。プログラムコードは、一または複数のコンピュータ読み取り可能メモリデバイスに格納できる。下記の手法の特徴は、プラットフォームに依存しない。すなわち、これらの手法は様々なプロセッサを有する様々な商業的コンピューティングプラットフォームで実装し得る。
例えば、ユーザ端末は、例えば、プロセッサ、機能ブロックなどのそのユーザ端末のハードウェアに動作を実行させるエンティティ(例えば、ソフトウェア)を含んでいてもよい。例えば、ユーザ端末は、そのユーザ端末に、より具体的にはそのユーザ端末のオペレーティングシステム及び関連ハードウェアに動作を実行させる命令を保持するように構成されたコンピュータ読み取り可能媒体を含んでもよい。このように、命令は、動作を実行するようにオペレーティングシステム及び関連ハードウェアを設定するように機能し、このようにオペレーティングシステム及び関連ハードウェアが機能を実行するように変換する。命令は、異なる様々な構成により、コンピュータ読み取り可能媒体によりユーザ端末に提供される。
コンピュータ読み取り可能媒体のかかる一構成は、信号搬送媒体であり、ネットワークなどを介してコンピューティングデバイスに命令を(例えば、搬送波のように)伝送するように構成される。また、コンピュータ読み取り可能媒体は、コンピュータ読み取り可能記憶媒体として構成でき、信号搬送媒体ではない。コンピュータ読み取り可能記憶媒体の例には、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、光ディスク、フラッシュメモリ、ハードディスクメモリ、及びその他のメモリデバイスであって磁気、光、その他の技術を用いて命令その他のデータを記憶するものが含まれる。
本主題を個別の構造的特徴及び/又は方法動作を用いて説明したが、言うまでもなく、添付した特許請求の範囲に規定する主題は、上記の特定の特徴や動作には必ずしも限定されない。上記の特定の特徴や動作は、請求項を実施する形式例を開示するものである。