(58)【調査した分野】(Int.Cl.,DB名)
請求項17に記載の方法において、前記複数のソフトウェア・ベース・テレフォニ・スイッチがクラウド・コンピューティング環境で実装され、該ソフトウェア・ベース・テレフォニ・スイッチのそれぞれが、前記クラウド・コンピューティング環境の各仮想インスタンスにおいて実装される、方法。
請求項18に記載の方法において、追加のソフトウェア・ベース・テレフォニ・スイッチを割り当てるステップが、前記クラウド・コンピューティング環境における追加の仮想インスタンスを割り当てることを含む、方法。
請求項17に記載の方法において、追加のソフトウェア・ベース・テレフォニ・スイッチを割り当てるか、または前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも1つを割当解除するステップが、
前記総負荷が総ベースライン負荷値を超えたときに、少なとも1つの追加のフトウェア・ベース・テレフォニ・スイッチを初期化すること、および
前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも1つがある時間期間の通話呼についての閾値数未満で処理しているときに、前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち前記少なくとも1つを割当解除すること、
を含む、方法。
請求項17に記載の方法において、前記通話呼を前記複数のソフトウェア・ベース・テレフォニ・スイッチのうち少なくとも1つにルーティングするステップが、前記通話呼を、個々のベースライン負荷未満の個々の負荷を有する1つのソフトウェア・ベース・テレフォニ・スイッチ・スイッチにルーティングすることを含む、方法。
【発明を実施するための形態】
【0004】
[009] 本発明の実施形態について充分な理解を供するために、いくらかの詳細を以下に説明する。しかしながら、当業者にとって、本発明の実施形態について様々なこれら特定の詳細がなくとも実施され得ることは明らかである。いくつかの場合において、本発明について説明する実施形態を不要に不明瞭にすることを回避するために、公知のソフトウェア動作、サーバ・コンポーネント、回路、制御信号またはタイミング・プロトコルを詳細に示さなくてもよい。
【0005】
[010] 本発明の実施形態は、一般的に、クラウド・コンピューティング通話呼センタに関するものである。クラウド・コンピューティング通話呼センタの実施形態は、テレフォニ、PBXおよび通話呼センタの能力についてスケーラブルで動的な割り当てのためのマルチ・テナントなプラットフォームを提供する。この能力は、カスタマにとって経済性を改善して提供する。通常、本願明細書においてカスタマとは、発信される(called)ことができる1つ以上の電話番号に関連付けられたエンティティのことを言う。カスタマは、組織、人その他のコンピュータ・プログラム・プロセスでもよい。本発明の実施形態は、クラウド・コンピューティング環境内のソフトウェア・テレフォニ・スイッチの実装を含む。以前のテレフォニ・システムとは対照的に、このクラウド・コンピューティング通話センタの実施形態では、ソフトウェア・ベースのPBX、ダイヤルプラン、仮想的な双方向音声応答サービス(IVR)、および/または他のシステム・コンポーネントを特定の通話呼および/またはPBXに動的に割り当てることができる。このようにして、テレフォニ・コンポーネントの動的な割り当ては、1つの特定クライアントに対しリソースを専用化する必要を回避することができる。
【0006】
[011] さらに、本発明の実施形態は負荷バランシングを含み、需要が変化するにつれてサーバ容量の割り当ておよび割り当て解除を行うことができる。ハードウェア・リソース量は、処理パワーおよびメモリを含み、クラウド・コンピューティング通話呼センタの総負荷に基づいて、動的に調整することができる。通話呼処理に充てられるハードウェア・リソースは、それ故、通話呼量が変化するにつれ変化させることができる。したがって、通話呼センタ・プロバイダは、現在の通話呼量に対処するために必要な計算リソースを代償するだけでよく、予想されたピーク要求に対処するのに十分な専用の計算リソースの必要性を回避することができる。
【0007】
[012] クラウド・コンピューティング環境におけるソフトウェア・テレフォニ・スイッチの実装により、大規模で冗長的に配置したサーバを使用したテレフォニ機能の提供を可能にする。以下にさらに説明するように、ソフトウェア・テレフォニ・スイッチの各インスタンスは、少なくとも、カスタマに特有のテレフォニ・リソースが動的に割り当てることができるという理由で、多くのカスタマに対してサービス提供することができる。したがって、リソースについての動的スケーリングおよび動的割当は、数多くのカスタマに対する数多くの同時通話の処理を許容することができる。いくつかの実施形態では、何十または何百もの同時通話呼をも対処することができる。
【0008】
[013] 加えて、数多くの特徴を、クラウド・コンピューティング通話呼センタにおける一部または全部のカスタマに柔軟に提供することができる。特徴について、例えば、音声認識、話者認識および感情検知を含むことができる。特徴は、また、クラウド・コンピューティング環境において実施することもでき、また、複数のカスタマが要求により(on demand)利用することもできる。
【0009】
[014] 他の実施態様において、クラウド・コンピューティング通話呼センタの実施例では、公衆電話交換網を通過することなく、カスタマ対カスタマの通話呼を許容することができる。
【0010】
[015]
図1は、本発明の実施形態によるクラウド・コンピューティング通話呼センタを含むテレフォニ・システムの概略図である。クラウド・コンピューティング通話呼センタ105は、サーバ112,114,116を含むクラウド・コンピューティング・ハードウェア110の全体または一部に対して動作することができる。クラウド・コンピューティング通話センタは、1つ以上の仮想インスタンス120,122,124,126を含む。仮想インスタンス120のうちの1つは、通話呼制御サービス130を実施することができる。仮想インスタンス122,124,126は、通話呼フロー・サービス132,134,136をそれぞれ実行する。通話呼フロー・サービス132,134,136は、公衆電話網145を介した電話網発信側140またはインターネット発信側142、およびインターネット155を介したクラウド・コンピューティング・センタ105と通信するエージェント150の間で、通話呼についてサービス提供することができる。通話呼フロー・サービス132,134,136は、いかなる数の音声処理リソース138により提供されるサービスをも利用することができ、この音声処理リソース138は、クラウド・コンピューティング通話呼センタ105によって提供することができる。構成管理ツール160はまた、クラウド・コンピューティング通話呼センタ105の状況(aspect)を管理する(administer)ために設けることもできる。通常、以下にさらに説明するように、通話呼フロー・サービス132,134,136は、通話呼に対しカスタマ特有のテレフォニ・リソースを動的に割り当てることによって、複数のカスタマにサービス提供することができる。さらに、以下にさらに説明するように、通話呼制御サービス130は、クラウド・コンピューティング通話呼センタ105での通話呼の量をモニタすることができ、要求にしたがって余分な仮想インスタンスおよび/または余分な通話呼フロー・サービスの割当および割当解除を行うことができる。このように、クラウド・コンピューティング通話呼センタ105は、いくつかの実施形態において、現在の通話呼量に必要とされるのと同程度のクラウド・コンピューティング・ハードウェア110のみを利用することができる。
【0011】
[016] クラウド・コンピューティング通話呼センタ105は、パブリックまたはプライベートのクラウド・コンピューティング環境において実施することができる。アマゾンのEC2システムまたは他の類似のシステムといった商用のクラウド・コンピューティング環境を使用することができる。いくつかの実施形態では、商用のクラウド・コンピューティング環境の組合せを使用することができる。いくつかの実施例において、仮想インスタンスは、別々のクラウド・コンピューティング環境において生成することができるが、あたかもそれらの全てが同じクラウド・コンピューティング環境内で動作するかのように、同じように機能することができる。通常、クラウド・コンピューティング環境は、クラウド・コンピューティング・ハードウェア110を提供することができる。クラウド・コンピューティング・ハードウェア110は、任意の数のサーバ、または処理ユニットおよび電子ストレージのその他の配置を含むことができる。クラウド・コンピューティング環境はまた、クラウド・コンピューティング・ハードウェア110の部分上の、仮想インスタンス120,122,124,126といった複数の仮想インスタンスを走らせる能力を提供することもできる。特に、各仮想インスタンスは、一意のオペレーティング・システムおよびソフトウェア・スタックをハウジングすることができる物理的なサーバ内の論理パーティションとして実装することができる。したがって、各仮想インスタンス120,122,124,126は、命令と共にエンコードされるコンピュータ可読媒体の全部または一部を含み、当該命令が、クラウド・コンピューティング・ハードウェア110の1つ以上の処理ユニットに、仮想インスタンスが有する説明する機能を実行させる。多くの仮想インスタンスは、単一の物理的なサーバ内で動作中であってよい。いくつかの実施例において、クラウド・コンピューティング通話呼センタ105のオペレータは、走っている仮想インスタンスの数およびサイズにしたがって商用クラウド・コンピューティング・プロバイダに課金を行ってもよい。仮想インスタンスは、インスタンスに割り当てられる処理パワーおよびメモリ・サイズによって特定されるサイズを有することができ、そして、コストは処理パワーおよびメモリ・サイズに基づいてもよい。クラウド・コンピューティング環境は、仮想インスタンスのオンデマンドの割当を許容し、新規な仮想インスタンスによって、即座にまたは数秒あるいは数分内のうちに処理用に利用可能となる。同様に、仮想インスタンスは、動的な方法でクラウド・コンピューティング環境からの割当解除を行うことができる。クラウド・コンピューティング・ハードウェア上の仮想インスタンスを走らせ、物理的なハードウェアを仮想インスタンスに割り当てるための様々な実装は、公知技術であり、使用することができる。
【0012】
[017] クラウド・コンピューティング通話呼センタ105は、通常、通話呼制御サービス130を実施し、いかなる数の電話番号に関連付けられたエンティティへの通話呼をも受け取ることができる。通話呼制御サービス130は、通話呼を利用可能な通話呼フロー・サービスにルーティングする。このように、各通話呼制御サービス130は、通話呼を複数の通話呼フロー・サービスにルーティングすることができる。一旦通話呼が通話呼フロー・サービスにルーティングされると、通話呼制御サービス130は通話呼を処理することにもはや関与できない。各通話呼フロー・サービスは、各受け取った通話呼ごとに、適切なダイヤルプランまたはそのほかの通話呼の対処法(treatment)をロードすることができ、また、ロードしたダイヤルプランにしたがって通話呼を処理することができる。ダイヤルプランは、1つ以上の音声処理リソース138の使用を特定することができる。各通話呼フロー・サービスは、いくつかの実施例では、複数の電話番号を所有するエンティティに同時にサービス提供するための複数のダイヤルプランをロードすることができる。アナログ的なやり方では、アウトバンド・コールは、通話呼制御サービス130により、通話呼フロー・サービスの1つにルーティングすることができ、また、通話呼フロー・サービスは、アウトバンドの通話呼を作成するカスタマに関連付けられたダイヤルプランをロードすることができる。
【0013】
[018] 単一バージョンの通話呼制御サービス130だけを、いくつかの実施形態では提供する必要があり、複数の通話呼フロー・サービスに通話呼をルーティングする。いくつかの実施形態において、複数のバージョンの通話呼制御サービス130は、クラウド・コンピューティング通話呼センタ105において動作することができ、それはフォールト・トレランスおよび冗長性を有利に改善することができる。さらに、更新は自動的にその場で(on the fly)実施することができる。その一方で、通話呼制御サービス130は動作しており、ダイヤルプランまたはその他の通話呼の対処法(treatment)の情報、および次の通話呼を受け取るときの通話呼フロー・サービスによってロードされる新規の情報を変更することができる。さらにまた、後に説明するように、通話呼フロー・サービスは、通話呼の処理を中止するために割当解除を行うこともできる。
【0014】
[019] したがって、通話呼フロー・サービスに対する更新が望まれる場合、その更新を採用する新規な通話呼フロー・サービスは追加され、また、古い通話呼フロー・サービスはもはや新規の通話呼を受け取ることができず、通話呼が終了すると割当を解除することができる。さらにまた、通話呼制御サービス130への更新が望まれる場合、新規な通話呼制御サービス・プログラムは、通話呼制御サービス130と並列して開始することができ、また、その次の通話呼が新規な通話呼制御サービスにルーティングすることができる。通話呼制御サービス130は、次いで、もはや通話呼を処理しないときには、割当を解除することができる。このように、更新は、クラウド・コンピューティング通話呼センタ105が動作している間に発生させることができる。
【0015】
[020] 3つの仮想インスタンス120,122,124,126を
図1に示したが、しかしながら、いかなる数をも用いることができる、また、クラウド・コンピューティング通話呼センタ105に含まれる仮想インスタンスの数は、クラウド・コンピューティング通話呼センタ105への負荷にしたがって変更することができる。通話呼制御サービス130は、インスタンス120,122,124,126によって扱われる通話呼の数に基づいて、追加の仮想インスタンスの割当または割当解除をすることができる。すなわち、通話呼制御サービス130は、高い閾値および低い閾値を有するいくつかの実施形態でプログラムすることができる。既存のインスタンスによって扱われる多くの通話呼が高い閾値と等しいかまたはそれを超過する場合に、通話呼制御サービス130は1つ以上の追加インスタンスを追加することができる。既存のインスタンスによって扱われる通話呼の数が低い閾値に等しいかまたはこれより少ない場合、通話呼制御サービス130は1つ以上のインスタンスの割当てを解除することができる。通話呼制御サービスについて、以下に更に説明する。いくつかの実施形態において、1つ以上の追加の通話呼フロー・サービスを、現在の容量で命じられた数以上に提供することができる。この追加通話呼フロー・サービスは、負荷の急増に対処するのに有利なものとすることができる。
【0016】
[021] 3つの通話呼フロー・サービス132,134,136が
図1に示され、1つの通話呼フロー・サービスが仮想インスタンス122,124,126の各々上で走っている。いかなる数の通話呼フロー・サービスをも使用することができ、また、いくつかの実施形態では、2以上の通話呼フロー・サービスは単一の仮想インスタンスによって動作することができる。いくつかの実施形態において、通話呼制御サービス130は、通話呼フロー・サービス132,134,136の1つ以上と同一の仮想インスタンスにおいて実施することができる。仮想インスタンス、クラウド・コンピューティング・ハードウェアならびに通話呼制御サービスと通話呼フロー・サービスの分散についての配置は、全くフレキシブルであると理解されるのが通常である。各通話呼フロー・サービス132,134,136は、複数のカスタマについて通話呼に対処することができる。各通話呼フロー・サービス132,134,136は、双方向音声応答のようなテレフォニ・リソース、または音声処理リソースのようなカスタマ特有のリソースを通話呼動的に割り当てることができる。このように、通話呼フロー・サービス132,134,136は、マルチ・テナントなサービスとすることができる。
【0017】
[022] 通話呼フロー・サービス132,134,136は、1つ以上の共有音声処理リソース138を通話呼に適用することができる。音声処理リソース138は、例えば、音声認識、話者認識、テキストから音声への変換(text-to-speech)、感情検知、またはこれらの組み合わせを含むことができる。このように、音声認識のような特徴は、何百または何千もの通話呼までにも、同時に割り当てることができる。
【0018】
[023] いくつかの実施形態において、通話呼フロー・サービス132,134,136の1つ以上は、例えば相互接続されることによって結合されることができる。通話呼フロー・サービスは、音声処理リソース138のようなテレフォニ・リソースによって、相互接続に割り当てられることを可能にする。これにより、例えば、会議ブリッジが複数の通話呼フロー・サービス全体に動作することを可能にする。通話呼フロー・サービス間の接続は、要求(on demand)に基づいて動的に割り当てることもでき、また、ダイヤルプランによって特定されるために、増加または減少することができる。
【0019】
[024] 発信側140,142は、通常、1つ以上のエージェント150に発信しているエンティティまたは発信された電話番号に関連付けられたその他のエンティティを参照する。発信側140,142は、通常、電話、携帯電話またはインターネット対応(enabled)デバイスといった、発信する1つ以上のデバイスに関連付けられるがこれに限定されない。エージェント150は、例えばレストラン・チェーンまたは通話呼センタ・オペレータといった企業体に関連付けられることができる。発信側142は、ネットワーク155、例えば、ボイス・オーバIP(VoIP)を用いたインターネットを通じて通信することによって、発信を行うことができる。発信側140は、公衆電話網145を通じて通信することによって、発信を行うことができる。クラウド・コンピューティング通話呼センタ105は、インターネット155および/または公衆電話網145から通話呼を受け取り、発信側を着信呼エージェント150と接続する。発信されたエージェント150は、インターネット155を介して、または、いくつかの実施形態では公衆電話網145を介してアクセス可能とすることができる。PSTN145への多くの接続が存在することもある。アウトバンドの通話呼は、いくつかの実施形態では、下層のPSTNサービスの総コストに基づいてPSTN145への接続を通じて、外部にルーティングすることができる。クラウド・コンピューティング通話呼センタ105は、通話呼を受け取ることができ、通話呼は通話呼フロー・サービス132,134,136の1つによって処理することができる。通話呼フロー・サービスは、発信された番号と関連付けられる特定の通話呼の対処法(treatment)をロードし、および利用することができる。通話呼の対処法は、双方向音声応答または他の機能を含むことができる。このように、通話呼フロー・サービスは、ソフトウェアPBXとして機能することができる。
【0020】
[025] 構成管理ツール160を提供することができ、また、インターネット155を介してクラウド・コンピューティング通話呼センタ105に結合することができて、クラウド・コンピューティング通話呼センタ105のパラメータ、例えば、テレフォニ・リソースまたは発信された番号に関連付けられる1つ以上のエンティティに特有の利用可能なその他の構成、を管理し、または、上記した高低の閾値を調整することによるような、インスタンスの割当または割当解除を行うような方法を制御する。構成管理ツールは、インターネットを通じて利用可能とすることができ、1つ以上のダイヤルプランについて即時の修正を許容することができる。変更態様として、クラウド・コンピューティング通話呼センタ105の通話呼フロー・サービスを即時利用可能としてもよい。追加ツールはまた、カスタマに対し、カスタマの電話番号(1または複数)に関連付けられたキューイングされた通話呼をモニタする機能、およびキューイング性能、エージェント性能、エージェント状態などをモニタする機能を設けることもできるが、これに限定されない。
【0021】
[026]
図2は、本発明の実施形態によるクラウド・コンピューティング通話呼センタが有するいくつかのコンポーネントについての概略図である。通話呼制御サービス130および通話呼フロー・サービス132の例示のコンポーネントが示されている。通話呼制御サービス130は、ステータス・モニタ205、着信呼自動分配210、シグナリング・サーバ215を含むことができ、SIPプロキシ、通話呼フロー・コントローラ220および管理ツール225とすることができる。これらコンポーネントは、仮想インスタンス120および122に関連付けられたクラウド・コンピューティング・ハードウェア上のコンピュータ可読媒体に格納した実行可能命令として、実装することができる。実行可能命令は、クラウド・コンピューティング・ハードウェア110の1つ以上の処理ユニットによって実行することができ、説明の機能を提供する。別のコンポーネントとして示しているものの、コンポーネント205,210,215,220,225の一部もしくは全部は、物理的に別個のものでなくてもよく、また、いくつかの実施形態では同一のコンピュータ可読媒体上でエンコードされるソフトウェアコードで実装することができる。通話呼制御サービス130は、以下にさらに説明するように、クラウド・プロバイダ・インタフェース270と通信することができる。
【0022】
[027] 通話呼制御サービス130は、発信側140,142から通話呼を受け取る。通話呼制御サービス130は、適切な通話呼フロー・サービスを選択して、各通話呼を処理する。通話呼の選択は、通話呼制御サービス130が受け取る時またはその前後で、通話呼フロー・サービスの各々の負荷に基づくものとすることができる。次いで、通話呼フロー・サービス132のような選択された通話呼フロー・サービスは、発信された番号に基づいて、ダイヤルプランまたはその他のカスタマ特有のリソースをロードすることができる。通話呼フロー・サービス132は、次いで、ロードしたダイヤルプランにしたがって通話呼を処理することができる。これら機能の実装について、以下に詳細に説明する。
【0023】
[028] 通話呼フロー・サービス132は、セッション・マネージャ230、1つ以上の通話呼マネージャ235,236、メディア・プロセッサ240およびレコーダ245を含むことができる。通話呼フロー・サービス132はまた、ローカル・ストレージ250を含むこともできる。再度、これらのコンポーネントは、仮想インスタンス120と関連付けられるクラウド・コンピューティング・ハードウェアのコンピュータ可読媒体上に格納される実行可能命令として実装することができる。実行可能命令は、クラウド・コンピューティング・ハードウェア110が有する1つ以上の処理ユニットによって実行することができ、説明の機能を提供する。別個のコンポーネントとして示しているものの、コンポーネント230,235,236,240,245の一部もしくは全部は、物理的に別個のものでなくてもよく、また、いくつかの実施形態では同一のコンピュータ可読媒体でエンコードされるソフトウェアコードで実装することができる。いくつかの実施形態では、通話呼制御サービス130のコンポーネントと結合することができる。物理的な位置およびコンポーネントの実施がフレキシブルとすることができることが理解されるべきである。
【0024】
[029] 通話呼制御サービス130および通話呼フロー・サービス132は、通話呼センタ・データベース255、シグナリング・サーバ・データベース260、およびクラウド・ストレージ265に格納されるデータにアクセスすることができる。シグナリング・サーバ・データベース260は、SIPプロキシ・データベースとすることができる。別個のデータベースとして示しているものの、いくつかの実施例では、データベース255,260,265の一部または全部は結合することができる。データベース255,260,265の一部または全部は、
図1のクラウド・コンピューティング・ハードウェア110上に備わることができる。
【0025】
[030] 一般に上記説明したように、通話呼フロー・サービス132は、2以上のカスタマ、すなわち、発信された番号に関連づけられる2以上のエンティティが利用することができる。いくつかの実施形態において、または、特定の時間点において、通話呼フロー・サービス132が単一のカスタマによって用いられることがある。しかしながら、通話呼フロー・サービス132は、複数のカスタマによって利用されることを許可するように機能する。通話呼サービス132について指定される着信通話呼は、SIPプロキシのようなシグナリング・サーバから通話呼サービス132によって受け取ることができる。以下にさらに説明する。通話呼サービス132のメディア・プロセッサ240は、通話呼を処理するように機能することができ、また、例えば、音声・ファイルから他のメディア形式への変換を提供し、または通話呼を処理するのに所望の他のメディア処理を実行することができる。
【0026】
[031] 通話呼マネージャ235は、各通話呼のために提供することができ、次いで、メディア・プロセッサ240は、通話呼に関する情報を通話呼マネージャ235に提供することができる。特に、通話呼マネージャ235は、いくつかの実施形態では、発信された番号を用いて被発信番号に関する情報を受け取ることができる。いくつかの実施形態において、アウトバンドのコールのために、カスタマは、発信するのに使用されるSIPデバイスに基づいて通話呼を識別することができる。発信された番号またはSIPデバイスに基づいて、通話呼マネージャ235は、例えば、ダイヤルプランおよび/またはの相互音声応答システムと関連付けられた1つ以上の音声・ファイルといったカスタマ特有のリソースを、発信された番号と関連づけられたカスタマについてロードすることができる。ダイヤルプランおよび/または音声・ファイルは、通話呼センタ・データベース255、クラウド・ストレージ265もしくはその双方に、または、キャッシュまたは通話呼マネージャ235にアクセス可能なほかの位置に格納することができる。
【0027】
[032] ダイヤルプランは、通話呼対処法(call treatment)とも称され、特定のカスタマおよび/または特定の電話番号に関連付けられる通話呼の処理に関する如何なる様々な情報をも含むことができる。この情報は、例えば、カスタマの全てのエージェントが(例えば通話呼をキューに送ることによって)ビジー状態であるときに、いつ通話呼を4桁(four-digit)または他の内線のダイヤル設定(preference)などのボイスメール・システムに転送するかについてのその通話呼の扱い方を含むことができる。いくつかの実施形態において、ダイヤルプランは、音声処理リソースが通話呼にアタッチすることを指定することができる。ダイヤルプランはまた、通話呼が公衆電話網を通じて後方にルーティングされるように指定することもできる。このように、いくつかの実施形態における本システムは、音声処理リソースを、既存の通話呼センタおよび/またはPBXに対して、いくつかの実施例での新しい機器の設置を必ずしも要求する必要なく提供することができる。インバウンドであれアウトバウンドであれ、ダイヤルプランは、通常、通話呼を発生および適用できる特定のルールやアクションを参照する。ダイヤルプランは、スクリプト、音声xml、ソフトウェア、設定パラメータ、またはルールおよびアクションを特定するこれらの組み合わせを含むことができる。取り出した情報はキャッシュ(
図2に示されない)に格納でき、通話呼マネージャ235は、いくつかの実施形態の遠隔データベースを検査する前に、キャッシュにアクセスしてカスタマ特有のデータをロードする。通話呼マネージャ235によってロードされるカスタマに特有のテレフォニ・リソースは、次いでこの通話呼を実施するために用いることができる。
【0028】
[033] いくつかの実施形態において、通話呼フロー・サービスは、ごく最近のバージョンのダイヤルプランがキャッシュに格納されるのを検証することができる。いくつかの実施形態において、最も頻繁に使用されたダイヤルプラン、または使用についての閾値量を超えたダイヤルプランは、最初に新規な通話呼フロー・サービスのキャッシュに格納することができる。このように、いくつかのダイヤルプランのアクセス・タイムは、有利に節約することができる。各通話呼に特有のダイヤルプランをロードすることによって、ダイヤルプランはコンフリクトしている設定を有することもでき、また、通話呼を処理するのになおも用いることができる。例えば、1のカスタマは、内線1234が1つのテレフォニ・リソース(例えば電話、通話呼キューまたは会議の機能であるが、これに限定されない)に関連付けられることを指定するダイヤルプランを有することができる一方、別のカスタマは、内線1234が異なるテレフォニ・リソースに接続されることを指定するダイヤルプランを有することができる。ダイヤルプランは通話呼当たりに基づいて通話呼フロー・サービスによってロードおよび利用することができるので、表面上コンフリクトするダイヤルプランであっても適切に実施することができる。処理中の通話呼に関する音声情報は、メディア・プロセッサ240に提供することができ、また、このメディア・プロセッサ240は、通話呼の間に発生するデータまたは通話呼に関する他のデータをローカル・ストレージ250に書き込むことができる。いくつかの実施形態において、レコーダ245は、通話呼を記録し、それをローカル・ストレージ250からクラウド・ストレージ265にアップロードすることができる。他のコンポーネントは、
図1の他の音声処理リソース138について実施するために所望のとおり提供することができる。
【0029】
[034] セッション・マネージャ30は、通話呼フロー・サービス132によって処理される通話呼をモニタする。すなわち、セッション・マネージャ230は、メディア・プロセッサ240および/または通話呼マネージャ235,236によって処理される通話呼をモニタする。セッション・マネージャ230は、通話呼センタ制御サービス130と通信して、処理中の通話呼の数といった、通話呼フロー・サービス132に関するステータス情報を提供する。通話呼マネージャ235,236、メディア・プロセッサ240およびセッション・マネージャ230間の通信は、プロセス間通信(IPC)といったいかなる適切なソフトウェア・プロトコルをも使用して実施することができる。
【0030】
[035] このように、通話呼フロー・サービス132は、ダイヤルされた番号、ダイヤルプランまたは音声ファイルといった、ダイヤルされた番号に基づくカスタマ特有のリソースをロードし、およびそのロードされたリソースを用いて通話呼を処理することができる。いかなる数の通話呼をも、通話呼フロー・サービス132は処理することができ、また、1つの通話呼マネージャが各通話呼のために提供することができる。各通話呼マネージャは、異なる通話呼についての異なるカスタマ特有リソースをロードすることができ、したがって、通話呼フロー・サービス132はマルチ・テナントな通話呼処理ソリューションを提供することができる。
【0031】
[036] 上記一般的に説明したとおり、通話呼制御サービス130は、クラウド・コンピューティング通話呼センタ105に対し、追加的な仮想インスタンスの動的な割当および割当解除を許容する。
図2を参照すると、通話呼制御サービス130は、シグナリング・サーバ215を含むことができる。いかなる数のエージェントまたは発信側でも、インターネットまたは他のネットワーク接続を介してシグナリング・サーバ215に接続することができる。シグナリング・サーバ215は、クラウド・コンピューティング通話呼センタ105を用いて、カスタマ、エージェントおよび/またはエージェントに対してユーザ登録を維持することができる。シグナリング・サーバ215は、通話呼の音声を処理することができないが、受け取った通話呼のシグナリング・パラメータを処理することができる。通話呼の音声は、上述した通話呼フロー・サービスのメディア・プロセッサ240によって処理することができる。しかしながら、シグナリング・サーバ215は、最初に通話呼を受け取り、受け取った通話呼をクラウド・コンピューティング通話呼センタ105で選択された通話呼フロー・サービスに分配する(distribute)ことができる。適切な通話呼フロー・サービスは、さまざまな方法で選択することができる。いくつかの実施形態において、通話呼がシグナリング・サーバ215によって受け取った時間において最も利用されていない通話呼フロー・サービスを用いることができる。他の実施態様において、異なる時間に測定した最も利用されていない通話呼フロー・サービスを用いることができる。他の実施態様において、シグナリング・サーバ215は、着信した通話呼を、通話呼フロー・サービスが容量または閾値に達するまで同一の通話呼フロー・サービスにルーティングすることができ、次いで、他の通話呼フロー・サービスを後続の通話呼のために選択することができる。
図2の実施形態において、シグナリング・サーバ215は、着信した(incoming)通話呼を最も利用されていない通話呼フロー・サービスにルーティングするように構成することができる。また、通話呼フロー・サービス132は、クラウド・コンピューティング通話呼センタ105において最も利用されていない通話呼フロー・サービスであってもよい。したがって、着信する通話呼は、シグナリング・サーバ215によってメディア・プロセッサ240に提供することができる。
【0032】
[037] 上記のように、セッション・マネージャ230が通話呼フロー・サービス132によって処理される通話呼をモニタできることを思い出す。同様に、他の通話呼フロー・サービスについての他のセッション・マネージャは、それら各々のサービスによって処理される通話呼をモニタすることができる。セッション・マネージャは、処理中の通話呼の数といった通話呼フロー・サービスのそれぞれの負荷に関する情報を、通話呼フロー制御サービス132に対して提供することができる。この情報は、例えば、ステータス・モニタ205に提供することができる。ステータス・モニタ205はまた、通話呼またはサービスの更新に関するセッション・マネージャ230から情報を受け取ることもできる。ステータス・モニタ205は、受け取った情報を通話呼センタ・データベース255、またはステータス・モニタにアクセス可能な他のストレージに格納することができる。
【0033】
[038] ステータス・モニタ205は、通話呼フロー・コントローラ220と通信することができ、通話呼フロー・サービス132および他の通話呼フロー・サービスに関する負荷情報を、通話呼フロー・コントローラ220に対して提供する。他の実施態様において、通話呼フロー・コントローラ220は、通話呼フロー・サービス132、またはクラウド・コンピューティング通話呼センタ105の他の通話呼フロー・サービスから直接的に負荷情報を受け取ることができる。通話呼フロー・コントローラ220は、したがって、クラウド・コンピューティング通話呼センタ105における1つ以上の通話呼フロー・サービスへの負荷をモニタすることができる。通話呼フロー・コントローラ220は、各通話呼フロー・サービスごとの負荷情報を、シグナリング・サーバ・データベース260に格納することができる。負荷情報は、要求されるのと同頻度で更新することができる。通話呼フロー・コントローラ220は、コマンドをシグナリング・サーバ215に提供することができ、データベースの更新に続くシグナリング・サーバ・データベース260内の情報を問い合わせる。シグナリング・サーバ・データベース260は、例えば、シグナリング・サーバ215の構成として実装することができる。シグナリング・サーバ215は、したがって、シグナリング・サーバ・データベース260に格納される負荷情報を問い合わせることができ、また、どの通話呼フロー・サービスが次に通話呼を受け取るべきかを決定するために負荷情報を利用することができる。他の実施態様において、他のメッセージング・プロトコルは、負荷情報を伝達するために、シグナリング・サーバ215と通話呼フロー・コントローラ220の間で使用することができる。
【0034】
[039] 通話呼フロー・コントローラ220は、したがって、クラウド・コンピューティング通話呼センタ105における通話呼フロー・サービスに関する負荷情報を受け取る、および/またはアクセスすることができる。通話呼フロー・コントローラ220はまた、負荷情報に基づいて通話呼フロー・サービスの割当または割当解除を行うこともできる。例えば、通話呼フロー・サービスの数が高い閾値に対応する負荷あるいはそれ以上であるときに、通話呼フロー・コントローラ220は、新規な通話呼フロー・サービスをクラウド・コンピューティング通話呼センタ105に割り当てることができる。割当は、通話呼フロー・コントローラ220自体によって実行することができ、または、通話呼フロー・コントローラ220は、商用のクラウド・プロバイダにより提供されるAPIといったクラウド・プロバイダ・インタフェース270と通信することができ、その結果、追加のインスタンスをクラウド・コンピューティング通話呼センタ105に割り当てる。
【0035】
[040] 同様に、クラウド・コンピューティング通話呼センタ105が低い閾値以下の負荷で動作しているとき、通話呼フロー・コントローラ220は、クラウド・コンピューティング通話呼センタ105から1つ以上の通話呼フロー・サービスの割当解除を行うことができる。特定の通話呼フロー・サービスが割り当てられることになること、およびどの着信呼もが割当解除した通話呼フロー・サービスにルーティングされることがないことについての指示(indication)は、シグナリング・サーバ215に提供することができるか、シグナリング・サーバ・データベース260に格納することができる。一旦通話が完了すると、通話呼フロー・サービスは、クラウド・コンピューティング通話呼センタ105から割当てを解除される。この割当解除は通話呼フロー・コントローラ220自体によって実行することができ、または、通話呼フロー・コントローラ220が、1つ以上のインスタンスの割当解除をするためにクラウド・プロバイダ・インタフェース270と通信することができる。一般的に、いくつかの実施形態において、最も古い通話呼フロー・サービスが最初に割当解除することになり、それはメモリ・リークを有利に削減することができ、また、システムの安定性を増すことができる。割当解除の間、通話呼フロー・サービス自体においてローカルに格納したデータは、クラウド・ストレージ265にアップロードすることができる。すなわち、例えば、通話呼フロー・サービス132が、通話呼フロー・コントローラ220またはクラウド・プロバイダ・インタフェース270から割当解除の指示を受け取ると、ローカル・ストレージ250または通話呼フロー・サービス132にローカルな他のストレージに格納されたデータがクラウド・ストレージ265にアップロードされることができる。このように、データは、クラウド・コンピューティング通話呼センタ105における他の通話呼フロー・サービスまたは通話呼制御サービスにアクセス可能とすることができる。更に、イベント・データといったいかなる報告情報をも、セッション・マネージャ230によって、割当解除の指示に応じてステータス・モニタ205に提供することができる。このように、ストレージおよび報告の情報は、通話呼フロー・サービス132から転送することができ、通話呼フロー・サービス132は安全に割当解除される。
【0036】
[041] 通話呼フロー制御サービス130はまた、1つ以上の自動着信分配(ACD)210を含むこともできる。ACDは、この技術分野で公知のように、特定のカスタマのエージェントを待ち構えている1つ以上の通話呼をキューングするように機能することができる。ACD210は、各カスタマごとに仮想キューを維持することができ、このキューに関するステータス情報をステータス・モニタ205に提供することができる。ACD210は、例えば通話呼フロー・サービス132といった適切な通話呼フロー・サービスに対し、キューからの発信側(caller)を提供することができる。しかしながら、ACD210は、いくつかの実施形態において、例えば
図2に示すように、通話呼フロー・サービス132の一部でなくてもよく、複数の通話呼フロー・サービスと通信することができる。このように、キューイングされたユーザは、所望のとおり複数の通話呼フロー・サービス全体に分散することができる。同様に、アクティブ状態でカスタマにサービス提供しているエージェントは、複数の通話呼フロー・サービス全体に分散することができる。そして、例えば、ACD210は、適切なエージェント150が通話呼に対処するために利用できるかどうかを決定するために、シグナリング・サーバ・データベース260にアクセスすることができる。適切なエージェントが利用可能でない場合、ACD210は、通話呼フロー・サービス132と通信して、維持している音楽を再生することにより、またはカスタマのダイヤルプランで特定されるほかのアクションにより、通話呼を維持する。適切なエージェントが利用可能となった場合、ACD210は、通話呼フロー・サービス132と通信することができ、その利用可能なエージェントに通話呼をルーティングする。ACD210はクラウド・コンピューティング通話呼センタにおける一部または全部の通話呼フロー・サービスと通信することができるので、ACD210は共用リソースであり、また、各通話呼フロー・サービスごとに複製される必要がない。さらに、ACD210は多くのカスタマ間で分配することができ、各々がそれら自身のキューを維持する。すなわち、ACD210は、エージェントを待ち構えている発信側の複数のキューを維持することができる。要約すると、いくつかの実施形態において、複数のACDがあり、各ACDは複数の通話呼フロー・サービスにサービスを提供することができる。さらには、各ACDは、通話呼制御サービスと別個に実装することができる。
【0037】
[042] 通話呼フロー制御サービス130はまた、管理ツール225を含むこともできる。管理ツール225は、カスタマまたは他のエンティティがクラウド・コンピューティング通話呼センタ105を管理者となる(administer)ことを許可する。例えば、エージェントを追加するために、閾値を変更するといった通話呼フロー・コントローラ220によって実施される負荷バランシング処理を管理し、通話呼試験を行い、もしくは、これに限定されないがダイヤルプラン、双方向音声応答のサービスおよび構成、音声アセット、ならびに他のテレフォニ・リソースといった、カスタマに特有のリソースを変更または追加する。管理ツール225は、ウェブ・サービスとして実装することができ、また、仮想インスタンスをクラウド・コンピューティング通話呼センタ105に追加するためにクラウド・プロバイダ・インタフェース270と通信することもできる。
【0038】
[043] 追加の特徴をクラウド・コンピューティング通話呼センタ105に提供することができ、
図1の仮想インスタンス120、122および124の一部または全部にアクセス可能とすることができる。この追加の特徴は、これに限定されないが、例えば音声認識または感情認識といった通話呼の間に発生したデータを操作し、または相互作用するためのいかなる処理をも実質的に含むことができる。このように、クラウド・コンピューティング通話呼センタ105のいかなるカスタマもが、各通話呼フロー・サービスごとに特有の特徴を必要とすることなくサービスを利用することができる。
【0039】
[044]
図3は、本発明の実施形態による、クラウド・コンピューティング通話呼センタから仮想インスタンスの割当および割当解除を行うのに用いることができる例示のデータについての概略図である。データは、例えば、
図2のシグナリング・サーバ・データベース260に、または、通話呼フロー・コントローラおよび/またはシグナリング・サーバ215にアクセス可能な他の位置に格納することができる。負荷バランシング・パラメータは、表305に格納することができる。負荷バランシング・パラメータは、ベースライン容量307を含むことができる。ベースライン容量307は、
図3に示した実施形態での250つの通話呼に等しいが、いかなる適切な数をも用いることができる。ベースライン容量307は、いくつかの実施形態において異なる通話呼フロー・サービスに次の着信呼を提供する前に、単一の通話呼フロー・サービスによって扱われることになる通話呼の数を参照する。ベースライン容量は、すべての利用可能な通話呼フロー・サービスがベースライン容量で利用されるまで、使用することができる。ベースライン容量307は、上記の高い閾値としてサービス提供することができる。
【0040】
[045] サージ容量310はまた、特定され格納されることもできる。サージ容量310は、すべての利用できる通話呼フロー・サービスがベースライン容量以上であるときに、単一の通話呼フロー・サービスによって扱われる通話呼の数を参照する。サージ容量(surge capacity)310は、
図3に示した実施形態では300個の通話呼であるが、いかなる適切な数をも用いることができる。サージ容量310はまた、上記の高い閾値としてサービス提供することもできる。新規なサーバを始動するために必要な時間315を格納することもできる。時間は、
図3の実施形態では90秒であるが、新しく割り当てられた仮想インスタンス上の通話呼フロー・サービスをセットアップするために必要な時間に従って変えることができる。時間は、新規な仮想インスタンスが新規な通話呼にサービス提供するのに利用可能であるときに考慮することができる。さらに以下に説明する。未使用の通話呼フロー・サービスを削除する前の時間320もまた格納することもできる。時間は、
図3の実施形態では300秒であるが、いかなる数をも用いることができる。また、時間は、通話呼フロー・コントローラまたは通話呼の到着間レート(inter-arrival rate)に基づく他のシステム・コンポーネントによって、動的に算出することができる。
【0041】
[046] 現在負荷の表325をまた格納することもできる。現在負荷の表325は、クラウド・コンピューティング通話呼センタの現在負荷327を特定することができ、その時点における8083個の通話呼について
図3に示される。現在負荷327は、例えば、
図2の通話呼フロー・コントローラ220によって報告することができる。現在負荷の表325はまた、最大ベースライン負荷330を格納することもできる。最大ベースライン負荷330は、
図3に示した実施形態では7500個の通話呼であり、そして、最大ベースライン負荷330は、通常は、ベースライン容量307によって増やされる利用可能な通話呼フロー・サービスの数に等しくなる。最大総負荷335をまた、格納することもできる。最大総負荷335は、
図3に示した実施形態での9000個の通話呼であり、通常は、サージ容量310によって増やされる利用可能な通話呼フロー・サービスの数に等しい。動作中(active)の通話呼フロー・サービス340の総数をまた、格納することもでき、
図3に示した実施形態では30個に等しい。動作中の通話呼フロー・サービス340の総数は、クラウド・コンピューティング通話呼センタにおいて利用可能な通話呼フロー・サービスの数を反映する。不足サービス(service shortage)342もまた、格納することもできる。不足サービス342は、通常、現在負荷327を最大ベースライン負荷330に等しいかそれ以下にするために必要となる、追加の呼フロー・サービスの数に等しい。不足サービス342は、
図3の実施形態では3個の通話呼フロー・サービスである。何故ならば、現在負荷327は最大ベースライン負荷を583超える通話呼であり、そして、サービス当たり250個の通話呼ベースライン容量での3個の追加の通話呼フロー・サービスを十分に増加させて、現在負荷327に適応するからである。
【0042】
[047]
図3に別個の表として示したものの、負荷バランシング・パラメータ305および現在負荷325の表は結合することができる。いくつかの実施形態において、示した項目(entry)の全てが各表に存在してもよいというわけではなく、いくつかの実施形態では、追加パラメータを含めることができる。
図2の通話呼フロー・コントローラ220は、現在負荷327および動作中の全ての通話呼フロー・サービス340を含むがこれに限定されない表305および325のパラメータを更新することができる。管理ツール225はまた、そのベースライン容量307、サージ容量310、新規な通話呼フロー・サービス315を開始する時間、および通話呼フロー・サービス320の未使用通話呼を削除する前の時間を含むがこれに限定されない、表305および325の値を更新することもできる。
【0043】
[048] 動作中サービスの表350をまた、格納することもできる。動作中サービスの表350は、ファースト・イン・ファースト・アウトの表とすることができる。但し、他の実施態様を用いることができる。動作中サービスの表350は、各利用可能な通話呼フロー・サービスについての識別子と通話呼フロー・サービスによって処理される通話呼の数を提供する。例えば、0―29と番号付けされた通話呼フロー・サービスが、各通話呼フロー・サービスが取り扱っている通話呼の数とともに、
図3に示される。
図3に示すように、0−10で特定される通話呼フロー・サービスは、300個の通話呼のサージ容量で動作している。11−16、18−19、21−23および25−29で特定される通話呼フロー・サービスは、250個の通話呼のベース容量で動作している。シグナリング・サーバ215は、どこに次の着信呼をルーティングするべきかについて決定するために、動作中サービスの表350にアクセスすることができる。いくつかの実施形態において、次の着信呼は、ベースライン容量以下で、動作中サービスの表350で最も低いもの、例えば、
図3の実施形態では通話呼フロー・サービスの符号17に対してルーティングすることができる。2つの通話呼フロー・サービスがベースライン容量以下である場合、いくつかの実施形態では、表上で最も低い通話呼フロー・サービスを使用することができる。但し、他の実施態様が着信呼をルーティングするために用いることができる。例えば、通話呼は、
図3の符号24で特定される通話呼フロー・サービスのように、最少の数の通話呼の全体を有する通話呼フロー・サービスに、ルーティングすることができる。通常、新規の通話呼フロー・サービスは表350の最上部に追加することができ、また、FIFOである表350の最下部から割当解除をすることができる。但し、他の実施態様を用いることができる。動作中サービスの表350は、
図2の通話呼フロー・コントローラ220によって更新および維持することができる。
【0044】
[049] ビット・テーブル355は、シグナリング・サーバ215またはその他のキューイング処理を支援して適切な通話呼フロー・サービスに通話呼をルーティングするために格納することができる。ビット・テーブル355は、各利用可能な通話呼フロー・サービスの識別、および通話呼フロー・サービスがベースライン容量357かサージ容量359について利用可能かどうかの指標を含む。例えば、通話呼フロー・サービス17,20,24は、
図3のベースライン容量について利用可能とすることができ、その一方で、通話呼フロー・サービス11−29はサージ容量について利用可能とすることができる。シグナリング・サーバ215は、ビット・テーブル355にアクセスすることができ、直ちに、ベースライン容量について利用可能な最も低い。通話呼フロー・サービス、または、通話呼フローがベースライン容量について利用可能でない場合には、サージ容量について利用可能な最も低い通話呼フロー・サービスを特定して着信呼をルーティングする。指標は
図3では「Y」で示される。但し、「0」または「1」を含むいかなる指標をも用いることができる。
【0045】
[050] 初期化されているサービスについての表360をまた格納することもできる。表360は、ファースト・イン・ファースト・アウトの表とすることができる。但し、他の実施態様を用いることができる。表360は、初期化されている通話呼フロー・サービスについての識別子、および通話呼フロー・サービスが初期化している時間量を含むことができる。どの通話呼フロー・サービスも初期化されていないときには、通話呼フロー・コントローラ220は、いくつかの実施形態において新規な通話呼フロー・サービスを初期化する処理を始めることができる。他の実施態様において、システムの負荷といった異なるトリガを用いることができ、第1の追加の通話呼フロー・サービスがいつ初期化されるべきかについて決定することができる。
図3の実施例では、追加の通話呼フロー・サービス0は、初期化される最後の追加通話呼フロー・サービスが利用可能とされた85秒前に、初期化され始めた。現在負荷327フィールドに示されるように、システムの負荷が、初期化されている通話呼フロー・サービスの数のベースライン容量を加えたベースライン負荷330を超過したときには、通話呼フロー・コントローラ220は追加の通話呼フロー・サービスの初期化を開始することができる。したがって、
図3で、表360の追加の通話呼フロー・サービス1は、現在負荷が初期化した通話呼フロー・サービス0のベースライン容量を加えた最大ベースライン負荷を超過した12秒前に初期化され始めた。同様に、追加の通話呼フロー・サービス2は、現在の負荷が初期化したサービス0および1の容量を加えた最大ベースライン容量を超過した2秒前に初期化され始めた。通話呼フロー・サービスの初期化が終了したときに、初期化された表360にあるサービスから削除され、動作中サービスの表350に追加されることができる。いくつかの実施形態において、例えば履歴上のシステム性能または負荷といった経験的データは、予測される将来の要求をサポートするのに追加の通話呼フロー・サービスを割り当てるべきか否かを決定するのに用いることができる。このように、システムの性能(capacity)は、システム負荷の増加に先立って増加することができる。同様に、経験的データは、通話呼フロー・サービスの割当解除をすべきかいか否かを決定するために用いることができる。
【0046】
[051] したがって、マルチ・テナントなクラウド・コンピューティング通話呼センタについてのシステムの実施例では、通話呼を処理するために用いる利用可能な通話呼フロー・サービスの数を調整するために負荷バランシングを利用することができるものと上記説明してきた。このまとめとして、クラウド・コンピューティング通話呼センタを動作する例示の方法について、これから説明する。
【0047】
[052]
図4は、本発明の実施形態によるクラウド・コンピューティング通話呼センタにおいて通話呼をサービス提供する例示の方法について説明しているフローチャートである。ブロック410において、通話呼を受け取る。通話呼は、例えば、SIPプロトコルに従って受け取ることができる。ブロック415において、通話呼は、利用可能な通話呼フロー・サービスの負荷に少なくとも部分的に基づいて、利用可能な通話呼フロー・サービスに、ルーティングすることができる。
【0048】
[053] いくつかの実施形態において、通話呼フロー・サービスの割当および割当解除は、仮想インスタンスの割当および割当解除に対応する。いくつかの実施形態において、追加の通話呼フロー・サービスは、既存の仮想インスタンスに追加することができるか、または存続している仮想インスタンスから割当解除することができる。
【0049】
[054]
図2のシグナリング・サーバ215は、ブロック415におけるルーティングを実行することができる。上記一般的に説明したように、最も低い負荷全体を有する通話呼フロー・サービスが選択されることができ、または、ベースライン容量以下の負荷を有する
図3の動作中サービスの表350上の最も低い通話呼フロー・サービスが選択されることができる。すべての利用可能な通話呼フロー・サービスがベースライン容量以上のときは、サージ容量以下の最も低い負荷全体をもつ通話呼フロー・サービスを選択することができ、または、サージ容量以下の負荷を有する
図3の動作中サービスの表350上の最も低い通話呼フロー・サービスを選択することができる。他の実施態様において、他の要因は、通話呼フロー・サービスを選択するのに用いることができる。ブロック420において、一旦通話呼が選択した通話呼フロー・サービスにルーティングされると、選択された通話呼フロー・サービスは、発信された番号に少なくとも部分的に基づいてカスタマ特有リソースをロードすることができる。ロードは、
図2の通話呼マネージャ235によって実行することができ、上記に説明した。このように、単一の通話呼フロー・サービスは、複数のカスタマ向けに通話呼を扱うことができる。ブロック425において、通話呼は、ロードしたカスタマ特有リソースを用いて処理される。
【0050】
[055]
図5は、本発明の実施形態による通話呼フロー・サービスの割当および割当解除についての例示的な方法を説明しているフローチャートである。ブロック505において、クラウド・コンピューティング通話呼センタの総負荷にアクセスすることができる。
図2の通話呼フロー・コントローラ220は、シグナリング・サーバ・データベース260および通話呼センタ・データベース255内に格納された情報にアクセスすることによって、または、総負荷のステータス・モニタ205からの指標を受け取ることによって、総負荷にアクセスすることができる。通話呼フロー・コントローラ220は、いくつかの実施形態での利用可能な通話呼フロー・サービスによって報告される個々の負荷に基づいて、総負荷を計算することができる。ブロック510において、総負荷をベースライン負荷と比較することができる。
図2の通話呼フロー・コントローラ220がこの比較を実行することができる。ベースライン負荷は、例えば
図3の表325に格納することができる。現在負荷がベースライン負荷以上の場合、ブロック515で、新規な通話呼フロー・サービスが通話呼フロー・コントローラ220によって初期化されることになる。通話呼フロー・コントローラ220は、直接的に、上記に説明したようにクラウド・プロバイダ・インタフェースを通じて、新規な通話呼フロー・サービスの初期化を開始することができる。いくつかの実施形態において、現在負荷がすでに初期化されたいかなる通話呼フロー・サービスのベースライン容量をも加えたベースライン負荷を超過するときに、新規な通話呼フロー・サービスは初期化される。現在負荷がベースライン負荷以下である場合には、ブロック520において、1つ以上の通話呼フロー・サービスの割当解除をすることができる。いくつかの実施形態において、負荷に拘らず、最も古い通話呼フロー・サービスを割当解除することができる。いくつかの実施形態において、利用可能な通話呼フロー・サービスの負荷は、閾値時間以上またはそれと同等の時間の間未使用であったいかなる通話呼フロー・サービスをも識別するためにアクセスすることができる。閾値時間は、例えば、
図3の表305に格納することができ、また、通話呼フロー・コントローラ220は、いくつかの実施例では低い閾値以下の負荷を有する通話呼フロー・サービスといったいかなる未使用の通話呼フロー・サービスをも識別するために動作中サービスの表350にアクセスすることができる。通話呼フロー・サービスが閾値時間と同等またはそれより長い時間の間未使用であった場合には、ブロック525において通話呼フロー・サービスを割当解除することができる。通話呼フロー・コントローラ220は、それ自身で通話呼フロー・サービスの割当解除をすることができ、または、クラウド・プロバイダ・インタフェースを通じて割当解除をすることができる。
【0051】
[056] したがって、クラウド・コンピューティング通話呼センタを提供するシステム及び方法について上記に説明してきた。通話呼フロー・サービスについて、初期化するさいに様々なカスタマについて構成することができ、また、通話呼の処理が完了するときに、一意のデータを格納しないと説明してきた。このように、動的スケールおよびマルチ・タレントは、クラウド・ベースのテレフォニ・システムにおいて提供することができる。クラウド・ベースのテレフォニ・システムのプロバイダは、したがって、処理パワーおよび消費されたストレージ容量に基づいてサービスの料金を払うことができ、ならびに、ピーク容量とは対照的な実際の使用に基づいてカスタマに課金することができる。
【0052】
[057] 本発明の実施形態はまた、従来のPBX間にピア・ツー・ピアのテレフォニ通信を提供することもできる。上記説明したクラウド・コンピューティング通話呼センタは、例えば
図2のACD210のコンポーネントまたはメディア・プロセッサ240を含むことによって、それ自身でPBX機能を含むものであった。いくつかの実施形態では、従来のPBX機能を提供しないクラウド・テレフォニ・システムを提供することができる。
【0053】
[058]
図6は、本発明の実施形態によるピア・ツー・ピアのクラウド・テレフォニ・システムを含むシステムの概略図である。ピア・ツー・ピアのクラウド・テレフォニ・システム605は、グローバル・ディレクトリ610、通話呼ディレクター615、通話呼履歴ログ620および請求モジュール625を含む。1つ以上のRTP630,632のルータを提供することができる。RTPルータ630,632は、通話呼を処理しないが、例えばPBX640,642といった異なるPBX間でトラフィックをルーティングすることができる。ピア・ツー・ピアのクラウド・テレフォニ・システム605を通じて通信をルーティングすることによって、ユーザは、公衆電話網650を回避することができる。
【0054】
[059] グローバル・ディレクトリ610は、ピア・ツー・ピアのクラウド・テレフォニ・サービスで登録した(enrolled)番号を格納することができる。登録された番号は、ピア・ツー・ピアのクラウド・テレフォニ・サービス605の通話呼ルーティング機能を利用することができる。通話呼ディレクター615は、グローバル・ディレクトリ610において登録される(registered)それらに対して、着信呼を照合することができる。その番号がサービスに登録されている場合、通話呼はRTPルータのうち1つを経由することができる。その番号がサービスに登録されていない場合、通話呼は公衆電話網650を経由してルーティングすることができる。通話呼がRTPルータ630,632の1つを経由してルーティングされる場合、通話呼の記録は、通話呼履歴620に格納され、また、請求モジュール625は通話呼履歴620に従ってカスタマに請求することができる。ピア・ツー・ピアのシステムの実施例として、いかなる種類のインターネットのようなネットワーク接続、およびVoIPのような適切な通話呼プロトコルをも使用して実施することができる。
【0055】
[060]
図6に示される実施例では、ブロック655において、ユーザは、PBX640を用いた番号1.999.555.1212へ発信することができる。PBX640は、通話呼に関するデータをピア・ツー・ピアのクラウド・テレフォニ・システム605と通信することができ、また、通話呼ディレクターは、グローバル・ディレクトリ610にアクセスし、番号1.999.555.1212がグローバル・ディレクトリ610に登録されていると判断することができる。したがって、通話呼はRTPルータ630に供給されることができ、RTPルータ630はPBX642へ番号に従って通話呼をルーティングすることができる。ブロック660において、1.999.555.1212でアクセス可能なピア・ツー・ピアのクラウド・テレフォニ・システム605のカスタマは、通話呼を受け取ることができる。
【0056】
[061] 他の実施例では、ブロック665において、ユーザは、PBX640を通じて1.999.999.1234にダイヤルすることができる。ピア・ツー・ピアのクラウド・テレフォニ・システム605は、グローバル・ディレクトリ610に対して番号を照合することができ、番号1.999.999.1234がピア・ツー・ピアのクラウド・テレフォニ・システム605に登録されていないと判断することができる。したがって、通話呼は、宛先のPBX670に公衆電話網650を経由してルーティングすることができる。ブロック675において、1.999.999.1234への通話呼が受け取られる。
【0057】
[062] したがって、PBX640および642は、ピア・ツー・ピアのクラウド・テレフォニ・システム605に登録することができ、公衆電話網650を使用することなくピア・ツー・ピアのクラウド・テレフォニ・システム605によってサービス提供することができるかについて各着信呼ごとにピア・ツー・ピアのクラウド・テレフォニ・システム605と通信するように構成することができる。これにより、公衆電話網650を関連コストと共に迂回(bypass)することを可能にする。
【0058】
[063]ピア・ツー・ピアのクラウド・テレフォニ・システム605は、通話呼フロー・サービスの割当および割当解除について、通常は上記のとおり、要求に応じてRTPルータの割当および割当解除を動的に行うことができる。しかしながら、
図6の実施例では、音声は、ピア・ツー・ピアのクラウド・テレフォニ・システム605によっては処理されない。いくつかの実施例において、通話呼データをルーティングするためのピア・ツー・ピアのクラウド・テレフォニ・システム605は、
図1のクラウド・コンピューティング通話呼センタ105のようなクラウド・コンピューティング通話呼センタと組み合わせて、通話呼のサービス提供、および、ピア・ツー・ピアの通話呼データのルーティングの両方を行うために提供されることもある。
【0059】
[064] いくつかの実施形態において、RTPルータは、PBX640からPBX642まで通話呼を接続することを必要としない。例えば、ピア・ツー・ピアのクラウド・テレフォニ・システム605は、PBX642に直接PBX640から通話呼を接続するために、NAT通過(traversal)技術を利用することができる。
【0060】
[065] いくつかの実施形態において、ピア・ツー・ピアのテレフォニ・ソリューションは、ワイヤレス・キャリアおよび従来の公衆電話交換ネットワーク・プロバイダといった主要データ通信プロバイダ間での電話の移送を可能にすることができる。
【0061】
[066] 上記のことから言うまでもなく、本発明の特定の実施形態について説明の目的で本願明細書において説明してきたが、さまざまな修正が本発明の趣旨と範囲から逸脱することなく行うことができるものである。