оставайтесь на связи с вызовом twilio при обновлении страницы

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

Часть PHP здесь

$token = new Services_Twilio_Capability(TW_ID, TW_TOKEN);
$token->allowClientIncoming($_SESSION['emp_id']);

Часть JS:

Twilio.Device.setup("<?php echo $token->generateToken();?>");


$("#call").click(function() {  
  params = { "tocall" : $('#tocall').val()};
  connection = Twilio.Device.connect(params);
});

$("#hangup").click(function() {  
  Twilio.Device.disconnectAll();
});

Twilio.Device.ready(function (device) {
        $('#status').text('Ready');
        console.log(Twilio.Device.status());
});

Twilio.Device.incoming(function (conn) {                        
        startCall(conn);
});

на странице загружается функция Twilio.Device.ready(), позволяющая пользователю входить в систему для приема вызовов, но пользователь обновляет страницу, когда вызов отключается, или если пользователь пытается сделать что-то вроде обновления информации о клиенте во время разговора, чтобы отключить вызов. Надеюсь ты понимаешь.

Но теперь понятия не имею, как избавиться от этой проблемы. В одном из вариантов я должен использовать хеш-значение в URL-адресе что-то вроде #status.

Пожалуйста, помогите мне дать любое альтернативное решение или изменить этот код.


person jogesh_pi    schedule 24.09.2012    source источник
comment
Я знаю, что это сообщение летней давности, но вы нашли какое-нибудь решение?   -  person bipen    schedule 06.11.2015
comment
@bipen Точно не помню, я ушел из этой компании. Попробуйте сохранить токен в сеансе.   -  person jogesh_pi    schedule 06.11.2015
comment
Любое решение по этому поводу?   -  person Ashish Dwivedi    schedule 28.11.2019
comment
@AshishDwivedi, извини, приятель, я забыл, что использовал, потому что оно слишком старое. Но в соответствии с текущей технологией я должен использовать ReactJ и буду обрабатывать все запросы через запрос Ajax.   -  person jogesh_pi    schedule 29.11.2019


Ответы (2)


Вы можете использовать сеанс для этого... сохраните значение токена в сеансе.

$_SESSION['token']=$your_token; 

доступ вот так

<?php echo $_SESSION['token'];?>
person Raj Adroit    schedule 24.09.2012
comment
но если вы видите в js-части Twilio.Device.ready(), что эта функция делает пользователя готовым, решает ли проблема только токен?? потому что я уже использовал это, передав токен через URL - person jogesh_pi; 24.09.2012
comment
Если вы передали URL-адрес, он не будет стабильным при обратном вызове перенаправления страницы. если вы сохранили в сеансе, он будет доступен и после обновления страницы. - person Raj Adroit; 24.09.2012
comment
Можете ли вы привести пример, если это возможно, с данным кодом ?? - person jogesh_pi; 24.09.2012

Есть несколько разных вариантов, которые вы могли бы выбрать.

  • Сохраните состояние вызова на сервере с помощью запроса POST на ваш сервер при подключении вызова. Затем, когда клиент обновляет страницу, отправьте входящий (существующий) вызов клиенту.
  • Используйте HTML5 localStorage или аналогичный для сохранения состояния вызова на клиенте. Ваш JS должен проверять наличие вызова в localStorage при загрузке страницы. Если вызов существует в этой базе данных, подключитесь к тем же конечным точкам, что и раньше.
person Kevin Burke    schedule 24.09.2012