Twilio处理电话

时间:2017-03-04 09:06:43

标签: twilio twilio-php

我正在努力实现,每当我收到带有某些关键字的短信时,我都会接到一个电话,说我收到了短信,然后按1与发送短信的人交谈。

我是通过创建三个文件来完成的,这些文件位于

之下

Twilio.php

这会收到短信上的帖子请求并给我打电话

  $name = $_POST['name'];
  $phone = $_POST['phone'];

  $client = new Services_Twilio($AccountSid, $AuthToken);

  try {
    // make call
    $call = $client->account->calls->create(
      $caller,                
      $number,                       
      array("url" => "http://somewebsite.net/twilio/twiml.php?phone=$phone&name=$name")  
    );
  } catch (Exception $e) {
    echo 'Error starting phone call: ' . $e->getMessage();
  }

下一个文件,如果twiml.php处理电话并问我是否要发言并按1说话

twiml.php

   $nm = $_GET['name'];
   $ph = $_GET['phone'];

   $name  = "Deepak";
   header("content-type: text/xml");
   echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
    <Say>Hello <?php echo $name ?>.</Say>
    <Gather numDigits="1" action="http://somewebsite.net/twilio/call.php?phone=<?php echo $ph ?>" method="POST">
        <Say>You have a text message, press 1 to speak.</Say>
    </Gather>
</Response>

如果我按1说话然后拨打该号码,则调用第三个文件:以下是代码:

Call.php

<?php


    if($_REQUEST['Digits'] != '1') {
        header("Location: twiml.php");
        die;
    }

    $ph = $_GET['phone'];

    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
    <Dial>+1 <?php echo $ph ?></Dial>
</Response>

我想要实现的是将这三个文件合并为一个,所以我不需要发一个Post请求,我可以在一个文件中处理整个调用,或者至少我可以合并twiml.php和call.php < / p>

有没有办法合并这些?

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

您可以将其全部放入一个文件中,并使用请求的URI($_SERVER['REQUEST_URI'])来打开您随后运行的代码。或者,尝试一个抽象的小PHP框架可能会更有趣。 SlimSilex之类的内容可能适合您。

我会问你为什么需要在你的功能看起来有效时从一个文件中运行它?