2016-07-06 8 views
1

danke, dass Sie sich die Zeit genommen haben, meinen Beitrag zu lesen. Ich habe versucht, eine IVR einzurichten, um auf einem meiner Kundenkonten zu testen, eingehende Anrufe außerhalb der Geschäftszeiten usw. zu behandeln. Ich bin neu in Twilio und PHP im Allgemeinen. HierProblem mit der Eingabe der Twilio IVR-Benutzereingabe

ist der XML-Code, wie es scheint richtig laufen:

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Gather action="handle-user-input.php" numDigits="1"> 
    <Say voice="woman">Welcome to COMPANY.</Say> 
    <Say voice="woman">In order to further assist you. Please listen to the following:</Say> 
    <Say voice="woman">For an option, please press 1.</Say> 
    <Say voice="woman">For a different option, please press 2.</Say> 
    <Say voice="woman">To speak with another person, please press 3.</Say> 
    <Say voice="woman">For all other inquiries, please press 4.</Say> 
    </Gather> 
    <!-- If they didnt put an input say this then retry --> 
    <Say voice="woman">Sorry, I didn't get your response.</Say> 
    <Redirect>http://www.exampleforstackoverflow.com/handle-incoming-call.xml</Redirect> 
</Response> 

Also, wenn Sie die Twilio Nummer anzurufen sind, die in dieser XML-Datei gerichtet ist, die Sprachoptionen spielen und es scheint zu funktionieren richtig. Wenn Sie eine Eingabe drücken, erhalten Sie einen Anwendungsfehler. Die PHP-Datei, die Griff-user-input.php ist wie folgt:

<?php 
    $dayofweek=date('D'); 
    $hour=date('H'); 

    if(($dayofweek!='Sat')&&($dayofweek!='Sun')){ 
    if(($hour>17)&&($hour<23)){ 

    //ok time to call 

     $ok='1'; 
    } 
    } 

    header('Content-type: text/xml'); 
    echo '<?xml version="1.0" encoding="UTF-8"?>'; 
    echo '<Response>'; 
    $user_pushed = (int) $_REQUEST['Digits']; 
    if ($user_pushed == 1) { 
    echo '<Say voice="woman">Connecting you to, sales.</Say>'; 
    if($ok!='1'){ 
     echo '<Redirect>http://twimlets.com/[email protected]&Message=http://www.example.com/ftZLg.mp3</Redirect>'; 
    } else { 
     echo '<Dial>+12345678901</Dial>'; 
    } 
    } else if ($user_pushed == 2) { 
     echo '<Say voice="woman">Connecting you to some person.</Say>'; 
     if($ok!='1') { 
     echo '<Redirect>http://twimlets.com/[email protected]&Message=http://www.example.com/ftZLg.mp3</Redirect>'; 
     } else { 
      echo '<Dial>+12345678901</Dial>'; 
     } 
    } else if ($user_pushed == 3) { 
     echo '<Say voice="woman">Connecting you to a person.</Say>'; 
     if($ok!='1') { 
     echo '<Redirect>http://twimlets.com/[email protected]&Message=http://www.example.com/ftZLg.mp3</Redirect>'; 
     } else { 
      echo '<Dial>+12345678901</Dial>'; 
     } 
    } else if ($user_pushed == 4) { 
     echo '<Say voice="woman">Connecting you to, operator.</Say>'; 
     if($ok!='1') { 
     echo '<Redirect>http://twimlets.com/[email protected]&Message=http://www.example.com/ftZLg.mp3</Redirect>'; 
     } else { 
      echo '<Dial>+12345678901</Dial>'; 
     } 
    } else { 
     echo "<Say voice="woman">Sorry, You dialed an invalid number.</Say>"; 
     echo '<Redirect>http://www.exampleforstackoverflow.com/handle-incoming-call.xml</Redirect>'; 

    } 
    echo '</Response>'; 
?> 

Ich bin nicht sicher, ob es ein Fehler in meiner PHP-Datei ist, vielleicht gibt es. Ich habe jedoch festgestellt, dass in meinem Twilio-Fehlerprotokoll festgestellt wurde, dass die Anfrage abgelaufen ist, um auf die Datei zuzugreifen. Mit anderen Worten, http://example.com/handle-user-input.php gab den Fehler 500, als Twilio versuchte, darauf zuzugreifen.

Wie auch immer, danke, dass Sie sich die Zeit genommen haben, meinen Beitrag zu lesen. Wenn jemand einen Einblick in meinen Fehler hat, wäre das großartig!

Antwort

2

Sie haben doppelte Anführungszeichen für ein Echo: echo "Entschuldigung, Sie haben eine ungültige Nummer gewählt.";

werden aktualisiert, dass zu

echo '<Say voice="woman">Sorry, You dialed an invalid number.</Say>'; 

Und ich bekomme diese von der php zurückgegeben (tat nicht Post Ziffern, usw.):

<?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="woman">Sorry, You dialed an invalid number.</Say> <Redirect>http://www.exampleforstackoverflow.com/handle-incoming-call.xml</Redirect> </Response>

Wenn Sie PHP neu sind, schauen Sie in eine IDE, die Syntaxüberprüfung oder eine Art von Code-Validierung wie http://phpcodechecker.com/ für einmalige Prüfungen.

Wenn Sie Zugriff haben, können Sie auch einschalten Fehlerberichterstattung auf dem PHP-Server durch so etwas wie dies folgende: How do I get PHP errors to display?