Twilio basic и переадресация звонков

Я новичок в twilio, я создал тестовую учетную запись на twilio, мне дали номер.

Теперь я хочу переадресовать звонок, приходящий на данный (данный от twilio), на любой другой номер. Я могу сделать это с веб-сайта Twilio.

Но я хочу сделать это через свое приложение, где 1. С одной стороны мой номер и 2. с другой стороны есть текстовое поле, в котором я буду указывать номер, на который будут переадресовываться звонки. и 3. кнопка сохранения, которая сохранит изменения, после нажатия которой, всякий раз, когда кто-то звонит по номеру, указанному twilio, этот входящий звонок будет перенаправлен на номер, указанный в текстовом поле.

Я хочу добиться этой функциональности с помощью PHP

Но я совершенно не знаком с Twilio.

Надеюсь на помощь.

Любая помощь будет оценена.

Заранее благодарим за помощь.


person gehlotparesh    schedule 10.09.2015    source источник


Ответы (2)


Фактически вы можете добиться этого с помощью TwiML, который представляет собой простой XML. Просто укажите голосовой URL-адрес вашего номера Twilio на конечную точку в вашем приложении, которая выводит это:

<?php
header("content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>';
$forward_to="";
if($_REQUEST['To'] == $number_a){
    $forward_to ='forward  number'; //this is already defined by your users, so it much be stored somewhere...
}elseif($_REQUEST['''] == $number_b){
    $forward_to ='forward  number'; //this is already defined by your users, so it much be stored somewhere...
}
?>

<Response>
    <Dial>
        <Number><?php echo $forward_to; ?></Number>
    </Dial>
</Response>

Поэтому, когда поступает звонок, вы проверяете, откуда он поступает, на номер a или номер b. Затем, если он от a, вы получаете номер пересылки для a (т. Е. C), а если он для b, вы получаете номер пересылки для b (т. Е. D).

person ecorvo    schedule 11.09.2015
comment
Спасибо ecorvo за ваш ответ, но у меня есть несколько приобретенных номеров, напротив них будут текстовые поля, в которых пользователь будет указывать соответствующие номера, на которые пользователь хочет переадресовать вызов. Итак, как выше xml будет различать тот, на какой номер, кому нужно переадресовать звонок - person gehlotparesh; 14.09.2015
comment
Итак, вы хотите выполнять маршрутизацию при входящем звонке или хотите, чтобы она была предустановлена? - person ecorvo; 14.09.2015
comment
Я хочу, чтобы он поступил, когда поступит звонок, он должен быть переадресован, но я не знал, как это сделать - person gehlotparesh; 14.09.2015
comment
Я предполагаю, что у вас будет это заранее определено до входящего звонка, например, если вы вызываете этот номер вперед на этот номер и т. Д. Но если вы хотите сделать это на лету, это немного сложнее. Вам нужно будет перевести вызывающего абонента в режим ожидания и предупредить кого-то о входящем вызове, а затем этот человек вручную переадресует вызов. Это то, что вы хотите? - person ecorvo; 14.09.2015
comment
Я думаю, что то, что вы называете предопределенным, - это единственное, что мне нужно. Я хочу, чтобы это было следующим образом: есть два числа (a, b), которые пока не переадресованы. Но через мой интерфейс пользователь вводит данные, как показано ниже, для a = ›cb =› d Итак, когда любые вызовы a, вызов должны быть перенаправлены на c и b, вызов должен быть перенаправлен на d. Это то, что необходимо для меня. - person gehlotparesh; 14.09.2015
comment
Я видел обновленный ответ, но он не соответствует требованию, которое я запрашиваю, я заставлю вас понять весь сценарий, учтите, что есть таблица, которая состоит из заголовков, таких как «Приобретенные номера» и «Переадресация», под заголовками есть строка, состоящая из «Куплено» Номер a в разделе «Купленные номера» и текстовое поле в разделе «Переадресовать на», в котором пользователь вводит номер, на который пользователи хотят переадресовать вызов для приобретенного номера a. Точно так же есть еще одна строка с номером «Куплено» b и текстовое поле, в котором пользователь вводит номер «Вперед на номер» для b и т. Д. В конце таблицы .... - person gehlotparesh; 15.09.2015
comment
В конце таблицы .... Там будет кнопка, которая позволит пользователю сохранить сделанные изменения. Например, если в текстовом поле напротив приобретенного номера a пользователи пишут c, одновременно, в текстовом поле напротив приобретенного номера b пользователи пишут d, а затем пользователь нажимает кнопку «Сохранить», затем в любой момент времени, если выполняется вызов на a, он должен быть перенаправлен на c, аналогично, если вызов сделан на b, он должен быть перенаправлен на d. Вы поняли всю концепцию? - person gehlotparesh; 15.09.2015
comment
Я понял. и мой ответ должен работать нормально. Все, что вам нужно сделать, это получить данные из таблицы во время входящего звонка и поместить их в $ forward_to. Я полагаю, вы знаете, как делать столовую часть. Мой ответ касается только части Twilio. Итак, в основном то, что мы делаем, - это указываем URL-адрес входящего вызова в номере twilio на конечную точку, которая содержит код в ответе. Поэтому, когда поступает вызов, мы ищем в сохраненной таблице, используя параметр To из twilio, чтобы узнать, какой номер вызывается. - person ecorvo; 15.09.2015
comment
Как только мы определим номер, таблица сообщит нам, куда переадресовать вызов, поэтому на этом этапе мы помещаем его в переменную forward_to, а затем выводим XML, чтобы Twilio знал, что делать. Это все на стороне сервера, а не то, что увидят ваши пользователи. Теперь это имеет смысл? - person ecorvo; 15.09.2015
comment
Привет, Экорво, прежде всего, я хотел бы поблагодарить вас за вашу огромную поддержку, без вашей поддержки я не смог бы достичь этой функции. Однако это делается по-другому, без какого-либо использования XML-файла. Я сохранил свой ответ ниже, пожалуйста, посмотрите ответ. Еще раз хочу сердечно поблагодарить вас за безмерную поддержку, большое вам спасибо. - person gehlotparesh; 16.09.2015
comment
Прежде всего, я рад, что вы нашли решение. Но я хотел бы, чтобы вы знали, что, хотя это кажется простым решением, оно может плохо масштабироваться. Это хорошо работает для пары чисел, но если ваше приложение вырастет, скажем, до 100 чисел, это будет довольно медленно. По сути, вы перебираете все номера в своей учетной записи и меняете голосовой URL-адрес на тимлет. XML, который я вам показал, является эквивалентом twimlet, но на вашем сервере, а не twilio. Следовательно, нет необходимости в зацикливании. - person ecorvo; 16.09.2015
comment
см. Переадресация вызовов с помощью TwiML. twilio.com / help / faq / voice / how-can-i-set-up-call-forwarding и twilio.com/docs/api/twiml/dial - person ecorvo; 16.09.2015
comment
Привет, Экорво, спасибо за ваше предложение, я очень ценю то же самое, и это действительно полезно. Еще раз большое спасибо за всю помощь, которую вы оказали от базового уровня до уровня успеха. Большое тебе спасибо. - person gehlotparesh; 18.09.2015

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

Если вы новичок в Twilio, я предлагаю вам ознакомиться с нашим кратким руководством по PHP для голосовой связи.. Обучающие материалы помогут вам начать работу с Twilio, а затем вы сможете настроить свое приложение так, как хотите.

Если вы затем столкнетесь с некоторыми проблемами, вы можете опубликовать здесь, в StackOverflow, код, который вы пробовали, и люди здесь попытаются помочь.

person philnash    schedule 10.09.2015
comment
Спасибо за ответ. Я получил 1. доступные номера 2. текущие или приобретенные номера. Но я не могу найти api, который может дать текущий баланс соответствующего пользователя. Есть ли какой-нибудь api для получения текущего баланса соответствующего пользователя? Ваша помощь очень ценится и будет оценена - person gehlotparesh; 11.09.2015
comment
@PJBrunet Мне жаль, что ты так думаешь. Мы всегда стремимся улучшить нашу документацию и учебные пособия, поэтому, если у вас есть время, я был бы очень признателен, если бы вы могли поделиться со мной, с какими учебными пособиями у вас возникли проблемы, и мы можем работать специально над их улучшением. Мой адрес электронной почты: [email protected]. - person philnash; 04.05.2019
comment
@philnash Просто посмотрите на верхний ответ здесь. Не нужно ничего устанавливать, я вставил его в nano, и через несколько минут заработал мой новый номер телефона. В то время как ваш веб-сайт требует, чтобы я установил много раздутого мусора, который мне не нужен: Composer, Packagist, Laravel, PHP Helper Library, фу! Мне просто нужно было быстрое решение. Я занят, и у меня нет на все это времени. Лично мне нравится ваша документация по curl, и я сначала просмотрел ее, но, просто делая / принимая звонки, я не нашел решения для завивки на вашем веб-сайте. Здесь я нашел решения, позволяющие совершать / принимать звонки за несколько минут без лишних хлопот. - person PJ Brunet; 05.05.2019
comment
@PJBrunet ценит то, что наши учебники в значительной степени настроены, чтобы помочь людям, которые работают с полными приложениями и, вероятно, будут иметь Composer или даже полную структуру, такую ​​как Laravel, с которой они хотят интегрировать Twilio. Эти руководства становятся отправной точкой для более полнофункциональных приложений и интеграций. Если вы ищете простую переадресацию звонков, я бы посоветовал изучить Подборки TwiML, которые размещены на Twilio и возвращают только TwiML. Тогда не нужно даже PHP. - person philnash; 05.05.2019
comment
@philnash Да, к сожалению, многие люди недальновидны и чрезмерно разрабатывают полные приложения, чтобы они были более сложными, чем необходимо, даже если решение представляет собой просто заголовок + строку текста. (Я усвоил этот урок 30 с лишним лет назад с библиотеками Pascal и C.) Всего две строки кода, которые я могу очень легко вставить в полноценное приложение. То же самое с curl, это однострочные элементы, которые я использую в своих бэкэнд-системах для SMS-сообщений, фотографий, смайлов, ответов на тексты и т. Д. К счастью, Twilio прост в использовании, и я планирую более широко использовать его с моими клиентами и во всех моих бизнес-проектах. - person PJ Brunet; 05.05.2019
comment
Я рад, что у вас это работает :) Я определенно согласен с тем, что некоторые люди могут чрезмерно разрабатывать вещи, но у нас определенно есть люди, которые уже работают в рамках, которые хотят увидеть, как в нем можно использовать Twilio, поэтому мы стараемся обслужить и это тоже. Дайте мне знать, если я могу чем-то помочь, когда вы все же начнете больше использовать Twilio. - person philnash; 07.05.2019