場合によっては、企業が顧客の一部に電話して何かについて通知する必要がある場合や、サービスの質に関する調査を実施する場合があります。 この問題はさまざまな方法で解決できますが、この場合は、Javascript / Webサービスの処理に慣れていて、IPテレフォニーシステムの機能を詳しく調べたくないWeb開発者が解決する必要があるという事実から進めます。 彼にとって幸いなことに、適切なツールがあります。これについては、以下で詳しく説明します。
そのため、自動呼び出しの実装には、
VoxImplantプラットフォームと、それに組み込まれた呼び出し
リストサブシステム(CallList)を使用します。 これに
同意したそれらの人々にだけ自動化された呼び出しをすることができることにすぐに注意されるべきです。 電話スパムはSMSスパムや電子メールスパムよりも優れているため、人々を再び悩ませる必要はありません。
いくつかのシナリオを見てみましょう-イベントの通常の通知(たとえば、アクティベーションコードメッセージや医療機関への訪問のリマインダー)とサービスの品質に関する調査。
アカウント設定
VoxImplantの場合、ファイルの各行で実行されるスクリプトで使用できる、番号のリストと各番号の追加情報を含むCSVファイルが、HTTP要求を介して入力に送信されます。 最初の行は、パラメータの名前を含む必須のタイトルであるため、後でこれらのパラメータをスクリプトで使用できます。 システムがこの文字列を処理する方法に影響するシステムパラメータもあります。 次の例を見てみましょう。
user_id;first_name;last_name;phone_number;activation_code 0;;;74951234567;101102
これは、呼び出すCSVファイルのコンテンツです。 VoxImplantスクリプトを呼び出すと、このデータはJSON形式になり、目的の目的に使用できます。 次のVoxEngineスクリプトを作成します。
require(Modules.CallList);
スクリプトを保存し、スクリプトをフックするアプリケーションとアプリケーションルールを作成します。 パターンは変更せずに残すことができ、HTTPリクエストを介していつ起動されるかは関係ありません。
HTTP APIを介した呼び出し
http://voximplant.com/docs/references/httpapi/#toc-createcalllistの呼び出しを開始するAPIメソッドでは、要求パラメーターを分析して、すべてが明確になるようにします。
- account_name -VoxImplantアカウント名
- api_key -VoxImplantアカウントのAPIキー
- rule_id-スクリプトを添付したアプリケーションのid-rules
- 優先度 -呼び出しの優先度。多くの呼び出しがある場合、どちらを早く実行するかを制御できます
- max_simultaneous-同時に処理されるレコードの最大数
- num_attempts-ダイヤル試行の回数。CallList.reportError関数が呼び出された場合、新しい試行が行われます
- name-呼び出しの名前のみ
- file_content -CSVファイルはリクエスト本文で転送する必要があります
- interval_seconds-次のダイヤル試行までの時間(秒)
- encoding -CSVファイルのエンコーディング。UTF-8と異なる場合は指定する必要があります
- delimiter-デフォルトでは、CSVファイルの列セパレーター。
呼び出しを開始するいくつかの関数を使用して、次のPHPファイルを作成しましょう。
<?php define("API_URL", "https://api.voximplant.com/platform_api/"); define("API_KEY", " api key"); define("ACCOUNT_NAME", " account name"); define("RULE_ID", id-); function httpRequest($url,$params) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); if (isset($params["post"])) curl_setopt($ch, CURLOPT_POST, 1); if (isset($params["post_data"])) curl_setopt($ch, CURLOPT_POSTFIELDS, $params["post_data"]); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/csv')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec ($ch); curl_close ($ch); return $server_output; } function createCallList($file) { $url = API_URL . "CreateCallList/?" . "account_name=" . ACCOUNT_NAME . "&api_key=" . API_KEY . "&rule_id=" . RULE_ID . "&max_simultaneous=10" . "&num_attempts=2" . "&interval_seconds=60" . "&priority=1" . "&name=CallList"; $data = file_get_contents($file); $params = array('post' => true, 'post_data' => $data); $result = httpRequest($url, $params); echo $result; } function getCallListDetails($list_id, $output = "json") { $url = API_URL . "GetCallListDetails/?" . "account_name=" . ACCOUNT_NAME . "&api_key=" . API_KEY . "&list_id=" . $list_id . "&output=" . $output; $params = array(); $result = httpRequest($url, $params); echo $result; } createCallList(URL-CSV-);
getCallListDetailsの実行結果は、次のようになります(正常に電話された場合)。
"activation_code";"user_id";"last_name";"phone_number";"first_name";"__end_execution_time";"__start_execution_time";"result_data";"last_attempt";"attmepts_left";"status_id";status 101102;0;;74951234567;;;;"{""result"":true,""duration"":27}";"2014-11-24 19:21:39";1;2;Processed
当然、
http://voximplant.com/docs/references/httpapi/GetCallLists.htmlへのすべての呼び出しのリストを取得するか、
http://voximplant.com/docs/references/httpapi/StopCallListProcessing.htmlの呼び出しを停止できます。
投票シナリオの例
タスクを少し複雑にしましょう-呼び出しに加えて、サービス品質の評価を入力し、呼び出し結果に保存するように求めます。 これを行うには、関数handleCallConnected、handleCallDisconnectedを変更し、新しいhandleToneReceivedを追加する必要があります。
function handleCallConnected(e) { connected = true; e.call.handleTones(true);
結果は次のようになります。
"user_id";"last_name";"phone_number";"first_name";"__end_execution_time";"__start_execution_time";"result_data";"last_attempt";"attmepts_left";"status_id";status 0;;74951234567;;;;"{""result"":true,""duration"":27,""rating"":""3""}";"2014-11-24 20:17:13";1;2;Processed
さて、ここではVoxImplantを使用したいくつかの呼び出しシナリオを見てきました。 必要に応じて、スクリプトから外部の世界にHTTPリクエストを直接送信し、リアルタイムでデータを転送するか、ASRモジュールを音声認識に接続して、音声で直接質問に回答できるようにすることができます。 必要に応じて、SIPインフラストラクチャ経由でコールを送信できます。スクリプトでcallPSTNをcallSIPに変更し、そこで設定を転送します。 一般的に、この投稿があなたにとって有用であり、あなたの問題、あなたへの有用な呼び出しを解決するのに役立つことを願っています!