(57)【要約】【課題】１つのコンピューティング装置／通信装置から別のコンピューティング／通信装置のＶＯＩＰ通話を確立しサポートするためのシステム、装置、及び方法を提供する。【解決手段】システムは、発呼者装置からの通話オファーを受信し、それを被呼装置に転送し、各装置に対しデジタル化音声通信をリレーするための複数の候補リレーエンティティを特定する。各装置は、一つのまたは全てのリレーと結合し、それら装置の一方または両方は、必要に応じてリレー動作モードで使用するために１つのリレーを選択する。そのリレーが両装置に外部ネットワークアドレスを通知し、各装置は自身の（内部及び外部）アドレスを当該システムを介して互いに渡す。両装置は、ピアツーピア動作モードで自分の呼び出しを行うために直接接続を確立しようと試みるが、必要に応じてピアツーピアモードとリレーモードとを動的に切り換え得る。【選択図】  図１
2019149798.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のコンピュータネットワークを介して実施される通信セッションをサポートするコンピュータが実施する方法であって、
選択されたリレーサーバを介したリレー動作モードにおいて第１のクライアントデバイスと第２のクライアントデバイスとの間の通信セッションを確立するステップと、
前記コンピュータに、
前記リレー動作モードにおける通信の間に前記第１のクライアントデバイスと前記第２のクライアントデバイスとの間でピアツーピア接続を確立することを試みること、
前記ピアツーピア接続が確立された場合にピアツーピア動作モードに切り替えること、
前記ピアツーピア接続が喪失した場合に前記リレー動作モードに切り替えることを繰り返し行わせるステップと
を含む、方法。
【請求項２】
前記ピアツーピア動作モードを確立することは、前記第１のクライアントデバイスおよび前記第２のクライアントデバイスの各々が、
他のデバイスの１つまたは複数の既知のネットワークアドレスを用いて他のデバイスとのコンタクトを試みること、
デバイス間に有効な通信経路が存在することを決定すること、
前記ピアツーピア接続を確立するために必要な通信パラメータを交換すること、
前記ピアツーピア動作モードに切り替えることを含む、請求項１に記載の方法。
【請求項３】
前記通信セッションは、ＶＯＩＰ通話である、請求項１に記載の方法。
【請求項４】
前記リレーサーバは、前記ピアツーピア接続を確立するときに、前記第１のクライアントデバイスと前記第２のクライアントデバイスとの間の通話パラメータの交換を円滑に行う、請求項１に記載の方法。
【請求項５】
前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方または両方は、前記ピアツーピア接続を確立した後、前記リレーサーバに対する接続を維持する、請求項１に記載の方法。
【請求項６】
前記ピアツーピア動作モードを確立することの試みは、前記リレー動作モードにあるときに周期的に行われる、請求項１に記載の方法。
【請求項７】
前記ピアツーピア動作モードを確立することの試みは、前記リレー動作モードにあるときに前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方が新たなネットワークに移動したときに行われる、請求項１に記載の方法。
【請求項８】
前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方は、前記ピアツーピア動作モードで送信し、前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの他方は、前記リレー動作モードで送信する、請求項１に記載の方法。
【請求項９】
前記通信セッションは、グループ通信セッションであり、前記グループ通信セッション内の数人の参加者は、前記ピアツーピア動作モードで通信し、他の参加者は、前記リレー動作モードで通信する、請求項１に記載の方法。
【請求項１０】
一つまたは複数のコンピュータネットワークを介して実施される通信セッションをサポートするシステムであって、
クライアントデバイスと、
前記クライアントデバイス上で動作する通信アプリケーションであって、
選択されたリレーサーバを介したリレー動作モードにおいて前記クライアントデバイスと第２のクライアントデバイスとの間の通信セッションを確立する機能と、
前記リレー動作モードにおける通信の間に前記クライアントデバイスと前記第２のクライアントデバイスとの間でピアツーピア接続を確立することを試みること、
前記ピアツーピア接続が確立された場合にピアツーピア動作モードに切り替えること、
前記ピアツーピア接続が喪失した場合に前記リレー動作モードに切り替えることを繰り返し行う機能とを提供する、前記通信アプリケーションと
を備える、システム。
【請求項１１】
前記ピアツーピア動作モードを確立することは、
他のデバイスの１つまたは複数の既知のネットワークアドレスを用いて前記第２のクライアントデバイスとのコンタクトを試みること、
前記第２のクライアントデバイスとの有効な通信経路が存在することを決定すること、
前記第２のクライアントデバイスとの前記ピアツーピア接続を確立するために必要な通信パラメータを交換すること、
前記ピアツーピア動作モードに切り替えることを含む、請求項１０に記載のシステム。
【請求項１２】
前記リレーサーバは、前記ピアツーピア接続を確立するときに、前記第２のクライアントデバイスとの通話パラメータの交換を円滑に行う、請求項１０に記載のシステム。
【請求項１３】
前記クライアントデバイスは、前記ピアツーピア接続を確立した後、前記リレーサーバに対する接続を維持する、請求項１０に記載のシステム。
【請求項１４】
前記ピアツーピア動作モードを確立することの試みは、周期的に行われるか、または前記クライアントデバイスが新たなネットワークに移動したときに行われる、請求項１０に記載のシステム。
【請求項１５】
前記クライアントデバイスは前記ピアツーピア動作モードにおいて前記第２のクライアントデバイスに送信し、前記リレー動作モードにおいて前記第２のクライアントデバイスから受信する、請求項１０に記載のシステム。
【請求項１６】
プロセッサによって実行されると、一つまたは複数のコンピュータネットワークを介して実施される通信セッションをサポートする方法をコンピュータに行わせる命令を格納する非一時的なコンピュータ可読媒体であって、前記方法が、
選択されたリレーサーバを介したリレー動作モードにおいて第１のクライアントデバイスと第２のクライアントデバイスとの間の通信セッションを確立するステップと、
前記コンピュータに、
前記リレー動作モードにおける通信の間に前記第１のクライアントデバイスと前記第２のクライアントデバイスとの間でピアツーピア接続を確立することを試みること、
前記ピアツーピア接続が確立された場合にピアツーピア動作モードに切り替えること、
前記ピアツーピア接続が喪失した場合に前記リレー動作モードに切り替えることを繰り返し行わせるステップと
を含む、非一時的なコンピュータ可読媒体。
【請求項１７】
前記ピアツーピア動作モードを確立することは、前記第１のクライアントデバイスおよび前記第２のクライアントデバイスの各々が、
他のデバイスの１つまたは複数の既知のネットワークアドレスを用いて他のデバイスとのコンタクトを試みること、
デバイス間に有効な通信経路が存在することを決定すること、
前記ピアツーピア接続を確立するために必要な通信パラメータを交換すること、
前記ピアツーピア動作モードに切り替えることを含む、請求項１６に記載の媒体。
【請求項１８】
前記リレーサーバは、前記ピアツーピア接続を確立するときに、前記第１のクライアントデバイスと前記第２のクライアントデバイスとの間の通話パラメータの交換を円滑に行い、前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方または両方は、前記ピアツーピア接続を確立した後、前記リレーサーバに対する接続を維持する、請求項１６に記載の媒体。
【請求項１９】
前記ピアツーピア動作モードを確立することの試みは、前記リレー動作モードにあるときに周期的に行われるか、または前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方が新たなネットワークに移動したときに行われる、請求項１６に記載の媒体。
【請求項２０】
前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの一方は、前記ピアツーピア動作モードで送信し、前記第１のクライアントデバイスおよび前記第２のクライアントデバイスのうちの他方は、前記リレー動作モードで送信する、請求項１６に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ及び電子通信の分野に関する。より詳細には、ＶＯＩＰ（ボイスオーバーインターネットプロトコル）通話を確立し維持するためのシステム、装置、及び方法を提供する。
【背景技術】
【０００２】
既存方式のＶＯＩＰは柔軟性が制限されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
つまり、ＶＯＩＰ通話に参加する装置のアドレス（例えば、ＩＰアドレス）が変化した場合、ＶＯＩＰ接続は通常失敗し、一方または両方の参加者は通話を再初期化しなければならない。さらに、既存の手順でＶＯＩＰ通話を確立するには、通常、広範なプロトコルネゴシエーションが必要となり、ユーザの経験を損なう可能性がある。
【課題を解決するための手段】
【０００４】
本発明のいくつかの実施形態では、ＶＯＩＰ通話の確立および維持を容易にするためのシステムは、発呼者装置から呼または通話オファーを受信し、それを被呼者装置に転送し、両装置に対しそれらのデジタル化音声通信をリレーするのに利用可能な複数の候補リレーエンティティを特定する。各装置は、１つまたはすべてのリレーと結合されてトランスポートエンドポイントを割り当てる。一方のまたは両方の装置は複数のリレーのうちの一つを選択し、必要になったときに使用する。
【０００５】
１つまたは複数のリレーは、それら装置にそれら装置の外部ネットワークアドレスを通知し、各装置は自身の（内部及びおよび外部の）アドレスを当該システムを介して互いに渡す。両装置はそれらの通話を行うためにピアツーピア接続の確立を試みるが、必要に応じてまたは要求に応じて、ピアツーピア動作モードとリレー動作モードとを動的に切り換え得る。
【０００６】
いくつかの実施形態では、一方または両方の装置が異なるネットワークにローミングすると、両装置は、選択されたリレー（および／または１つまたは複数の他のリレー）との通信を再確立して新しい（外部）アドレスを取得し、それは他方の装置と再度共有され、そして、両装置はピアツーピア接続を確立する試みを継続する。それができない場合、両装置はデジタル化通信をリレーするために選択されたリレーを使用する。
【０００７】
装置のアドレスは、どのアドレスが好ましいかまたはより成功する可能性が高いかを示すために、優先順位付けされるかまたは順序付けされ得る。例えば、一方の装置が他方の装置によって使用されるネットワーク以外のネットワークにローミングする場合、当該一方の装置は、その外部アドレスに優先順位を付けることができ、Ｗｉ−Ｆｉアドレスがセルラーアドレス（すなわち、音声サービスプロバイダのデータネットワーク内でのアドレス）よりも高い優先順位とされ得る。
【０００８】
本発明による実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプログラム製品に向けられた添付の特許請求の範囲内にあるが、ある特定のカテゴリの（例えば方法の）請求項で言及したいずれの特徴も、別のカテゴリの（例えばシステムの）請求項でも同様に特許請求され得る。添付の特許請求の範囲における従属関係または引用関係は、形式的理由のみのために選択されている。しかし、先行する請求項（特に多数項従属関係）への意図的な参照から生じる主題も同様に特許請求でき、任意の請求項の組み合わせ及びそれらの特徴の組み合わせが開示されるとともに添付の特許請求の範囲において選択される従属関係に関係なく特許請求され得る。特許請求される主題は、添付の特許請求の範囲に記載された特徴の組み合わせだけでなく、特許請求の範囲内の他の特徴の組み合わせをも含み、特許請求の範囲に記載された各特徴は任意の他の特徴や特許請求の範囲の他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載または図示された任意の実施形態および任意の特徴は、別個の請求項においておよび／または本明細書に記載または図示される任意の実施形態または特徴との任意の組み合わせにおいておよび／または特許請求の範囲の任意の特徴との組み合わせにおいて特許請求することができる。
【０００９】
本発明の一実施形態では、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートするコンピュータ実装方法は、被呼者装置をまたは被呼者装置ユーザを特定する通話オファーを発呼者装置から受信し、複数の候補リレーサーバのアドレスを前記発呼者装置及び被呼者装置に送信し、前記発呼者装置及び被呼者装置の一方または両方から、前記複数の候補リレーサーバのうちの一つのリレーサーバの選択を受信し、前記発呼者装置、前記選択されたリレーサーバ、及び前記被呼者装置を含めたリレー動作モードで前記音声通話を一時的に実施することを備え、当該音声通話の間に、前記発呼者装置及び被呼者装置は、前記リレー動作モードと、前記複数の候補リレーサーバのいずれも使用せずに前記音声通話を直接に実施するピアツーピア動作モードとの間の切り換えを少なくとも一度は行う。
【００１０】
本発明の一実施形態では、方法は、前記複数の候補リレーサーバの各々にて前記発呼者装置及び被呼者装置の各々から接続を受信し、前記複数の候補リレーサーバのうちの一つ以上にて前記発呼者装置及び被呼者装置の各々に対し当該装置の外部アドレスを特定することを備え得る。
【００１１】
前記発呼者装置及び被呼者装置の少なくとも１つは、前記複数の候補リレーサーバに送信した複数の通信と前記複数の候補リレーサーバから受信した複数の通信との間の特定された時間遅延に基づき、前記選択されたリレーサーバを選び得る。
【００１２】
前記複数の候補リレーサーバのうちの一つのリレーサーバの選択を受信することは、前記発呼者装置及び被呼者装置のうちの第１装置から前記特定された時間遅延を受信し、前記特定された時間遅延を前記発呼者装置及び被呼者装置のうちの他方の装置に転送し、前記他方の装置から、前記特定された時間遅延の識別情報を受信することを備え得る。
【００１３】
本発明の一実施形態では、方法は、前記複数の候補リレーサーバとは異なる通信サーバにて、前記発呼者装置及び被呼者装置の外部アドレスを受信し、前記外部アドレスを前記発呼者装置及び被呼者装置のうちの他方に転送することを備え得る。
【００１４】
本発明の一実施形態では、方法は、前記発呼者装置と被呼者装置のうちの一方が第１ネットワークから第２ネットワークにローミングした後、前記選択されたリレーサーバにて前記一方の装置から新しい接続を受信し、前記一方の装置に対し、前記選択されたリレーサーバから、前記一方の装置の新しい外部アドレスを特定し、前記新しい外部アドレスを前記通信サーバで受信し、前記新しい外部アドレスを前記通信サーバから前記発呼者装置及び被呼者装置の他方に転送することを備え得る。
【００１５】
本発明の一実施形態では、方法は、前記複数の候補リレーサーバとは異なる複数の通信サーバのセットでの前記通話オファーの受信に応答して、前記被呼者装置と前記複数の通信サーバの一つとの間に進行中の通信接続が存在するかを判定し、前記被呼者装置と前記複数の通信サーバの一つとの間に通信接続が存在しない場合には、前記通話オファーについてのプッシュ通知を前記被呼者装置に向けて送信することを備え得る。
【００１６】
前記リレー動作モードで前記音声通話を一時的に実施することは、前記発呼者装置及び被呼者装置が前記ピアツーピア動作モードの開始を試みた後にのみ開始され得る。
前記リレー動作モードで前記音声通話を一時的に実施することは、前記発呼者装置及び被呼者装置が、前記ピアツーピア動作モードを確立し、前記ピアツーピア動作モードがその後失敗した後にのみ開始され得る。
【００１７】
本発明の一実施形態では、方法は、前記音声通話の間に、前記複数の候補リレーサーバのうちの第２リレーの選択を受信することを備え得る。
前記通話オファーは複数の被呼者装置をまたは複数の被呼者装置ユーザを特定し得る。
【００１８】
本発明の一実施形態では、非一時的なコンピュータ可読媒体は、プロセッサによって実行されると、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートする方法をコンピュータに行わせる命令を格納し、前記方法が、被呼者装置をまたは被呼者装置ユーザを特定する通話オファーを発呼者装置から受信すること、複数の候補リレーサーバのアドレスを前記発呼者装置及び被呼者装置に送信すること、前記発呼者装置及び被呼者装置の一方または両方から、前記複数の候補リレーサーバのうちの一つの選択されたリレーサーバの選択を受信すること、前記発呼者装置、前記選択されたリレーサーバ、及び前記被呼者装置を含めたリレー動作モードで前記音声通話を一時的に実施することを備え、当該音声通話の間に、前記発呼者装置及び被呼者装置は、前記リレー動作モードと、前記複数の候補リレーサーバのいずれも使用せずに前記音声通話を直接に実施するピアツーピア動作モードとの間の切り換えを少なくとも一度は行う。
【００１９】
本発明の一実施形態では、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートするシステムは、複数の通信サーバであって、各通信サーバが、プロセッサによって実行されると当該通信サーバに、被呼者装置をまたは被呼者装置ユーザを特定する通話オファーを発呼者装置から受信すること、複数のリレーサーバのアドレスを前記発呼者装置及び被呼者装置に送信すること、前記発呼者装置及び被呼者装置の一方または両方から、前記複数のリレーサーバのうちの一つのリレーサーバの選択を受信することを行わせる命令を格納する非一時的なコンピュータ可読媒体を備える、前記複数の通信サーバと、前記複数のリレーサーバであって、各リレーサーバが、プロセッサによって実行されると当該リレーサーバに、前記発呼者装置、前記選択されたリレーサーバ、及び前記被呼者装置を含めたリレー動作モードで前記音声通話を一時的に実施することを行わせる命令を格納する非一時的なコンピュータ可読媒体を備える前記複数のリレーサーバとを備え得る。
【００２０】
各リレーサーバの前記コンピュータ可読媒体は、プロセッサによって実行されると当該リレーサーバに、前記発呼者装置及び被呼者装置の各々から接続を受信すること、前記発呼者装置及び被呼者装置の各々に対し当該装置の外部アドレスを特定することを行わせる命令を格納し得る。
【００２１】
前記発呼者装置及び被呼者装置の少なくとも１つは、前記複数のリレーサーバに送信した複数の通信と前記複数のリレーサーバから受信した複数の通信との間の特定された時間遅延に基づき、前記選択されたリレーサーバを選び得る。
【００２２】
前記複数のリレーサーバのうちの一つのリレーサーバの選択を受信することは、前記発呼者装置及び被呼者装置のうちの第１装置から前記特定された時間遅延を前記複数の通信サーバの一つにて受信すること、前記特定された時間遅延を前記一つの通信サーバから前記発呼者装置及び被呼者装置のうちの他方の装置に転送すること、前記他方の装置から、前記特定された時間遅延の識別情報を受信することを備え得る。
【００２３】
本発明の一実施形態では、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートするシステムは、前記複数の通信サーバのうちの一つにて、前記発呼者装置及び被呼者装置の外部アドレスを受信すること、前記外部アドレスを前記発呼者装置及び被呼者装置のうちの他方に転送することを備え得る。
【００２４】
本発明の一実施形態では、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートするシステムは、前記選択されたリレーサーバの前記コンピュータ可読媒体は、プロセッサによって実行されると当該選択されたリレーサーバに、前記発呼者装置と被呼者装置のうちの一方が第１ネットワークから第２ネットワークにローミングした後、前記選択されたリレーサーバにて前記一方の装置から新しい接続を受信すること、前記一方の装置に対し前記一方の装置の新しい外部アドレスを特定することを行わせる命令を更に格納し、各通信サーバの前記コンピュータ可読媒体は、プロセッサによって実行されると当該通信サーバに、前記新しい外部アドレスを受信すること、前記新しい外部アドレスを前記発呼者装置及び被呼者装置の他方に転送することを行わせる命令を更に格納する。
【００２５】
本発明の一実施形態では、一つ以上のコンピュータネットワークを介して実施される音声通話をサポートするシステムは、前記発呼者装置及び被呼者装置のそれぞれで実行されるクライアントロジックであって、プロセッサによって実行されると、前記プロセッサに、前記複数のリレーサーバのそれぞれについて、当該リレーサーバにバインド要求を送信すること、前記リレーサーバからの肯定応答を受信した場合、前記バインド要求の送信と前記バインド要求の肯定応答の受信との間の待ち時間を測定することを行わせる命令を格納するクライアントロジックを備え得る。
【００２６】
前記クライアントロジックは、プロセッサによって実行されると、前記プロセッサに、前記発呼者装置及び被呼者装置のうちの一方にて、前記発呼者装置及び被呼者装置の他方によって測定された１以上のリレーサーバ待ち時間を受信すること、前記発呼者装置及び被呼者装置にて測定された合計リレーサーバ待ち時間に基づいて前記１つのリレーサーバを選択することを行わせる命令を備え得る。
【００２７】
各通信サーバの前記コンピュータ可読媒体は、プロセッサによって実行されると当該通信サーバに、前記通話オファーの受信に応答して、前記被呼者装置と前記複数の通信サーバの一つとの間に進行中の通信接続が存在するかを判定し、前記被呼者装置と通信サーバとの間に通信接続が存在しない場合には、前記通話オファーについてのプッシュ通知を前記被呼者装置に向けて送信することを行わせる命令を更に格納し得る。
【００２８】
前記リレー動作モードで前記音声通話を一時的に実施することは、前記発呼者装置及び被呼者装置が前記ピアツーピア動作モードの開始を試みた後にのみ開始され得る。
前記リレー動作モードで前記音声通話を一時的に実施することは、前記発呼者装置及び被呼者装置が、前記ピアツーピア動作モードを確立し、前記ピアツーピア動作モードがその後失敗した後にのみ開始され得る。
【００２９】
前記通話オファーは複数の被呼者装置をまたは複数の被呼者装置ユーザを特定し得る。
本発明の更なる実施形態では、１つまたは複数の非一時なコンピュータ可読記憶媒体が、実行されると、本発明による方法または上述の実施形態のいずれかを実施するように動作可能なソフトウェアを具体化する。
【００３０】
本発明の更なる実施形態では、システムは、１つまたは複数のプロセッサと、前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を備える少なくとも１つのメモリとを備え、前記プロセッサが前記命令を実行して本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
【００３１】
本発明の更なる実施形態では、コンピュータプログラム製品は、好ましくは非一時的なコンピュータ可読記憶媒体を含むコンピュータプログラム製品は、データ処理システム上で実行されて本発明による方法または上述の実施形態のいずれかによる方法を実施するように動作可能である。
【図面の簡単な説明】
【００３２】
【図１】ＶＯＩＰ通話を確立し維持するためのいくつかの実施形態に従うシステムのブロック図。
【図２Ａ】いくつかの実施形態に従うＶＯＩＰ通話を確立し維持する方法を示すタイムシーケンス図。
【図２Ｂ】いくつかの実施形態に従うＶＯＩＰ通話を確立し維持する方法を示すタイムシーケンス図。
【図３】いくつかの実施形態に従うＶＯＩＰ通話を確立し維持するための装置のブロック図。
【発明を実施するための形態】
【００３３】
以下の説明は、当業者が本明細書に記載された実施形態を実施及び使用できるようにするために提示される。開示された実施形態に対する様々な変更が当業者には容易に理解され、本明細書で定義される技術的思想は本開示の範囲から逸脱することなく他の実施形態および用途に適用され得る。
【００３４】
いくつかの実施形態では、２つの装置間のＶＯＩＰ通信セッション（例えば、ＶＯＩＰ通話）を確立し維持するためのシステム、装置、および方法が提供される。ＶＯＩＰ接続は動的であり、つまり、必要に応じてまたは要求に応じて異なるモード間で、例えば、装置のデジタル化オーディオ通信が別のエンティティ（リレーサーバなど）を介してリレーされるリレーモードと、装置同士が直接に（すなわち、リレーエンティティなしで）通信するピアツーピア（Ｐ２Ｐ）モードとの間で、交互に切り替え可能である。
【００３５】
例えば、装置は、同じＷｉ−Ｆｉ（登録商標）アクセスポイントに接続されることによって、ピアツーピア接続を確立することができる。しかしながら、一方または両方の装置が移動して異なるネットワーク（例えば、異なるＷｉ−Ｆｉネットワークまたはアクセスポイント、移動体通信事業者のネットワーク）に接続し、異なるアドレスを採用する場合、それら装置は、少なくともそれら装置がピアツーピア接続を再確立できるまで（可能である場合）、リレーエンティティを介して（一時的に）通信し得る。それら装置は、通話中、テキストまたは他の非オーディオコンテンツを交換するための信号伝送目的（例えば、Ｐ２Ｐ接続のネゴシエーションまたは再ネゴシエーションのため、リレーエンティティの特定のため等）のために、および／または他の目的のために、このシステムで接続を維持することができる。
【００３６】
本明細書に提示された実施形態は、ＶＯＩＰ通話をサポートするように実装されたものとして説明されているが、システム、方法、および装置は、例えばインターネットプロトコルを使用していないから、ＶＯＩＰ通話として厳格に限定されない他の形式のデジタル化ビデオおよびオーディオ（例えば、音声）通信に適用することができる。
【００３７】
いくつかの実施形態では、本明細書に記載の方法を、モバイルおよび／または固定式のコンピューティング装置および／または通信装置（例えば、スマートフォン、タブレットコンピュータ）にインストールされた通信アプリケーションに組み込むことができる。いくつかの特定の実施形態では、当該アプリケーションは、ＶＯＩＰ通話に加えて、ＩＥＥＥ８０２．１１標準（例えば、Ｗｉ−Ｆｉ（登録商標）接続）に準拠するデータ通信チャネルを介して、テキスト、画像、ビデオ、音声記録、および／または他の電子情報が交換される通信アプリケーションである。例えば、このアプリケーションは、ＷｈａｔｓＡｐｐ社によって提供されるＷｈａｔｓＡｐｐ（登録商標）メッセンジャーアプリケーションであってよい。
【００３８】
図１はＶＯＩＰ通話を確立し維持するためのいくつかの実施形態に従うシステムのブロック図である。
これらの実施形態では、通信システム１２０の複数のユーザは、同じまたは異なるオペレーティングシステム（例えば、アンドロイド、ブラックベリー、ｉＯＳ、ノキアＳ４０、シンビアン、ウィンドウズ（登録商標）フォン）が動作している様々な携帯通信装置を操作する。したがって、装置１０２，１０４は異なるユーザによって操作され、機能、アプリケーション、ユーティリティなどの面で類似してまたは異なって構成され得る。しかしながら、それらの各々は、通信システム１２０によってホストされる共通の通信アプリケーションのバージョンを実行する。
【００３９】
ＶＯＩＰまたは本明細書で説明される他の形態のデジタル化音声通信に関連して使用する場合、装置１０２、１０４のうちの一方は発呼者（または発呼パーティ）によって操作されることから発呼者装置と呼称でき、他方の装置は被呼者（被呼パーティ）によって操作されることから被呼者装置と呼称できる。
【００４０】
装置１０２，１０４間の例示的なデジタル化オーディオ通信は、直接に（ピアツーピアモードで）または間接的に（リレーモードで）行うことができる。後者の場合、通信システム１２０内のまたは通信システム１２０と提携しているリレーサーバが各装置からパケットまたは他の通信要素を受信し、それらを互いにリレーする。
【００４１】
システム１２０は、複数のユーザまたは少なくともそのようなアプリケーションまたはサービスのサーバ部分によって同時に使用され得る通信アプリケーションまたはサービスをホストする、データセンター、コンピュータネットワーク、または他の協調的なコンピューティング資源の集合である。上述したように、いくつかの実装形態では、アプリケーションは、ユーザに、ＶＯＩＰ機能と、自分の通信装置（例えば、装置１０２）から１つ以上の他のユーザによって操作される通信装置（例えば、装置１０４）へのまたはからの、テキスト、オーディオ記録、写真、ビデオ、およびマルチメディアのインスタントメッセージング機能とを提供する。
【００４２】
システム１２０によってホストされる通信アプリケーションは、装置１０２，１０４と互換性があり、これら装置のネイティブオペレーティングシステムのもとで実行されるクライアントロジックを含む。一タイプの装置を操作するとともに一通信サーバプロバイダに加入しているあるユーザは、別のタイプの装置を操作するとともに別の通信サーバプロバイダに加入している他の複数のユーザと、ＶＯＩＰ通話に参加できるとともにメッセージ交換できる。このように、ＶＯＩＰ発呼者または発呼パーティが一装置プラットフォームを使用し、他方、被呼者または被呼パーティは異なるプラットフォームを使用することがある。
【００４３】
いくつかの実施形態では、被呼者または被呼パーティは、ＰＯＴＳ（基本電話サービス）に結合された従来の陸線電話を使用して通話に参加することができる。こうした実施形態では、システム１２０のコンポーネントは、従来の電話接続のエンドポイントとして機能し、デジタル／アナログ変換およびアナログ／デジタル変換を提供する。
【００４４】
通信サーバ１２２は、システム１２０とユーザとの接続をホストし、ユーザ間の通信の交換を容易にする当該システム１２０のフロントエンドコンポーネントである。サーバ１２２は「チャット」サーバと呼ぶことができる。というのは、サーバ１２２は、個々のユーザからのリアルタイムテキストメッセージおよびチャットセッション通信を受信して、１人または複数の他のユーザへ配信できるからである。通信サーバ１２２によって処理されるいくつかのメッセージは「チャット」メッセージと呼ばれることがあるが、それらメッセージはテキストコンテンツに限定されず、埋め込まれたか、添付されたか、または関連付けられた（例えば、リンクされた）メディアコンテンツを有することがあり、プロトコルレベルのメッセージを有してもよい。
【００４５】
通信サーバ１２２は、システム１２０に接続された装置間のＶＯＩＰ通話の確立および維持も補助する。以下で説明するように、例えば、それらは、関連する呼パラメータ（例えば、使用するコーデックまたは符号化方式、適用するサンプリングレート）をリレーするか確立を補助したり、通話に参加しているかまたは参加しようとしている装置が非音声データ（例えば、そのネットワークアドレス、現在の状態、呼の受諾または拒否）を受け渡すための経路を提供したり、必要に応じてあるモードから別のモードに切り替えるのを補助する等を行い得る。
【００４６】
通信サーバ１２２は、システム１２０の他のコンポーネントに対するポータルとしても機能することができる。したがって、あるユーザが別のユーザのステータスを要求したり、プロフィールや他の情報を更新したりすると、当該ユーザの行為は、当該ユーザが接続している通信サーバによって適切なシステムコンポーネントに配送され得る。
【００４７】
例示的には、ユーザがシステム１２０に対してオンラインであり、アプリケーションが当該ユーザの装置で実行されている限り、ＶＯＩＰ通話中も含めて、当該装置と通信サーバ１２２との間の接続またはセッションは維持され得る。ユーザが装置上のアプリケーションを閉じるかまたは通話を終了したときに、ユーザの接続はある期間（例えば、５分、１５分）持続してもよい。
【００４８】
状態サーバ１２４は、ユーザのおよび／またはユーザの装置の状態を維持する。したがって、状態サーバは、適用可能なプリファレンス（例えば、好ましい可聴および／または視覚的アラート、他のユーザに表示されるステータスメッセージ）、装置タイプ／モデル、プロフィール写真などを含め、ユーザのプロフィールの一部または全部を保存する。状態サーバによって維持されるユーザに関する状態情報の一部は、システム１２０と当該ユーザとの進行中の接続の期間だけ持続してよく、他の情報は無期限に持続してよい。状態サーバ１２４は、デジタル化オーディオ通話（例えば、ＶＯＩＰ通話）のターゲットまたは潜在的受信者の適格性を判定するかまたは判定を補助することもできる。
【００４９】
また、状態サーバ１２４は、例えば、ユーザのサービスプロバイダを介して装置と通信するために必要とされるデバイストークンといった、必要な場合にユーザの装置にメッセージをプッシュするために必要な情報を格納する。このデバイストークンは、「デバイスＵＲＩ（統一資源識別子）」、「登録ＩＤ」、「ＰＩＮ」（個人識別番号）としても知られており、その他のモニカ（ｍｏｎｉｋｅｒ）を有してもよい。このトークンは特定の装置または特定のユーザに固有のものであってよい。被呼者装置が既にシステム１２０に（例えば、通信サーバ１２２を介して）接続されていない場合といったいくつかの状況では、この装置を起動してシステムに接続させるためにこの装置にプッシュメッセージを送信してもよく、この後に、通話の試みまたは通話オファーが送達され、このトークンはこのメッセージを送達するために対応するサービスプロバイダによって要求されることがある。
【００５０】
リレーサーバ１２６は、ＶＯＩＰ通話のリレー動作モード中に発呼者装置と被呼者装置との間でデジタル化オーディオをリレーするために使用される。いくつかの実施形態では、リレー動作モードは、ピアツーピアモードが利用できない場合にのみ実施される。リレーモード中に、通信している複数の装置は、周期的または定期的に、特に、例えばあるＷｉ−Ｆｉネットワークから別のものへ変更するときや、Ｗｉ−Ｆｉネットワークからモバイルキャリアネットワークへ変更（またはその逆）するとき等の、それら装置の一つがネットワークを変更するときには必ず、ピアツーピアモードをアクティブにしようと試行し得る。
【００５１】
通信サーバ、状態サーバ、リレーサーバ、および／または他のサーバを任意の数（例えば、１つまたは複数）でシステム１２０内に配置することができる。サーバ１２２，１２４，１２６の機能は他の実施形態では異なって分配されることがあり、例えば、より少数のコンポーネントに統合されてよく、または追加のコンポーネント間で分割されてよい。
【００５２】
システム１２０の複数のサーバは、それらに起因する機能を実行するのに適した別個のハードウェア資源（例えば、プロセッサ、ストレージ、通信インターフェース）およびソフトウェア資源（例えば、プログラムコード、データ）を備える別個の複数の物理的コンピュータシステムであってよい。いくつかの代替の実施形態では、一部または全部のサーバが、ハードウェアおよび／またはソフトウェアリソースを共有する仮想コンピューティングマシンであってよい。したがって、異なる複数の機能（または同じ機能）を実行する複数のソフトウェアサーバモジュールがシステム１２０内の１つのサーバコンピュータ上に常駐してもよい。
【００５３】
一以上のネットワーク１５０がシステム１２０とユーザ装置との間の通信経路および異なるユーザ装置間の通信経路を提供し、データおよび／または音声通信チャネルを含むことができる。データ通信を行うために、ネットワーク１５０は、インターネット、１つ以上のイントラネット、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、および／または他のポイントツーポイント接続または分散接続を含むことができ、それらは有線でも無線でもよい。音声通信を行うために、ネットワーク１５０は、異なる複数の電気通信サービスプロバイダによって管理されて、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  Ｒａｔｅｓ  ｆｏｒ  ＧＳＭ  Ｅｖｏｌｕｔｉｏｎ）、ＬＴＥ（Ｌｏｎｇ−Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＥＶ−ＤＯ（Ｅｖｏｌｕｔｉｏｎ−Ｄａｔａ  Ｏｐｔｉｍｉｚｅｄ）などの任意の無線技術を仮想的に実施する有線および／または無線の音声通信リンクを備えることができる。
【００５４】
従って、ネットワーク１５０は、データ接続および／またはデジタル化音声接続の確立、維持、切り替え、または他の操作のための、例えば、ルータ、ゲートウェイ、スイッチ、基地局（例えば、無線アクセスポイント、ノードＢ、進化型ノードＢ）等の、図１には示されていない様々なエンティティを含むことができる。
【００５５】
図２Ａ及び図２Ｂは、いくつかの実施形態によるＶＯＩＰ通話を確立し維持する方法を示す時間シーケンス図を形成する。
これらの実施形態では、発呼者は第１クライアント装置（例えば、スマートフォン、コンピューティング装置）を使用して、一以上の他のパーティとのＶＯＩＰ通信および／または他のリアルタイムデジタル化音声通信をサポートする通信アプリケーションを動作させる。発呼者２１０は発呼者および／または発呼者装置を表す。被呼者は第２クライアント装置を使用して同じアプリケーションまたは互換性のあるアプリケーションを動作させる。被呼者２４０は被呼者および／または被呼者装置を表す。
【００５６】
いくつかの実装形態では、通話が２つ以上のパーティ間で確立され得る。例えば、発呼者からの通話オファーが複数の異なる被呼者（または被呼者装置）を特定することがあり、被呼者のグループまたは装置のグループを特定するグループ識別子を含むことがある。
【００５７】
通信アプリケーションは、１つまたは複数の通信サーバ（例えば、チャットサーバ）、リレーサーバ、および／または他のコンポーネントを含むアプリケーションホストシステム（たとえば、図１のシステム１２０）によってホストされ、動作され、または管理される。いくつかの実装では、通信サーバ２２０は、アプリケーションホストシステムの他の一部のコンポーネントであり得る。また、図示した方法は発呼者と被呼者の両方と通信するために１つの通信サーバを使用するものとして記述したが、他の方法では、各々がそれらパーティの一つとの接続をホストする２つ以上の共働する通信サーバが使用され得る。
【００５８】
リレーサーバ２３０は、アプリケーションホストシステムの別のコンポーネントであるか、または本明細書で説明するアプリケーションホストシステムと協調的に動作する別のエンティティによって提供される。
【００５９】
発呼者２１０から被呼者２４０へのＶＯＩＰ通話の開始に先立って、少なくとも発呼者装置はアプリケーションホストシステム（例えば、通信サーバ２２０）に接続される。例えば、発呼者は、被呼者２４０を含んでいてもいなくてもよい１人以上の他のユーザとテキストメッセージ（例えば、チャット）を交換していることがある。したがって、発呼者が通話を開始し得る前に、発呼者はシステムに接続しなければならない。発呼者は手動でログインして身元照合してもよいし、発呼者の装置が自動的に発呼者をログインしてもよい。例示的には、ユーザがアプリケーションを開始したときかまたは通話を開始するときに、ユーザの装置がアプリケーションホストシステムへの接続を自動的に開くことができる。
【００６０】
同様に、通話が被呼者に接続され得る前に（被呼者が通話を受け付けると仮定）、被呼者またはその装置はログインする必要があろう。したがって、両パーティは、アプリケーションの登録ユーザでなければならず、ＶＯＩＰ通話に参加するためにシステムに接続しなければならないが、それらの装置は、ＶＯＩＰ通話を起動するためにまたはオファーされた通話を受け取るために必要とされるアプリケーション操作以外には、追加動作なしで自動的に接続を行うことができる。
【００６１】
したがって、時刻２５０に発呼者が被呼者へのリアルタイムのデジタル化されたまたはデジタルの音声通話を開始させるアプリケーション内の制御を起動する。例示的に、この制御は、被呼者に送信されたメッセージまたは被呼者から受信したメッセージの中にあるかまたは当該メッセージと関連付けられた連絡先のリストまたは被呼者に対応する連絡先カード内に提供されてよい。通話オファーは、アプリケーションホストシステムに既知の識別子（例えば、電話番号、電子メールアドレス）等を用いて、発呼者と受呼者（またはそれらの装置）を特定し、発呼者装置によってサポートされるオーディオパラメータ（例えば、コーデック、サンプリングレート）、発呼者２１０のローカルまたは内部アドレス（おそらくポートも）、および／または他の情報を提供する。
【００６２】
この応答として、通信サーバ２２０は、通話オファーの肯定応答を行い、必要に応じて、要求された通話のリレー動作モードで使用するために利用可能な複数のリレーサーバのセット（図２Ａおよび図２Ｂのリレーサーバ２３０を含む）を特定する。いくつかの実施形態では、既存のリレーサーバの全てを特定することができる。他の実施形態では、例えば、発呼者２１０および／または被呼者２４０の場所に基づいて、すべてのサーバのサブセットを特定することができる。リレーの詳細は、例示的には、ＩＰ（インターネットプロトコル）アドレス及びＴＣＰ（伝送制御プロトコル）又はＵＤＰ（ユーザデータグラムプロトコル）ポートのような少なくとも１つのアドレス（例えばポート）と、アプリケーションホストシステムによって生成され発呼者２１０がリレーサーバを使用することを許可されていることを確認するリレートークンとを少なくとも含む。なお、このトークンは上記のデバイストークン（またはデバイスＵＲＩ）と異なり得る。
【００６３】
通信サーバ２２０は、リレーの詳細を発呼者２１０に提供することに加えて、通話オファーとともに同じかまたは類似のリレーの詳細を被呼者２４０にも転送する。被呼者がアプリケーションホストシステムに現在接続されている場合、通話オファーが配送され、時刻２５２に被呼者装置が鳴る（または、どのように構成されているかによって、ブザー音がしたり、振動したり、他のアラートを表示したりする）。
【００６４】
しかし、現在被呼者２４０がシステムに接続されていない場合、被呼者にプッシュ通知が送信されてアプリケーションを起動させ、通話オファーが配送されるようにする。この通知は当該装置のオペレーティングシステムのプロバイダによって、たとえばＧｏｏｇｌｅ  Ｃｌｏｕｄ  Ｍｅｓｓａｇｉｎｇ（ＧＣＭ）またはＡｐｐｌｅ  Ｐｕｓｈ  Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ（ＡＰＮＳ）を介して、配送または転送され得る。被呼者２４０に提供されるリレーの詳細は、発呼者２１０に対して特定したのと同じリレーサーバを特定してよく、または利用可能な他のリレーのグループを特定してもよい。また、被呼者装置は、被呼者装置にリレーサーバ２３０の使用を許可させるリレートークンを受信する。
【００６５】
被呼者は通話オファーを拒否したり無視することができ、その場合、この拒否は通信サーバ２２０を介して発呼者に（場合により拒否の理由付きで）返送される。しかし、図２Ａ−２Ｂに示す方法は被呼者が通話オファーを受諾したかまたは受諾するであろうことを想定している。
【００６６】
一方、時刻２５２にまたはその頃に、発呼者装置と被呼者装置は、それらに対して特定された一部または全部のリレーサーバとバインドされ、当該リレーサーバには、両パーティがリレー動作モードを採用する場合に両パーティ間のデジタル化オーディオ通信をリレーするのに使用するためのエンドポイントを当該一部または全部のリレーサーバに割り当てさせるリレーサーバ２３０が含まれる。
【００６７】
それらリレーサーバは、（バインドが可能であれば）バインドを承認し、発呼側装置と被呼側装置の各々に、リフレクシブアドレスまたは公共アドレスとして知られることもある、それらの装置の外部アドレスを提供する。これらの実施形態では、個々の装置は、（例えば、それらのローカルネットワーク内での）自身のローカルまたは内部アドレスを既に知っており、これらをアプリケーションホストシステム（例えば、通信サーバ２２０）に提供し得るが、外部アドレスは知らないことがある。
【００６８】
図示された方法では、内部アドレスは、それら装置のローカルネットワーク内で（例えば、ネットワークアドレス変換またはＮＡＴエンティティの片側で）使用され、それら装置はそれらのネットワーク外では（例えば、ＮＡＴエンティティの他側または／公衆側）外部アドレスによって知られる。リレーサーバ２３０と通信することによって、それら装置はそれらの外部アドレスを学習する。
【００６９】
外部アドレスを受信すると、発呼者２１０はそのアドレスを通信サーバ２２０に報告し、通信サーバ２２０はそれを被呼者２４０に転送する。この外部アドレスと共に、発呼者はバインドしているリレーサーバ２３０に関する待ち時間情報を送信する（そして通信サーバは転送する）。
【００７０】
特に、図示した実施形態では、リレー動作モード中に両パーティが使用するための複数のリレーサーバのうちの１つを選択するために、両パーティ（またはそれらの一方）は、複数のリレーに送信した通信（例えば、バインド要求）とそれらリレーの応答（例えばそれらからの肯定応答）とに係る待ち時間に基づいて単一のリレーサーバを選択する。
【００７１】
例えば、発呼者は、各リレーサーバに対する要求及びそれらの応答に関与する待ち時間を計算し、応答した各サーバの観測された待ち時間を（発呼者の外部アドレスと共に）被呼者に報告し得る。被呼者は、被呼者が観測した待ち時間を発呼者から報告された値に加算し、サーバ毎に合計待ち時間を取得し、合計待ち時間が最小のリレーサーバを選択する。図２Ａに示すように、被呼者は、通話オファーを受信するまでバインド要求の送信と待ち時間の測定を開始しなくてもよいが、発呼者は、リレーサーバの詳細（例えば、そのアドレス）を知ると直ちにバインド要求の送信と待ち時間の測定を開始し得る。
【００７２】
どちらかのまたは両方のパーティは、応答のないリレーサーバに対する要求の送信を、限られた期間にわたってまたは通話期間を通して、継続し得る。通話が確立された後であっても、一パーティが待ち時間値の取得を継続し得るので、通話の確立前におよび／または通話の途中に選択されたリレーサーバが変更され得る。
【００７３】
したがって、両パーティの装置は、当該両パーティの装置のためにアプリケーションホストシステムによって選択されているリレーサーバの代わりに、リレーサーバを選択する。そしてそれは非常に迅速に行われる。他の実装例では、他の方法が複数のリレーサーバの１つを選択するために適用されてよいし、待ち時間またはタイミング情報を考慮してもよいし、しなくてもよい。
【００７４】
時刻２５６に、被呼者は、オファーされたＶＯＩＰ通話を受諾し、受諾メッセージ、被呼者装置の外部アドレス、及び、選択されたリレーサーバの識別子（例えば、アドレス）が、通信サーバ２２０に送信される。受諾メッセージの一部として、被呼側装置は、発呼側装置が既に提供したもの（例えば、コーデック、サンプリング速度、アドレス／ポート）に対応する動作パラメータを送信する。両パーティに１つのリレーサーバしか提供されなかった場合、被呼者は選択されたリレーサーバを特定することを省略してもよいし、あるいは当該１つのサーバの選択を承認するか受諾するだけでもよい。もし複数のリレーサーバが利用可能であり、被呼者が通話オファーを受諾する時点までに当該通話に対するリレーサーバの選択を完了していない場合は、選択したリレーサーバの識別子が後で送信され得る。
【００７５】
いくつかの実施形態では、通信サーバ２２０または他のシステムコンポーネントは、一方または両方の装置が通話のために使用できるか使用するであろう通話パラメータを決定することができる。一パーティの装置についてのパラメータは、その装置によって以前に（成功裏に）実装されたパラメータ、その装置の現在のコンフィギュレーション、および／またはその他の要因に応じて選択され得る。
【００７６】
通話を受諾した直後に、被呼者２４０はピアツーピア（Ｐ２Ｐ）動作モードおよびリレー動作モードのいずれかまたは両方の開始を試みる。
図示した方法では、両装置はまずリレー動作モードを行う。両装置がリレーサーバ２３０との接続を既に開いているが、Ｐ２Ｐ接続の確立または検証がまだ可能になっていないからである。しかし、いくつかの他の実施形態では、両装置は、Ｐ２Ｐ接続の確立とＰ２Ｐ動作モードをまず試みることができる。
【００７７】
しかし、リレー動作モードの開始している間でも、被呼者２４０は、発呼者２１０との接続の検証を試み始める。例えば、Ｐ２Ｐ接続性チェックは、実行可能な経路が存在するかどうかを決定するために、一装置が知っている任意のまたは全てのアドレス（例えば、内部および／または外部）で他の装置とのコンタクトを試みてることを含むことができる。何度かの接続要求（例えば、１０回）が失敗した場合、接続性がないと推定してもよい（チェックは少なくともある期間にわたって終了する）。
【００７８】
両装置が他方の装置にコンタクトできる場合、両装置はＰ２Ｐ接続のネゴシエーションを開始することができる。図示された方法では、ネゴシエーションは、一度にすべて実行するのではなく、（例えば、各パーティの装置が他の装置の適切なアドレスを認識すると）段階的に実行される。
【００７９】
一方、通信サーバ２２０は、受諾メッセージ、被呼者の外部アドレス、および選択されたリレーサーバの識別情報（例えば、アドレス）を発呼者２１０に転送する。これで発呼者装置は、被呼者２４０とのＰ２Ｐ動作モードの開始を交渉する（または交渉を試みる）間に、リレーサーバ２３０とのデジタル化音声データ通信を開始することもできる。
【００８０】
したがって、時刻２６０またはその頃に、発呼者および被呼者は、リレー動作モードでＶＯＩＰ通信を開始することができるが、相互にコンタクトを試みるとともに必要な通信パラメータを交換することによってＰ２Ｐモードの確立を試み続けてもよい。成功すれば、両者は好適なモードとしてのこのモードに自動的に切り替わることとなる。しかし、ＶＯＩＰ通話は非対称であり得る。つまり、一方のパーティが一モード（例えば、リレーモード）でデータを送信し、他方のパーティが別のモード（例えばＰ２Ｐモード）で送信することがある。これは、遷移期間でのみ、または相当の期間にわたって、または通話中にわたって発生することがある。
【００８１】
いくつかの実施形態では、後ほど一方または両方のパーティの装置が移動して別々のネットワークに接続することがあるが、この場合、それらの内部および外部アドレスが変化する可能性が高い。
【００８２】
図２Ｂに示すように、時刻２７０において、発呼者が移動し（または移動され）、異なるＷｉ−Ｆｉネットワーク、または異なる移動通信事業者ネットワーク、または他のネットワークに接続する。したがって、発呼側装置は、新しいバインド要求をリレーサーバ２３０（および／または他のリレーサーバ）に送信する。リレーサーバ２３０は、バインドを確認して当該装置の新しい外部アドレスを特定する。この新しいバインド要求は、システムによって以前に発呼者２１０に提供されたのと同じトークンを含んでよく、または発呼者装置は、新しいバインド要求の前に新しいトークンを取得してよい。
【００８３】
次に、発呼者２１０は、その新しい外部アドレスを通信サーバ２２０に（このサーバにまだ知られていなければ内部アドレスも）転送する。この通信サーバはその新たなアドレスを被呼者２４０に転送する。発呼者２１０は、新しいアドレスを使用して、リレー動作モードの新しい反復を開始する。
【００８４】
時刻２７２に発呼者の新しい外部アドレスを受信すると、被呼者はリレー動作モードに戻り得る。特に、両パーティがＰ２Ｐ通信を行っていて、被呼者がＰ２Ｐ接続を介するパケットの受信を中止すると、リレーサーバ２３０を介してＶＯＩＰ通話のリレー動作モードが直ちに開始されることになるが、Ｐ２Ｐ接続の再交渉も試みられる。それが失敗しても、両パーティはリレー動作モードを継続することができる。
【００８５】
一方、発呼者２１０は、被呼者２４０の既知のアドレスを使用してその新しいアドレスからリレーモードの開始を試み始める。成功した場合、発呼者２１０はＰ２Ｐモードでの動作を交渉する。
【００８６】
いくつかの実施形態では、発呼者２１０および／または被呼者２４０のアドレスは、それぞれが与えられるべき嗜好を反映するために、それら装置自体によってまたは他のエンティティによって優先順位づけされる。例えば、Ｗｉ−Ｆｉアドレスには、通常、セルラーアドレスよりも高い優先順位が与えられ、内部アドレスは外部アドレスよりも優先される（両パーティの装置が同じネットワーク上にある場合）。
【００８７】
しかしながら、一方の装置がネットワークを変更するときなど、通話が中断されたとき、そのアドレスがＷｉ−Ｆｉネットワーク上にあるかセルラーネットワーク上にあるかにかかわらず、新しい外部アドレスに最高の優先順位を一時的に与えることができる。
【００８８】
ＶＯＩＰ通話の確立および／または維持は、ある状況または環境から別のものへと変化することがあり、したがって、そのようなタスクに関係する、通信の内容、形式、および順序は、実施形態ごとに異なり得る。特に、図２Ａ−２Ｂに示した様々な通信または同様の通信が任意の所与のエンティティによって異なるタイミングで送信または受信されてよく、いくつかの通信は他の通信を横切るかまたは交差し得る。
【００８９】
例えば、所与の装置がバックグラウンド処理を実行できない場合、いくつかの動作（通話の受諾前に被呼者２４０に帰属されるものなど）は図２Ａ−２Ｂに示したものより後に実施されることがある。
【００９０】
図２Ａ−２Ｂの方法のいくつかの実装例では、各パーティの装置は、通信サーバ２２０との持続的な接続（例えば、ＴＣＰ接続）を維持するが、デジタル化音声通信は、コネクションレスプロトコル（例えば、ＵＤＰ）を介して、リレーモードおよびＰ２Ｐモードのいずれかまたは両方で実施される。しかし、ＵＤＰが利用できない場合、または、ＵＤＰ接続を確立しようとする試みが失敗した場合、または、他の何らかの理由で、装置はデジタル化音声通信にＴＣＰまたはその他の適切なプロトコルを使用し得る。
【００９１】
いくつかの実施形態では、通話品質が監視され、品質が所定の閾値の下まで低下すると、一方の動作モードから他方の動作モードへの切り換えがトリガされ得る。
図３は、いくつかの実施形態によるＶＯＩＰ通話の確立および維持をサポートするための装置のブロック図である。なお、他の実施形態では、装置３００は、その動作をサポートするための複数の独立したまたは半独立の複数のコンポーネント、例えば、複数の通信サーバ、複数のリレーサーバ、複数の状態サーバ、および／またはアプリケーションホストシステムの他のコンポーネントなどを含むことができると理解される。
【００９２】
図３の装置３００は、一または複数のプロセッサ３０２、メモリ３０４、およびストレージ３０６を備え、当該ストレージは１つまたは複数の電気的、光学的、および／または磁気的な記憶コンポーネントを含むことができる。装置３００は、キーボード３１２、ポインティングデバイス３１４、およびディスプレイ３１６と（永久にまたは一時的に）結合され得る。装置は、明瞭化のために省略された、例えば、有線および／または無線通信リンクを介して通信するための通信モジュール、及び、他のストレージ、プロキシサーバ、ルータ、ロードバランサ、ウェブサーバ、その他の装置などの他の外部装置とインターフェースするためのインターフェースコンポーネント等の他のコンポーネントを含むことができる。
【００９３】
装置のストレージ３０６は、プロセッサ３０２による実行のためにメモリ３０４にロードすることができるロジックを格納する。このようなロジックは、装置によってホストされ、複数のユーザによって使用されるアプリケーションを動作およびサポートするために必要な他のロジックに加えて、接続ロジック３２２およびリレーロジック３２４を含む。ストレージ３０６は、スマートフォン、タブレットコンピュータ、および／または他のデバイスなどのクライアントデバイスにダウンロードされて実行されるオプションのクライアントアプリケーションロジック３２６を含むこともできる。メモリ３０４および／またはストレージ３０６は、ユーザ状態、ユーザアカウント状態、ユーザの連絡先リスト、ユーザのクライアント装置との通信を可能にするためのパラメータなどの、装置３００によって生成または使用される様々なデータを格納することもできる。
【００９４】
接続ロジック３２２は、装置３００によってホストされる通信アプリケーションのユーザによって操作されるクライアント装置との接続を受信し管理するためのプロセッサ実行可能命令を含む。これらの命令は、接続要求を受信すること、接続を確立／維持するための正しいプロトコルを適用すること、接続を終了すること、アプリケーションをサポートするプロトコルメッセージを交換すること、ユーザ間で交換される通信を受信及び配信すること、通信パラメータおよび／ＶＯＩＰ通話を行うための他の情報を交換すること等を装置に行わせる。
【００９５】
リレーロジック３２４は、通信をリレーするための転送エンドポイントを提供すること、ユーザ装置のネットワークアドレスを特定すること、および／または他の動作を行うことによって、ユーザのデジタル音声通信をサポートするためのプロセッサ実行可能命令を含む。
【００９６】
オプションのクライアントロジック３２６は、ＶＯＩＰ通話を行うことを含め、ユーザのクライアント装置上でアプリケーションを実行するためのプロセッサ実行可能命令を含む。したがって、上述したように、クライアントロジックは、ユーザが、通話オファーを開始および応答すること、１つまたは複数のリレーモジュールまたはサーバとバインドすること、リレーエンティティに関連する待ち時間を測定すること、リレー動作モード中に使用する１つのリレーを選択すること、選択されたリレーを介してデジタル化オーディオ通信を受信すること（リレー動作モードがアクティブな場合）、他のユーザとのピアツーピア通信接続を確立し、他のユーザと直接的にデジタル化オーディオ通信を送受信すること（ピアツーピア動作モードがアクティブである場合）、ネットワーク変更後に通信接続を再確立すること等を可能にする。
【００９７】
いくつかの実施形態では、接続ロジック３２２およびリレーロジック３２４は統合され、または、さらに細分され、または別々の装置状で動作され得る。
本発明のいくつかの実施形態が実行される環境は、汎用コンピュータを、またはハンドヘルドコンピュータや通信装置といった専用デバイスを備えることができる。そのようなデバイス（例えば、プロセッサ、メモリ、データストレージ、ディスプレイ）の詳細については明確性の目的で省略する。１つまたは複数のタスクまたは機能が帰属されるプロセッサまたはメモリなどのコンポーネントは、指定されたタスクまたは機能を実行するように一時的に構成された一般的なコンポーネントであってもよく、またはタスクまたは機能を実行するために製造される特定のコンポーネントであってもよい。本明細書で使用する「プロセッサ」という用語は、データおよび／またはコンピュータプログラムコードを処理するように構成された１つまたは複数の電子回路、デバイス、チップ、処理コアおよび／または他のコンポーネントを指す。
【００９８】
詳細な説明に記載されたデータ構造およびプログラムコードは、典型的には、コンピュータシステムによって使用するためのコードおよび／またはデータを格納し得る任意のデバイスまたは媒体であり得る非一時的なコンピュータ読み取り可能な記憶媒体に格納される。非一時的なコンピュータ可読記憶媒体は、限定ではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）およびＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）といった磁気的記憶装置及び光学的記憶装置、ソリッドステートドライブ、および／または現在知られているまたは後に開発される他の非一時的コンピュータ可読媒体を含む。
【００９９】
詳細な説明に記載された方法およびプロセスは、コードおよび／またはデータとして具体化することができ、これは上述のような非一時的なコンピュータ可読記憶媒体に格納することができる。プロセッサまたはコンピュータシステムがコードを読み取り実行し、媒体に格納されたデータを操作するとき、プロセッサまたはコンピュータシステムは、コードおよびデータ構造として具現化されて媒体内に格納される方法およびプロセスを実行する。
【０１００】
本発明の上記の実施形態の説明は、例示および説明のためにのみ提示されたものである。それらは、開示された形態に本発明を制限または限定することを意図したものではない。したがって、当業者には多くの変更および変形が明らかであろう。本発明の範囲は、上述の記載によってではなく、添付の特許請求の範囲によって画定される。
【図１】
2019149798.tif 000003
【図２Ａ】
2019149798.tif 000004
【図２Ｂ】
2019149798.tif 000005
【図３】
2019149798.tif 000006