我在一家电信公司工作。我们想要开发一个SIP电话与JsSIP库。但我们不能这么做。我们创建了一个基本的测试表单,如下所示:
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);上面的代码工作正常。我们可以在任何地方呼叫,但呼叫用户的声音不会传到我们这里。我该怎么做呢?我们必须做些什么呢?有没有人有这个项目的示例代码?
发布于 2017-04-05 03:35:46
如果呼叫正在建立,但没有音频路径,则可能是主叫方/被叫方的SDP端点彼此无法连接。
在这种情况下,呼叫将断开,原因是"RTP超时“。
以下是一些小贴士:
更多信息: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 demo页面,查看源代码,并了解如何应用额外的配置。https://tryit.jssip.net/
发布于 2017-08-20 02:11:11
如果您正在寻找示例代码,请随时查看react-sip (一个帮助将JsSIP嵌入React应用程序的包)的实现。特别是,您可能会发现the source of component很有用,即使不使用React。
您听不到用户声音的原因可能是因为页面上没有附加到JsSIP实例的HTML5 <audio/> DOM元素。
以下是您应该添加的大致内容:
// in the beginning, e.g. before you create an instance of JsSIP.WebSocketInterface
var remoteAudio = window.document.createElement('audio');
window.document.body.appendChild(remoteAudio);// inside rtcSession.on('accepted', function() {...})
remoteAudio.src = window.URL.createObjectURL(
rtcSession.connection.getRemoteStreams()[0]
);
remoteAudio.play();
// rtcSession comes from an argument in
// ua.on('newRTCSession', ({ originator, session: rtcSession }) => {});// when no longer need to make calls (e.g. on user logout)
delete remoteAudio;发布于 2020-04-27 16:09:38
我也一直在做同样的事情。
我正在尝试在nodejs中运行这段代码。在我的测试环境中使用我的本地pbx设置
每次我浏览我的端点时,它都会给我一个错误窗口没有定义。我的目标是尝试使用我的100分机接通1000分机
请检查以下代码
app.get('/api/sip/outbound' , (req, res) => {
var socket = new JsSIP.WebSocketInterface('wss://10.110.3.230:7443');
var configuration = {
sockets : [ socket ],
uri : 'sip:100@10.110.3.230',
password : '100'
};
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('1000', options);
})下面的错误
at RTCSession.connect (/home/local-dev/Projects/PBX/mobile_pbx/api/node_modules/jssip/lib-es5/RTCSession.js:269:7)
at UA.call (/home/local-dev/Projects/PBX/mobile_pbx/api/node_modules/jssip/lib-es5/UA.js:241:15)
at /home/local-dev/Projects/PBX/mobile_pbx/api/app.js:50:22
at Layer.handle [as handle_request] (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/layer.js:95:5)
at next (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/layer.js:95:5)
at /home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/index.js:335:12)
at next (/home/local-dev/Projects/PBX/mobile_pbx/node_modules/express/lib/router/index.js:275:10)https://stackoverflow.com/questions/43202109
复制相似问题