当前位置: 首页 > 知识库问答 >
问题:

Twilio从浏览器传出呼叫

习宸
2023-03-14
 <?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>
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Dial callerId="+14159426198">
    <Number>+91**********</Number>
  </Dial>
</Response>

请帮忙。

共有1个答案

寿飞飙
2023-03-14

这里是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来更新TwiML。像这样的事情应该会奏效:

<?php
  $phoneNumber = $_REQUEST['PhoneNumber'];
  header("Content-type: text/xml");
?>
<Response>
  <Dial callerId="+14159426198">
    <Number><?php echo $phoneNumber ?></Number>
  </Dial>
</Response>
 类似资料:
  • 我正试着从我的twilio试用帐户拨出电话。我指的是这个链接。基于这个链接,我创建了一个名为hello-client-twiml.php的页面,代码如下: 有人能帮我解决这个问题吗?提前谢了。

  • 我正在尝试twilio从我的浏览器到手机号码打电话,但没有成功。以下是我遵循的步骤:

  • 我使用Twilio iOS SDK作为我的iOS Voip应用程序。 不过,我正试图从我的Voip应用程序中调用我在某些点上堆叠的任何号码。 我已经确认了Http请求被发送到我的应用程序请求url,我在url上设置了当我从我的Voip应用程序发出呼出时和当我的Voip应用程序收到呼入时。 简而言之,下面是我认为当我从Voip应用程序中调用时是真实的流程 键入号码和呼叫(iOS Voip应用程序)-

  • 我正在做一个POC,并试图从Salesforce通过Twilio拨打一个出站电话。我已经在Twilio有个账户了。 我已配置TWIML应用程序,并用SFDC URL指向请求的URL:https://xxxxxx.cs8.force.com/Dial. 我可以从我的SFDC软电话(笔记本电脑麦克风)连接到客户(到号码),但我想通过我的from(代理物理电话)连接到电话#。 尽管我已经在

  • 我相信我可能不太了解Twilio通话的流程。我有两种情况——一种是从浏览器打电话给手机(传出),另一种是从手机打电话给浏览器(客户端)(传入)。 对于这两个调用,当请求到达我的twilio语音URL时,我将twilio发送的post数据记录在日志文件中。 在这两种情况下,“direction”post变量都表示“inbound”。我希望其中一个说“入站”,另一个说“出站”,或“出站拨号”(根据文档

  • 这里是Twilio的新手,并寻求twilio专家的建议。我正在尝试拨打IVR系统的出站电话,等待几秒钟并发送键盘号码输入以在另一端启动工作流程 到目前为止,我可以呼叫IVR系统,但我如何发送号码输入?我认为TwiML是实现这一点的方法!非常感谢您的帮助