在Node(wss或ws)中使用sip.js和websockets注册

时间:2014-10-16 03:54:51

标签: javascript node.js sip

我尝试使用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;
    }

1 个答案:

答案 0 :(得分:0)

您可以在kamailio.cfg中设置debug = 3,重新启动并重试。然后在syslog文件(/ var / log / syslog或/ var / log / messages)中查看来自Kamailio的调试消息,看看你是否得到了关于为什么不接受连接的提示。