Пожалуйста, мне нужна помощь.
Я читал об этом API Twilio, потому что мне нужно решить какой-то код, который я не делал.
И он работает на странице в PHP, чтобы звонить клиентам. Существует процесс, который выполняется каждый раз и проверяет журнал или cvs и вставляет запись в базу данных с информацией Twilio.
В идеале, если в конце исходящего вызова он может знать уникальный идентификатор вызова и сохранять его вместе с некоторыми комментариями.
Как я могу использовать параметры клиентского вызова? или есть другой путь? (длительность, Сид, до и т.д.)
Я уже читал это, но я этого не понимаю
Благодарю!!
https://www.twilio.com/docs/api/rest/making-calls
https://www.twilio.com/docs/api/rest/call
<?php
require_once('Services/Twilio.php'); // Loads the library
$API_VERSION = '2010-04-01';
$accountSid = 'AC7d3444f83611xxxxxxxxxxxxxxxx';
$authToken = 'd72d5f036e96abexxxxxxxxxxxxxx';
$capability = new Services_Twilio_Capability($accountSid, $authToken);
$capability->allowClientOutgoing('AP29cb5d9e0dcxxxxxxxxxxxxxxxxxx');
$capability->allowClientIncoming('name');
$token = $capability->generateToken();
//error_log("token is $token");
?>
<script type="text/javascript">
Twilio.Device.setup("<?php echo $token; ?>");
function call() {
params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
Twilio.Device.connect(params);
}
function hangup() {
Twilio.Device.disconnectAll();
//Twilio.Device.disconnect();
}
</script>
Этот код вызывается, когда вы что-то обновляете
<script>
$(document).ready(function() {
$('.call_status').change(function()
{
var status = $(this).val();
var rec_val = $(this).parent().find('.rec_val').val();
var pledge_amt = $('#pledge_amt'+rec_val).val();
hangup();
$.ajax({
url: '<?php echo site_url('agent/agent_status/'); ?>',
type: 'post',
data: {'rec_val': rec_val, 'status': status, 'pledge_amt': pledge_amt},
success:function(resp)
{
if(resp)
{
window.location.href="<?php echo site_url('agent/call_leads/'); ?>";
//$('.msg').html("Status Updated Successfully!").fadeOut(5000);
} else
{
alert('Please check your selected data');
}
},
error:function(resp)
{
alert(resp);
}
});
});
jQuery('.status_update').fadeOut(5000);
});
</script>
Twilio разработчик евангелист здесь.
Когда вы создаете вызов, вы получаете объект соединения. Объект соединения содержит все параметры, о которых вы читали в документации REST API, касающуюся совершения вызовов. Таким образом вы можете получить идентификатор вызова (уникальный идентификатор). В приведенном ниже коде я использую объект connection
созданный при размещении вызова для выхода из параметров вызова:
<script type="text/javascript">
Twilio.Device.setup("<?php echo $token; ?>");
function call() {
params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
var connection = Twilio.Device.connect(params);
console.log(connection.parameters);
}
</script>
Позвольте мне знать, если это помогает!
Редактировать:
Чтобы использовать это соединение в функции зависания, вам нужно сохранить объект соединения вне области функции вызова. Вы могли бы это сделать, currentConnection
как переменную за пределами двух функций, а затем установив и используя ее при действии. См. Обновленный код ниже (ознакомьтесь с комментариями для получения дополнительной информации):
<script type="text/javascript">
Twilio.Device.setup("<?php echo $token; ?>");
// define currentConnection here, but don't set it to anything.
var currentConnection = null;
function call() {
params = {"PhoneNumber": $("#number_no").val(), "callerid": $("#callerid").val(), "agent_id": $("#agent_id").val(), "lead_id": $("#lead_id").val()};
// create and set the currentConnection
currentConnection = Twilio.Device.connect(params);
console.log(currentConnection.parameters);
}
function hangup() {
console.log("Do stuff with parameters");
console.log(currentConnection.parameters)
Twilio.Device.disconnectAll();
// reset currentConnection until the next call is made
currentConnection = null;
}
</script>