0

私の目標は、着信を選別してボイスメールに送信できるようにすることです。以下のコードはスクリーニングを正しく行いますが、電話に出てから電話を切ると、ボイスメールに転送されるのではなく、通話が切断されます。どうすればこれを達成できますか?

<Say>Please wait while we connect you to Aaron. Calls may be recorded for quality assurance purposes.</Say>

<Dial action="voicemail.php?email=aaron" timeout="15">
  <Number url="screen-caller.xml">+11231231234</Number>
</Dial>

screen-caller.xml:

<Response>
    <Gather action="handle-screen-input.php" numDigits="1">
            <Say>To accept, press 1.</Say>
    </Gather>
    <!-- If customer doesn't input anything, prompt and try again. -->
    <Say>Sorry, I didn't get your response.</Say>
    <Redirect>screen-caller.xml</Redirect>
</Response>

ハンドル-画面-input.php:

    echo '<?xml version="1.0" encoding="UTF-8"?>';

    echo '<Response>';

    $user_pushed = (int) $_REQUEST['Digits'];

    if ($user_pushed == 1)
    {
            echo '<Say>Connecting. Calls are recorded.</Say>';
    }
    else {
            echo '<Hangup />';
    }

    echo '</Response>';

voicemail.php:

    header("content-type: text/xml");
    echo '<?xml version="1.0" encoding="UTF-8"?>';
    $email = $_REQUEST['email'];
?>
<Response>
    <?php if ($_REQUEST['DialCallStatus'] == 'completed') { ?>
            <Hangup/>
    <?php } else { ?>
            <Say>Please leave a message at the beep.  Press the star key when finished.</Say>
            <Record transcribe="true" action="goodbye.php" transcribeCallback="voicemail-send.php?email=<?php echo $email; ?>" maxLength="120" finishOnKey="*" />
            <Say>I did not receive a recording.</Say>
            <Redirect>voicemail.php</Redirect>
    <?php } ?>
</Response>
4

1 に答える 1

0

[[ 編集 ]]

ああ!私はそれが何であるかを知っています!以下の答え(後世のために取っておきました)はまったく間違っています。

ダイヤルされ、ささやきを得ている人が電話を切るとaction<Dial>動詞の が呼び出されます。ドキュメントからDialCallStatus値は次のとおりです。完了、ビジー、無応答、失敗、またはキャンセル。人が電話に出たときのステータスは、通話中、応答なし、失敗、キャンセルのいずれでもありません。そのため、ささやきが終わる前に電話を切ると、通話ステータスが完了します。

したがって、アクションが呼び出されると、DialCallStatusが完了し、voicemail.php がハングアップします。

DialCallDuration. _

これが今役立つことを願っています!

【【独自回答】】

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

通話のささやきの部分で電話を切った場合、元の発信者は、指定された TwiML を引き続き使用します。この場合、動詞のみを与える<Dial>ので、あなたが電話を切ると、発信者はアクションを完了し<Dial>、TwiML の最後に到達して電話を切ります。

最初の TwiML のの<Redirect>/voicemail.php?email=aaron</Redirect>後にを追加してみてください。<Dial>

それが役立つかどうか教えてください。

于 2015-04-23T08:11:18.443 に答える