【问题标题】:Twilio outgoing call from browser从浏览器拨出 Twilio
【发布时间】:2017-10-06 14:40:16
【问题描述】:

我是 twilio 的初学者。我已阅读从浏览器拨打电话的快速入门。我的代码如下所示

 <?php
require 'twilio-php-master/Twilio/autoload.php';
use Twilio\Jwt\ClientToken;
$accountSid = '***************************';
$authToken  = '***************************';
$appSid = '****************';

$capability = new ClientToken($accountSid, $authToken);
$capability->allowClientOutgoing($appSid);
$capability->allowClientIncoming('jenny');
$token = $capability->generateToken();
?>

<!DOCTYPE html>
<html>
  <head>
    <title>Hello Client Monkey 4</title>
    <script type="text/javascript"
      src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>
    <script type="text/javascript"
      src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>
    <link href="//static0.twilio.com/resources/quickstart/client.css"
      type="text/css" rel="stylesheet" />
    <script type="text/javascript">

      Twilio.Device.setup("<?php echo $token; ?>");

      Twilio.Device.ready(function (device) {
        $("#log").text("Ready");
      });

      Twilio.Device.error(function (error) {
        $("#log").text("Error: " + error.message);
      });

      Twilio.Device.connect(function (conn) {
        $("#log").text("Successfully established call");
      });

      Twilio.Device.disconnect(function (conn) {
        $("#log").text("Call ended");
      });

      Twilio.Device.incoming(function (conn) {
        $("#log").text("Incoming connection from " + conn.parameters.From);
        // accept the incoming connection and start two-way audio
        conn.accept();
      });

      function call() {
        // get the phone number to connect the call to
        params = {"PhoneNumber": $("#number").val()};
        Twilio.Device.connect(params);
      }

      function hangup() {
        Twilio.Device.disconnectAll();
      }
    </script>
  </head>
  <body>
    <button class="call" onclick="call();">
      Call
    </button>

    <button class="hangup" onclick="hangup();">
      Hangup
    </button>

    <input type="text" id="number" name="number"
      placeholder="Enter a phone number to call"/>

    <div id="log">Loading pigeons...</div>
  </body>
</html>

TwiML 代码在这里

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Dial callerId="+14159426198">
    <Number>+91**********</Number>
  </Dial>
</Response>

我可以拨出电话。我已经使用上面的 twiML bin 制作了 TwiML 应用程序,但在 twiML 中拨出电话号码是静态的。如何动态拨打任意号码?

请帮忙。

【问题讨论】:

    标签: twilio twilio-api twilio-php twilio-click-to-call


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    您已经设置了可以拨打任何号码的 UI,您唯一需要做的就是让您的 TwiML 应用程序动态化。您可以看到,当您开始与客户端通话时,您正在发送一些参数:

      function call() {
        // get the phone number to connect the call to
        params = {"PhoneNumber": $("#number").val()};
        Twilio.Device.connect(params);
      }
    

    当 Twilio 收到此调用时,它会将参数发送到您的 TwiML 应用程序,然后根据 TwiML 进行调用。您需要根据您发送的PhoneNumber 参数更新您的TwiML。像这样的东西应该可以工作:

    <?php
      $phoneNumber = $_REQUEST['PhoneNumber'];
      header("Content-type: text/xml");
    ?>
    <Response>
      <Dial callerId="+14159426198">
        <Number><?php echo $phoneNumber ?></Number>
      </Dial>
    </Response>
    

    让我知道这是否有帮助。

    【讨论】:

    • 我尝试了相同的代码,但电话号码无法通过请求到达我的 twmil 链接。你能告诉我为什么会这样吗
    • 恐怕我需要更多细节才能提供帮助。我会检查您是否正确设置了 TwiML 应用程序,并带有指向您的应用程序的链接,但除此之外我真的不知道。我建议您开始一个新问题并解释您正在尝试做什么,分享任何相关代码并解释什么不起作用。
    【解决方案2】:

    在快速入门中,您可以在 config.php 文件中设置您的拨出呼叫者 ID。您只能使用从 Twilio 购买或经过验证的号码。

    【讨论】:

    • 对于来电显示,我有 twilio 号码。但我想拨打任何号码。我创建了一个 twiML 应用程序,在其中添加了 abiove twiML 。在 twiML 中,我添加了一个数字。我想让这个数字动态化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多