2016-10-07 14 views
0

Twilioとの会話を通じて音を再生しようとしています。私はTwilioに新しいですし、私はいくつかの問題にぶつかっています。Twilioの発信電話で音声を再生する

TwilioクライアントSDK pluginを使用してモバイルアプリケーションからコールが開始されます。 TwilioコンソールではTwiMLアプリケーションを作成し、リクエストURLを設定しました。

これは私のTwiMLコードです。私が欲しいもの

  • は、ユーザーがアプリから通話を開始します。
  • ユーザーは時間制限を取得します(私のサーバー上のTwiMLで設定されています)。
  • コールはPSTNの番号で接続されています。
  • 制限時間に達するとすぐに、 に通話が終了することを通知するサウンドを再生する必要があります。 (例:時間 の制限は1分30秒で呼び出し音が鳴ります)
  • 制限に達すると呼が終了します。

私はすでに制限時間に達したときにコールを終了できますが、ユーザーに通知する方法を理解することはできません。私が試してみました何

:私はTwiMLアプリでステータスコールバックURLを指定している、と私はそこからコール状態を変更したかったが、コールが終了した後にステータスコールバックがのみ呼び出され

。これは、投稿thisに基づいていました。

私はthis投稿に基づいて会議を作成しようとしましたが、動作させることができません。私はREST APIを使用していないためだと思います。私は、クライアントSDKを使用してモバイルアプリからコールを開始しています。 REST APIを使用する必要があります。また、クライアントと組み合わせてどのように実装しますか?

サーバー側私はPHPを使用しています。

さらに詳しい情報が必要な場合は、お知らせください。

+0

あなたは、音を聞くために電話を受ける人が必要ですか?あなたがそれを聞くためにアプリを使用している人だけが必要な場合は、コールではなくサウンドを生成するためにプラットフォームを使用することができます。 – philnash

+0

はい私はそれについても考えましたが、私はむしろそれをサーバー側で扱い、できるだけ音声を通話に統合したいと考えています。 – Thev

答えて

0

ここではTwilioの開発者エバンジェリストです。

このサーバー側を処理するには、クライアントから<Conference>にダイヤルしてから、generate a call to the number your user was calling using the REST APIにダイヤルして会議に誘導する必要があります。

ので、クライアントから元のダイヤルにご回答は少しのようになります。

require_once '/path/to/vendor/autoload.php'; 
use Twilio\Rest\Client; 

// Your Account Sid and Auth Token from twilio.com/user/account 
$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
$token = "your_auth_token"; 
$client = new Client($sid, $token); 

$number = htmlspecialchars($_REQUEST["TO"]); 

// Generate a call to the other party 
$call = $client->calls->create(
    $number, 
    $from, 
    array("url" => "http://example.com/conference?conference_name=EXAMPLE") 
); 

$response = new Twiml; 
$limit = getLimit($TWILIO_CALLER_ID, 1); 

$dial = $response->dial(array('callerId' => $TWILIO_CALLER_ID, 'timelimit' => $limit)); 

$dial->conference("EXAMPLE"); 

header("Content-Type: text/xml"); 
echo $response; 

これは、会議に発信者をドロップすると、受信機をダイヤルします。彼らが電話に答えると、あなたはURL(ここではhttp://example.com/conference?conference_name=EXAMPLE)にwebhookを取得します。そのURLに同じ会議室で応答する必要があります。

$response = new Twiml; 

$dial = $response->dial(); 
$dial->conference($_REQUEST['conference_name']); 

header("Content-Type: text/xml"); 
echo $response; 

あなたは残された時間に警告したいときに、あなただけの警告を読み出すためにTwiMLの<Say><Play>を使用して、会議にもう一度、この時間をダイヤルする必要があります。

この会議にダイヤルする番号を設定する必要があります。その後、制限時間が近づくとその番号にダイヤルし、そのメッセージを示すURLを使用します。

require_once '/path/to/vendor/autoload.php'; 
use Twilio\Rest\Client; 

// Your Account Sid and Auth Token from twilio.com/user/account 
$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
$token = "your_auth_token"; 
$client = new Client($sid, $token); 

$number = $YOUR_CONFERENCE_NUMBER; 

// Generate a call to the other party 
$call = $client->calls->create(
    $number, 
    $TWILIO_CALLER_ID, 
    array("url" => "http://example.com/time_message") 
); 

最後に、あなたがメッセージを言ってTwiMLと/time_messageエンドポイントに対応して、ハングアップする必要があります。

$text1 = "Your limit is"; 
$text2 = "seconds"; 

$response = new Twiml; 
$response->say($text1 . "10 seconds" . $text2) 
$response->hangup(); 

header("Content-Type: text/xml"); 
echo $response; 

それがまったく役に立ったら教えてください。

+0

私は今あなたのコードを試しています。私には1つの質問があります。 「$ YOUR_CONFERENCE_NUMBER」とは何ですか? 2番目のTwilio番号ですか、それとも "EXAMPLE"のような会議の識別子ですか? – Thev

+1

会議に直接アクセスする番号が必要です(または、着信番号でどの会議を推測できるか)。そう、はい、Twilio番号です。 – philnash

+0

私は、試用アカウントで購入できるのは1つだけであることがわかります。私は会話中に声を処理する最後の部分を試すためにアップグレードする準備が整うまで待たなければなりません。 – Thev

関連する問題