Исходящий звонок 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, используя указанную выше корзину twiML, но в twiML номер исходящего вызова статичен. Как сделать так, чтобы исходящий звонок на любой номер был динамичным?

Пожалуйста помоги.


person Farman Ali Khan    schedule 06.10.2017    source источник


Ответы (2)


Проповедник разработчиков Twilio здесь.

У вас уже есть пользовательский интерфейс, настроенный для звонков на любой номер, единственное, что вам нужно сделать, это сделать ваше приложение TwiML динамическим. Вы можете видеть, что когда вы запускаете вызов с помощью клиента, вы отправляете некоторые параметры:

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

Когда Twilio получает этот вызов, он отправляет параметры вашему приложению TwiML, а затем выполняет вызов на основе TwiML. Вам необходимо обновить ваш TwiML, чтобы он был динамически сгенерирован на основе параметра PhoneNumber, который вы отправляете. Примерно так должно работать:

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

Сообщите мне, если это поможет.

person philnash    schedule 09.10.2017
comment
Я попробовал использовать тот же код, но номер телефона не может быть получен по моей twmil-ссылке через Request. Не могли бы вы сообщить мне, почему это происходит - person Hamid Ejaz; 26.03.2019
comment
Боюсь, мне понадобится больше подробностей, чтобы помочь. Я хотел бы проверить, правильно ли вы настроили приложение TwiML со ссылками на ваше приложение, но кроме этого, я действительно не знаю. Я бы порекомендовал вам задать новый вопрос и объяснить, что вы пытаетесь сделать, поделиться любым соответствующим кодом и объяснить, что не работает. - person philnash; 28.03.2019

В кратком руководстве вы устанавливаете свой исходящий идентификатор вызывающего абонента в файле config.php. Вы можете использовать только те номера, которые вы купили в Twilio или проверили.

person miknik    schedule 06.10.2017
comment
Для идентификатора вызывающего абонента у меня есть номер Twilio. Но я хочу позвонить на любой номер. Я создал приложение twiML, в которое добавил abiove twiML. В twiML я добавил номер. Я хочу сделать это число динамичным. - person Farman Ali Khan; 07.10.2017