(57)【特許請求の範囲】
【請求項１】
少なくとも１つのコンピュータ可読記憶媒体であって、命令と共にエンコードされ、該命令が、実施されるときに少なくとも１つの処理ユニットに、
発信された番号を含む通話呼を受け取ること、
前記通話呼を通話呼フロー・サービスにルーティングすることであって、該通話呼フロー・サービスの負荷に基づいて、前記通話呼フロー・サービスが選択されること、
前記通話呼フロー・サービスにおける前記通話呼の受け取りの後に、前記通話呼フロー・サービスからは遠隔に格納された少なくとも１つのダイヤルプランを、前記通話呼フロー・サービスにアクセス可能なメモリに一時的にロードすることであって、前記ダイヤルプランが、前記発信された番号に基づいて選択されること、および
前記少なくとも１つの一時的にロードしたダイヤルプランにアクセスして、前記少なくとも１つの一時的にロードしたダイヤルプランを用いて前記通話呼を処理すること、
を含むアクションを実行させる、コンピュータ可読記憶媒体。
【請求項２】
前記ダイヤルプランが相互音声応答を含む、請求項１に記載のコンピュータ可読記憶媒体。
【請求項３】
前記ダイヤルプランが内線とテレフォニ・リソースとの間の関連付けを含む、請求項１に記載のコンピュータ可読記憶媒体。
【請求項４】
前記通話呼がボイス・オーバＩＰ形式を用いてフォーマットされ、インターネットを介して受け取られる、請求項１に記載のコンピュータ可読記憶媒体。
【請求項５】
請求項１に記載のコンピュータ可読記憶媒体において、前記通話呼が第１の通話呼であり、前記命令が、更に、
ダイヤルされる第２の番号を含む第２の通話呼を受け取り、
該第２通話呼の受け取りの後に、前記第２番号に基づいて前記第１ダイヤルプランとは異なる第２のダイヤルプランにアクセスし、
前記第１通話呼が処理されている時間の少なくとも一部の間に前記第２通話呼を処理するための命令を含む、コンピュータ可読記憶媒体。
【請求項６】
請求項１に記載のコンピュータ可読記憶媒体において、前記命令が、更に、
複数の呼を受け取り、
各ダイヤルされた番号に基づいて前記複数の通話呼のそれぞれについて異なる個別のダイヤルプランにアクセスするための命令を含む、コンピュータ可読記憶媒体。
【請求項７】
請求項１に記載のコンピュータ可読記憶媒体において、
前記命令が、更に、割当解除信号を受け取るための命令を含み、
前記命令が、更に、前記割当解除信号に応じて、前記少なくとも１つの処理ユニットに、遠隔ストレージ・デバイスにローカル・データをコピーさせると共に、更なる通話呼の受け取りを中止させる、コンピュータ可読記憶媒体。
【請求項８】
コンピュータ可読記憶媒体であって、命令と共にエンコードされ、該命令が、実施されるときに少なくとも１つの処理ユニットに、
テレフォニ通話呼を処理する複数のソフトウェア・インスタンスについて総負荷を表す少なくとも１つの値にアクセスすること、
前記負荷が総ベースライン負荷値を超えるときに、少なくとも１つの追加のソフトウェア・インスタンスをテレフォニ通話呼の処理のために初期化すること、
前記複数のソフトウェア・インスタンスのうち少なくとも１つがある時間期間の通話呼について閾値数未満で処理しているときに、前記複数のソフトウェア・インスタンスのうち前記少なくとも１つを割当解除すること、
を含むアクションを実行させる、コンピュータ可読記憶媒体。
【請求項９】
請求項８に記載のコンピュータ可読記憶媒体において、前記アクションが、更に、
通話呼を受け取ること、および
前記通話呼を、各前記ソフトウェア・インスタンスの個々の負荷に基づいて、前記複数のソフトウェア・インスタンスのうちの１つに割り当てること、
を含む、コンピュータ可読記憶媒体。
【請求項１０】
請求項９に記載のコンピュータ可読記憶媒体において、
前記通話呼を前記複数のソフトウェア・インスタンスのうちの１つに割り当てる前記アクションが、前記通話呼を、個々のベースライン負荷未満の負荷を有する、前記複数のソフトウェア・インスタンスにおける１つのソフトウェア・インスタンスに割り当てることを含む、コンピュータ可読記憶媒体。
【請求項１１】
請求項８に記載のコンピュータ可読記憶媒体において、
前記負荷にアクセスするアクションが、前記複数のソフトウェア・インスタンスのそれぞれについての各負荷にアクセスすることを含み、前記各負荷がＦＩＦＯテーブルに格納され、前記通話呼を前記ベースライン負荷未満の負荷を有する１つのソフトウェア・インスタンスに割り当てるアクションが、前記通話呼を前記ベースライン負荷未満の負荷を有する複数のソフトウェア・インスタンスのうちの１つに割り当てることを含み、該１つが前記テーブル内で最少位置にある、コンピュータ可読記憶媒体。
【請求項１２】
請求項８に記載のコンピュータ可読記憶媒体において、
少なくとも１つの追加のソフトウェア・インスタンスを初期化するアクションが、クラウド・プロバイダ・インタフェースと通信し、クラウド・コンピューティング環境で追加の仮想インスタンスを取得することを含む、コンピュータ可読記憶媒体。
【請求項１３】
請求項８に記載のコンピュータ可読記憶媒体において、前記複数のソフトウェア・インスタンスのうち少なくとも１つを割当解除するアクションが、クラウド・プロバイダ・インタフェースと通信し、クラウド・コンピューティング環境での前記少なくとも１つのソフトウェア・インタフェースを終了させることを含む、コンピュータ可読記憶媒体。
【請求項１４】
クラウド・コンピューティング通話呼センタであって、
少なくとも１つの処理ユニット、および実施可能命令でエンコードされ前記少なくとも１つの処理ユニットに結合されたメモリと、
前記少なくとも１つの処理ユニットおよびメモリの少なくとも一部を利用するように構成される仮想インスタンスであって、命令を実行すると、前記少なくとも１つの処理ユニットに、
発信された番号を含む通話呼を受け取ること、
前記通話呼を通話呼フロー・サービスにルーティングすることであって、該通話呼フロー・サービスの負荷に基づいて、前記通話呼フロー・サービスが選択されること、
前記選択された通話呼フロー・サービスでの前記通話呼の受け取りの後に、前記通話呼フロー・サービスからは遠隔に格納された少なくとも１つのダイヤルプランを、前記通話呼フロー・サービスにアクセス可能なメモリに一時的にロードする少なくとも１つのダイヤルプランにアクセスすることであって、該ダイヤルプランが、発信された番号に基づいて選択されること、および
前記少なくとも１つの一時的にロードしたダイヤルプランにアクセスし、前記少なくとも１つの一時的にロードしたダイヤルプランを用いて前記通話呼を処理すること、
を含むアクションを実行させるように構成される仮想インスタンスと、
前記少なくとも１つの処理ユニットおよびメモリの少なくとも一部を利用するように構成される通話呼制御サービスであって、前記仮想インスタンス上の負荷をモニタし、該負荷に基づいて追加の仮想インスタンスを割り当てるように構成される通話呼制御サービスと、
を備える、クラウド・コンピューティング通話呼センタ。
【請求項１５】
前記通話呼制御サービスが、更に、前記負荷に基づいて前記仮想インスタンスを割当解除するように構成される、請求項１４に記載のクラウド・コンピューティング通話呼センタ。
【請求項１６】
請求項１４に記載のクラウド・コンピューティング通話呼センタにおいて、
前記通話呼が第１の通話呼であり、
前記命令が、更に、
ダイヤルされる第２の番号を含む第２の通話呼を受け取り、
該第２通話呼の受け取りの後に、前記第２番号に基づいて前記第１ダイヤルプランとは異なる第２のダイヤルプランにアクセスし、
前記第１通話呼が処理されている時間の少なくとも一部の間に前記第２通話呼を処理するための命令を含む、クラウド・コンピューティング通話呼センタ。
【請求項１７】
テレフォニ通話呼を処理するための方法であって、
複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも１つの個々の負荷に基づいて、着信した通話呼を、複数のソフトウェア・ベース・テレフォニ・スイッチのうちの１つにルーティングするステップと、
前記複数のソフトウェア・ベース・テレフォニ・スイッチの総負荷をモニタリングするステップと、
前記複数のソフトウェア・ベース・テレフォニ・スイッチの総負荷がベースライン負荷値を超えるときに、追加のソフトウェア・ベース・テレフォニ・スイッチを割り当てるステップと、
前記複数のソフトウェア・ベース・テレフォニ・スイッチのうちの前記少なくとも１つがある時間期間の通話呼について閾値数未満で処理しているときに、前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち前記少なくとも１つを割当解除するステップと、
を含む方法。
【請求項１８】
請求項１７に記載の方法において、前記複数のソフトウェア・ベース・テレフォニ・スイッチがクラウド・コンピューティング環境で実装され、該ソフトウェア・ベース・テレフォニ・スイッチのそれぞれが、前記クラウド・コンピューティング環境の各仮想インスタンスにおいて実装される、方法。
【請求項１９】
請求項１８に記載の方法において、追加のソフトウェア・ベース・テレフォニ・スイッチを割り当てるステップが、前記クラウド・コンピューティング環境における追加の仮想インスタンスを割り当てることを含む、方法。
【請求項２０】
請求項１７に記載の方法において、追加のソフトウェア・ベース・テレフォニ・スイッチを割り当てるか、または前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも１つを割当解除するステップが、
前記総負荷が総ベースライン負荷値を超えたときに、少なとも１つの追加のフトウェア・ベース・テレフォニ・スイッチを初期化すること、および
前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも１つがある時間期間の通話呼についての閾値数未満で処理しているときに、前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち前記少なくとも１つを割当解除すること、
を含む、方法。
【請求項２１】
請求項１７に記載の方法において、前記通話呼を前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも１つにルーティングするステップが、前記通話呼を、個々のベースライン負荷未満の個々の負荷を有する１つのソフトウェア・ベース・テレフォニ・スイッチ・スイッチにルーティングすることを含む、方法。
【請求項２２】
ピア・ツー・ピア・テレフォニのための方法であって、
発信された番号を含む通話呼を受け取るステップと、
ピア・ツー・ピア・テレフォニのカスタマのディレクトリにアクセスするステップと、
前記発信された番号が前記ディレクトリ内にある場合に、インターネットを介して前記通話呼を、前記発信された番号に関連付けられたＰＢＸにルーティングするステップと、
前記発信された番号が前記ディレクトリ内にない場合に、前記通話呼を公衆電話網にルーティングするステップと、
を含み、
前記インターネットを介して前記通話呼をルーティングする前記ステップが、ソフトウェア・ルータを用いて前記通話呼を処理することを含み、
前記ソフトウェア・ルータの数が、処理中の通話呼の総数に基づいて動的に決定される、方法。
【請求項２３】
インターネットを介して前記通話呼をルーティングするステップが、ＶｏＩＰパケットを前記ＰＢＸにルーティングすることを含む、請求項２２に記載の方法。
【請求項２４】
インターネットを介してルーティングされた通話呼のログを保持するステップをさらに含む、請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[001]  本発明の実施形態は、一般的にテレフォニ・システムに関するものである。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[002]  電話通信(telephony)についてのインフラストラクチャは、歴史的には、物理的な、オンプレミス(on-premise)スイッチを介して提供されてきた。スイッチは、公衆電話網と通信するのに必要となる接続を行う。したがって、通話呼の一定数に適応するために、対応する数のスイッチが必要とされる。このことは、一般的に、予想されるピークの通話呼ボリュームをサポートするに十分な量のスイッチング・ハードウェアを維持することを通話呼センタまたは他のテレフォニ・カスタマに要求する。例えば、ほとんどの時間では通話呼量は予想されたピークの通話呼量の７５％である。その結果、ほとんどの時間ではスイッチング・ハードウェアのわずか７５％しか使用されないにも拘わらず、テレフォニ・カスタマは、臨時用のピーク通話呼量に対処するために、スイッチング・ハードウェアについて余分の２５％を維持し、なおもリソースに投資しなければならない。
【図面の簡単な説明】
【０００３】
【図１】[003]  図１は、本発明の実施形態によるクラウド・コンピューティング通話呼センタを含むテレフォニ・システムの概略図である。
【図２】[004]  図２は、本発明の実施形態によるクラウド・コンピューティング通話呼センタのいくつかのコンポーネントの概略図である。
【図３】[005]  図３は、本発明の実施形態によるクラウド・コンピューティング通話呼センタからの仮想インスタンスについて割当および割当解除を行うために使用することができるデータの概略図である。
【図４】[006]  図４は、本発明の実施形態によるクラウド・コンピューティング通話呼センタにサービス提供する例示の方法を示しているフローチャートである。
【図５】[007]  図５は、本発明の実施形態によるサービスの割当および割当解除を行う例示の方法を示しているフローチャートである。
【図６】[008]  図６は、本発明の実施形態によるピア・ツー・ピアのクラウド電話システムを含むシステムの概略図である。
【発明を実施するための形態】
【０００４】
[009]  本発明の実施形態について充分な理解を供するために、いくらかの詳細を以下に説明する。しかしながら、当業者にとって、本発明の実施形態について様々なこれら特定の詳細がなくとも実施され得ることは明らかである。いくつかの場合において、本発明について説明する実施形態を不要に不明瞭にすることを回避するために、公知のソフトウェア動作、サーバ・コンポーネント、回路、制御信号またはタイミング・プロトコルを詳細に示さなくてもよい。
【０００５】
[010]  本発明の実施形態は、一般的に、クラウド・コンピューティング通話呼センタに関するものである。クラウド・コンピューティング通話呼センタの実施形態は、テレフォニ、ＰＢＸおよび通話呼センタの能力についてスケーラブルで動的な割り当てのためのマルチ・テナントなプラットフォームを提供する。この能力は、カスタマにとって経済性を改善して提供する。通常、本願明細書においてカスタマとは、発信される(called)ことができる１つ以上の電話番号に関連付けられたエンティティのことを言う。カスタマは、組織、人その他のコンピュータ・プログラム・プロセスでもよい。本発明の実施形態は、クラウド・コンピューティング環境内のソフトウェア・テレフォニ・スイッチの実装を含む。以前のテレフォニ・システムとは対照的に、このクラウド・コンピューティング通話センタの実施形態では、ソフトウェア・ベースのＰＢＸ、ダイヤルプラン、仮想的な双方向音声応答サービス（ＩＶＲ）、および／または他のシステム・コンポーネントを特定の通話呼および／またはＰＢＸに動的に割り当てることができる。このようにして、テレフォニ・コンポーネントの動的な割り当ては、１つの特定クライアントに対しリソースを専用化する必要を回避することができる。
【０００６】
[011]  さらに、本発明の実施形態は負荷バランシングを含み、需要が変化するにつれてサーバ容量の割り当ておよび割り当て解除を行うことができる。ハードウェア・リソース量は、処理パワーおよびメモリを含み、クラウド・コンピューティング通話呼センタの総負荷に基づいて、動的に調整することができる。通話呼処理に充てられるハードウェア・リソースは、それ故、通話呼量が変化するにつれ変化させることができる。したがって、通話呼センタ・プロバイダは、現在の通話呼量に対処するために必要な計算リソースを代償するだけでよく、予想されたピーク要求に対処するのに十分な専用の計算リソースの必要性を回避することができる。
【０００７】
[012]  クラウド・コンピューティング環境におけるソフトウェア・テレフォニ・スイッチの実装により、大規模で冗長的に配置したサーバを使用したテレフォニ機能の提供を可能にする。以下にさらに説明するように、ソフトウェア・テレフォニ・スイッチの各インスタンスは、少なくとも、カスタマに特有のテレフォニ・リソースが動的に割り当てることができるという理由で、多くのカスタマに対してサービス提供することができる。したがって、リソースについての動的スケーリングおよび動的割当は、数多くのカスタマに対する数多くの同時通話の処理を許容することができる。いくつかの実施形態では、何十または何百もの同時通話呼をも対処することができる。
【０００８】
[013]  加えて、数多くの特徴を、クラウド・コンピューティング通話呼センタにおける一部または全部のカスタマに柔軟に提供することができる。特徴について、例えば、音声認識、話者認識および感情検知を含むことができる。特徴は、また、クラウド・コンピューティング環境において実施することもでき、また、複数のカスタマが要求により(on demand)利用することもできる。
【０００９】
[014]  他の実施態様において、クラウド・コンピューティング通話呼センタの実施例では、公衆電話交換網を通過することなく、カスタマ対カスタマの通話呼を許容することができる。
【００１０】
[015]  図１は、本発明の実施形態によるクラウド・コンピューティング通話呼センタを含むテレフォニ・システムの概略図である。クラウド・コンピューティング通話呼センタ１０５は、サーバ１１２，１１４，１１６を含むクラウド・コンピューティング・ハードウェア１１０の全体または一部に対して動作することができる。クラウド・コンピューティング通話センタは、１つ以上の仮想インスタンス１２０，１２２，１２４，１２６を含む。仮想インスタンス１２０のうちの１つは、通話呼制御サービス１３０を実施することができる。仮想インスタンス１２２，１２４，１２６は、通話呼フロー・サービス１３２，１３４，１３６をそれぞれ実行する。通話呼フロー・サービス１３２，１３４，１３６は、公衆電話網１４５を介した電話網発信側１４０またはインターネット発信側１４２、およびインターネット１５５を介したクラウド・コンピューティング・センタ１０５と通信するエージェント１５０の間で、通話呼についてサービス提供することができる。通話呼フロー・サービス１３２，１３４，１３６は、いかなる数の音声処理リソース１３８により提供されるサービスをも利用することができ、この音声処理リソース１３８は、クラウド・コンピューティング通話呼センタ１０５によって提供することができる。構成管理ツール１６０はまた、クラウド・コンピューティング通話呼センタ１０５の状況(aspect)を管理する(administer)ために設けることもできる。通常、以下にさらに説明するように、通話呼フロー・サービス１３２，１３４，１３６は、通話呼に対しカスタマ特有のテレフォニ・リソースを動的に割り当てることによって、複数のカスタマにサービス提供することができる。さらに、以下にさらに説明するように、通話呼制御サービス１３０は、クラウド・コンピューティング通話呼センタ１０５での通話呼の量をモニタすることができ、要求にしたがって余分な仮想インスタンスおよび／または余分な通話呼フロー・サービスの割当および割当解除を行うことができる。このように、クラウド・コンピューティング通話呼センタ１０５は、いくつかの実施形態において、現在の通話呼量に必要とされるのと同程度のクラウド・コンピューティング・ハードウェア１１０のみを利用することができる。
【００１１】
[016]  クラウド・コンピューティング通話呼センタ１０５は、パブリックまたはプライベートのクラウド・コンピューティング環境において実施することができる。アマゾンのＥＣ２システムまたは他の類似のシステムといった商用のクラウド・コンピューティング環境を使用することができる。いくつかの実施形態では、商用のクラウド・コンピューティング環境の組合せを使用することができる。いくつかの実施例において、仮想インスタンスは、別々のクラウド・コンピューティング環境において生成することができるが、あたかもそれらの全てが同じクラウド・コンピューティング環境内で動作するかのように、同じように機能することができる。通常、クラウド・コンピューティング環境は、クラウド・コンピューティング・ハードウェア１１０を提供することができる。クラウド・コンピューティング・ハードウェア１１０は、任意の数のサーバ、または処理ユニットおよび電子ストレージのその他の配置を含むことができる。クラウド・コンピューティング環境はまた、クラウド・コンピューティング・ハードウェア１１０の部分上の、仮想インスタンス１２０，１２２，１２４，１２６といった複数の仮想インスタンスを走らせる能力を提供することもできる。特に、各仮想インスタンスは、一意のオペレーティング・システムおよびソフトウェア・スタックをハウジングすることができる物理的なサーバ内の論理パーティションとして実装することができる。したがって、各仮想インスタンス１２０，１２２，１２４，１２６は、命令と共にエンコードされるコンピュータ可読媒体の全部または一部を含み、当該命令が、クラウド・コンピューティング・ハードウェア１１０の１つ以上の処理ユニットに、仮想インスタンスが有する説明する機能を実行させる。多くの仮想インスタンスは、単一の物理的なサーバ内で動作中であってよい。いくつかの実施例において、クラウド・コンピューティング通話呼センタ１０５のオペレータは、走っている仮想インスタンスの数およびサイズにしたがって商用クラウド・コンピューティング・プロバイダに課金を行ってもよい。仮想インスタンスは、インスタンスに割り当てられる処理パワーおよびメモリ・サイズによって特定されるサイズを有することができ、そして、コストは処理パワーおよびメモリ・サイズに基づいてもよい。クラウド・コンピューティング環境は、仮想インスタンスのオンデマンドの割当を許容し、新規な仮想インスタンスによって、即座にまたは数秒あるいは数分内のうちに処理用に利用可能となる。同様に、仮想インスタンスは、動的な方法でクラウド・コンピューティング環境からの割当解除を行うことができる。クラウド・コンピューティング・ハードウェア上の仮想インスタンスを走らせ、物理的なハードウェアを仮想インスタンスに割り当てるための様々な実装は、公知技術であり、使用することができる。
【００１２】
[017]  クラウド・コンピューティング通話呼センタ１０５は、通常、通話呼制御サービス１３０を実施し、いかなる数の電話番号に関連付けられたエンティティへの通話呼をも受け取ることができる。通話呼制御サービス１３０は、通話呼を利用可能な通話呼フロー・サービスにルーティングする。このように、各通話呼制御サービス１３０は、通話呼を複数の通話呼フロー・サービスにルーティングすることができる。一旦通話呼が通話呼フロー・サービスにルーティングされると、通話呼制御サービス１３０は通話呼を処理することにもはや関与できない。各通話呼フロー・サービスは、各受け取った通話呼ごとに、適切なダイヤルプランまたはそのほかの通話呼の対処法(treatment)をロードすることができ、また、ロードしたダイヤルプランにしたがって通話呼を処理することができる。ダイヤルプランは、１つ以上の音声処理リソース１３８の使用を特定することができる。各通話呼フロー・サービスは、いくつかの実施例では、複数の電話番号を所有するエンティティに同時にサービス提供するための複数のダイヤルプランをロードすることができる。アナログ的なやり方では、アウトバンド・コールは、通話呼制御サービス１３０により、通話呼フロー・サービスの１つにルーティングすることができ、また、通話呼フロー・サービスは、アウトバンドの通話呼を作成するカスタマに関連付けられたダイヤルプランをロードすることができる。
【００１３】
[018]  単一バージョンの通話呼制御サービス１３０だけを、いくつかの実施形態では提供する必要があり、複数の通話呼フロー・サービスに通話呼をルーティングする。いくつかの実施形態において、複数のバージョンの通話呼制御サービス１３０は、クラウド・コンピューティング通話呼センタ１０５において動作することができ、それはフォールト・トレランスおよび冗長性を有利に改善することができる。さらに、更新は自動的にその場で(on the fly)実施することができる。その一方で、通話呼制御サービス１３０は動作しており、ダイヤルプランまたはその他の通話呼の対処法(treatment)の情報、および次の通話呼を受け取るときの通話呼フロー・サービスによってロードされる新規の情報を変更することができる。さらにまた、後に説明するように、通話呼フロー・サービスは、通話呼の処理を中止するために割当解除を行うこともできる。
【００１４】
[019]  したがって、通話呼フロー・サービスに対する更新が望まれる場合、その更新を採用する新規な通話呼フロー・サービスは追加され、また、古い通話呼フロー・サービスはもはや新規の通話呼を受け取ることができず、通話呼が終了すると割当を解除することができる。さらにまた、通話呼制御サービス１３０への更新が望まれる場合、新規な通話呼制御サービス・プログラムは、通話呼制御サービス１３０と並列して開始することができ、また、その次の通話呼が新規な通話呼制御サービスにルーティングすることができる。通話呼制御サービス１３０は、次いで、もはや通話呼を処理しないときには、割当を解除することができる。このように、更新は、クラウド・コンピューティング通話呼センタ１０５が動作している間に発生させることができる。
【００１５】
[020]  ３つの仮想インスタンス１２０，１２２，１２４，１２６を図１に示したが、しかしながら、いかなる数をも用いることができる、また、クラウド・コンピューティング通話呼センタ１０５に含まれる仮想インスタンスの数は、クラウド・コンピューティング通話呼センタ１０５への負荷にしたがって変更することができる。通話呼制御サービス１３０は、インスタンス１２０，１２２，１２４，１２６によって扱われる通話呼の数に基づいて、追加の仮想インスタンスの割当または割当解除をすることができる。すなわち、通話呼制御サービス１３０は、高い閾値および低い閾値を有するいくつかの実施形態でプログラムすることができる。既存のインスタンスによって扱われる多くの通話呼が高い閾値と等しいかまたはそれを超過する場合に、通話呼制御サービス１３０は１つ以上の追加インスタンスを追加することができる。既存のインスタンスによって扱われる通話呼の数が低い閾値に等しいかまたはこれより少ない場合、通話呼制御サービス１３０は１つ以上のインスタンスの割当てを解除することができる。通話呼制御サービスについて、以下に更に説明する。いくつかの実施形態において、１つ以上の追加の通話呼フロー・サービスを、現在の容量で命じられた数以上に提供することができる。この追加通話呼フロー・サービスは、負荷の急増に対処するのに有利なものとすることができる。
【００１６】
[021]  ３つの通話呼フロー・サービス１３２，１３４，１３６が図１に示され、１つの通話呼フロー・サービスが仮想インスタンス１２２，１２４，１２６の各々上で走っている。いかなる数の通話呼フロー・サービスをも使用することができ、また、いくつかの実施形態では、２以上の通話呼フロー・サービスは単一の仮想インスタンスによって動作することができる。いくつかの実施形態において、通話呼制御サービス１３０は、通話呼フロー・サービス１３２，１３４，１３６の１つ以上と同一の仮想インスタンスにおいて実施することができる。仮想インスタンス、クラウド・コンピューティング・ハードウェアならびに通話呼制御サービスと通話呼フロー・サービスの分散についての配置は、全くフレキシブルであると理解されるのが通常である。各通話呼フロー・サービス１３２，１３４，１３６は、複数のカスタマについて通話呼に対処することができる。各通話呼フロー・サービス１３２，１３４，１３６は、双方向音声応答のようなテレフォニ・リソース、または音声処理リソースのようなカスタマ特有のリソースを通話呼動的に割り当てることができる。このように、通話呼フロー・サービス１３２，１３４，１３６は、マルチ・テナントなサービスとすることができる。
【００１７】
[022]  通話呼フロー・サービス１３２，１３４，１３６は、１つ以上の共有音声処理リソース１３８を通話呼に適用することができる。音声処理リソース１３８は、例えば、音声認識、話者認識、テキストから音声への変換(text-to-speech)、感情検知、またはこれらの組み合わせを含むことができる。このように、音声認識のような特徴は、何百または何千もの通話呼までにも、同時に割り当てることができる。
【００１８】
[023]  いくつかの実施形態において、通話呼フロー・サービス１３２，１３４，１３６の１つ以上は、例えば相互接続されることによって結合されることができる。通話呼フロー・サービスは、音声処理リソース１３８のようなテレフォニ・リソースによって、相互接続に割り当てられることを可能にする。これにより、例えば、会議ブリッジが複数の通話呼フロー・サービス全体に動作することを可能にする。通話呼フロー・サービス間の接続は、要求(on demand)に基づいて動的に割り当てることもでき、また、ダイヤルプランによって特定されるために、増加または減少することができる。
【００１９】
[024]  発信側１４０，１４２は、通常、１つ以上のエージェント１５０に発信しているエンティティまたは発信された電話番号に関連付けられたその他のエンティティを参照する。発信側１４０，１４２は、通常、電話、携帯電話またはインターネット対応(enabled)デバイスといった、発信する１つ以上のデバイスに関連付けられるがこれに限定されない。エージェント１５０は、例えばレストラン・チェーンまたは通話呼センタ・オペレータといった企業体に関連付けられることができる。発信側１４２は、ネットワーク１５５、例えば、ボイス・オーバＩＰ（ＶｏＩＰ）を用いたインターネットを通じて通信することによって、発信を行うことができる。発信側１４０は、公衆電話網１４５を通じて通信することによって、発信を行うことができる。クラウド・コンピューティング通話呼センタ１０５は、インターネット１５５および／または公衆電話網１４５から通話呼を受け取り、発信側を着信呼エージェント１５０と接続する。発信されたエージェント１５０は、インターネット１５５を介して、または、いくつかの実施形態では公衆電話網１４５を介してアクセス可能とすることができる。ＰＳＴＮ１４５への多くの接続が存在することもある。アウトバンドの通話呼は、いくつかの実施形態では、下層のＰＳＴＮサービスの総コストに基づいてＰＳＴＮ１４５への接続を通じて、外部にルーティングすることができる。クラウド・コンピューティング通話呼センタ１０５は、通話呼を受け取ることができ、通話呼は通話呼フロー・サービス１３２，１３４，１３６の１つによって処理することができる。通話呼フロー・サービスは、発信された番号と関連付けられる特定の通話呼の対処法(treatment)をロードし、および利用することができる。通話呼の対処法は、双方向音声応答または他の機能を含むことができる。このように、通話呼フロー・サービスは、ソフトウェアＰＢＸとして機能することができる。
【００２０】
[025]  構成管理ツール１６０を提供することができ、また、インターネット１５５を介してクラウド・コンピューティング通話呼センタ１０５に結合することができて、クラウド・コンピューティング通話呼センタ１０５のパラメータ、例えば、テレフォニ・リソースまたは発信された番号に関連付けられる１つ以上のエンティティに特有の利用可能なその他の構成、を管理し、または、上記した高低の閾値を調整することによるような、インスタンスの割当または割当解除を行うような方法を制御する。構成管理ツールは、インターネットを通じて利用可能とすることができ、１つ以上のダイヤルプランについて即時の修正を許容することができる。変更態様として、クラウド・コンピューティング通話呼センタ１０５の通話呼フロー・サービスを即時利用可能としてもよい。追加ツールはまた、カスタマに対し、カスタマの電話番号（１または複数）に関連付けられたキューイングされた通話呼をモニタする機能、およびキューイング性能、エージェント性能、エージェント状態などをモニタする機能を設けることもできるが、これに限定されない。
【００２１】
[026]  図２は、本発明の実施形態によるクラウド・コンピューティング通話呼センタが有するいくつかのコンポーネントについての概略図である。通話呼制御サービス１３０および通話呼フロー・サービス１３２の例示のコンポーネントが示されている。通話呼制御サービス１３０は、ステータス・モニタ２０５、着信呼自動分配２１０、シグナリング・サーバ２１５を含むことができ、ＳＩＰプロキシ、通話呼フロー・コントローラ２２０および管理ツール２２５とすることができる。これらコンポーネントは、仮想インスタンス１２０および１２２に関連付けられたクラウド・コンピューティング・ハードウェア上のコンピュータ可読媒体に格納した実行可能命令として、実装することができる。実行可能命令は、クラウド・コンピューティング・ハードウェア１１０の１つ以上の処理ユニットによって実行することができ、説明の機能を提供する。別のコンポーネントとして示しているものの、コンポーネント２０５，２１０，２１５，２２０，２２５の一部もしくは全部は、物理的に別個のものでなくてもよく、また、いくつかの実施形態では同一のコンピュータ可読媒体上でエンコードされるソフトウェアコードで実装することができる。通話呼制御サービス１３０は、以下にさらに説明するように、クラウド・プロバイダ・インタフェース２７０と通信することができる。
【００２２】
[027]  通話呼制御サービス１３０は、発信側１４０，１４２から通話呼を受け取る。通話呼制御サービス１３０は、適切な通話呼フロー・サービスを選択して、各通話呼を処理する。通話呼の選択は、通話呼制御サービス１３０が受け取る時またはその前後で、通話呼フロー・サービスの各々の負荷に基づくものとすることができる。次いで、通話呼フロー・サービス１３２のような選択された通話呼フロー・サービスは、発信された番号に基づいて、ダイヤルプランまたはその他のカスタマ特有のリソースをロードすることができる。通話呼フロー・サービス１３２は、次いで、ロードしたダイヤルプランにしたがって通話呼を処理することができる。これら機能の実装について、以下に詳細に説明する。
【００２３】
[028]  通話呼フロー・サービス１３２は、セッション・マネージャ２３０、１つ以上の通話呼マネージャ２３５，２３６、メディア・プロセッサ２４０およびレコーダ２４５を含むことができる。通話呼フロー・サービス１３２はまた、ローカル・ストレージ２５０を含むこともできる。再度、これらのコンポーネントは、仮想インスタンス１２０と関連付けられるクラウド・コンピューティング・ハードウェアのコンピュータ可読媒体上に格納される実行可能命令として実装することができる。実行可能命令は、クラウド・コンピューティング・ハードウェア１１０が有する１つ以上の処理ユニットによって実行することができ、説明の機能を提供する。別個のコンポーネントとして示しているものの、コンポーネント２３０，２３５，２３６，２４０，２４５の一部もしくは全部は、物理的に別個のものでなくてもよく、また、いくつかの実施形態では同一のコンピュータ可読媒体でエンコードされるソフトウェアコードで実装することができる。いくつかの実施形態では、通話呼制御サービス１３０のコンポーネントと結合することができる。物理的な位置およびコンポーネントの実施がフレキシブルとすることができることが理解されるべきである。
【００２４】
[029]  通話呼制御サービス１３０および通話呼フロー・サービス１３２は、通話呼センタ・データベース２５５、シグナリング・サーバ・データベース２６０、およびクラウド・ストレージ２６５に格納されるデータにアクセスすることができる。シグナリング・サーバ・データベース２６０は、ＳＩＰプロキシ・データベースとすることができる。別個のデータベースとして示しているものの、いくつかの実施例では、データベース２５５，２６０，２６５の一部または全部は結合することができる。データベース２５５，２６０，２６５の一部または全部は、図１のクラウド・コンピューティング・ハードウェア１１０上に備わることができる。
【００２５】
[030]  一般に上記説明したように、通話呼フロー・サービス１３２は、２以上のカスタマ、すなわち、発信された番号に関連づけられる２以上のエンティティが利用することができる。いくつかの実施形態において、または、特定の時間点において、通話呼フロー・サービス１３２が単一のカスタマによって用いられることがある。しかしながら、通話呼フロー・サービス１３２は、複数のカスタマによって利用されることを許可するように機能する。通話呼サービス１３２について指定される着信通話呼は、ＳＩＰプロキシのようなシグナリング・サーバから通話呼サービス１３２によって受け取ることができる。以下にさらに説明する。通話呼サービス１３２のメディア・プロセッサ２４０は、通話呼を処理するように機能することができ、また、例えば、音声・ファイルから他のメディア形式への変換を提供し、または通話呼を処理するのに所望の他のメディア処理を実行することができる。
【００２６】
[031]  通話呼マネージャ２３５は、各通話呼のために提供することができ、次いで、メディア・プロセッサ２４０は、通話呼に関する情報を通話呼マネージャ２３５に提供することができる。特に、通話呼マネージャ２３５は、いくつかの実施形態では、発信された番号を用いて被発信番号に関する情報を受け取ることができる。いくつかの実施形態において、アウトバンドのコールのために、カスタマは、発信するのに使用されるＳＩＰデバイスに基づいて通話呼を識別することができる。発信された番号またはＳＩＰデバイスに基づいて、通話呼マネージャ２３５は、例えば、ダイヤルプランおよび／またはの相互音声応答システムと関連付けられた１つ以上の音声・ファイルといったカスタマ特有のリソースを、発信された番号と関連づけられたカスタマについてロードすることができる。ダイヤルプランおよび／または音声・ファイルは、通話呼センタ・データベース２５５、クラウド・ストレージ２６５もしくはその双方に、または、キャッシュまたは通話呼マネージャ２３５にアクセス可能なほかの位置に格納することができる。
【００２７】
[032]  ダイヤルプランは、通話呼対処法(call treatment)とも称され、特定のカスタマおよび／または特定の電話番号に関連付けられる通話呼の処理に関する如何なる様々な情報をも含むことができる。この情報は、例えば、カスタマの全てのエージェントが（例えば通話呼をキューに送ることによって）ビジー状態であるときに、いつ通話呼を４桁(four-digit)または他の内線のダイヤル設定(preference)などのボイスメール・システムに転送するかについてのその通話呼の扱い方を含むことができる。いくつかの実施形態において、ダイヤルプランは、音声処理リソースが通話呼にアタッチすることを指定することができる。ダイヤルプランはまた、通話呼が公衆電話網を通じて後方にルーティングされるように指定することもできる。このように、いくつかの実施形態における本システムは、音声処理リソースを、既存の通話呼センタおよび／またはＰＢＸに対して、いくつかの実施例での新しい機器の設置を必ずしも要求する必要なく提供することができる。インバウンドであれアウトバウンドであれ、ダイヤルプランは、通常、通話呼を発生および適用できる特定のルールやアクションを参照する。ダイヤルプランは、スクリプト、音声ｘｍｌ、ソフトウェア、設定パラメータ、またはルールおよびアクションを特定するこれらの組み合わせを含むことができる。取り出した情報はキャッシュ（図２に示されない）に格納でき、通話呼マネージャ２３５は、いくつかの実施形態の遠隔データベースを検査する前に、キャッシュにアクセスしてカスタマ特有のデータをロードする。通話呼マネージャ２３５によってロードされるカスタマに特有のテレフォニ・リソースは、次いでこの通話呼を実施するために用いることができる。
【００２８】
[033]  いくつかの実施形態において、通話呼フロー・サービスは、ごく最近のバージョンのダイヤルプランがキャッシュに格納されるのを検証することができる。いくつかの実施形態において、最も頻繁に使用されたダイヤルプラン、または使用についての閾値量を超えたダイヤルプランは、最初に新規な通話呼フロー・サービスのキャッシュに格納することができる。このように、いくつかのダイヤルプランのアクセス・タイムは、有利に節約することができる。各通話呼に特有のダイヤルプランをロードすることによって、ダイヤルプランはコンフリクトしている設定を有することもでき、また、通話呼を処理するのになおも用いることができる。例えば、１のカスタマは、内線１２３４が１つのテレフォニ・リソース（例えば電話、通話呼キューまたは会議の機能であるが、これに限定されない）に関連付けられることを指定するダイヤルプランを有することができる一方、別のカスタマは、内線１２３４が異なるテレフォニ・リソースに接続されることを指定するダイヤルプランを有することができる。ダイヤルプランは通話呼当たりに基づいて通話呼フロー・サービスによってロードおよび利用することができるので、表面上コンフリクトするダイヤルプランであっても適切に実施することができる。処理中の通話呼に関する音声情報は、メディア・プロセッサ２４０に提供することができ、また、このメディア・プロセッサ２４０は、通話呼の間に発生するデータまたは通話呼に関する他のデータをローカル・ストレージ２５０に書き込むことができる。いくつかの実施形態において、レコーダ２４５は、通話呼を記録し、それをローカル・ストレージ２５０からクラウド・ストレージ２６５にアップロードすることができる。他のコンポーネントは、図１の他の音声処理リソース１３８について実施するために所望のとおり提供することができる。
【００２９】
[034]  セッション・マネージャ３０は、通話呼フロー・サービス１３２によって処理される通話呼をモニタする。すなわち、セッション・マネージャ２３０は、メディア・プロセッサ２４０および／または通話呼マネージャ２３５，２３６によって処理される通話呼をモニタする。セッション・マネージャ２３０は、通話呼センタ制御サービス１３０と通信して、処理中の通話呼の数といった、通話呼フロー・サービス１３２に関するステータス情報を提供する。通話呼マネージャ２３５，２３６、メディア・プロセッサ２４０およびセッション・マネージャ２３０間の通信は、プロセス間通信（ＩＰＣ）といったいかなる適切なソフトウェア・プロトコルをも使用して実施することができる。
【００３０】
[035]  このように、通話呼フロー・サービス１３２は、ダイヤルされた番号、ダイヤルプランまたは音声ファイルといった、ダイヤルされた番号に基づくカスタマ特有のリソースをロードし、およびそのロードされたリソースを用いて通話呼を処理することができる。いかなる数の通話呼をも、通話呼フロー・サービス１３２は処理することができ、また、１つの通話呼マネージャが各通話呼のために提供することができる。各通話呼マネージャは、異なる通話呼についての異なるカスタマ特有リソースをロードすることができ、したがって、通話呼フロー・サービス１３２はマルチ・テナントな通話呼処理ソリューションを提供することができる。
【００３１】
[036]  上記一般的に説明したとおり、通話呼制御サービス１３０は、クラウド・コンピューティング通話呼センタ１０５に対し、追加的な仮想インスタンスの動的な割当および割当解除を許容する。図２を参照すると、通話呼制御サービス１３０は、シグナリング・サーバ２１５を含むことができる。いかなる数のエージェントまたは発信側でも、インターネットまたは他のネットワーク接続を介してシグナリング・サーバ２１５に接続することができる。シグナリング・サーバ２１５は、クラウド・コンピューティング通話呼センタ１０５を用いて、カスタマ、エージェントおよび／またはエージェントに対してユーザ登録を維持することができる。シグナリング・サーバ２１５は、通話呼の音声を処理することができないが、受け取った通話呼のシグナリング・パラメータを処理することができる。通話呼の音声は、上述した通話呼フロー・サービスのメディア・プロセッサ２４０によって処理することができる。しかしながら、シグナリング・サーバ２１５は、最初に通話呼を受け取り、受け取った通話呼をクラウド・コンピューティング通話呼センタ１０５で選択された通話呼フロー・サービスに分配する(distribute)ことができる。適切な通話呼フロー・サービスは、さまざまな方法で選択することができる。いくつかの実施形態において、通話呼がシグナリング・サーバ２１５によって受け取った時間において最も利用されていない通話呼フロー・サービスを用いることができる。他の実施態様において、異なる時間に測定した最も利用されていない通話呼フロー・サービスを用いることができる。他の実施態様において、シグナリング・サーバ２１５は、着信した通話呼を、通話呼フロー・サービスが容量または閾値に達するまで同一の通話呼フロー・サービスにルーティングすることができ、次いで、他の通話呼フロー・サービスを後続の通話呼のために選択することができる。図２の実施形態において、シグナリング・サーバ２１５は、着信した(incoming)通話呼を最も利用されていない通話呼フロー・サービスにルーティングするように構成することができる。また、通話呼フロー・サービス１３２は、クラウド・コンピューティング通話呼センタ１０５において最も利用されていない通話呼フロー・サービスであってもよい。したがって、着信する通話呼は、シグナリング・サーバ２１５によってメディア・プロセッサ２４０に提供することができる。
【００３２】
[037]  上記のように、セッション・マネージャ２３０が通話呼フロー・サービス１３２によって処理される通話呼をモニタできることを思い出す。同様に、他の通話呼フロー・サービスについての他のセッション・マネージャは、それら各々のサービスによって処理される通話呼をモニタすることができる。セッション・マネージャは、処理中の通話呼の数といった通話呼フロー・サービスのそれぞれの負荷に関する情報を、通話呼フロー制御サービス１３２に対して提供することができる。この情報は、例えば、ステータス・モニタ２０５に提供することができる。ステータス・モニタ２０５はまた、通話呼またはサービスの更新に関するセッション・マネージャ２３０から情報を受け取ることもできる。ステータス・モニタ２０５は、受け取った情報を通話呼センタ・データベース２５５、またはステータス・モニタにアクセス可能な他のストレージに格納することができる。
【００３３】
[038]  ステータス・モニタ２０５は、通話呼フロー・コントローラ２２０と通信することができ、通話呼フロー・サービス１３２および他の通話呼フロー・サービスに関する負荷情報を、通話呼フロー・コントローラ２２０に対して提供する。他の実施態様において、通話呼フロー・コントローラ２２０は、通話呼フロー・サービス１３２、またはクラウド・コンピューティング通話呼センタ１０５の他の通話呼フロー・サービスから直接的に負荷情報を受け取ることができる。通話呼フロー・コントローラ２２０は、したがって、クラウド・コンピューティング通話呼センタ１０５における１つ以上の通話呼フロー・サービスへの負荷をモニタすることができる。通話呼フロー・コントローラ２２０は、各通話呼フロー・サービスごとの負荷情報を、シグナリング・サーバ・データベース２６０に格納することができる。負荷情報は、要求されるのと同頻度で更新することができる。通話呼フロー・コントローラ２２０は、コマンドをシグナリング・サーバ２１５に提供することができ、データベースの更新に続くシグナリング・サーバ・データベース２６０内の情報を問い合わせる。シグナリング・サーバ・データベース２６０は、例えば、シグナリング・サーバ２１５の構成として実装することができる。シグナリング・サーバ２１５は、したがって、シグナリング・サーバ・データベース２６０に格納される負荷情報を問い合わせることができ、また、どの通話呼フロー・サービスが次に通話呼を受け取るべきかを決定するために負荷情報を利用することができる。他の実施態様において、他のメッセージング・プロトコルは、負荷情報を伝達するために、シグナリング・サーバ２１５と通話呼フロー・コントローラ２２０の間で使用することができる。
【００３４】
[039]  通話呼フロー・コントローラ２２０は、したがって、クラウド・コンピューティング通話呼センタ１０５における通話呼フロー・サービスに関する負荷情報を受け取る、および／またはアクセスすることができる。通話呼フロー・コントローラ２２０はまた、負荷情報に基づいて通話呼フロー・サービスの割当または割当解除を行うこともできる。例えば、通話呼フロー・サービスの数が高い閾値に対応する負荷あるいはそれ以上であるときに、通話呼フロー・コントローラ２２０は、新規な通話呼フロー・サービスをクラウド・コンピューティング通話呼センタ１０５に割り当てることができる。割当は、通話呼フロー・コントローラ２２０自体によって実行することができ、または、通話呼フロー・コントローラ２２０は、商用のクラウド・プロバイダにより提供されるＡＰＩといったクラウド・プロバイダ・インタフェース２７０と通信することができ、その結果、追加のインスタンスをクラウド・コンピューティング通話呼センタ１０５に割り当てる。
【００３５】
[040]  同様に、クラウド・コンピューティング通話呼センタ１０５が低い閾値以下の負荷で動作しているとき、通話呼フロー・コントローラ２２０は、クラウド・コンピューティング通話呼センタ１０５から１つ以上の通話呼フロー・サービスの割当解除を行うことができる。特定の通話呼フロー・サービスが割り当てられることになること、およびどの着信呼もが割当解除した通話呼フロー・サービスにルーティングされることがないことについての指示(indication)は、シグナリング・サーバ２１５に提供することができるか、シグナリング・サーバ・データベース２６０に格納することができる。一旦通話が完了すると、通話呼フロー・サービスは、クラウド・コンピューティング通話呼センタ１０５から割当てを解除される。この割当解除は通話呼フロー・コントローラ２２０自体によって実行することができ、または、通話呼フロー・コントローラ２２０が、１つ以上のインスタンスの割当解除をするためにクラウド・プロバイダ・インタフェース２７０と通信することができる。一般的に、いくつかの実施形態において、最も古い通話呼フロー・サービスが最初に割当解除することになり、それはメモリ・リークを有利に削減することができ、また、システムの安定性を増すことができる。割当解除の間、通話呼フロー・サービス自体においてローカルに格納したデータは、クラウド・ストレージ２６５にアップロードすることができる。すなわち、例えば、通話呼フロー・サービス１３２が、通話呼フロー・コントローラ２２０またはクラウド・プロバイダ・インタフェース２７０から割当解除の指示を受け取ると、ローカル・ストレージ２５０または通話呼フロー・サービス１３２にローカルな他のストレージに格納されたデータがクラウド・ストレージ２６５にアップロードされることができる。このように、データは、クラウド・コンピューティング通話呼センタ１０５における他の通話呼フロー・サービスまたは通話呼制御サービスにアクセス可能とすることができる。更に、イベント・データといったいかなる報告情報をも、セッション・マネージャ２３０によって、割当解除の指示に応じてステータス・モニタ２０５に提供することができる。このように、ストレージおよび報告の情報は、通話呼フロー・サービス１３２から転送することができ、通話呼フロー・サービス１３２は安全に割当解除される。
【００３６】
[041]  通話呼フロー制御サービス１３０はまた、１つ以上の自動着信分配（ＡＣＤ）２１０を含むこともできる。ＡＣＤは、この技術分野で公知のように、特定のカスタマのエージェントを待ち構えている１つ以上の通話呼をキューングするように機能することができる。ＡＣＤ２１０は、各カスタマごとに仮想キューを維持することができ、このキューに関するステータス情報をステータス・モニタ２０５に提供することができる。ＡＣＤ２１０は、例えば通話呼フロー・サービス１３２といった適切な通話呼フロー・サービスに対し、キューからの発信側(caller)を提供することができる。しかしながら、ＡＣＤ２１０は、いくつかの実施形態において、例えば図２に示すように、通話呼フロー・サービス１３２の一部でなくてもよく、複数の通話呼フロー・サービスと通信することができる。このように、キューイングされたユーザは、所望のとおり複数の通話呼フロー・サービス全体に分散することができる。同様に、アクティブ状態でカスタマにサービス提供しているエージェントは、複数の通話呼フロー・サービス全体に分散することができる。そして、例えば、ＡＣＤ２１０は、適切なエージェント１５０が通話呼に対処するために利用できるかどうかを決定するために、シグナリング・サーバ・データベース２６０にアクセスすることができる。適切なエージェントが利用可能でない場合、ＡＣＤ２１０は、通話呼フロー・サービス１３２と通信して、維持している音楽を再生することにより、またはカスタマのダイヤルプランで特定されるほかのアクションにより、通話呼を維持する。適切なエージェントが利用可能となった場合、ＡＣＤ２１０は、通話呼フロー・サービス１３２と通信することができ、その利用可能なエージェントに通話呼をルーティングする。ＡＣＤ２１０はクラウド・コンピューティング通話呼センタにおける一部または全部の通話呼フロー・サービスと通信することができるので、ＡＣＤ２１０は共用リソースであり、また、各通話呼フロー・サービスごとに複製される必要がない。さらに、ＡＣＤ２１０は多くのカスタマ間で分配することができ、各々がそれら自身のキューを維持する。すなわち、ＡＣＤ２１０は、エージェントを待ち構えている発信側の複数のキューを維持することができる。要約すると、いくつかの実施形態において、複数のＡＣＤがあり、各ＡＣＤは複数の通話呼フロー・サービスにサービスを提供することができる。さらには、各ＡＣＤは、通話呼制御サービスと別個に実装することができる。
【００３７】
[042]  通話呼フロー制御サービス１３０はまた、管理ツール２２５を含むこともできる。管理ツール２２５は、カスタマまたは他のエンティティがクラウド・コンピューティング通話呼センタ１０５を管理者となる(administer)ことを許可する。例えば、エージェントを追加するために、閾値を変更するといった通話呼フロー・コントローラ２２０によって実施される負荷バランシング処理を管理し、通話呼試験を行い、もしくは、これに限定されないがダイヤルプラン、双方向音声応答のサービスおよび構成、音声アセット、ならびに他のテレフォニ・リソースといった、カスタマに特有のリソースを変更または追加する。管理ツール２２５は、ウェブ・サービスとして実装することができ、また、仮想インスタンスをクラウド・コンピューティング通話呼センタ１０５に追加するためにクラウド・プロバイダ・インタフェース２７０と通信することもできる。
【００３８】
[043]  追加の特徴をクラウド・コンピューティング通話呼センタ１０５に提供することができ、図１の仮想インスタンス１２０、１２２および１２４の一部または全部にアクセス可能とすることができる。この追加の特徴は、これに限定されないが、例えば音声認識または感情認識といった通話呼の間に発生したデータを操作し、または相互作用するためのいかなる処理をも実質的に含むことができる。このように、クラウド・コンピューティング通話呼センタ１０５のいかなるカスタマもが、各通話呼フロー・サービスごとに特有の特徴を必要とすることなくサービスを利用することができる。
【００３９】
[044]  図３は、本発明の実施形態による、クラウド・コンピューティング通話呼センタから仮想インスタンスの割当および割当解除を行うのに用いることができる例示のデータについての概略図である。データは、例えば、図２のシグナリング・サーバ・データベース２６０に、または、通話呼フロー・コントローラおよび／またはシグナリング・サーバ２１５にアクセス可能な他の位置に格納することができる。負荷バランシング・パラメータは、表３０５に格納することができる。負荷バランシング・パラメータは、ベースライン容量３０７を含むことができる。ベースライン容量３０７は、図３に示した実施形態での２５０つの通話呼に等しいが、いかなる適切な数をも用いることができる。ベースライン容量３０７は、いくつかの実施形態において異なる通話呼フロー・サービスに次の着信呼を提供する前に、単一の通話呼フロー・サービスによって扱われることになる通話呼の数を参照する。ベースライン容量は、すべての利用可能な通話呼フロー・サービスがベースライン容量で利用されるまで、使用することができる。ベースライン容量３０７は、上記の高い閾値としてサービス提供することができる。
【００４０】
[045]  サージ容量３１０はまた、特定され格納されることもできる。サージ容量３１０は、すべての利用できる通話呼フロー・サービスがベースライン容量以上であるときに、単一の通話呼フロー・サービスによって扱われる通話呼の数を参照する。サージ容量(surge capacity)３１０は、図３に示した実施形態では３００個の通話呼であるが、いかなる適切な数をも用いることができる。サージ容量３１０はまた、上記の高い閾値としてサービス提供することもできる。新規なサーバを始動するために必要な時間３１５を格納することもできる。時間は、図３の実施形態では９０秒であるが、新しく割り当てられた仮想インスタンス上の通話呼フロー・サービスをセットアップするために必要な時間に従って変えることができる。時間は、新規な仮想インスタンスが新規な通話呼にサービス提供するのに利用可能であるときに考慮することができる。さらに以下に説明する。未使用の通話呼フロー・サービスを削除する前の時間３２０もまた格納することもできる。時間は、図３の実施形態では３００秒であるが、いかなる数をも用いることができる。また、時間は、通話呼フロー・コントローラまたは通話呼の到着間レート(inter-arrival rate)に基づく他のシステム・コンポーネントによって、動的に算出することができる。
【００４１】
[046]  現在負荷の表３２５をまた格納することもできる。現在負荷の表３２５は、クラウド・コンピューティング通話呼センタの現在負荷３２７を特定することができ、その時点における８０８３個の通話呼について図３に示される。現在負荷３２７は、例えば、図２の通話呼フロー・コントローラ２２０によって報告することができる。現在負荷の表３２５はまた、最大ベースライン負荷３３０を格納することもできる。最大ベースライン負荷３３０は、図３に示した実施形態では７５００個の通話呼であり、そして、最大ベースライン負荷３３０は、通常は、ベースライン容量３０７によって増やされる利用可能な通話呼フロー・サービスの数に等しくなる。最大総負荷３３５をまた、格納することもできる。最大総負荷３３５は、図３に示した実施形態での９０００個の通話呼であり、通常は、サージ容量３１０によって増やされる利用可能な通話呼フロー・サービスの数に等しい。動作中(active)の通話呼フロー・サービス３４０の総数をまた、格納することもでき、図３に示した実施形態では３０個に等しい。動作中の通話呼フロー・サービス３４０の総数は、クラウド・コンピューティング通話呼センタにおいて利用可能な通話呼フロー・サービスの数を反映する。不足サービス(service shortage)３４２もまた、格納することもできる。不足サービス３４２は、通常、現在負荷３２７を最大ベースライン負荷３３０に等しいかそれ以下にするために必要となる、追加の呼フロー・サービスの数に等しい。不足サービス３４２は、図３の実施形態では３個の通話呼フロー・サービスである。何故ならば、現在負荷３２７は最大ベースライン負荷を５８３超える通話呼であり、そして、サービス当たり２５０個の通話呼ベースライン容量での３個の追加の通話呼フロー・サービスを十分に増加させて、現在負荷３２７に適応するからである。
【００４２】
[047]  図３に別個の表として示したものの、負荷バランシング・パラメータ３０５および現在負荷３２５の表は結合することができる。いくつかの実施形態において、示した項目(entry)の全てが各表に存在してもよいというわけではなく、いくつかの実施形態では、追加パラメータを含めることができる。図２の通話呼フロー・コントローラ２２０は、現在負荷３２７および動作中の全ての通話呼フロー・サービス３４０を含むがこれに限定されない表３０５および３２５のパラメータを更新することができる。管理ツール２２５はまた、そのベースライン容量３０７、サージ容量３１０、新規な通話呼フロー・サービス３１５を開始する時間、および通話呼フロー・サービス３２０の未使用通話呼を削除する前の時間を含むがこれに限定されない、表３０５および３２５の値を更新することもできる。
【００４３】
[048]  動作中サービスの表３５０をまた、格納することもできる。動作中サービスの表３５０は、ファースト・イン・ファースト・アウトの表とすることができる。但し、他の実施態様を用いることができる。動作中サービスの表３５０は、各利用可能な通話呼フロー・サービスについての識別子と通話呼フロー・サービスによって処理される通話呼の数を提供する。例えば、０―２９と番号付けされた通話呼フロー・サービスが、各通話呼フロー・サービスが取り扱っている通話呼の数とともに、図３に示される。図３に示すように、０−１０で特定される通話呼フロー・サービスは、３００個の通話呼のサージ容量で動作している。１１−１６、１８−１９、２１−２３および２５−２９で特定される通話呼フロー・サービスは、２５０個の通話呼のベース容量で動作している。シグナリング・サーバ２１５は、どこに次の着信呼をルーティングするべきかについて決定するために、動作中サービスの表３５０にアクセスすることができる。いくつかの実施形態において、次の着信呼は、ベースライン容量以下で、動作中サービスの表３５０で最も低いもの、例えば、図３の実施形態では通話呼フロー・サービスの符号１７に対してルーティングすることができる。２つの通話呼フロー・サービスがベースライン容量以下である場合、いくつかの実施形態では、表上で最も低い通話呼フロー・サービスを使用することができる。但し、他の実施態様が着信呼をルーティングするために用いることができる。例えば、通話呼は、図３の符号２４で特定される通話呼フロー・サービスのように、最少の数の通話呼の全体を有する通話呼フロー・サービスに、ルーティングすることができる。通常、新規の通話呼フロー・サービスは表３５０の最上部に追加することができ、また、ＦＩＦＯである表３５０の最下部から割当解除をすることができる。但し、他の実施態様を用いることができる。動作中サービスの表３５０は、図２の通話呼フロー・コントローラ２２０によって更新および維持することができる。
【００４４】
[049]  ビット・テーブル３５５は、シグナリング・サーバ２１５またはその他のキューイング処理を支援して適切な通話呼フロー・サービスに通話呼をルーティングするために格納することができる。ビット・テーブル３５５は、各利用可能な通話呼フロー・サービスの識別、および通話呼フロー・サービスがベースライン容量３５７かサージ容量３５９について利用可能かどうかの指標を含む。例えば、通話呼フロー・サービス１７，２０，２４は、図３のベースライン容量について利用可能とすることができ、その一方で、通話呼フロー・サービス１１−２９はサージ容量について利用可能とすることができる。シグナリング・サーバ２１５は、ビット・テーブル３５５にアクセスすることができ、直ちに、ベースライン容量について利用可能な最も低い。通話呼フロー・サービス、または、通話呼フローがベースライン容量について利用可能でない場合には、サージ容量について利用可能な最も低い通話呼フロー・サービスを特定して着信呼をルーティングする。指標は図３では「Ｙ」で示される。但し、「０」または「１」を含むいかなる指標をも用いることができる。
【００４５】
[050]  初期化されているサービスについての表３６０をまた格納することもできる。表３６０は、ファースト・イン・ファースト・アウトの表とすることができる。但し、他の実施態様を用いることができる。表３６０は、初期化されている通話呼フロー・サービスについての識別子、および通話呼フロー・サービスが初期化している時間量を含むことができる。どの通話呼フロー・サービスも初期化されていないときには、通話呼フロー・コントローラ２２０は、いくつかの実施形態において新規な通話呼フロー・サービスを初期化する処理を始めることができる。他の実施態様において、システムの負荷といった異なるトリガを用いることができ、第１の追加の通話呼フロー・サービスがいつ初期化されるべきかについて決定することができる。図３の実施例では、追加の通話呼フロー・サービス０は、初期化される最後の追加通話呼フロー・サービスが利用可能とされた８５秒前に、初期化され始めた。現在負荷３２７フィールドに示されるように、システムの負荷が、初期化されている通話呼フロー・サービスの数のベースライン容量を加えたベースライン負荷３３０を超過したときには、通話呼フロー・コントローラ２２０は追加の通話呼フロー・サービスの初期化を開始することができる。したがって、図３で、表３６０の追加の通話呼フロー・サービス１は、現在負荷が初期化した通話呼フロー・サービス０のベースライン容量を加えた最大ベースライン負荷を超過した１２秒前に初期化され始めた。同様に、追加の通話呼フロー・サービス２は、現在の負荷が初期化したサービス０および１の容量を加えた最大ベースライン容量を超過した２秒前に初期化され始めた。通話呼フロー・サービスの初期化が終了したときに、初期化された表３６０にあるサービスから削除され、動作中サービスの表３５０に追加されることができる。いくつかの実施形態において、例えば履歴上のシステム性能または負荷といった経験的データは、予測される将来の要求をサポートするのに追加の通話呼フロー・サービスを割り当てるべきか否かを決定するのに用いることができる。このように、システムの性能(capacity)は、システム負荷の増加に先立って増加することができる。同様に、経験的データは、通話呼フロー・サービスの割当解除をすべきかいか否かを決定するために用いることができる。
【００４６】
[051]  したがって、マルチ・テナントなクラウド・コンピューティング通話呼センタについてのシステムの実施例では、通話呼を処理するために用いる利用可能な通話呼フロー・サービスの数を調整するために負荷バランシングを利用することができるものと上記説明してきた。このまとめとして、クラウド・コンピューティング通話呼センタを動作する例示の方法について、これから説明する。
【００４７】
[052]  図４は、本発明の実施形態によるクラウド・コンピューティング通話呼センタにおいて通話呼をサービス提供する例示の方法について説明しているフローチャートである。ブロック４１０において、通話呼を受け取る。通話呼は、例えば、ＳＩＰプロトコルに従って受け取ることができる。ブロック４１５において、通話呼は、利用可能な通話呼フロー・サービスの負荷に少なくとも部分的に基づいて、利用可能な通話呼フロー・サービスに、ルーティングすることができる。
【００４８】
[053]  いくつかの実施形態において、通話呼フロー・サービスの割当および割当解除は、仮想インスタンスの割当および割当解除に対応する。いくつかの実施形態において、追加の通話呼フロー・サービスは、既存の仮想インスタンスに追加することができるか、または存続している仮想インスタンスから割当解除することができる。
【００４９】
[054]  図２のシグナリング・サーバ２１５は、ブロック４１５におけるルーティングを実行することができる。上記一般的に説明したように、最も低い負荷全体を有する通話呼フロー・サービスが選択されることができ、または、ベースライン容量以下の負荷を有する図３の動作中サービスの表３５０上の最も低い通話呼フロー・サービスが選択されることができる。すべての利用可能な通話呼フロー・サービスがベースライン容量以上のときは、サージ容量以下の最も低い負荷全体をもつ通話呼フロー・サービスを選択することができ、または、サージ容量以下の負荷を有する図３の動作中サービスの表３５０上の最も低い通話呼フロー・サービスを選択することができる。他の実施態様において、他の要因は、通話呼フロー・サービスを選択するのに用いることができる。ブロック４２０において、一旦通話呼が選択した通話呼フロー・サービスにルーティングされると、選択された通話呼フロー・サービスは、発信された番号に少なくとも部分的に基づいてカスタマ特有リソースをロードすることができる。ロードは、図２の通話呼マネージャ２３５によって実行することができ、上記に説明した。このように、単一の通話呼フロー・サービスは、複数のカスタマ向けに通話呼を扱うことができる。ブロック４２５において、通話呼は、ロードしたカスタマ特有リソースを用いて処理される。
【００５０】
[055]  図５は、本発明の実施形態による通話呼フロー・サービスの割当および割当解除についての例示的な方法を説明しているフローチャートである。ブロック５０５において、クラウド・コンピューティング通話呼センタの総負荷にアクセスすることができる。図２の通話呼フロー・コントローラ２２０は、シグナリング・サーバ・データベース２６０および通話呼センタ・データベース２５５内に格納された情報にアクセスすることによって、または、総負荷のステータス・モニタ２０５からの指標を受け取ることによって、総負荷にアクセスすることができる。通話呼フロー・コントローラ２２０は、いくつかの実施形態での利用可能な通話呼フロー・サービスによって報告される個々の負荷に基づいて、総負荷を計算することができる。ブロック５１０において、総負荷をベースライン負荷と比較することができる。図２の通話呼フロー・コントローラ２２０がこの比較を実行することができる。ベースライン負荷は、例えば図３の表３２５に格納することができる。現在負荷がベースライン負荷以上の場合、ブロック５１５で、新規な通話呼フロー・サービスが通話呼フロー・コントローラ２２０によって初期化されることになる。通話呼フロー・コントローラ２２０は、直接的に、上記に説明したようにクラウド・プロバイダ・インタフェースを通じて、新規な通話呼フロー・サービスの初期化を開始することができる。いくつかの実施形態において、現在負荷がすでに初期化されたいかなる通話呼フロー・サービスのベースライン容量をも加えたベースライン負荷を超過するときに、新規な通話呼フロー・サービスは初期化される。現在負荷がベースライン負荷以下である場合には、ブロック５２０において、１つ以上の通話呼フロー・サービスの割当解除をすることができる。いくつかの実施形態において、負荷に拘らず、最も古い通話呼フロー・サービスを割当解除することができる。いくつかの実施形態において、利用可能な通話呼フロー・サービスの負荷は、閾値時間以上またはそれと同等の時間の間未使用であったいかなる通話呼フロー・サービスをも識別するためにアクセスすることができる。閾値時間は、例えば、図３の表３０５に格納することができ、また、通話呼フロー・コントローラ２２０は、いくつかの実施例では低い閾値以下の負荷を有する通話呼フロー・サービスといったいかなる未使用の通話呼フロー・サービスをも識別するために動作中サービスの表３５０にアクセスすることができる。通話呼フロー・サービスが閾値時間と同等またはそれより長い時間の間未使用であった場合には、ブロック５２５において通話呼フロー・サービスを割当解除することができる。通話呼フロー・コントローラ２２０は、それ自身で通話呼フロー・サービスの割当解除をすることができ、または、クラウド・プロバイダ・インタフェースを通じて割当解除をすることができる。
【００５１】
[056]  したがって、クラウド・コンピューティング通話呼センタを提供するシステム及び方法について上記に説明してきた。通話呼フロー・サービスについて、初期化するさいに様々なカスタマについて構成することができ、また、通話呼の処理が完了するときに、一意のデータを格納しないと説明してきた。このように、動的スケールおよびマルチ・タレントは、クラウド・ベースのテレフォニ・システムにおいて提供することができる。クラウド・ベースのテレフォニ・システムのプロバイダは、したがって、処理パワーおよび消費されたストレージ容量に基づいてサービスの料金を払うことができ、ならびに、ピーク容量とは対照的な実際の使用に基づいてカスタマに課金することができる。
【００５２】
[057]  本発明の実施形態はまた、従来のＰＢＸ間にピア・ツー・ピアのテレフォニ通信を提供することもできる。上記説明したクラウド・コンピューティング通話呼センタは、例えば図２のＡＣＤ２１０のコンポーネントまたはメディア・プロセッサ２４０を含むことによって、それ自身でＰＢＸ機能を含むものであった。いくつかの実施形態では、従来のＰＢＸ機能を提供しないクラウド・テレフォニ・システムを提供することができる。
【００５３】
[058]  図６は、本発明の実施形態によるピア・ツー・ピアのクラウド・テレフォニ・システムを含むシステムの概略図である。ピア・ツー・ピアのクラウド・テレフォニ・システム６０５は、グローバル・ディレクトリ６１０、通話呼ディレクター６１５、通話呼履歴ログ６２０および請求モジュール６２５を含む。１つ以上のＲＴＰ６３０，６３２のルータを提供することができる。ＲＴＰルータ６３０，６３２は、通話呼を処理しないが、例えばＰＢＸ６４０，６４２といった異なるＰＢＸ間でトラフィックをルーティングすることができる。ピア・ツー・ピアのクラウド・テレフォニ・システム６０５を通じて通信をルーティングすることによって、ユーザは、公衆電話網６５０を回避することができる。
【００５４】
[059]  グローバル・ディレクトリ６１０は、ピア・ツー・ピアのクラウド・テレフォニ・サービスで登録した(enrolled)番号を格納することができる。登録された番号は、ピア・ツー・ピアのクラウド・テレフォニ・サービス６０５の通話呼ルーティング機能を利用することができる。通話呼ディレクター６１５は、グローバル・ディレクトリ６１０において登録される(registered)それらに対して、着信呼を照合することができる。その番号がサービスに登録されている場合、通話呼はＲＴＰルータのうち１つを経由することができる。その番号がサービスに登録されていない場合、通話呼は公衆電話網６５０を経由してルーティングすることができる。通話呼がＲＴＰルータ６３０，６３２の１つを経由してルーティングされる場合、通話呼の記録は、通話呼履歴６２０に格納され、また、請求モジュール６２５は通話呼履歴６２０に従ってカスタマに請求することができる。ピア・ツー・ピアのシステムの実施例として、いかなる種類のインターネットのようなネットワーク接続、およびＶｏＩＰのような適切な通話呼プロトコルをも使用して実施することができる。
【００５５】
[060]  図６に示される実施例では、ブロック６５５において、ユーザは、ＰＢＸ６４０を用いた番号１．９９９.５５５．１２１２へ発信することができる。ＰＢＸ６４０は、通話呼に関するデータをピア・ツー・ピアのクラウド・テレフォニ・システム６０５と通信することができ、また、通話呼ディレクターは、グローバル・ディレクトリ６１０にアクセスし、番号１．９９９.５５５．１２１２がグローバル・ディレクトリ６１０に登録されていると判断することができる。したがって、通話呼はＲＴＰルータ６３０に供給されることができ、ＲＴＰルータ６３０はＰＢＸ６４２へ番号に従って通話呼をルーティングすることができる。ブロック６６０において、１．９９９．５５５．１２１２でアクセス可能なピア・ツー・ピアのクラウド・テレフォニ・システム６０５のカスタマは、通話呼を受け取ることができる。
【００５６】
[061]  他の実施例では、ブロック６６５において、ユーザは、ＰＢＸ６４０を通じて１．９９９．９９９．１２３４にダイヤルすることができる。ピア・ツー・ピアのクラウド・テレフォニ・システム６０５は、グローバル・ディレクトリ６１０に対して番号を照合することができ、番号１．９９９.９９９．１２３４がピア・ツー・ピアのクラウド・テレフォニ・システム６０５に登録されていないと判断することができる。したがって、通話呼は、宛先のＰＢＸ６７０に公衆電話網６５０を経由してルーティングすることができる。ブロック６７５において、１．９９９．９９９．１２３４への通話呼が受け取られる。
【００５７】
[062]  したがって、ＰＢＸ６４０および６４２は、ピア・ツー・ピアのクラウド・テレフォニ・システム６０５に登録することができ、公衆電話網６５０を使用することなくピア・ツー・ピアのクラウド・テレフォニ・システム６０５によってサービス提供することができるかについて各着信呼ごとにピア・ツー・ピアのクラウド・テレフォニ・システム６０５と通信するように構成することができる。これにより、公衆電話網６５０を関連コストと共に迂回(bypass)することを可能にする。
【００５８】
[063]ピア・ツー・ピアのクラウド・テレフォニ・システム６０５は、通話呼フロー・サービスの割当および割当解除について、通常は上記のとおり、要求に応じてＲＴＰルータの割当および割当解除を動的に行うことができる。しかしながら、図６の実施例では、音声は、ピア・ツー・ピアのクラウド・テレフォニ・システム６０５によっては処理されない。いくつかの実施例において、通話呼データをルーティングするためのピア・ツー・ピアのクラウド・テレフォニ・システム６０５は、図１のクラウド・コンピューティング通話呼センタ１０５のようなクラウド・コンピューティング通話呼センタと組み合わせて、通話呼のサービス提供、および、ピア・ツー・ピアの通話呼データのルーティングの両方を行うために提供されることもある。
【００５９】
[064]  いくつかの実施形態において、ＲＴＰルータは、ＰＢＸ６４０からＰＢＸ６４２まで通話呼を接続することを必要としない。例えば、ピア・ツー・ピアのクラウド・テレフォニ・システム６０５は、ＰＢＸ６４２に直接ＰＢＸ６４０から通話呼を接続するために、ＮＡＴ通過(traversal)技術を利用することができる。
【００６０】
[065]  いくつかの実施形態において、ピア・ツー・ピアのテレフォニ・ソリューションは、ワイヤレス・キャリアおよび従来の公衆電話交換ネットワーク・プロバイダといった主要データ通信プロバイダ間での電話の移送を可能にすることができる。
【００６１】
[066]  上記のことから言うまでもなく、本発明の特定の実施形態について説明の目的で本願明細書において説明してきたが、さまざまな修正が本発明の趣旨と範囲から逸脱することなく行うことができるものである。
【図１】
0006054288.tif 000002
【図２】
0006054288.tif 000003
【図３】
0006054288.tif 000004
【図４】
0006054288.tif 000005
【図５】
0006054288.tif 000006
【図６】
0006054288.tif 000007