我在一家电信公司工作。我们想要开发一个带有 JsSIP 库的 SIP 电话。但我们做不到。我们创建一个基本的测试表单,如下所示:
var socket = new JsSIP.WebSocketInterface('*****');
var configuration = {
sockets : [ socket ],
uri : '*****',
password : '*****'
};
var ua = new JsSIP.UA(configuration);
ua.start();
// Register callbacks to desired call events
var eventHandlers = {
'progress': function(e) {
console.log('call is in progress');
},
'failed': function(e) {
console.log('call failed with cause: '+ e.data.cause);
},
'ended': function(e) {
console.log('call ended with cause: '+ e.data.cause);
},
'confirmed': function(e) {
console.log('call confirmed');
}
};
var options = {
'eventHandlers' : eventHandlers,
'mediaConstraints' : { 'audio': true, 'video': true }
};
var session = ua.call('680', options);
以上代码有效。我们可以在任何地方打电话,但调用用户的声音却传不到我们这里。我怎样才能做到这一点?我们必须做什么?有人有这个项目的示例代码吗?
最佳答案
如果调用已建立,但没有音频路径,则调用者/被调用者的 SDP 端点可能无法相互访问。
在这种情况下,调用将因“RTP 超时”原因而断开连接。
这里有一些提示:
通过运行 JsSIP.debug.enable('JsSIP:*'); 打开 JSSIP 控制台调试
重新加载页面。
调用电话并检查浏览器上的控制台日志以获取更多详细信息。
更多信息:http://jssip.net/documentation/3.0.x/api/debug/
如果您看到出入的 SDP IP 地址集错误,则 ICE 候选地址不正确或顺序不正确。
在这种情况下,需要调整 STUN 和其他配置设置。 http://jssip.net/documentation/0.3.x/api/ua_configuration_parameters/
另外,请参阅jssip演示页面,查看源代码,并了解附加配置的应用内容/方式。 https://tryit.jssip.net/
关于jquery - JsSIP 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43202109/