我正在使用JsSIP库连接到我的freeswitch SIP服务器并在其上进行呼叫。这是我的代码,与JsSIP github page上的示例代码相同:
jssip_1.debug.enable('JsSIP:*');
var socket = new jssip_1.WebSocketInterface('wss://85.85.8.5:7443');
var configuration = {
sockets: [socket],
uri: 'sip:282132646427442@abc.xyz',
password: '123456',
register_expires: 1800,
};
var ua = new jssip_1.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 },
'extraHeaders': [
'X-rol: caller',
'X-rid: 01',
'X-src-app: 12345' ,
'X-srv: a2a',
'X-ver: 1'
],
};
setTimeout(function () {
var session = ua.call('sip:25896456525@abc.xyz', options);
}, 3000);
使用此代码,我发送注册请求并成功建立连接。我在此处放置了一些连接日志:
JsSIP:传输发送消息:
注册sip:@ abc.xyz SIP / 2.0
通过:SIP / 2.0 / WSS hdnbf6qreal4.invalid; branch = z9hG4bK8363908
最大前进次数:69
收件人:sip:282132646427442@abc.xyz>
来自:sip:282132646427442@abc.xyz>; tag = gkej80tf03
呼叫ID:fnblcnmvcbr9p61nl9slv0
CSeq:2个注册
授权:摘要算法= MD5,用户名=“ 282132646427442”,realm =“ abc.xyz”,nonce =“ 16352d5c-d761-43f0-af0b-7eb4bfd607c0”,
uri =“ sip:abc.xyz”,response =“ f8c20be99ca1b84b5a6bf805c84662dd”,
qop = auth,cnonce =“ 75c61daautv7”,nc = 00000001
联系方式:; + sip.ice; reg-id = 1; + sip.instance =“”; expires = 1800
有效期:1800
允许:邀请,确认,取消,再见,更新,消息,选项,参考,信息
支持:路径,gruu,出站
用户代理:JsSIP 3.2.15
内容长度:0
JsSIP:传输收到的短信:
SIP / 2.0 200 OK
通过:SIP / 2.0 / WSS hdnbf6qreal4.invalid;分支= z9hG4bK8363908;已接收= 192.168.104.182;端口= 57890
发件人:; tag = gkej80tf03
收件人:; tag = r672gj5BUmH1m
呼叫ID:fnblcnmvcbr9p61nl9slv0
CSeq:2个注册
联系人:; expires = 497
联系人:; expires = 1800
日期:2018年11月4日,星期日,格林尼治标准时间
用户代理:FreeSWITCH-mod_sofia / 1.6.13 + git〜20161214T213702Z〜d422498d0f〜64bit
允许:邀请,确认,再见,取消,选项,消息,信息,更新,注册,引用,通知
支持:计时器,路径,替换
此后,我希望发送和接收INVITE类型的消息以开始通话,但是在浏览器控制台中未打印任何含义日志:
JsSIP:UA call()+ 3s browser.js:183 JsSIP:RTCSession new + 22m
browser.js:183 JsSIP:RTCSession connect()+ 1ms
browser.js:183 JsSIP:RTCSession发出“对等连接” + 4ms
browser.js:183 JsSIP:RTCSession newRTCSession()+ 1ms
browser.js:183 JsSIP:RTCSession会话失败+ 81ms
browser.js:183 JsSIP:RTCSession close()+ 1ms
browser.js:183 JsSIP:RTCSession发出“失败” + 2ms
我的代码或服务器是否有问题?我检查了服务器日志,但注册后没有任何通话请求。