3

ユーザーが通話に追加したい番号をダイヤルできるアプリがあります。各ユーザーは、アカウントにある残高の対象となります。

ダイヤルは TwiML を使用して実行されます<Dial>

したがって、1 分あたりの金額に従って、残りの残高を秒単位で計算し、それをtimeLimitforとして設定し<Dial>ます。

timeLimitユーザーが通話中に通話の有効期限が切れようとしているときに、支払い方法を使用して請求し、請求が成功した場合timeLimitは同じ通話を補充するなどの簡単なことをしたい.

これはできますか?

4

2 に答える 2

7

Twilio 開発者エバンジェリストはこちら。

通話中にダイヤルの timeLimit を変更する方法はありません。しかし、私はあなたのために働くことができる解決策を持っていると思います.

番号を直接ダイヤルする代わりに、timeLimit を使用して会議に参加することができます。

<Response>
  <Dial timeLimit="30">
    <Conference>YourCall</Conference>
  </Dial>
</Response>

その後、アカウントが補充されたら、ライブ コールを変更して、新しい timeLimit で電話会議に再参加する TwiML URL にリダイレクトできます。

<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once('/path/to/twilio-php/Services/Twilio.php'); // Loads the library

// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "{{ sid }}"; 
$token = "{{ auth_token }}"; 
$client = new Services_Twilio($sid, $token);

// Get an object from its sid. If you do not have a sid,
// check out the list resource examples on this page
$call = $client->account->calls->get("{{call sid}}");
$call->update(array(
        "Url" => "http://youserver.com/conference.xml",
    "Method" => "POST"
    ));
echo $call->to;
于 2014-01-13T22:46:06.527 に答える
2

おそらく、Twilio REST API のhttps://www.twilio.com/docs/api/rest/change-call-state関数を使用する方が簡単です。REST API は非同期です。

あなたの状況では、次のように行うことができます。

  1. Dial timeLimit=[Max] (時間無制限の場合、最大 4 時間)
  2. しばらくしてから、アカウントを再充電してみてください。
  3. 再充電が成功した場合: 何もせず、通話が持続します。
  4. リチャージが失敗した場合: Twilio REST API の change-call-state 関数を実行して切断します。切断する前に、オーディオ ファイルを再生したり、その他の操作を行ったりすることもできます。たとえば、リチャージが失敗したなどの理由で、発信者にアカウントを確認するように依頼します。
于 2016-09-09T05:13:24.490 に答える