Skip to content

JsSIP.Socket interface for the Node.js based on the websocket module

Notifications You must be signed in to change notification settings

versatica/jssip-node-websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jssip-node-websocket

JsSIP.Socket interface for Node.js based on the websocket module.

The aim of this module is to provide JsSIP with WebSocket support when running in Node.js.

Installation

$ npm install jssip-node-websocket --save

Requirements

  • jssip >= v2.0.0
  • Node.js >= v4.0.0 < v20.0.0

Node >= v20.0.0

Since Node v20.0.0 the API for parsing URL has changed. To be compatible with Node v20.0.0 and previous versions you can use the following package:

@meecode/jssip-node-websocket

Usage

const JsSIP = require('jssip');
const NodeWebSocket = require('jssip-node-websocket');

let socket = new NodeWebSocket('wss://foo.example.com');

let ua = new JsSIP.UA(
  {
    uri          : 'sip:[email protected]',
    password     : 'xxxxxxxx',
    display_name : 'Alice',
    sockets      : [ socket ]
  });

API

The module exports a NodeWebSocket class conforming with the JsSIP.Socket interface.

var socket = new NodeWebSocket(url, [options])

  • url (String): The WebSocket URL.
  • options (Object): An object with fields origin, headers, requestOptions and clientConfig matching the same meaning and format of the parameters given to the websocket.W3CWebSocket class constructor.

F.A.Q.

How to allow invalid TLS certificates?
var socket = new Socket('wss://foo.example.com',
  {
    origin         : 'https://www.example.com',
    requestOptions :
    {
      agent : new https.Agent({ rejectUnauthorized: false })
    }
  });

Author

Iñaki Baz Castillo (@ibc at Github)

License

ISC