(57)【要約】【課題】異なるプロトコルをサポートする複数の通信エンドポイントを通信可能にする。【解決手段】プロトコル固有メッセージ（例：ＳＩＰ  ＩＮＶＩＴＥメッセージ）をプロトコル中立メッセージに変換し、プロトコル中立バスに送信する。該バスは該メッセージをセッション処理エンジンに送達し、該エンジンはルールを通信セッションのプロトコル中立要求メッセージに適用する。該ルールは通信アプリケーションロジックを通信セッションメッセージに適用するのに用いられ、通信セッションオファーメッセージを生成する。このメッセージはプロトコル中立バスに発行される。プロトコルをサポートするエッジサーバーがそのオファーメッセージを受信することができる。プロトコル中立メッセージはそのメッセージの受信者である各エッジサーバーによってプロトコル固有メッセージ（例えば、異なるプロトコルによるもの）に変換され、通信エンドポイントに送信される。【選択図】図１
2020087472.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと、
前記マイクロプロセッサと結合されたコンピューター可読媒体であって、前記マイクロプロセッサによって実行されると、
プロトコル中立であるとともに第１のプロトコル固有メッセージから変換されたものである第１の通信セッションの第１の要求メッセージを受信することと、
前記第１の通信セッションの前記第１の要求メッセージにプロトコル中立ルールを適用することと、
プロトコル中立であるとともに第２のプロトコル固有メッセージに変換される前記第１の通信セッションの第１のオファーメッセージを、
第１のエッジサーバーからの第１のサブスクリプションメッセージに基づいて、又は
前記第１の通信セッションの前記第１のオファーメッセージ内の識別子に基づいて、
プロトコル中立バスを介して前記第１のエッジサーバーに送信することと、
を前記マイクロプロセッサに行わせるマイクロプロセッサ可読実行可能命令を含む、コンピューター可読媒体と、
を備える、システム。
【請求項２】
前記マイクロプロセッサ可読実行可能命令は、
プロトコル中立である前記第１の通信セッションの第１の通信セッション受理メッセージを受信することと、
前記第１の通信セッションの前記第１の通信セッション受理メッセージを前記第１のエッジサーバーに送信することと、
を前記マイクロプロセッサに更に行わせる、請求項１に記載のシステム。
【請求項３】
受信された前記第１の通信セッションの前記第１の通信セッション受理メッセージは、第３のプロトコル固有メッセージから変換されたものであり、
送信された前記第１の通信セッションの前記第１の通信セッション受理メッセージは、前記第１のエッジサーバーによって第４のプロトコル固有メッセージに変換される、
請求項２に記載のシステム。
【請求項４】
前記第１のプロトコル固有メッセージ及び前記第２のプロトコル固有メッセージは、同じプロトコルを用いる、請求項３に記載のシステム。
【請求項５】
前記第１のプロトコル固有メッセージ及び前記第２のプロトコル固有メッセージは、異なるプロトコルを用いる、請求項３に記載のシステム。
【請求項６】
前記識別子は、ユーザーの識別子であり、
前記マイクロプロセッサ可読実行可能命令は、
前記第１の通信セッションの前記第１のオファーメッセージを、第２のサブスクリプションメッセージに基づいて第２のエッジサーバーに送信すること、
を前記マイクロプロセッサに更に行わせる、請求項１に記載のシステム。
【請求項７】
前記第１の通信セッションの前記第１のオファーメッセージは、前記識別子に基づいて前記第１のエッジサーバーに送信される、請求項１に記載のシステム。
【請求項８】
前記適用されるプロトコル中立ルールは、複数のユーザー通信エンドポイント及び複数のユーザーのうちの少なくとも一方に関連付けられた１つ以上の識別子を用い、
前記第１の通信セッションの前記第１のオファーメッセージは、前記１つ以上の識別子を含む、
請求項１に記載のシステム。
【請求項９】
プロトコル中立であるとともに第１のプロトコル固有メッセージから変換されたものである第１の通信セッションの第１の要求メッセージを、マイクロプロセッサによって受信することと、
前記第１の通信セッションの前記第１の要求メッセージにプロトコル中立ルールを前記マイクロプロセッサによって適用することと、
プロトコル中立であるとともに第２のプロトコル固有メッセージに変換される前記第１の通信セッションの第１のオファーメッセージを、第１のエッジサーバーからの第１のサブスクリプションメッセージに基づいて又は前記第１の通信セッションの前記第１のオファーメッセージ内の識別子に基づいて、前記マイクロプロセッサによって前記第１のエッジサーバーに送信することと、
を含む、方法。
【請求項１０】
プロセッサに方法を実行させる命令が記憶された非一時的コンピューター可読媒体であって、前記方法は、
プロトコル中立であるとともに第１のプロトコル固有メッセージから変換されたものである第１の通信セッションの第１の要求メッセージを受信することと、
前記第１の通信セッションの前記第１の要求メッセージにプロトコル中立ルールを適用することと、
プロトコル中立であるとともに第２のプロトコル固有メッセージに変換される前記第１の通信セッションの第１のオファーメッセージを、第１のエッジサーバーからのサブスクリプションメッセージに基づいて又は前記第１の通信セッションの前記第１のオファーメッセージ内の識別子に基づいて、プロトコル中立バスを介して前記第１のエッジサーバーに送信することと、
を含む、非一時的コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１８年１１月２９日に出願された、「EVENT-BASED MULTIPROTOCOL CALL DISTRIBUTION」と題する米国仮特許出願第６２/７７３，１０７号の利益を主張する。この米国仮特許出願の内容は、引用することによりその全体が本明細書の一部をなす。
【０００２】
本開示は、包括的には、通信システムに関し、特に、マルチプロトコル環境における通信システムの配信(distribution)に関する。
【背景技術】
【０００３】
大規模なクラウドベースのサービス型ソフトウェア（ＳａａＳ：Software as a Service）通信ソリューションでは、所与の個人について複数の登録されたエンドポイントをサポートすることができることが望ましい。加えて、多数の個人について異なるプロトコルを用いて互いに通信するエンドポイントをサポートすることができることも望ましい。通信エンドポイント及びプロトコルが多数あることから現在生じている問題の１つは、ＳａａＳサービスを効果的にスケーリングすることが困難になるということである。
【発明の概要】
【０００４】
これらのニーズ及び他のニーズは、本開示の種々の実施形態及び構成によって対処される。異なるプロトコルをサポートする複数の通信エンドポイントが通信することを可能にするために、プロトコル固有メッセージ（例えば、ＳＩＰ  ＩＮＶＩＴＥメッセージ）が、プロトコル中立メッセージに変換される。例えば、ＳＩＰ  ＩＮＶＩＴＥメッセージは、プロトコル中立通信セッション要求メッセージに変換され、プロトコル中立バスに送信される。このバスは、このメッセージをセッション処理エンジンに送達し、セッション処理エンジンは、次に、１つ以上のルールを第１の通信セッションのプロトコル中立要求メッセージに適用する。これらのルールは、通信アプリケーションロジックを第１の通信セッションメッセージに適用するのに用いられ、次いで、第１の通信セッションオファーメッセージを生成する。このメッセージはプロトコル中立バスに発行される。１つ以上のプロトコルをサポートする１つ以上のエッジサーバーが、その第１のオファーメッセージを受信することができる。プロトコル中立メッセージは、そのメッセージの受信者である各エッジサーバーによってプロトコル固有メッセージ（例えば、異なるプロトコルによるもの）に変換され、その後、１つ以上の通信エンドポイントに送信される。これによって、複数のプロトコルを用いる複数の通信エンドポイントのサポートの解決が可能になる。
【０００５】
「少なくとも１つ」、「１つ以上」、「又は」、及び「及び／又は」という語句は、有効時に（in operation）連言的及び選言的の双方であるオープンエンドの表現（open-ended expressions）である。例えば、「Ａ、Ｂ及びＣのうちの少なくとも１つ」、「Ａ、Ｂ、又はＣのうちの少なくとも１つ」、「Ａ、Ｂ、及びＣのうちの１つ以上」、「Ａ、Ｂ、又はＣのうちの１つ以上」、「Ａ、Ｂ、及び／又はＣ」及び「Ａ、Ｂ、又はＣ」という表現の各々は、Ａ単独、Ｂ単独、Ｃ単独、Ａ及びＢの集合、Ａ及びＣの集合、Ｂ及びＣの集合、又は、Ａ、Ｂ及びＣの集合を意味する。
【０００６】
数量が指定されないエンティティは、そのエンティティのうちの１つ以上を指す。したがって、数量が指定されない用語、「１つ以上」及び「少なくとも１つ」という用語は、本明細書において互換的に用いることができる。「備える」、「含む」、及び「有する」という用語も、互換的に用いることができることに留意されたい。
【０００７】
「自動」という用語及びその派生形は、本明細書において用いられる場合、プロセス又は動作が実行されるときに実体的な（material）人間の入力を伴わずに行われる、通例連続又は半連続の任意の当該プロセス又は動作を指す。しかしながら、プロセス又は動作の実行が実体的な又は非実体的な人間の入力を用いる場合であっても、その入力がプロセス又は動作の実行前に受信されるときには、そのプロセス又は動作は自動とすることができる。人間の入力は、プロセス又は動作が実行される方法に影響を与える場合、実体的であるとみなされる。プロセス又は動作の実行に同意する（consents）人間の入力は、「実体的」であるとみなされない。
【０００８】
本開示の態様は、本明細書において、「回路」、「モジュール」又は「システム」と総称される場合がある、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又は、ソフトウェア態様及びハードウェア態様を組み合わせる実施形態の形態を取ることができる。１つ以上のコンピューター可読媒体の任意の組み合わせを利用することができる。コンピューター可読媒体は、コンピューター可読信号媒体、又は、コンピューター可読記憶媒体とすることができる。
【０００９】
コンピューター可読記憶媒体は、例えば、電子、磁気、光学、電磁、赤外線、若しくは半導体のシステム、装置、若しくはデバイス、又は前述のものの任意の適した組み合わせとすることができるが、これらに限定されるものではない。コンピューター可読記憶媒体のより具体的な例（非網羅的なリスト）は、以下のもの、すなわち、１つ以上のワイヤを有する電気接続、ポータブルコンピューターディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバー、ポータブルコンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、光学記憶デバイス、磁気記憶デバイス、又は前述のものの任意の適した組み合わせを含む。本文書の文脈において、コンピューター可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、又はこれらに関連して用いるためのプログラムを格納又は記憶することができる任意の有形媒体とすることができる。
【００１０】
コンピューター可読信号媒体は、例えば、ベースバンドにおいて又は搬送波の一部として、コンピューター可読プログラムコードが具現化された伝播データ信号を含むことができる。そのような伝播信号は、電磁、光学、又はこれらの任意の適した組み合わせを含むがこれらに限定されない、多様な形態のうちの任意のものを取ることができる。コンピューター可読信号媒体は、コンピューター可読記憶媒体ではない任意のコンピューター可読媒体、及び、命令実行システム、装置、若しくはデバイスによって、又は、これらに関連して用いるためのプログラムを通信、伝播、又は伝送することができる任意のコンピューター可読媒体とすることができる。コンピューター可読媒体に具現化されるプログラムコードは、ワイヤレス、ワイヤライン、光ファイバーケーブル、ＲＦ等、又は前述のものの任意の適した組み合わせを含むが、これらに限定されない、任意の適した媒体を用いて送信することができる。
【００１１】
「求める」、「算出する」及び「計算する」という用語並びにこれらの派生形は、本明細書において用いられる場合、互換的に用いられ、任意のタイプの方法論、プロセス、数学的演算又は技法を含む。
【００１２】
本明細書において用いられているような用語「セッション開始プロトコル」（ＳＩＰ）は、インターネットプロトコル（ＩＰ）上の音声呼及びビデオ呼等のマルチメディア通信セッションを制御するのに広く用いられる、ＩＥＴＦが定義したシグナリングプロトコルを指す。このプロトコルは、１つ又はいくつかのメディアストリームからなる２パーティセッション（ユニキャスト）又はマルチパーティセッション（マルチキャスト）を作成、変更及び終端するのに用いることができる。この変更は、アドレス又はポートの変更、より多くの参加者の招待、及びメディアストリームの追加又は削除を伴うことができる。他の実現可能なアプリケーション例として、ビデオ会議、ストリーミングマルチメディア配信、インスタントメッセージング、プレゼンス情報、ファイル転送及びオンラインゲームがある。ＳＩＰは、２０００年１１月のインターネットエンジニアリングタスクフォース（ＩＥＴＦ）ネットワークワーキンググループから入手可能なＲＦＣ３２６１に記載されているとおりである。この文書及びＳＩＰを記載している他の全てのＳＩＰ  ＲＦＣは、それらが教示している全てについて、それらの全体が引用することによって本明細書の一部をなす。
【００１３】
この文書では、定義されたＳＩＰメッセージ（例えば、ＳＩＰ  ＩＮＶＩＴＥ、ｒｅｐｌａｃｅｓヘッダーを有するＳＩＰ  ＩＮＶＩＴＥ、ＳＩＰ  ＪＯＩＮ、ＳＩＰ  ＲＥＧＩＳＴＥＲ、ＳＩＰ２００  ＯＫ、ＳＩＰ  ＳＵＢＳＣＲＩＢＥ、ＳＩＰ  ＮＯＴＩＦＹ等）が、現在のＳＩＰ規格に従って用いられている。したがって、ＳＩＰの当業者であれば、定義された異なるＳＩＰメッセージを互いに自由に交換することができないことを明確に理解しているであろう。なぜならば、これは、現在のＳＩＰ規格に違反するからである。例えば、ＳＩＰ  ＩＮＶＩＴＥ（通信セッションを確立するのに用いられる）は、ｒｅｐｌａｃｅｓヘッダーを有するＳＩＰ  ＩＮＶＩＴＥメッセージ（ＳＩＰ通信セッションにおいてダイアログ（すなわち、コールレッグ）を交換するのに用いられる）の代わりに用いることができない。なぜならば、これらのメッセージは、ＳＩＰ規格によれば、異なる目的に設計されているからである。
【００１４】
本明細書及び特許請求の範囲に記載されているような「プロトコル固有」は、プロトコルが、通常は少なくとも１つのユーザー通信エンドポイントが関与する通信セッション／メディアチャネルを確立するのに用いられることを指す。例えば、ユーザー通信セッションは、音声通信セッション（すなわち、音声呼）、ビデオ通信セッション、マルチメディア通信セッション、仮想現実通信セッション、インスタントメッセージング（ＩＭ）通信セッション、電子メール通信セッション、テキストメッセージング通信セッション、ファイル転送等とすることができる。「プロトコル固有メッセージ」は、ＳＩＰ、ＷｅｂＲＴＣ、ハイパーテキストトランスポート（ＨＴＴＰ）、Ｈ．３２３、ビデオ通信プロトコル、ＩＭ通信プロトコル、ファイル転送プロトコル（ＦＴＰ）、シンプルメール転送プロトコル（ＳＭＴＰ）、ショートメッセージサービス（ＳＭＰ）等のプロトコルを用いることができる。例えば、プロトコル固有メッセージは、ＳＩＰ  ＩＮＶＩＴＥメッセージ、ＦＴＰメッセージ、Ｈ．３２３オープン論理チャネル（ＯＬＣ）メッセージ、Ｈ．２６４メッセージ、セッション記述プロトコル（ＳＤＰ）メッセージ等とすることができる。
【００１５】
本明細書または特許請求の範囲に記載されているような「プロトコル」は、物理レイヤプロトコル（例えば、Ｂｌｕｅｔｏｏｔｈ、イーサネット等）、データリンクレイヤプロトコル（例えば、８０２．３、８０２．１１等）、ネットワークレイヤプロトコル（例えば、インターネットプロトコル（ＩＰ）等）、トランスポートレイヤプロトコル（例えば、ユーザーデータグラムプロトコル、伝送制御プロトコル（ＴＣＰ）、暗号化プロトコル、圧縮プロトコル等）等の下位レイヤプロトコルを指さない。
【００１６】
本明細書に記載されているような「プロトコル中立」は、メッセージが「プロトコル固有」メッセージを識別しない（すなわち、プロトコル独立である）が、代わりに、通信セッション確立の要求等の特定の機能を一般的に識別することを指す。したがって、「プロトコル中立」メッセージは、異なるプロトコルにおける複数のメッセージを表すのに用いることができる。例えば、ＳＩＰ  ＩＮＶＩＴＥメッセージ、Ｈ．３２３オープン論理チャネル（ＯＬＣ）メッセージ等の代わりに通信要求メッセージを送信することができる。
【００１７】
本明細書において用いられるような用語「手段」には、その可能な限り最も広い解釈が与えられるものとする。したがって、用語「手段」を含む請求項は、本出願において述べられた全ての構造体、材料、又は動作、及びそれらの均等物の全てを包含するものとする。さらに、これらの構造体、材料、又は動作、及びそれらの均等物は、発明の概要、図面の簡単な説明、詳細な説明、要約書、及び特許請求の範囲自体に記載されたそれらの全てを含むものとする。
【００１８】
先行する記載は、本開示のいくつかの態様への理解を提供するための簡略化された概要である。この概要は、本開示及びその種々の実施形態の包括的な概説でもなければ、網羅的な概説でもない。本開示の重要な要素又は必須の要素を識別するのでも、本開示の範囲を画定するのでもなく、以下に提示されるより詳細な説明への導入として、簡略化された形式において、本開示の選択された概念を提示することが意図される。理解されるように、本開示の他の実施形態は、上記で言及された又は以下で詳細に記載される特徴のうちの１つ以上を、単独又は組み合わせで利用することが可能である。また、本開示は、例示の実施形態に関して提示される一方で、本開示の個々の態様は別個に特許請求することができることが理解されるべきである。
【図面の簡単な説明】
【００１９】
【図１】イベントベースマルチプロトコル通信セッション配信の第１の例示のシステムのブロック図である。
【図２】エッジサーバーのサブスクリプションプロセスのフロー図である。
【図３】イベントベースマルチプロトコル通信セッション配信のプロセスのフロー図である。
【図４】グループ及び／又はコールフォーキング（call forking）が用いられるイベントベースマルチプロトコル通信セッション配信のプロセスのフロー図である。
【図５】マルチプロトコル通信セッションを配信するルールを適用するプロセスのフロー図である。
【発明を実施するための形態】
【００２０】
図１は、イベントベースマルチプロトコル通信セッション配信の第１の例示のシステム１００のブロック図である。第１の例示のシステム１００は、通信エンドポイント１０１Ａ〜１０１Ｎ、ネットワーク１１０Ａ及び１１０Ｂ、プロトコル中立バス１２０、セッション処理エンジン１２４、並びにエッジサーバー１３０Ａ〜１３０Ｎを備える。
【００２１】
通信エンドポイント１０１Ａ〜１０１Ｎは、パーソナルコンピューター（ＰＣ）、電話機、ビデオシステム、音声会議システム、セルラー電話機、パーソナルデジタルアシスタント（ＰＤＡ）、タブレットデバイス、ノートブックデバイス、ウェブサーバー、メディアサーバー、スマートフォン等のネットワーク１１０上で通信することができる任意の通信エンドポイントデバイスとすることもできるし、そのようなデバイスを備えるものであってもよい。通信エンドポイント１０１Ａ〜１０１Ｎは、通信セッションが終了するデバイスである。通信エンドポイント１０１Ａ〜１０１Ｎは、通信マネージャー又はルーターのような、ネットワークにおいて通信セッションを容易にし、及び／又は中継するネットワーク要素ではない。図１に示すように、任意の数の通信エンドポイント１０１Ａ〜１０１Ｎをネットワーク１１０に接続することができる。
【００２２】
ネットワーク１１０Ａ及び１１０Ｂは、インターネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ボイスオーバーＩＰネットワーク（ＶｏＩＰ）、公衆交換電話ネットワーク（ＰＳＴＮ）、パケット交換ネットワーク、回線交換ネットワーク、セルラーネットワーク、これらの組み合わせ等の電子通信を送受信することができる通信機器の任意の集合体とすることもでき、またはそのような集合体を備えるものであってもよい。ネットワーク１１０Ａ及び１１０Ｂは、イーサネット、インターネットプロトコル（ＩＰ）、セッション開始プロトコル（ＳＩＰ）、サービス統合デジタルネットワーク（ＩＳＤＮ）、Ｈ．３２３、ＷｅｂＲＴＣ、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、ビデオプロトコル、インスタントメッセージング（ＩＭ）プロトコル、電子メールプロトコル、テキストメッセージングプロトコル、ファイル転送プロトコル等の様々な電子プロトコルを用いることができる。したがって、ネットワーク１１０Ａ及び１１０Ｂは、パケット交換通信及び／又は回線交換通信を介してメッセージを搬送するように構成された電子通信ネットワークである。
【００２３】
プロトコル中立バス１２０は、エッジサーバー１３０Ａ〜１３０Ｎの間のイベント／メッセージを仲介することができるファームウェア／ソフトウェアと結合された任意のハードウェアとすることもできるし、そのようなハードウェアを備えるものであってもよい。例えば、プロトコル中立バス１２０は、Ｊａｖａメッセージサービス（ＪＭＳ）、Ａｐａｃｈｅ  Ｋａｆｋａサービス等とすることができる。プロトコル中立バス１２０は、イベント／メッセージの根底にあるプロトコルを知る必要なく、エッジサーバー１３０Ａ〜１３０Ｎの間で異なるイベント／メッセージを渡すことができるイベントサービスである。プロトコル中立バス１２０は、イベントブローカー１２１及びサブスクリプションマネージャー１２３を更に備える。
【００２４】
イベントブローカー１２１は、エッジサーバー１３０Ａ〜１３０Ｎの間のプロトコル中立イベント／メッセージの仲介を管理することができるファームウェア／ソフトウェアと結合された任意のハードウェアとすることもできるし、そのようなハードウェアを備えるものであってもよい。イベントブローカー１２１は、サブスクリプションマネージャー１２３とともに動作して、エッジサーバー１３０Ａ〜１３０Ｎの間のプロトコル中立イベント／メッセージを仲介する。
【００２５】
サブスクリプションマネージャー１２３は、エッジサーバー１３０Ａ〜１３０Ｎがイベントブローカー１２１のイベントにサブスクライブすることを可能にする任意のソフトウェアとすることもできるし、そのようなソフトウェアを備えるものであってもよい。サブスクリプションマネージャー１２３は、エッジサーバー１３０からの特定のイベントの通知を受けるサブスクリプションメッセージを受信することができる。例えば、エッジサーバー１３０Ａは、サブスクリプションマネージャー１２３を用いてサブスクライブし、特定の統一資源識別子（ＵＲＩ）を有する全ての通信セッションの要求を受信することができる。
【００２６】
セッション処理エンジン１２４は、イベントブローカー１２１から受信されるイベントを管理することができるとともに、通信セッションに関連したイベントをどのように管理するのかを判断するためにルール１２２を更に適用することができる任意のソフトウェアとすることもできるし、そのようなソフトウェアを備えるものであってもよい。例えば、セッション処理エンジン１２４は、種々のルール１２２を用いて、特定のエッジサーバー１３０へのイベント／メッセージの送信を行うことができる。セッション処理エンジン１２４は、単一の要素として示されているが、セッション処理エンジン１２４は分散されてもよい。例えば、セッション処理エンジン１２４をネットワーク１１０Ｂ内の種々の要素の間に分散させることができる。
【００２７】
ルール１２２は、通信セッション及び関連情報を管理する任意のルール１２２とすることもできるし、そのようなルールを含むものであってもよい。ルール１２２は、グローバルなルールであってもよい。例えば、ルール１２２は、法人又は企業のルールであってもよい。ルール１２２は、特定のユーザー、特定の通信エンドポイント１０１、特定のグループ（例えば、エンジニアリンググループ）等のルールを含むことができる。１つの実施形態では、ルール１２２を分散させることができる。例えば、法人／企業ルール１２２は、プロトコル中立バス１２０に存在することができ、個人ユーザー／通信エンドポイント１０１のルール１２２は、エッジサーバー１３０のうちの１つ以上に存在することができる。ルール（複数の場合もある）１２２は、プロトコル中立形式で適用することができる。
【００２８】
エッジサーバー１３０Ａ〜１３０Ｎは、プロトコル固有のメッセージを送受信することができるとともに、プロトコル中立バス１２０に対してメッセージをプロトコル中立メッセージとして更に送受信することができるファームウェア／ソフトウェアと結合された任意のハードウェアとすることもできるし、そのようなハードウェアを備えるものであってもよい。図１では、エッジサーバー１３０ＡはプロトコルＡをサポートし、エッジサーバー１３０ＮはプロトコルＮをサポートする。例えば、エッジサーバー１３０Ａは、ＳＩＰをサポートすることができ、エッジサーバー１３０Ｎは、Ｈ．３２３をサポートすることができる。
【００２９】
図１では、エッジサーバー１３０Ａ〜１３０Ｎは、単一のプロトコルのみをサポートするものとして示されている。しかしながら、１つの実施形態では、エッジサーバー１３０Ａ〜１３０Ｎのうちの１つ以上は、複数のプロトコルをサポートすることができる。例えば、エッジサーバー１３０Ａは、ＳＩＰ及びＳＤＰの双方をサポートすることができる。
【００３０】
各エッジサーバー１３０Ａ〜１３０Ｎは、１つ以上の通信エンドポイント１０１をサポートする。通信エンドポイント１０１は、特定のプロトコルに基づいてエッジサーバー１３０に登録することができる。例えば、通信エンドポイント１０１Ａ及び１０１Ｂ（ＳＩＰ通信エンドポイント）は、エッジサーバー１３０Ａ（ＳＩＰエッジサーバー）に登録することができ、通信エンドポイント１０１Ｎ（Ｈ．３２３通信エンドポイント）は、エッジサーバー１３０Ｎ（Ｈ．３２３エッジサーバー）に登録することができる。
【００３１】
図２は、エッジサーバー１３０のサブスクリプションプロセスのフロー図である。例示として、通信エンドポイント１０１Ａ〜１０１Ｎ、プロトコル中立バス１２０、イベントブローカー１２１、サブスクリプションマネージャー１２３、セッション処理エンジン１２４、及びエッジサーバー１３０Ａ〜１３０Ｎは、メモリ（すなわち、コンピューターメモリ、ハードディスク等）のようなコンピューター可読記憶媒体に記憶されたプログラム命令を実行することによって、図２〜図５の方法及び本明細書において説明するプロセスを実行するコンピューター又はマイクロプロセッサ等のストアードプログラム制御型エンティティである。図２〜図５に記載された方法は、特定の順序で示されているが、当業者であれば、図２〜図５におけるステップを異なる順序で実施することができ、及び／又は、マルチスレッド型環境において実施することができることを認識するであろう。その上、実施態様に基づいて様々なステップを省略又は追加することができる。
【００３２】
図２のプロセスは、エッジサーバー１３０が、プロトコル中立バス１２０からプロトコル中立イベント／メッセージを受信するためにサブスクライブすることを可能にする。通信セッションが（例えば、通信エンドポイント１０１ＡがＳＩＰ  ＩＮＶＩＴＥメッセージを送信することによって）開始されると、エッジサーバー１３０Ａ（この例では、ＳＩＰエッジサーバー１３０Ａ）は、ＳＩＰ  ＩＮＶＩＴＥ（プロトコル固有メッセージ）をプロトコル中立メッセージ（通信セッション要求メッセージ）に変換する。このプロトコル中立メッセージは、プロトコル中立バス１２０に送信される。図２に記載されたサブスクリプションプロセスは、イベントブローカー１２１が、イベント／メッセージを受信するためにサブスクライブした適切なエッジサーバー１３０に通信セッションオファーメッセージを送信することができることを可能にする。
【００３３】
プロセスは、通信エンドポイント１０１Ａが、エッジサーバー１３０Ａに登録する登録メッセージ２００を送信すると開始する。例えば、通信エンドポイント１０１Ａは、ＳＩＰ通信エンドポイント１０１Ａに電源が投入されるとエッジサーバー１３０Ａ（ＳＩＰをサポートするサーバー）に登録するＳＩＰ通信エンドポイント１０１Ａとすることができる。ステップ２００の登録メッセージの受信に応答して、エッジサーバー１３０Ａは、ステップ２０２において、サブスクリプションメッセージをプロトコル中立バス１２０（すなわち、サブスクリプションマネージャー１２３）に送信する。ステップ２０２のサブスクリプションメッセージは、この例ではＳＩＰをサポートするエッジサーバー１３０Ａにプロトコル中立バス１２０を介してメッセージ／イベントを送信するためにセッション処理エンジン１２４によって用いられる１つ以上の識別子を有する。これらのイベント／メッセージは、最終的には、プロトコル固有メッセージ（ＳＩＰ）として通信エンドポイント１０１に送信される。サブスクリプションマネージャー１２３は、ステップ２０４において、ステップ２０２のサブスクリプションメッセージに肯定応答する。１つの実施形態では、ステップ２０２のサブスクリプションメッセージは、メッセージキューイングテレメトリトランスポート（ＭＱＴＴ：Message Queuing Telemetry Transport）サブスクライブメッセージとすることができる。
【００３４】
サブスクリプションメッセージ２０２内の識別子は、通信エンドポイント１０１（例えば、電話番号、ＩＰアドレス等）、１つ以上の通信エンドポイント１０１に関連付けられたユーザー（例えば、ＵＲＩ（例えば、ａｌｉｃｅ＠ａｖａｙａ.ｃｏｍ））、１つ以上の通信エンドポイント１０１に関連付けられたグループ（例えば、ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍ）等を識別することができる。１つの実施形態では、識別子は、複数の識別子を含むことができる。例えば、ステップ２０２のサブスクリプションメッセージは、１人以上のユーザーの複数の電話番号、ＵＲＩ、グループ識別子等の場合のイベントについて、サブスクライブするのに用いることができる。例えば、ステップ２０２のサブスクリプションメッセージは、数百のユーザー／通信エンドポイント１０１を登録するためにエッジサーバー１３０Ａによって用いることができる。
【００３５】
例示として、以下の例を考える。ユーザー（Alice（アリス））は、２つのＳＩＰ通信エンドポイント１０１Ａ及び１０１Ｂ（卓上電話機１０１Ａ及びモバイル電話機１０１Ｂ）を有する。ＳＩＰ通信エンドポイント１０１Ａは、１１１−２２２−３３３３の電話番号を有し、ＳＩＰ通信エンドポイント１０１Ｂは、４４４−５５５−６６６６の電話番号を有する。加えて、ユーザーAliceは、ＳＩＰ通信エンドポイント１０１Ａ及び１０１Ｂの双方に関連付けられたＵＲＩ（ａｌｉｃｅ＠ａｖａｙａ.ｃｏｍ）を有する。この例では、ステップ２０２のサブスクリプションメッセージは、３つの識別子１１１−２２２−３３３３、４４４−５５５−６６６６、及びａｌｉｃｅ＠ａｖａｙａ.ｃｏｍの全てを含む。セッション処理エンジン１２４が、これらの識別子のうちのいずれか１つとの通信セッションを確立する要求をプロトコル中立バス１２０から受信すると、セッション処理エンジン１２４は、受信されたサブスクリプションメッセージ２０２に基づいて、プロトコル中立バスを介して、通信セッションオファーメッセージ（複数の場合もある）をエッジサーバー１３０Ａに送信する。例えば、通信セッション要求メッセージが、識別子１１１−２２２−３３３３を有する場合、セッション処理エンジン１２４は、サブスクリプションメッセージ２０２に基づいて、プロトコル中立通信セッションオファーメッセージをエッジサーバー１３０Ａに送信する。
【００３６】
通信エンドポイント１０１Ｎは、ステップ２０６において、登録メッセージ（登録メッセージ２００と同様のもの）をエッジサーバー１３０Ｎに送信する。ステップ２０６の登録メッセージの受信に応答して、エッジサーバー１３０Ｎは、ステップ２０８において、ステップ２０２について上述したのと同様の方法でサブスクリプションメッセージをサブスクリプションマネージャー１２３に送信する。ステップ２０８のサブスクリプションメッセージは、その後、ステップ２１０において、サブスクリプション肯定応答メッセージを用いてサブスクリプションマネージャー１２３によって肯定応答される。
【００３７】
この例では、エッジサーバー１３０Ｎは、異なるプロトコル（例えば、Ｈ．３２３）をサポートする。ステップ２０８のサブスクリプションメッセージも、１つ以上の識別子（例えば、電話番号（複数の場合もある）、ＵＲＩ（複数の場合もある）、グループ（複数の場合もある）等）を含む。ステップ２０８のサブスクリプションメッセージの識別子（複数の場合もある）は、ステップ２０２のサブスクリプションメッセージの識別子（複数の場合もある）と同じ場合もあるし、及び／又は異なる場合もある。例えば、サブスクリプションメッセージは、新たな電話番号７７７−８８８−９９９９、新たなＵＲＩ（例えば、ｂｏｂ＠ａｖａｙａ.ｃｏｍ）、及びグループ（ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍ）を識別することができる。プロトコル中立バス１２０が、これらの識別子のうちのいずれかを有する通信セッション要求メッセージを受信した場合、セッション処理エンジン１２４は、識別子に基づいて、イベントブローカー１２１を介して通信セッションオファーメッセージをエッジサーバー１３０Ｎに送信する。例えば、通信セッション要求メッセージが、識別子ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍを有する場合、通信セッションオファーメッセージは、エッジサーバー１３０Ａ及びエッジサーバー１３０Ｎの双方に送信される。なぜならば、エッジサーバー１３０Ａ及び１３０Ｎの双方が、識別子ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍを用いてサブスクライブしているからである。通信セッション要求メッセージが、識別子７７７−８８８−９９９９を有する場合、通信セッションオファーは、エッジサーバー１３０Ｎのみに送信される。エッジサーバー１３０Ｎは、次に、プロトコル固有メッセージ（すなわち、Ｈ．３２３オープン論理チャネルメッセージ）を作成する。このメッセージは、対応する通信エンドポイント１０１（すなわち、エッジサーバー１３０Ｎに登録されている通信エンドポイント）に送信される。
【００３８】
１つの実施形態では、図２に記載されているようなサブスクリプションメッセージ２０２／２０８を用いる代わりに、セッション処理エンジン１２４は、通信セッション要求メッセージを受信すると、エッジサーバー１３０Ａ〜１３０Ｎが見ることができる識別子（複数の場合もある）を有する通信セッションオファーを有するブロードキャストメッセージを送信する。特定の識別子（複数の場合もある）をサポートするエッジサーバー（複数の場合もある）１３０Ａ〜１３０Ｎは、次に、適切なプロトコル固有メッセージ（複数の場合もある）を生成し、このメッセージ（複数の場合もある）を、エッジサーバー１３０に登録している対応する通信エンドポイント（複数の場合もある）１０１に送信する。この実施形態では、サブスクリプションメッセージ２０２／２０８は、識別子を含まない場合がある。代わりに、ブロードキャストメッセージは識別子を含み、特定のエッジサーバー１３０Ａ〜１３０Ｎは、特定の識別子を含むブロードキャストメッセージを探す。
【００３９】
図３は、イベントベースマルチプロトコル通信セッション配信のプロセスのフロー図である。簡単にするために、図３では、プロトコル中立バス１２０及びセッション処理エンジン１２４は、１つにまとめて示されている。しかしながら、図１に示すように、セッション処理エンジン１２４は、プロトコル中立バス１２０とは別個のエンティティである。例えば、セッション処理エンジン１２４は、ネットワーク１１０Ｂを介して、イベントブローカー１２１によって発行されたメッセージ／イベント（エッジサーバー１３０Ａ〜１３０Ｎから受信されたもの）に（例えば、アプリケーションプログラミングインターフェースを用いて）アクセスすることができる。セッション処理エンジン１２４は、次に、（ルール（複数の場合もある）１２２に基づいて）メッセージ／イベントをエッジサーバー１３０Ａ〜１３０Ｎに送信するためにイベントブローカー１２１に返信／発行することができる。
【００４０】
プロセスは、通信エンドポイント１０１Ａが、プロトコル固有である通信セッション要求メッセージ（この例では、ＳＩＰ  ＩＮＶＩＴＥメッセージ）をエッジサーバー１３０Ａ（ＳＩＰをサポートする）に送信するステップ３００から開始する。エッジサーバー１３０Ａは、ステップ３０２において、このＳＩＰ  ＩＮＶＩＴＥメッセージをプロトコル中立通信セッション要求メッセージに変換する。このプロトコル中立通信セッション要求メッセージは、ステップ３０４において、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。セッション処理エンジン１２４は、ステップ３０６において、ルール１２２を用いて、通信セッション要求メッセージをどのようにハンドリングするのかを判断する。例えば、ステップ３０４の通信要求メッセージ内の識別子（複数の場合もある）に基づいて、処理エンジン１２４は、ルール１２２のうちの１つ以上を適用して、ステップ３０４の通信要求メッセージを用いて何を行うかを判断する。
【００４１】
セッション処理エンジン１２４は、ステップ３０８において、ルール１２２に基づいて、プロトコル中立バス１２０を介してプロトコル中立通信セッションオファーメッセージを、サブスクリプションメッセージ（例えば、サブスクリプションメッセージ２０２）に基づいてエッジサーバー１３０Ａ又は１３０Ｎ（この例では、単一のエッジサーバー１３０のみ）に送信する。エッジサーバー１３０Ａ又は１３０Ｎは、ステップ３１０において、プロトコル中立通信セッションオファーメッセージをプロトコル固有通信セッション要求に変換する。例えば、通信エンドポイント１０１Ｎが、エッジサーバー１３０ＡによってサポートされるＳＩＰ通信エンドポイントである場合、エッジサーバー１３０Ａは、ステップ３０８のプロトコル中立通信セッションオファーメッセージをＳＩＰ  ＩＮＶＩＴＥメッセージに変換する。一方、通信エンドポイント１０１Ｎが、エッジサーバー１３０ＮによってサポートされるＨ．３２３通信エンドポイントである場合、エッジサーバー１３０Ｎは、ステップ３１０において、ステップ３０８のプロトコル中立通信セッションオファーメッセージをＨ．３２３オープン論理チャネルメッセージに変換する。このプロトコル固有通信セッション要求は、その後、ステップ３１２において、通信エンドポイント１０１Ｎに送信される。
【００４２】
通信エンドポイント１０１Ｎは、ステップ３１４において、プロトコル固有通信セッション受理メッセージを送信する。例えば、通信エンドポイント１０１ＮがＳＩＰ通信エンドポイントである場合、ステップ３１４の通信受理メッセージは、ＳＩＰ２００  ＯＫメッセージ、ＳＩＰ  ＲＩＮＧＩＮＧメッセージ、ＳＩＰ  ＴＲＹＩＮＧメッセージ等とすることができる。通信エンドポイント１０１ＮがＨ．３２３通信エンドポイントである場合、ステップ３１４の通信受理メッセージは、Ｈ．３２３呼処理メッセージとすることができる。エッジサーバー１３０Ａ又は１３０Ｎは、ステップ３１６において、ステップ３１４のプロトコル固有メッセージをプロトコル中立通信セッション受理メッセージに変換する。このプロトコル中立通信セッション受理メッセージは、その後、ステップ３１８において、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。セッション処理エンジン１２４は、ステップ３２０において、プロトコル中立バス１２０を介してプロトコル中立通信セッション受理メッセージをエッジサーバー１３０Ａに送信する（宛先通信エンドポイント１０１ＡがＳＩＰベースのものであることによる）。エッジサーバー１３０Ａは、ステップ３２２において、ステップ３２０の通信セッション受理メッセージをプロトコル固有メッセージ（ＳＩＰ２００  ＯＫ）に変換し、ステップ３２４において、ＳＩＰ２００  ＯＫを通信エンドポイント１０１Ａに送信する。
【００４３】
このプロセスは、通信セッションを確立するのに必要な任意の追加のメッセージを送受信するのに用いられる。例えば、通信エンドポイント１０１Ａは、ＳＩＰ規格に従って、ＳＩＰ  ＡＣＫメッセージをエッジサーバー１３０Ａに送信する。このＳＩＰ  ＡＣＫメッセージは、その後、エッジサーバー１３０Ａによってプロトコル中立肯定応答メッセージに変換され、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。このプロトコル中立肯定応答メッセージは、その後、セッション処理エンジン１２４によって、プロトコル中立バス１２０を介して適切なエッジサーバー１３０Ａ／１３０Ｎに送信される。適切なエッジサーバー１３０Ａ／１３０Ｎは、その後、プロトコル中立メッセージをプロトコル固有メッセージ（ＳＩＰ又はＨ．３２３）に変換する。このプロトコル固有メッセージは、通信エンドポイント１０１Ｎに送信され、通信セッションが確立される。同様のプロセスは、メディアストリーム（例えば、セッション記述プロトコルを用いた音声呼）の確立にも用いることができる。
【００４４】
プロトコル中立バス１２０及びプロトコル中立セッション処理エンジン１２４を用いることの主な利点のうちの１つは、通信セッションの異なる側にある通信エンドポイント１０１が異なるプロトコルを用いて通信することができるということである。プロトコル中立バス１２０／セッション処理エンジン１２４は、通信エンドポイント１０１Ａ〜１０１Ｎによって用いられている異なるプロトコルに対処する必要がないので、セッション処理エンジン１２４は、ルール（複数の場合もある）１２２を適用することに集中することができ、プロトコル中立バスは、どのプロトコルが用いられているのかを知る必要なくメッセージをルーティングすることに集中することができる。これによって、システムは、異なるプロトコルを用いる多数の通信エンドポイント１０１Ａ〜１０１Ｎをスケーリング及びサポートすることが可能になる。例えば、プロトコル中立バス１２０／セッション処理エンジン１２４は、クラウドベースの通信サービスをサポートするのに用いることができる。
【００４５】
図４は、グループ及び／又はコールフォーキングが用いられるイベントベースマルチプロトコル通信セッション配信のプロセスのフロー図である。簡単にするために、図４では、プロトコル中立バス１２０及びセッション処理エンジン１２４は、１つにまとめて示されている（図３と同様）。しかしながら、図１に示すように、セッション処理エンジン１２４は、プロトコル中立バス１２０とは別個のエンティティである。プロセスは、通信エンドポイント１０１Ａが、プロトコル固有である通信セッション要求メッセージ（この例では、ＳＩＰ  ＩＮＶＩＴＥメッセージ）をエッジサーバー１３０Ａ（ＳＩＰをサポートする）に送信するステップ４００から開始する。エッジサーバー１３０Ａは、ステップ４０２において、このＳＩＰ  ＩＮＶＩＴＥメッセージをプロトコル中立通信セッション要求メッセージに変換する。このプロトコル中立通信セッション要求メッセージは、ステップ４０４において、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。
【００４６】
セッション処理エンジン１２４は、ステップ４０６において、ルール１２２を用いて、通信セッション要求メッセージをどのようにハンドリングするのかを判断する。例えば、通信セッション要求メッセージは、識別子ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍを有する場合がある。この例では、エッジサーバー１３０Ａ及び１３０Ｎの双方が、グループ識別子ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍに基づくイベント／メッセージを受信するためにサブスクライブしている。その結果、セッション処理エンジン１２４は、プロトコル中立通信セッションオファーメッセージをプロトコル中立バス１２０に送信する。サブスクリプション（例えば、ステップ２０２）に基づいて、プロトコル中立バス１２０は、プロトコル中立通信セッションオファーメッセージを、この通信セッションオファーメッセージを受信するためにサブスクライブしたエッジサーバー１３０Ａに送信する。
【００４７】
エッジサーバー１３０Ａは、ステップ４１０において、プロトコル中立通信セッションオファーメッセージをプロトコル固有通信セッション要求（ＳＩＰ  ＩＮＶＩＴＥメッセージ）に変換する。このプロトコル固有通信セッション要求（ＳＩＰ  ＩＮＶＩＴＥメッセージ）は、その後、ステップ４１２において、通信エンドポイント１０１Ｎに送信される。
【００４８】
通信エンドポイント１０１Ｎは、ステップ４１４において、プロトコル固有通信セッション受理メッセージ（例えば、ＳＩＰ２００  ＯＫメッセージ）を送信する。エッジサーバー１３０Ａは、ステップ４１６において、ステップ４１４のプロトコル固有メッセージをプロトコル中立通信セッション受理メッセージに変換する。このプロトコル中立通信セッション受理メッセージは、その後、ステップ４１８において、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。セッション処理エンジン１２４は、ステップ４２０において、プロトコル中立バス１２０を介してプロトコル中立通信セッション受理メッセージをエッジサーバー１３０Ａに送信する（宛先通信エンドポイント１０１ＡはＳＩＰベースのものであることによる）。エッジサーバー１３０Ａは、ステップ４２２において、ステップ４２０の通信セッション受理メッセージをプロトコル固有メッセージ（ＳＩＰ２００  ＯＫ）に変換し、ステップ４２４において、ＳＩＰ２００  ＯＫを通信エンドポイント１０１Ａに送信する。
【００４９】
加えて、ステップ４０６（グループ識別子ｍａｒｋｅｔｉｎｇｇｒｏｕｐ＠ａｖａｙａ.ｃｏｍによる）に基づいて、イベントブローカー１２１は、ステップ４２６において、プロトコル中立バス１２０を介してプロトコル中立通信セッションオファーメッセージを、ステップ２０８のサブスクリプションメッセージに基づいてエッジサーバー１３０Ｎに送信する。エッジサーバー１３０Ｎは、ステップ４２８において、プロトコル中立通信セッションオファーメッセージをプロトコル固有通信セッション要求（例えば、Ｈ．３２３オープン論理チャネルメッセージ）に変換する。このプロトコル固有通信セッション要求（Ｈ．３２３オープン論理チャネルメッセージ）は、その後、ステップ４３０において、通信エンドポイント１０１Ｎに送信される。
【００５０】
通信エンドポイント１０１Ｎは、ステップ４３２において、プロトコル固有通信セッション受理メッセージ（例えば、Ｈ．３２３呼処理メッセージ）を送信する。エッジサーバー１３０Ｎは、ステップ４３４において、ステップ４３２のプロトコル固有メッセージをプロトコル中立通信セッション受理メッセージに変換する。このプロトコル中立通信セッション受理メッセージは、その後、ステップ４３６において、プロトコル中立バス１２０を介してセッション処理エンジン１２４に送信される。セッション処理エンジン１２４は、ステップ４３８において、プロトコル中立バス１２０を介してプロトコル中立通信セッション受理メッセージをエッジサーバー１３０Ａに送信する（宛先通信エンドポイント１０１ＡがＳＩＰベースのものであることによる）。エッジサーバー１３０Ａは、ステップ４４０において、ステップ４３８の通信セッション受理メッセージをプロトコル固有メッセージ（ＳＩＰ２００  ＯＫ）に変換し、ステップ４４２において、ＳＩＰ２００  ＯＫを通信エンドポイント１０１Ａに送信する。例えば、通信エンドポイント１０１は、通信エンドポイント１０１Ａ及び１０１Ｎを会議セッションの会議通信に加える会議サーバーとすることができる。
【００５１】
加えて、図４のプロセスは、個人ユーザーの識別子に対する通信のコールフォーキングを作成するのに用いることができる。例えば、コールフォーキングでは、通信のオファーが、プロトコル中立バス１２０によって複数の通信エンドポイント１０１Ａ〜１０１Ｎに送信され、複数のエッジサーバー１３０Ａ〜１３０Ｎが、（例えば、図２に記載されているように）同じ識別子を用いてサブスクライブしている。例えば、複数のエッジサーバー１３０Ａ〜１３０Ｎは、電話番号１１１−２２２−３３３３に関連したイベント／メッセージについてサブスクライブしている。
【００５２】
図５は、マルチプロトコル通信セッションを配信するルール１２２を適用するプロセスのフロー図である。図５のプロセスは、図２のサブスクリプションプロセスに加えて用いることができる。例えば、図５に記載されたプロセスは、ユーザー／企業ルール１２２に基づくことができる。図５のプロセスは、図３及び図４のステップ３０６／４０６の一例示的な実施形態である。
【００５３】
ステップ３０４又は４０４の後、セッション処理エンジン１２４は、ステップ５００において、通信要求メッセージ内の情報に基づいてルール１２２を調べる。プロトコル中立バス１２０は、ステップ５０２において、通信セッションを要求するパーティ／通信エンドポイント１０１がブラックリストに掲載されたことがあるか否かを判断する。ステップ５０２において、要求するパーティがブラックリストに掲載されたことがある場合、セッション処理エンジン１２４は、ステップ５０４においてメッセージを拒否する。例えば、この拒否は、セッション処理エンジン１２４がステップ３０８／４０８において通信セッションのオファーを送信しないことに基づくことができる。
【００５４】
ステップ５０２において、要求するパーティ／通信エンドポイント１０１が、ブラックリストに掲載されたことがない場合、セッション処理エンジン１２４は、ステップ５１２において、ルール１２２が通信セッションを転送することであるか否かを判断する。例えば、通信エンドポイント１０１Ａのユーザーセットは、呼転送を可能にしている。転送が用いられている場合、セッション処理エンジン１２４は、ステップ５１４において、新たな識別子について登録したエッジサーバー１３０が存在するか否かを確かめるために、識別子（例えば、電話番号）を、通信セッション要求メッセージを受信する通信エンドポイント１０１に変更する。プロセスは、その後、ステップ５１８に進む。
【００５５】
そうでない場合、すなわち、転送が、ステップ５１２において有効にされていない場合、セッション処理エンジン１２４は、ステップ５１６において、どのようなルール１２２がユーザー／企業によって規定されているのかに従って管理を行う。例えば、ルール１２２に基づいて、呼記録アプリケーションを通信セッションに加えることができる。セッション処理エンジン１２４は、その後、ステップ５１８において、オファーをイベントブローカー１２１に発行する。例えば、ルール１２２は、管理されたフォーキング（forking）が登録に基づくフォーキング（forking）を優先することを規定することができる。プロセスは、その後、ステップ３０８／４０８に進む。
【００５６】
本明細書において記載されるプロセッサの例は、Ｑｕａｌｃｏｍｍ（商標）Ｓｎａｐｄｒａｇｏｎ（商標）８００及び８０１、４Ｇ  ＬＴＥ  Ｉｎｔｅｇｒａｔｉｏｎ及び６４ビット計算機能を有するＱｕａｌｃｏｍｍ（商標）Ｓｎａｐｄｒａｇｏｎ（商標）６１０及び６１５、６４ビットアーキテクチャを有するＡｐｐｌｅ（商標）Ａ７プロセッサ、Ａｐｐｌｅ（商標）Ｍ７モーションコプロセッサ、Ｓａｍｓｕｎｇ（商標）Ｅｘｙｎｏｓ（商標）シリーズ、Ｉｎｔｅｌ（商標）Ｃｏｒｅ（商標）ファミリーのプロセッサ、Ｉｎｔｅｌ（商標）Ｘｅｏｎ（商標）ファミリーのプロセッサ、Ｉｎｔｅｌ（商標）Ａｔｏｍ（商標）ファミリーのプロセッサ、Ｉｎｔｅｌ  Ｉｔａｎｉｕｍ（商標）ファミリーのプロセッサ、Ｉｎｔｅｌ（商標）Ｃｏｒｅ（商標）ｉ５−４６７０Ｋ及びｉ７−４７７０Ｋ  ２２ｎｍ  Ｈａｓｗｅｌｌ、Ｉｎｔｅｌ（商標）Ｃｏｒｅ（商標）ｉ５−３５７０Ｋ  ２２ｎｍ  Ｉｖｙ  Ｂｒｉｄｇｅ、ＡＭＤ（商標）ＦＸ（商標）ファミリーのプロセッサ、ＡＭＤ（商標）ＦＸ−４３００、ＦＸ−６３００及びＦＸ−８３５０  ３２ｎｍ  Ｖｉｓｈｅｒａ、ＡＭＤ（商標）Ｋａｖｅｒｉプロセッサ、Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ（商標）Ｊａｃｉｎｔｏ  Ｃ６０００（商標）自動車インフォテインメント（infotainment）プロセッサ、Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ（商標）ＯＭＡＰ（商標）自動車グレードモバイルプロセッサ、ＡＲＭ（商標）Ｃｏｒｔｅｘ（商標）−Ｍプロセッサ、ＡＲＭ（商標）Ｃｏｒｔｅｘ−Ａ及びＡＲＭ９２６ＥＪ−Ｓ（商標）プロセッサ、他の産業的に等価なプロセッサのうちの少なくとも１つを含むことができるが、これらには限定されず、これらのプロセッサの例は、任意の既知の又は将来的に展開される規格、命令セット、ライブラリ、及び／又はアーキテクチャを用いて計算機能を実行することができる。
【００５７】
本明細書において論述される任意のステップ、機能、及び動作を、連続的に及び自動的に実行することができる。
【００５８】
一方で、本開示を不必要に曖昧にすることを回避するために、先行する記載は、複数の既知の構造及びデバイスを省略している。この省略は、特許請求される開示の範囲を限定するものとして解釈されるべきではない。本開示への理解を提供するために、特定の詳細が言及される。しかしながら、本開示は、本明細書において言及されるこの特定の詳細を超えて多様な方法において実施することができることが理解されるべきである。
【００５９】
さらに、本明細書において示される例示の実施形態はシステムの種々のコンポーネントが共同配置されていることを示している一方、システムの或る特定のコンポーネントは、ＬＡＮ及び／又はインターネット等の分散ネットワーク１１０の遠距離部分において、又は専用システム内で、リモートに配置することができる。それゆえ、システムのコンポーネントは、組み合わせて１つ以上のデバイスにすることもできるし、アナログ及び／又はデジタル電気通信ネットワーク、パケット交換ネットワーク、又は回線交換ネットワーク等の分散ネットワークの特定の１ノード上に共同配置することもできることが理解されるべきである。先行する記載から、計算効率の理由で、システムのコンポーネントは、システムの動作に影響することなく、コンポーネントからなる分散ネットワーク内の任意の位置において配置することができることが理解される。例えば、種々のコンポーネントは、ＰＢＸ及びメディアサーバー、ゲートウェイ等のスイッチに配置することもできるし、１つ以上の通信デバイス内に配置することもできるし、１つ以上のユーザーの施設に配置することもできるし、これらの何らかの組み合わせとすることもできる。同様に、システムの１つ以上の機能部分は、電気通信デバイス（複数の場合もある）と、それに関連付けられた計算デバイスとの間に分散させることができる。
【００６０】
さらに、要素を接続する種々のリンクは、有線リンク若しくはワイヤレスリンク、又はこれらの任意の組み合わせ、又は、接続された要素にデータを供給し、及び／又は接続された要素からデータを通信することが可能である他の任意の既知の要素（複数の場合もある）若しくは今後展開される要素（複数の場合もある）とすることができることが理解されるべきである。これらの有線リンク又はワイヤレスリンクは、セキュアリンクとすることもでき、暗号化された情報を通信することが可能である場合がある。リンクとして用いられる送信媒体は、例えば、同軸ケーブル、銅ワイヤ及び光ファイバーを含む、電気信号のための任意の適したキャリアとすることができ、電波及び赤外線データ通信中に生成されるもの等の、音響波又は光波の形態を取ることができる。
【００６１】
また、イベントの特定のシーケンスに関係してフローチャートが論述されるとともに例示されている一方で、このシーケンスに対する変更、追加、及び省略を、本開示の動作に実体的に影響することなく行うことができることが理解されるべきである。
【００６２】
本開示の複数の変形形態及び変更形態を用いることができる。本開示のいくつかの特徴を、他の特徴を提供することなく提供することが可能である。
【００６３】
更に別の実施形態では、本開示のシステム及び方法は、専用コンピューター、プログラミングされたマイクロプロセッサ又はマイクロコントローラー及び周辺集積回路要素（複数の場合もある）、ＡＳＩＣ又は他の集積回路、デジタル信号プロセッサ、ディスクリート要素回路等のハードワイヤ電子又は論理回路、ＰＬＤ、ＰＬＡ、ＦＰＧＡ、ＰＡＬ等のプログラマブル論理デバイス又はゲートアレイ、任意の相当する手段等とともに実施することができる。一般に、本明細書において示される方法論を実施することが可能である任意のデバイス（複数の場合もある）又は手段を、本開示の種々の態様を実施するのに用いることができる。本開示に用いることができる例示のハードウェアは、コンピューター、ハンドヘルドデバイス、電話（例えば、セルラー、インターネット対応、デジタル、アナログ、ハイブリッド、及びその他の電話）、及び当該技術分野において既知である他のハードウェアを含む。これらのデバイスのうちのいくつかは、プロセッサ（例えば、単一又は複数のマイクロプロセッサ）、メモリ、不揮発性ストレージ、入力デバイス、及び出力デバイスを含む。さらに、限定されるものではないが、分散処理又はコンポーネント／オブジェクト分散処理、並列処理、又は仮想機械処理を含む代替的なソフトウェア実施態様も、本明細書において記載される方法を実施するのに構築することができる。
【００６４】
更に別の実施形態では、開示される方法は、多様なコンピューター又はワークステーションプラットフォーム上で用いることができるポータブルソースコードを提供するオブジェクト又はオブジェクト指向ソフトウェア開発環境を用いるソフトウェアとともに容易に実施することができる。代替的に、開示されるシステムは、標準的な論理回路又はＶＬＳＩ設計を用いてハードウェアにおいて部分的に又は完全に実施することができる。本開示によるシステムを実施するのにソフトウェアが用いられるのか又はハードウェアが用いられるのかは、システムの速度及び／又は効率性要件、特定の機能、及び、利用される特定のソフトウェア又はハードウェアシステム又はマイクロプロセッサ又はマイクロコンピューターシステムに依存する。
【００６５】
更に別の実施形態では、開示される方法は、コントローラー及びメモリと協働するプログラミングされた汎用コンピューター、専用コンピューター、マイクロプロセッサ等の上で実行される、記憶媒体上に記憶することができるソフトウェアにおいて部分的に実施することができる。これらの事例において、本開示のシステム及び方法は、アプレット（applet）、ＪＡＶＡ（商標）又はＣＧＩスクリプト等の、パーソナルコンピューター上に組み込まれたプログラム、サーバー又はコンピューターワークステーション上に存在するリソース、専用測定システム、システムコンポーネントにおいて組み込まれるルーティーン等として実施することができる。システムは、システム及び／又は方法をソフトウェア及び／又はハードウェアシステムに実体的に組み込むことによって実施することもできる。
【００６６】
本開示は、特定の規格及びプロトコルを参照して実施形態において実施されるコンポーネント及び機能を記載しているものの、本開示は、そのような規格及びプロトコルに限定されるものではない。本明細書において言及されていない他の類似の規格及びプロトコルが存在し、本開示内に含まれるものと考えられる。その上、本明細書において言及された規格及びプロトコル並びに本明細書において言及されていない他の類似の規格及びプロトコルは、本質的に同じ機能を有するより高速の又はより効率的な均等物に一定期間ごとに取って代わられる。同じ機能を有するそのような代替規格及びプロトコルは、本開示内に含まれる均等物と考えられる。
【００６７】
本開示は、種々の実施形態、構成、及び態様において、種々の実施形態、これらの部分組み合わせ、サブセットを含む、本明細書において実質的に図示されるとともに記載された、コンポーネント、方法、プロセス、システム及び／又は装置を含む。当業者であれば、本開示を理解した後には、本明細書において開示されるシステム及び方法を作成及び使用する方法を理解するであろう。本開示は、種々の実施形態、構成、及び態様において、本明細書において図示及び／又は記載されていないアイテムがない状態でデバイス及びプロセスを提供することを含み、すなわち、本発明の種々の実施形態、構成、又は態様において、例えば性能を改善する、容易性を達成する及び／又は実施のコストを低減させるために、以前のデバイス又はプロセスにおいては用いられていた可能性があるそのようなアイテムがない状態を含む。
【００６８】
本開示の前述の論述は、例示及び説明の目的で提示されてきた。前述の記載は、本開示を、本明細書において開示された単数又は複数の形式に限定する意図はない。例えば前述の詳細な説明において、本開示を簡素化する目的で、本開示の種々の特徴が１つ以上の実施形態、構成、又は態様においてグループ化されてまとめられる。本開示の実施形態、構成、又は態様の特徴は、上述した以外の代替的な実施形態、構成、又は態様において組み合わせることができる。本開示のこの方法は、特許請求される開示が各請求項において明示的に列挙された特徴よりも多くの特徴を要求するという意図を反映したものとして解釈されることはない。むしろ、添付の特許請求の範囲が反映するように、発明的な態様は、単一の前述の開示された実施形態、構成、又は態様の全ての特徴よりも少ない。それゆえ、添付の特許請求の範囲は、このことによってこの詳細な説明に組み込まれ、各請求項は、本開示の別個の好ましい実施形態として、それ自体独立している。
【００６９】
その上、本開示の記載は、１つ以上の実施形態、構成、又は態様並びに或る特定の変形形態及び変更形態の記載を含むが、他の変形形態、組み合わせ、及び変更形態が本開示の範囲内にあり、例えば、これらは、本開示を理解した後には、当該技術分野の能力及び知識内にあり得るものである。特許請求される構造、機能、範囲又はステップに対して代替的な、互換的な及び／又は均等な構造、機能、範囲又はステップを（そのような代替的な、互換的な及び／又は均等な構造、機能、範囲又はステップが本明細書において開示されているか否かにかかわらず、及び、いずれの特許可能な主題も公衆に供することを意図することなく）含む、代替的な実施形態、構成、又は態様を許容される限り含む権利を得ることが意図される。
【図１】
2020087472.tif 000003
【図２】
2020087472.tif 000004
【図３】
2020087472.tif 000005
【図４】
2020087472.tif 000006
【図５】
2020087472.tif 000007
【外国語明細書】
2020087472.tif 000008
2020087472.tif 000009
2020087472.tif 000010
2020087472.tif 000011
2020087472.tif 000012
2020087472.tif 000013
2020087472.tif 000014
2020087472.tif 000015
2020087472.tif 000016
2020087472.tif 000017
2020087472.tif 000018
2020087472.tif 000019
2020087472.tif 000020
2020087472.tif 000021
2020087472.tif 000022
2020087472.tif 000023
2020087472.tif 000024
2020087472.tif 000025
2020087472.tif 000026
2020087472.tif 000027
2020087472.tif 000028
2020087472.tif 000029
2020087472.tif 000030
2020087472.tif 000031
2020087472.tif 000032
2020087472.tif 000033
2020087472.tif 000034
2020087472.tif 000035
2020087472.tif 000036
2020087472.tif 000037