请我需要一些帮助。
我一直在阅读有关该API Twilio的信息,因为必须解决一些我没有做的代码。
它正在PHP的页面上工作,以致电给客户。有一个过程经常运行,并检查日志或cvs,并在数据库中插入一条带有信息Twilio的记录。
理想情况下,如果在传出呼叫结束时,可以知道该呼叫的唯一ID,并将其与一些注释一起保存。
如何获取客户端调用的参数?还是有其他方法? (持续时间,Sid,至等)
我已经读过了,但是我不明白
谢谢!!
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开发人员布道者在这里。
当您create the call, you get a connection object。您已在REST API文档中阅读的关于进行调用的connection object contains all the parameters。您可以通过这种方式获取“呼叫SID”(它是唯一的ID)。在下面的代码中,我使用放置呼叫时创建的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>
让我知道是否有帮助!
编辑:
要在hangup函数中使用此连接,您需要将连接对象保存在call函数范围之外。您可以通过将
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>