2016-07-15 1 views
1

Имея живую инфраструктуру twilio, где у меня есть агенты и клиенты. Клиент вызывает номер twilio и ставится в очередь. Как только пользователь находится в очереди, клиент ждет агента. На моем сервере хрон работа вызывает все доступные агенты с номером Twilio на стороне сервера с помощью PHP Twilio библиотека помощникаTwilio Queue превращается в конференцию, чтобы добавить нового клиента к вызову

звонки-> создать (...)

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

Так система должна быть и не должна изменяться. Невозможно внести существенные изменения в этот код.

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

Вернее, спецификация заключается в том, что клиент может каким-то образом подключиться к агенту, а во время вызова с агентом может каким-то образом добавить другого клиента (друга) к вызову с этим агентом.

Этого можно достичь. Я знаю о добавлении участников на конференцию. Как я уже сказал, код не может быть изменен, это на сайте. Я разрабатываю клиентское приложение ios для более легкого доступа клиента к сервису и серверу (Twiml и Php).

Есть ли обходной путь, возможно, когда агент и клиент подключены в очереди, я могу как-то перенаправить их на вызов. Возможно, при подключении я могу перенести их из очереди с помощью REST API и поместить их в конференц-вызов.

ответ

0

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

Если вам нужно привлечь больше людей в один звонок, вам необходимо отправить их в <Conference>.

Если вы можете получить Звонки вызова двух вызовов (входящих от вызывающего и исходящих к агенту), то вы действительно можете перенаправить их на конференцию на updating the live calls. Вы бы сделать это с помощью REST API, и это будет выглядеть немного так:

$sid = "your_account_sid"; 
$token = "your_auth_token"; 
$client = new Services_Twilio($sid, $token); 

$call = $client->account->calls->get("CALL_SID"); 
$call->update(array(
    "Url" => "http://example.com/your_conference_handler" 
)); 

URL, вы поставляете бы вернуть TwiML начать <Conference>.

Дайте мне знать, если это поможет вообще.

+0

Клиенты: в одном скрипте, а агенты - с клиентом в другом скрипте. Когда и как я могу получить CallSid? имеет actionCallback, а агент имеет обратный вызов. Возможно, клиентское приложение ios может отправить запрос с номером вызова и номером новых членов на мой сервер/putIntoConf, и на основе параметров phoneNumber и CallSid можно добавить их 3 в конференц-связь? Если да, то как клиент ios может передать CallSid на мой маршрут. Часть клиента ios я не знаю. – user3931314

Смежные вопросы