我尝试使用sip.js和Node注册SIP代理以开始对我的Kamailio进行负载测试
Node version v0.10.32
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
global.WebSocket = require('ws')
// SipJS Initialization
var SIP = require('./sip-0.6.0.js');
var Uaconfig = {
traceSip: true,
register: true,
userAgentString: 'sipJS Test tool',
uri: 'ramenlabs.io',
wsServers: ['wss://ramenlabs.io:5063'],
authorizationUser: 'gogasca',
password: '********'
//hackIpInContact: true
};
var userAgent = new SIP.UA(Uaconfig);
当我跑步时,我收到一个错误:
Thu Oct 16 2014 03:40:53 GMT+0000 (UTC) | sip.transport | WebSocket connection error: Error: unexpected server response (400)
因为来自Sip.js的初始Websocket缺少 Sec-WebSocket-Protocol:sip 来指示SIP协议。 如果我使用示例网页,它可以完美地使用相同的参数,但不能从我的节点命令行。 如何强迫这个?
在API js中,我确实看到了' sip '额外标题,但包含 window.Websocket
try {
this.ws = new window.WebSocket(this.server.ws_uri, 'sip');
}
catch(e) {
this.logger.log('Error connecting to WebSocket ' + this.server.ws_uri + ': ' + e);
//return false;
}
答案 0 :(得分:0)
您可以在kamailio.cfg中设置debug = 3,重新启动并重试。然后在syslog文件(/ var / log / syslog或/ var / log / messages)中查看来自Kamailio的调试消息,看看你是否得到了关于为什么不接受连接的提示。