2017-02-21 6 views
0

Мне нужно изменить текущий текущий вызов. , если A называет B, они подключены и разговаривают, мне нужно перенаправить B на некоторый URL Twiml и отключить A от вызова (я могу сделать это через функцию JavaScript SDK .diconnect(), так как я являюсь "A «вызывающий». Я использую пример из Twilio docs (php SDK v4.x):Twilio Перенаправление входящего вызова на определенный URL

$call = $client->account->calls->get($callsid); 
$call->update(array(
    "Url" => "http://path-to-twiml.php", 
    "Method" => "POST" 
)); 

но ничего не происходит. Возможно ли как-то сделать то, что мне нужно, не используя возможности конференции Twilio?

PS: добавление параметра «Статус» => «полный» для обновления параметров вызывает отсоединение для обеих сторон вызова, так как мне нужно отключить только 1 (тот, кто инициировал вызов) и оставить другое (перенаправлено на специфический twiml url)

+0

Как вы передаете вызов Sid этой функции? – philnash

+0

когда я создаю вызов JavaScript SDK, я поймать его: 'Twilio.Device.connect (функция (Conn) { \t \t \t \t \t \t callsid = conn.parameters.CallSid; \t \t \t \t \t}); ' , а затем отправить его на php через ajax. –

ответ

0

Twilio евангелист здесь.

Из кода, который вы опубликовали, я предполагаю, что измененный вами callsid на самом деле является Caller A, а не Caller B. В вашем сценарии A и B каждый будет иметь свой собственный отдельный callid, где Caller A «родитель», а Caller B - «ребенок».

Чтобы получить дочерний элемент sid, вы можете указать URL-адрес в параметре в своем <Dial> глаголе, который будет запрашиваться при ответе Caller B. Параметр callsid этого запроса является номером вызывающего абонента. Вы также получите параметр с именем parentCallSid, который является идентификатором вызывающего абонента, и который позволяет вам сопоставить дочернюю ногу (Caller B) с родительским концом (Caller A).

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

Надеюсь, что это поможет.

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