Проповедник разработчиков Twilio здесь.
Когда вы управляете вызовами с помощью Twilio, есть два механизма, с помощью которых он работает. Существует Twilio REST API, который ваше приложение может использовать, чтобы все происходило, например запуск или изменить звонок. Затем есть веб-перехватчики, которые представляют собой HTTP-запросы, которые Twilio отправляет вашему приложению, когда что-то меняется в вызове, например, кто-то набирает ваш номер Twilio, вводит данные на телефоне или человек отвечает на исходящий вызов. Вы отвечаете на веб-перехватчики с помощью TwiML, подмножества XML, с инструкциями о том, что делать. со звонком дальше.
В этом случае вы хотите для начала позвонить человеку A. Для этого вам понадобится REST API для этого вызова. Когда человек А отвечает на звонок, Twilio отправляет вашему приложению запрос через веб-перехватчик, чтобы узнать, что делать дальше. Именно в этот момент вы можете как вызвать человека B, снова используя REST API, так и подключить человека A к конференц-связи, ответив с помощью TwiML.
Итак, ваш первоначальный исходящий вызов REST API должен выглядеть примерно так:
use Twilio\Rest\Client;
// Find your Account Sid and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);
$call = $twilio->calls
->create($personANumber, // to
$yourTwilioNumber, // from
["url" => "http://example.com/conference.php"]
);
URL-адрес, который вы отправляете при вызове, будет тем местом, куда Twilio отправляет запрос веб-перехватчика. Таким образом, в ответ на example.com/conference.php
в этом случае вам нужно будет позвонить другому человеку и ответить с помощью TwiML, чтобы направить человека A в конференц-связь.
На этот раз вместо отправки URL-адреса вы можете отправить TwiML в ответе REST API. Что-то вроде этого:
use Twilio\Rest\Client;
use Twilio\TwiML\VoiceResponse;
// Find your Account Sid and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);
$twiml = new VoiceResponse();
$dial = $twiml->dial();
$dial->conference("Conference Name");
$call = $twilio->calls
->create($personBNumber, // to
$yourTwilioNumber, // from
["twiml" => $twiml->toString()]
);
echo $twiml.toString();
В этом случае я использовал один и тот же TwiML для обеих сторон вызова, потому что они оба входят в одну конференцию. Вы можете ответить другим TwiML в зависимости от того, что происходит.
Сообщите мне, если это поможет.
person
philnash
schedule
20.11.2020