我正在构建网络电话应用程序,但我在设置活动呼叫转移功能时遇到问题。我似乎无法弄清楚如何为我的特定应用程序获取callSid。当我使用conn.parameters.CallSid
时,它返回undefined。我能想到获得CallSid的唯一方法是将语音URL设置为数据库的POST并使用ajax调用来检索,但这看起来过度,我知道必须有一个直接的方式。
以下是我正在使用的代码:
Twilio.Device.setup("<?php echo $twilioObj->token->generateToken();?>");
var connection=null;
Twilio.Device.ready(function (device) {
$('#status').text('Ready to start call');
});
Twilio.Device.incoming(function (conn) {
if (confirm('Accept incoming call from ' + conn.parameters.From + '?')){
connection=conn;
conn.accept();
}
});
Twilio.Device.offline(function (device) {
$('#status').text('Offline');
});
Twilio.Device.error(function (error) {
$('#status').text(error.message);
});
Twilio.Device.connect(function (conn) {
$('#status').text("Successfully established call");
toggleCallStatus();
console.log(conn.parameters.CallSid);
});
Twilio.Device.disconnect(function (conn) {
$('#status').text("Call ended");
toggleCallStatus();
});
function toggleCallStatus(){
$('#call').toggle();
$('#hangup').toggle();
$('#dialpad').toggle();
}
$.each(['0','1','2','3','4','5','6','7','8','9','star','pound'], function(index, value) {
$('#button' + value).click(function(){
if(connection) {
if (value=='star')
connection.sendDigits('*')
else if (value=='pound')
connection.sendDigits('#')
else
connection.sendDigits(value)
return false;
}
});
});
});
function call() {
// get the phone number to connect the call to
var value=$.trim($("#tocall").val());
if( value== false){
params = {"tocall": "queue"};
Twilio.Device.connect(params);
}else{
params = {"tocall": $("#tocall").val()};
Twilio.Device.connect(params);
}
}
function hangup() {
Twilio.Device.disconnectAll();
}
function transfer() {
// get the phone number to connect the call to
}
function sms() {
params = {'tosms': $('#tosms').val(), 'sms': $('input[name=smsRadio]:checked', '#smsRadios').val()};
$.post( "twilioApps/sms", params );
}
function conference() {
// get the phone number to connect the call to
params = {"toconference": $("#toconference").val()};
}
答案 0 :(得分:0)
我遇到了完全相同的问题,我在这篇文章中找到了答案:Getting CallSID for Twilio Softphone / Twilio.js incoming/outgoing calls
似乎javascript Twilio Client 1.1版没有填充传出呼叫的参数。使用1.2版本将解决问题。