我正在创建一个呼叫中心应用程序,当打电话来到chrome浏览器上的twilio客户端时,它会要求允许使用扬声器和麦克风。当第二次呼叫到来时,我必须允许它两次,如果是第三次呼叫来,我必须允许三次,等等。
在firfox浏览器中,当我第二次接听电话时,它会自动断开并给出媒体流的错误。
请建议我哪里错了,以及如何解决这个问题。
以下是twilio客户端的javascript,如果需要更多信息,请告诉我
<script
型= “文本/ JavaScript的” &GT;
//var
token
=callaction();
var
connection=null;
var
content;
$(document).ready(function(){
$('#hangupcallbutton').hide();
$.post('cleanify?action=createcall',
function(data){
content=
data;
Twilio.Device.setup(content,
{
debug:
true}
);
}
);
Twilio.Device.ready(function
(device)
{
$("#log").text("Ready");
}
);
Twilio.Device.error(function
(error)
{
$("#log").text("Error:
"
+
error.message);
}
);
Twilio.Device.connect(function
(conn)
{
//alert("connect
handler");
$("#log").text("Successfully
established
call");
connection
=
conn;
}
);
Twilio.Device.disconnect(function
(conn)
{
//alert("in
disconnect");
$("#callbutton").html('Call');
$("#callbutton").removeClass("btn-danger
").addClass("btn-success");
//
$("#callbutton").toggleClass('btn-danger
btn-success');
$("#log").text("Call
ended");
$('#RejectCallButton').show();
$('#acceptcallbutton').show();
$('#hangupcallbutton').hide();
$('#myModal').modal('hide');
}
);
Twilio.Device.incoming(function
(conn)
{
//
alert("in
incomming");
connection
=
conn;
$("#log").text("aa
rahi
h
call");
$('#myModal').modal('show');
$('#incomingnumber').html(conn.parameters.From);
$('#RejectCallButton').click(function()
{
connection.reject();
}
);
$('#acceptcallbutton').click(function()
{
connection.accept();
$('#RejectCallButton').hide();
$('#acceptcallbutton').hide();
$('#hangupcallbutton').show();
}
);
$('#hangupcallbutton').click(function()
{
$('#RejectCallButton').show();
$('#acceptcallbutton').show();
$('#hangupcallbutton').hide();
connection.disconnect();
}
);
//
accept
the
incoming
connection
and
start
two-way
audio
}
);
Twilio.Device.cancel(
function
(conn)
{
//alert("in
cancel");
connection
=
conn;
$('#myModal').modal('hide');
}
);
$.each(['0','1','2','3','4','5','6','7','8','9','star','pound'],
function(index,
value)
{
$('#button'
+
value).click(function(){
//alert("hello");
if(connection)
{
if
(value=='star')
connection.sendDigits('*')
else
if
(value=='pound')
connection.sendDigits('#')
else
connection.sendDigits(value)
return
false;
}
}
);
}
);
//
Do
something
with
c
alert(content);
}
);
function
callhandle(){
if($("#callbutton").html().trim()
==
'Call'){
$("#callbutton").html('HangUp');
$("#callbutton").removeClass("btn-success").addClass("btn-danger");
//
$("#callbutton").toggleClass('btn-success
btn-danger');
call();
}
else
if($("#callbutton").html().trim()
==
'HangUp'){
hangup();
$("#callbutton").html('Call');
$("#callbutton").removeClass("btn-danger").addClass("btn-success");
//
$("#callbutton").toggleClass('btn-danger
btn-success');
}
}
function
call()
{
//
get
the
phone
number
to
connect
the
call
to
//
get
the
phone
number
to
connect
the
call
to
//
alert(
$("#selectOutgoing").val());
params
=
{"PhoneNumber":
$('.dialnumber').val(),"From":
$("#selectOutgoing").val(),"isclient":
"true"}
;
Twilio.Device.connect(params);
}
function
hangup()
{
Twilio.Device.disconnectAll();
}
</script>
答案 0 :(得分:1)
根据我的经验,Chrome只会通过HTTPS存储这些设置。通过HTPP Chrome不会存储设置,因此每次都会提示输入权限
答案 1 :(得分:0)
当你接到另一个电话时,在初始化twilio之前调用之后可能会发生这种情况。所以,你必须先进行初始化。