(57)【要約】【課題】  ＶｏＩＰでメディア送信のための最適ネットワーク経路を選択する技術を提供する。【解決手段】  最適ネットワーク経路を選択するための方法は、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）でユーザ間のメディア送信が可能なメディアチャネル候補を生成する段階、前記メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価する段階、および前記ネットワーク性能の評価結果にしたがって前記臨時メディアチャネルを現在メディアチャネルに変更する段階を含み、前記メディアチャネル候補に該当するメディアチャネルそれぞれに対して順に前記評価する段階と前記変更する段階を繰り返す。【選択図】      図４
2019087999.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムで実行される方法であって、
前記コンピュータシステムは、メモリに含まれたコンピュータで読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、
前記方法は、
前記少なくとも１つのプロセッサにおいて、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）でユーザ間のメディア送信が可能なメディアチャネル候補を生成する段階、
前記少なくとも１つのプロセッサにおいて、前記メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価する段階、および
前記少なくとも１つのプロセッサにおいて、前記ネットワーク性能の評価結果にしたがって前記臨時メディアチャネルを現在メディアチャネルに変更する段階
を含み、
前記メディアチャネル候補に該当するメディアチャネルそれぞれに対して順に前記評価する段階と前記変更する段階を繰り返すこと
を特徴とする、方法。
【請求項２】
前記生成する段階は、
メディア送信が可能なメディアリレーサーバのアドレスリストを組み合わせて前記メディアチャネル候補を生成すること
を特徴とする、請求項１に記載の方法。
【請求項３】
前記生成する段階は、
Ｐ２Ｐ（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）メディアとメディアリレーサーバを利用するサードパーティクラウド（３ｒｄ  ｐａｒｔｙ  ｃｌｏｕｄ）のうちの少なくとも１つをさらに含んで前記メディアチャネル候補を生成すること
を特徴とする、請求項２に記載の方法。
【請求項４】
前記評価する段階は、
現在メディアチャネルと同時に前記臨時メディアチャネルのネットワーク性能を評価して比較すること
を特徴とする、請求項１に記載の方法。
【請求項５】
前記評価する段階は、
前記臨時メディアチャネルを介してプローブパケット（ｐｒｏｂｅ  ｐａｃｋｅｔ）を送信し、前記プローブパケットに対する応答を利用してＲＴＴ（ｒｏｕｎｄ  ｔｒｉｐ  ｔｉｍｅ）、ディレイ変化量、パケットロス、帯域幅のうちの少なくとも１つのネットワークメトリックを算出すること
を特徴とする、請求項１に記載の方法。
【請求項６】
メディアストリームとネットワーク環境のうちの少なくとも１つに応じて前記ネットワークメトリックそれぞれの加重値が異なるように設定されること
を特徴とする、請求項５に記載の方法。
【請求項７】
前記評価する段階は、
通信を要請したユーザと通信要請に応答したユーザのうちの少なくとも１つの位置情報、および前記ユーザ間で以前に選択されたメディアチャネル履歴情報のうちの少なくとも１つに基づいて前記メディアチャネル候補に対するネットワーク性能の評価順を調整すること
を特徴とする、請求項１に記載の方法。
【請求項８】
前記方法は、
前記生成する段階の前に、メディア送信のためのメディアチャネルとしてデフォルト設定された基本メディアチャネルを先に使用する段階
をさらに含み、
前記基本メディアチャネルではない他のメディアチャネルに変更された場合、前記基本メディアチャネルを維持すること
を特徴とする、請求項１に記載の方法。
【請求項９】
請求項１〜８のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、非一時的なコンピュータで読み取り可能な記録媒体。
【請求項１０】
コンピュータシステムであって、
メモリに含まれたコンピュータで読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）でユーザ間のメディア送信が可能なメディアチャネル候補を生成する過程、
前記メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価する過程、および
前記ネットワーク性能の評価結果にしたがって前記臨時メディアチャネルを現在メディアチャネルに変更する過程
を処理し、
前記メディアチャネル候補に該当するメディアチャネルそれぞれに対して順に前記評価する過程と前記変更する過程を繰り返すこと
を特徴とする、コンピュータシステム。
【請求項１１】
前記生成する過程は、
メディア送信が可能なメディアリレーサーバのアドレスリストを組み合わせて前記メディアチャネル候補を生成すること
を特徴とする、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記生成する過程は、
Ｐ２Ｐ（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）メディアとメディアリレーサーバを利用するサードパーティクラウド（３ｒｄ  ｐａｒｔｙ  ｃｌｏｕｄ）のうちの少なくとも１つをさらに含んで前記メディアチャネル候補を生成すること
を特徴とする、請求項１１に記載のコンピュータシステム。
【請求項１３】
前記評価する過程は、
現在メディアチャネルと同時に前記臨時メディアチャネルのネットワーク性能を評価して比較すること
を特徴とする、請求項１０に記載のコンピュータシステム。
【請求項１４】
前記評価する過程は、
前記臨時メディアチャネルを介してプローブパケット（ｐｒｏｂｅ  ｐａｃｋｅｔ）を送信し、前記プローブパケットに対する応答を利用してＲＴＴ（ｒｏｕｎｄ  ｔｒｉｐ  ｔｉｍｅ）、ディレイ変化量、パケットロス、帯域幅のうちの少なくとも１つのネットワークメトリックを算出すること
を特徴とする、請求項１０に記載のコンピュータシステム。
【請求項１５】
メディアストリームとネットワーク環境のうちの少なくとも１つに応じて前記ネットワークメトリックそれぞれの加重値が異なるように設定されること
を特徴とする、請求項１４に記載のコンピュータシステム。
【請求項１６】
前記評価する過程は、
通信を要請したユーザと通信要請に応答したユーザのうちの少なくとも１つの位置情報、および前記ユーザ間で以前に選択されたメディアチャネル履歴情報のうちの少なくとも１つに基づいて前記メディアチャネル候補に対するネットワーク性能の評価順を調整すること
を特徴とする、請求項１０に記載のコンピュータシステム。
【請求項１７】
前記少なくとも１つのプロセッサは、
前記生成する過程の前に、メディア送信のためのメディアチャネルでデフォルト設定された基本メディアチャネルを先に使用する過程
を処理し、
前記基本メディアチャネルではない他のメディアチャネルに変更された場合、前記基本メディアチャネルを維持すること
を特徴とする、請求項１０に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ：インターネット電話）でメディア送信のための最適ネットワーク経路を選択する技術に関する。
【背景技術】
【０００２】
ＶｏＩＰは、多くの人によって利用されている技術である。ＶｏＩＰは、基本的に、ユーザの音声をデジタルデータパケットにエンコードし、このデジタルデータパケットをＩＰ（インターネットプロトコル）ネットワークを介して送信する。
【０００３】
例えば、特許文献１（登録日２０１１年０９月２６日）には、ＩＰ基盤でＶｏＩＰインターネット電話サービスを提供する技術が開示されている。
【０００４】
周知のように、ＩＰネットワークは、音声だけではなく、各種データサービス（ファイル送信、電子メール、インスタントメッセージングなど）はもちろん、動画、写真、音楽などのようなメディアパケットを送信することもできる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国登録特許公報第１０−１０６９１１６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＶｏＩＰにおいて、ユーザ間のメディア送信のための最適ネットワーク経路を選択することができる技術を提供する。
【０００７】
クライアントのネットワークオーバーヘッドを最小化したネットワーク経路選択技術を提供する。
【０００８】
時間によるクライアントのネットワーク変化の影響を最小化したネットワーク経路選択技術を提供する。
【課題を解決するための手段】
【０００９】
コンピュータシステムで実行される方法であって、前記コンピュータシステムは、メモリに含まれたコンピュータで読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、前記方法は、前記少なくとも１つのプロセッサにおいて、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）でユーザ間のメディア送信が可能なメディアチャネル候補を生成する段階、前記少なくとも１つのプロセッサにおいて、前記メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価する段階、および前記少なくとも１つのプロセッサにおいて、前記ネットワーク性能の評価結果にしたがって前記臨時メディアチャネルを現在メディアチャネルに変更する段階を含み、前記メディアチャネル候補に該当するメディアチャネルそれぞれに対して順に前記評価する段階と前記変更する段階を繰り返すことを特徴とする方法を提供する。
【００１０】
一側面によると、前記生成する段階は、メディア送信が可能なメディアリレーサーバのアドレスリストを組み合わせて前記メディアチャネル候補を生成してよい。
【００１１】
他の側面によると、前記生成する段階は、Ｐ２Ｐ（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）メディアとメディアリレーサーバを利用するサードパーティクラウド（３ｒｄ  ｐａｒｔｙ  ｃｌｏｕｄ）のうちの少なくとも１つをさらに含んで前記メディアチャネル候補を生成してよい。
【００１２】
また他の側面によると、前記評価する段階は、現在メディアチャネルと同時に前記臨時メディアチャネルのネットワーク性能を評価して比較してよい。
【００１３】
また他の側面によると、前記評価する段階は、前記臨時メディアチャネルを介してプローブパケット（ｐｒｏｂｅ  ｐａｃｋｅｔ）を送信し、前記プローブパケットに対する応答を利用してＲＴＴ（ｒｏｕｎｄ  ｔｒｉｐ  ｔｉｍｅ）、ディレイ変化量、パケットロス、帯域幅のうちの少なくとも１つのネットワークメトリックを算出してよい。
【００１４】
また他の側面によると、メディアストリームとネットワーク環境のうちの少なくとも１つに応じて前記ネットワークメトリックそれぞれの加重値が異なるように設定されてよい。
【００１５】
また他の側面によると、前記評価する段階は、通信を要請したユーザと通信要請に応答したユーザのうちの少なくとも１つの位置情報、および前記ユーザ間で以前に選択されたメディアチャネル履歴情報のうちの少なくとも１つに基づいて前記メディアチャネル候補に対するネットワーク性能の評価順を調整してよい。
【００１６】
さらに他の側面によると、前記方法は、前記生成する段階の前に、メディア送信のためのメディアチャネルとしてデフォルト設定された基本メディアチャネルを先に使用する段階をさらに含み、前記基本メディアチャネルではなく他のメディアチャネルに変更された場合、前記基本メディアチャネルを維持してよい。
【００１７】
前記方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、非一時的なコンピュータで読み取り可能な記録媒体を提供する。
【００１８】
コンピュータシステムであって、メモリに含まれたコンピュータで読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、ＶｏＩＰ（ｖｏｉｃｅ  ｏｖｅｒ  ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）でユーザ間のメディア送信が可能なメディアチャネル候補を生成する過程、前記メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価する過程、および前記ネットワーク性能の評価結果にしたがって前記臨時メディアチャネルを現在メディアチャネルに変更する過程を処理し、前記メディアチャネル候補に該当するメディアチャネルそれぞれに対して順に前記評価する過程と前記変更する過程を繰り返すことを特徴とするコンピュータシステムを提供する。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図４】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【図５】本発明の一実施形態における、メディア送信のための最適なネットワーク経路を探索する手順を示した図である。
【図６】本発明の一実施形態における、メディアチャネルの探索順を示した図である。
【図７】本発明の一実施形態における、ネットワークメトリックを算出する過程の例を示した図である。
【図８】本発明の一実施形態における、ネットワークメトリックを算出する過程の例を示した図である。
【図９】本発明の一実施形態における、ネットワークメトリックを算出する過程の例を示した図である。
【図１０】本発明の一実施形態における、メディアチャネル候補の例を示した図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【００２１】
本発明の実施形態に係るネットワーク経路選択方法は、以下で説明される電子機器やサーバのようなコンピュータシステムによって実行されてよい。このとき、コンピュータシステムには、本発明の一実施形態に係るコンピュータプログラムがインストールおよび駆動されてよく、コンピュータシステムは、駆動するコンピュータプログラムの制御にしたがって本発明の一実施形態に係るネットワーク経路選択方法を実行してよい。上述したコンピュータプログラムは、コンピュータシステムと結合され、ネットワーク経路選択方法をコンピュータに実行させるためにコンピュータで読み取り可能な記録媒体に格納されてよい。例えば、サーバは、ＶｏＩＰサーバの役割を担い、グローバルＶｏＩＰサービスにおいて、ユーザ間でメディアパケットを交換するために全世界に配布された多数のメディアリレーサーバのうちから最適なサーバを選択してよい。実施形態によっては、電子機器が最適なネットワーク経路を選択することが考慮されてもよい。
【００２２】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
【００２３】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００２４】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ノート型パソコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレット、ゲームコンソール（ｇａｍｅ  ｃｏｎｓｏｌｅ）、ウェアラブルデバイス（ｗｅａｒａｂｌｅ  ｄｅｖｉｃｅ）、ＩｏＴ（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）デバイス、ＶＲ（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ）デバイス、ＡＲ（ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ）デバイスなどがある。一例として、図１では、電子機器１（１１０）の例としてスマートフォンの形状を示しているが、本発明の実施形態において、電子機器１（１１０）は、実質的に無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することのできる多様な物理的なコンピュータ装置のうちの１つを意味してよい。
【００２５】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００２６】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてよい。例えば、サーバ１５０は、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０に第１サービスを提供するシステムであってよく、サーバ１６０も、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０に第２サービスを提供するシステムであってよい。より具体的な例として、サーバ１５０は、複数の電子機器１１０、１２０、１３０、１４０にインストールされて駆動するコンピュータプログラムとしてのアプリケーションにより、該当のアプリケーションが目的とするサービス（一例として、ＶｏＩＰサービスなど）を第１サービスとして複数の電子機器１１０、１２０、１３０、１４０に提供してよい。他の例として、サーバ１６０は、上述したアプリケーションのインストールおよび駆動のためのファイルを複数の電子機器１１０、１２０、１３０、１４０に配布するサービスを第２サービスとして提供してもよい。
【００２７】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、電子機器に対する例として電子機器１（１１０）の内部構成を説明し、サーバに対する例としてサーバ１５０の内部構成を説明する。また、他の電子機器１２０、１３０、１４０やサーバ１６０も、上述した電子機器１（１１０）またはサーバ１５０と同一または類似の内部構成を有してよい。
【００２８】
電子機器１（１１０）とサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでよい。メモリ２１１、２２１は、非一時的なコンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ディスクドライブ、ＳＳＤ（ｓｏｉｌｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。ここで、ＲＯＭ、ＳＳＤ、フラッシュメモリ、ディスクドライブなどのような永久大容量記憶装置は、メモリ２１１、２２１とは区分される別の永久格納装置として電子機器１（１１０）やサーバ１５０に含まれてもよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電気機器１（１１０）にインストールされ駆動するブラウザや特定のサービスを提供するために電子機器１（１１０）にインストールされたアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、メモリ２１１、２２１とは別のコンピュータで読み取り可能な記録媒体からロードされてよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール２１３、２２３を通じてメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてよい。
【００２９】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【００３０】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、電子機器１（１１０）および／またはサーバ１５０が他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に格納されたプログラムコードにしたがって生成した要求が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてもよい。例えば、通信モジュール２１３を通じて受信したサーバ１５０の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ２１２やメモリ２１１に伝達されてよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体（上述した永久格納装置）に格納されてよい。
【００３１】
入力／出力インタフェース２１４は、入力／出力装置２１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を含んでよく、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイス（ｈａｐｔｉｃ  ｆｅｅｄｂａｃｋ  ｄｅｖｉｃｅ）などのような装置を含んでよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。入力／出力装置２１５は、電子機器１（１１０）と１つの装置で構成されてもよい。また、サーバ１５０の入力／出力インタフェース２２４は、サーバ１５０と連結するかサーバ１５０が含むことのできる入力または出力のための装置（図示せず）とのインタフェースのための手段であってよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが、入力／出力インタフェース２１４を経てディスプレイに表示されてよい。
【００３２】
また、他の実施形態において、電子機器１（１１０）およびサーバ１５０は、図２の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力／出力ポート、振動のための振動器などのような多様な構成要素が電子機器１（１１０）にさらに含まれるように実現されてよい。
【００３３】
以下では、ＶｏＩＰにおいてメディア送信のための最適ネットワーク経路を選択する方法およびシステムの具体的な実施形態について説明する。
【００３４】
ユーザ間のメディア送信のための最適メディアチャネルを探索する問題を解決するには、サービスのクオリティが改善されなければならない上に、メディアチャネルのクオリティを評価したり比較したりするためのオーバーヘッドが少なくなければならず、現在送信中のメディアに対する影響も低くなければならない。さらに、メディアチャネルを選択する動作によって通話連結時のメディアチャネル生成に遅延が生じてはならず、アクセス網の一時的な品質低下によってチャネルの変更に誤りが生じてもいけない。
【００３５】
図３は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図４は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【００３６】
本実施形態に係るサーバ１５０は、クライアント（ｃｌｉｅｎｔ）である複数の電子機器１１０、１２０、１３０、１４０を対象にグローバルＶｏＩＰサービスを提供するプラットフォームの役割を担うものである。サーバ１５０は、電子機器１１０、１２０、１３０、１４０上にインストールされたアプリケーションと連動してＶｏＩＰサービスを提供し、ＶｏＩＰサービスにおいて最適なメディアチャネルを探索し、ユーザ間でメディアパケットを送信できるようにする。
【００３７】
サーバ１５０が、図４に係るネットワーク経路選択方法を実行するために、サーバ１５０のプロセッサ２２２は、構成要素として、図３に示すように、選択部３１０および評価部３２０を備えてよい。実施形態によっては、プロセッサ２２２の構成要素は、選択的にプロセッサ２２２に含まれても、除外されてもよい。また、実施形態によっては、プロセッサ２２２の構成要素は、プロセッサ２２２の機能の表現のために分離されても、併合されてもよい。
【００３８】
このようなプロセッサ２２２およびプロセッサ２２２の構成要素は、図４のネットワーク経路選択方法が含む段階４１０〜４４０を実行するようにサーバ１５０を制御してよい。例えば、プロセッサ２２２およびプロセッサ２２２の構成要素は、メモリ２２１が含むオペレーティングシステムのコードと少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。
【００３９】
ここで、プロセッサ２２２の構成要素は、サーバ１５０に格納されたプログラムコードが提供する命令にしたがってプロセッサ２２２によって実行される、プロセッサ２２２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）の表現であってよい。例えば、サーバ１５０がメディア送信のための最適メディアチャネルを選択するように、上述した命令にしたがってサーバ１５０を制御するプロセッサ２２２の機能的表現として選択部３１０が利用されてよい。
【００４０】
段階４１０で、プロセッサ２２２は、サーバ１５０の制御と関連する命令がロードされたメモリ２２１から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、以下で説明される段階４２０〜４４０をプロセッサ２２２が実行するように制御するための命令を含んでよい。
【００４１】
段階４２０で、選択部３１０は、グローバルネットワーク上のメディアリレーサーバから受信されたメディアアドレスリストを利用してメディアチャネル候補を生成してよい。メディアリレーサーバは、ユーザ間のメディアパケット送信のためのものであって、電子機器と通信セッションを連結させてメディアストリーム（ＲＴＰ／ＲＴＣＰ）を処理するネットワークエレメントを意味するものである。言い換えれば、選択部３１０は、メディアアドレスリストを組み合わせてメディアチャネル候補を生成してよい。
【００４２】
段階４３０で、評価部３２０は、メディアチャネル候補を順に現在メディアチャネルと比較し、メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネルとして設定してネットワーク性能を評価してよい。多数のメディア経路クライアントを同時にリアルタイムで比較する方式ではなく、現在メディアチャネルと臨時メディアチャネルの２つの経路だけを比較および評価する方式を適用することにより、クライアントのネットワークオーバーヘッドを減少させることができる。このとき、リレーとＰ２Ｐ（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）ネットワークを同一線上で利用して候補生成および評価を実行してよい。評価部３２０は、一定時間に渡ってプローブパケット（ｐｒｏｂｅ  ｐａｃｋｅｔ）を送信し、ネットワークメトリック（すなわち、ファクタ）、一例として、ＲＴＴ（ｒｏｕｎｄ  ｔｒｉｐ  ｔｉｍｅ）、ディレイ変化量（Ｊｉｔｔｅｒ  ｖａｒｉａｎｃｅ）、パケットロス（ｌｏｓｓ）、帯域幅（ｂａｎｄｗｉｄｔｈ）などを算出してよく、このようなメトリックを利用してＶｏＩＰクオリティを予測してよい。各メトリックには加重値が付与されてよく、ＶｏＩＰクオリティを予測するのに利用されるメトリックと加重値は、メディアストリームまたはネットワーク環境などに応じて異なるように設定されてよい。例えば、ＨＤビデオ通信では、他のメトリックに比べて帯域幅を重要な測定基準として使用してよい。評価部３２０は、このような過程を繰り返しながら順に次の臨時メディアチャネルを選択することにより、現在メディア経路と臨時メディア経路の各ペアを評価してよい。したがって、評価部３２０は、メディアチャネル候補として１つのメディアチャネルだけを順に生成し、現在メディアチャネルと同時に評価を実行することができる。リアルタイムで複数の代案メディア経路を評価することは、オーバーヘッドの問題により適さないため、一度に１つの臨時メディア経路だけを生成し、この経路品質を測定する。
【００４３】
段階４４０で、選択部３１０は、ネットワーク性能の評価結果にしたがって、ＶｏＩＰクオリティが改善されると予想される臨時メディアチャネルを現在メディアチャネルに切り換えてよい。したがって、選択部３１０は、現在メディアチャネルよりもネットワーク性能が優れた代案メディア経路が探索されれば、このメディア経路に変更することにより、ＶｏＩＰクオリティを向上させることができる。
【００４４】
図５は、本発明の一実施形態における、メディア送信のための最適なネットワーク経路を探索する手順を示した図である。
【００４５】
図５を参照すると、プロセッサ２２２は、ユーザ間の迅速な通話連結のためにデフォルト設定されている基本メディアチャネル（ｐｒｉｍａｒｙ  ｓｅｓｓｉｏｎ）から使用し（Ｓ５０１）、最適メディアチャネル選択過程（Ｓ５０２）は以後に実行する。基本メディアチャネルではない他のメディアチャネルを使用したとしても、基本メディアチャネルは維持する。最適メディアチャネル選択過程（Ｓ５０２）において、プロセッサ２２２は、メディアリレーサーバからメディアアドレスリストなどを受信した後、メディアアドレスリストを組み合わせてメディアチャネル候補を生成する。この後、プロセッサ２２２は、メディアチャネル候補のうちの１つのメディアチャネルを臨時メディアチャネル（ｔｅｍｐｏｒａｒｙ  ｓｅｓｓｉｏｎ）として設定し、このメディアチャネルのネットワーク性能を評価し、現在メディアチャネルよりも性能が優れている場合、このメディアチャネルへの切り換えを決定する。このような過程を順に繰り返して実行するようになるが、このとき、時間によるクライアントのネットワーク変化の影響を最小限に抑えるために、同時間のアクセス網の影響（ネットワークメトリック）を相対比較しながら最適なメディアチャネルを選択する。言い換えれば、プロセッサ２２２は、臨時メディア経路と現在メディア経路だけを対象にネットワークメトリックを測定して比較する。
【００４６】
メディアチャネル候補が極めて多い場合、最適なメディアチャネルを選択するのにかかる時間が長くなる場合があるが、これを改善するために、プロセッサ２２２は、メディアチャネル候補に対する測定順を統計的または地域的に調整することで時間を短縮することができる。一例として、プロセッサ２２２は、同じ相手に対して以前に選択された最適メディアチャネルをローカルキャッシュ（ｌｏｃａｌ  ｃａｃｈｅ）に格納しておくことで、以後からは該当となるメディアチャネルの評価を最優先に調整してよく、最適メディアチャネル選択過程の初期にネットワーク性能が極めて良くなければ、テストを短縮することも可能である。
【００４７】
最適メディアチャネル選択過程中に、ネットワークハンドオーバ（ｈａｎｄｏｖｅｒ）などによってメディア送信環境が変われば、プロセッサ２２２は、デフォルト設定された基本メディアチャネル（ｐｒｉｍａｒｙ  ｍｅｄｉａ  ｃｈａｎｎｅｌ）に切り換えてよい。
【００４８】
図６は、本発明の一実施形態における最適メディアチャネルの探索順を示した図である。
【００４９】
図６を参照すると、プロセッサ２２２は、初期に通信を要請した電子機器、すなわち要請者ＵＥ（ｉｎｉｔｉａｔｏｒ）６０１と、要請者ＵＥ（６０１）の通信要請に応答した電子機器、すなわち応答者ＵＥ（ｒｅｓｐｏｎｄｅｒ）６０２との間の通話連結時に、優先的にデフォルト設定されたメディアリレーサーバ６０５と設定された基本メディアチャネル（ｐｒｉｍａｒｙ  ｓｅｓｓｉｏｎ）６１を使用し、以後に最適メディアチャネル選択過程６０を実行する。最適メディアチャネル選択過程６０において、メディアチャネル候補のうちの１つである他のメディアリレーサーバ６０６と設定された臨時メディアチャネル（ｔｅｍｐｏｒａｒｙ  ｓｅｓｓｉｏｎ）６２のネットワーク性能（ＶｏＩＰクオリティ）が基本メディアチャネル６１よりも高く評価されれば、要請者ＵＥ（６０１）と応答者ＵＥ（６０２）間の通信連結セッションは、ネットワーク性能の高いメディアチャネル６２に切り換える。このとき、要請者ＵＥ（６０１）と応答者ＵＥ（６０２）間の通信連結中に、基本メディアチャネル６１ではない他のメディアチャネル６２が使用されたとしても、基本メディアチャネル６１は維持し、以後にネットワークハンドオーバなどによって通信環境が変われば、再び基本メディアチャネル６１に切り換えてよい。
【００５０】
プロセッサ２２２は、上述した最適メディアチャネル選択のために、選択部３１０と評価部３２０を備える。評価部３２０は、ネットワーク性能を測定して比較する核心モジュールであって、能動的評価子の役割（ａｃｔｉｖｅ  ｒｏｌｅ  ｅｓｔｉｍａｔｏｒ）と受動的評価子の役割（ｐａｓｓｉｖｅ  ｒｏｌｅ  ｅｓｔｉｍａｔｏｒ）とに区分される。能動的評価子はネットワーク性能メトリックを算出する反面、受動的評価子は能動的評価子のプローブ命令だけに応答する。能動的評価子は、ネットワーク性能を評価するためにプローブ命令を使用し、プローブ命令に対する受動的評価子の応答を利用してネットワーク性能テストを実行してよい。
【００５１】
図７〜図９は、本発明の一実施形態における、ネットワークメトリックを算出する過程の例を示した図である。
【００５２】
能動的評価子は、シーケンス番号を使用してパケットロスメトリックを計算してよい。このとき、プローブデータ構造のタイムスタンプフィールドは、ＲＴＴ、ディレイのような測定値が使用される。ｓｅｑ、ｐａｉｒ、ｄｕｍｍｙ＿ｂｙｔｅｓ、ｒｅｍ＿ｒｅｃｖ＿ｔｓの組み合わせは、パケットペア帯域幅推定に使用される。
【００５３】
図７に示すように、受動的評価子は、能動的評価子からプローブ命令が受信されると、ｄｕｍｍｙ＿ｂｙｔｅｓを除いて応答（ｃｍｍｄ＿ｒｅｓ）してよく、これにより、能動的評価子は、受動的評価子の応答（ｃｍｍｄ＿ｒｅｓ）を利用してネットワーク性能メトリックを算出することができる。
【００５４】
他の例として、図８に示すように、受動的評価子は、能動的評価子のプローブ命令に対してｄｕｍｍｙ＿ｂｙｔｅｓを含んだ応答（ｃｍｍｄ＿ｒｅｓ＿ｗｉｔｈ＿ｄｕｍｍｙ）を伝達してよく、これにより、能動的評価子は、受動的評価子の応答（ｃｍｍｄ＿ｒｅｓ＿ｗｉｔｈ＿ｄｕｍｍｙ）を利用してネットワーク性能メトリックを算出することができる。
【００５５】
また他の例として、図９に示すように、能動的評価子のプローブ命令を受けた受動的評価子は、２つのパケットに順に応答する。１番目のパケットは同じｒｅｓ＿ｗｉｔｈ＿ｄｕｍｍｙであり、１番目パケットを送信した直後にもう一度パケットを送信する。連続する２つのパケットにおいて、送信ノード（能動的評価子）から送信されるときの時間間隔と受信ノード（受動的評価子）に到着するときの時間間隔の差を確認してよい。このようなメカニズムは、ネットワーク性能メトリックとしてパケットペア帯域幅を推定するためのものである。
【００５６】
選択部３１０は、評価部３２０と共に最適メディアチャネル選択過程を実行するモジュールであり、これも同じように、能動的選択肢の役割（ａｃｔｉｖｅ  ｒｏｌｅ  ｓｅｌｅｃｔｏｒ）と受動的選択肢の役割（ｐａｓｓｉｖｅ  ｒｏｌｅ  ｓｅｌｅｃｔｏｒ）とに区分される。受動的選択肢は能動的選択肢のメディアチャネル検索を支援し、能動的選択肢は、メディアチャネル候補を生成し、評価部３２０のネットワーク性能の評価に応じてより優れたメディアチャネルへの切り換えを決定する。
【００５７】
要請者ＵＥ（６０１）と応答者ＵＥ（６０２）のうちの１つに能動的選択肢の役割を割り当て、他の１つに受動的選択肢の役割を割り当てる。一例として、要請者ＵＥ（６０１）には受動的選択肢のインスタンスがあり、応答者ＵＥ（６０２）には能動的選択肢のインスタンスがある。応答者ＵＥ（６０２）は、能動的選択肢のインスタンスにしたがってメディアリレーサーバからメディアアドレスリストをロードしてメディアチャネル候補を生成してよい。
【００５８】
能動的選択肢は、メディアチャネル候補を生成するようになるが、このとき、メディアリレーサーバのアドレスリストを含み、このとき、Ｐ２Ｐメディア経路を含ませてよい。言い換えれば、能動的選択肢は、リレーとＰ２Ｐネットワークを含んだ候補アドレスの組み合わせによってメディアチャネル候補を生成することができる。
【００５９】
能動的選択肢は、メディアチャネル候補に対する優先順位を指定してよく、一例として、要請者ＵＥ（６０１）と応答者ＵＥ（６０２）の位置情報や要請者ＵＥ（６０１）と応答者ＵＥ（６０２）との間で以前に選択された最適メディアチャネルの履歴情報、メディアストリーム、またはネットワーク環境などを考慮した加重値に応じて優先順位を決定してよい。メディアチャネル候補を構成するためのリレーポリシーには、他のメディアリレーサーバと結合可能な結合性（ｃｏｍｂｉｎａｂｌｅ）と、他のメディアリレーサーバを経てリレーすることのできない独立性（ｓｔａｎｄａｌｏｎｅ）が含まれる。チャネルの切り換えを決定するために加重値が利用されてよく、このとき、ネットワーク性能を評価するのに利用されてよい。
【００６０】
例えば、図１０に示すように、能動的選択肢は、先ず、要請者ＵＥ（６０１）と応答者ＵＥ（６０２）との間のメディア送信のために利用可能なメディアリレーサーバのアドレスリスト１０１０をロードし、アドレスリスト１０１０を利用して２つのメディアリレーサーバで構成されたアドレス住所結合１０２０を生成する。アドレスリスト１０１０には、メディア送信のために利用可能なすべてのメディアが含まれ、Ｐ２Ｐはもちろん、メディアリレーサーバを利用するサードパーティクラウド（３ｒｄ  ｐａｒｔｙ  ｃｌｏｕｄ）などが含まれてよい。このとき、アドレス住所結合１０２０は、結合性ポリシーと独立性ポリシーに基づいて構成され、独立性ポリシーに含まれた他のアドレスの組み合わせは除去される。
【００６１】
評価部３２０は、選択部３１０で生成されたアドレス住所結合１０２０に基づいて順に２つの経路ずつネットワーク性能メトリックを相対比較することにより、クライアントのネットワークオーバーヘッドを最小化し、時間によるクライアントのネットワーク変化の影響を最小化した環境において最適なメディアチャネルを選択することができる。
【００６２】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００６３】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ格納媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてよい。
【００６４】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。このとき、媒体は、コンピュータによって実行可能なプログラムを継続して格納するものであっても、実行またはダウンロードのために臨時格納するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよいが、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令語が格納されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを流通するアプリストアやその他の多様なソフトウェアを供給あるいは流通するサイト、サーバなどで管理する記録媒体あるいは格納媒体が挙げられてもよい。
【００６５】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００６６】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００６７】
２２２：プロセッサ
３１０：選択部
３２０：評価部
【図１】
2019087999.tif 000003
【図２】
2019087999.tif 000004
【図３】
2019087999.tif 000005
【図４】
2019087999.tif 000006
【図５】
2019087999.tif 000007
【図６】
2019087999.tif 000008
【図７】
2019087999.tif 000009
【図８】
2019087999.tif 000010
【図９】
2019087999.tif 000011
【図１０】
2019087999.tif 000012