Package Exports
- jssip
- jssip/lib/DigestAuthentication
- jssip/lib/JsSIP
- jssip/lib/Parser
- jssip/lib/RequestSender
- jssip/lib/SIPMessage
- jssip/lib/Transactions
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jssip) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Overview
- Runs in the browser and Node.js.
- SIP over WebSocket (use real SIP in your web apps)
- Audio/video calls (WebRTC) and instant messaging
- Lightweight!
- Easy to use and powerful user API
- Works with OverSIP, Kamailio, Asterisk. Mobicents and repro (reSIProcate) servers (more info)
- Written by the authors of RFC 7118 "The WebSocket Protocol as a Transport for SIP" and OverSIP
Getting Started
The following simple JavaScript code creates a JsSIP User Agent instance and makes a SIP call:
// Create our JsSIP instance and run it:
var configuration = {
'ws_servers': 'ws://sip-ws.example.com',
'uri': 'sip:alice@example.com',
'password': 'superpassword'
};
var ua = new JsSIP.UA(configuration);
ua.start();
// Make an audio/video call:
// HTML5 <video> elements in which local and remote video will be shown
var selfView = document.getElementById('my-video');
var remoteView = document.getElementById('peer-video');
// 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){
var session = e.sender;
var local_stream = session.getLocalStreams()[0];
console.log('call confirmed');
// Attach local stream to selfView
selfView = JsSIP.rtcninja.attachMediaStream(selfView, local_stream);
},
'addstream': function(e){
var stream = e.stream;
console.log('remote stream added');
// Attach remote stream to remoteView
remoteView = JsSIP.rtcninja.attachMediaStream(remoteView, stream);
}
};
var options = {
'eventHandlers': eventHandlers,
'mediaConstraints': {'audio': true, 'video': true}
};
ua.call('sip:bob@example.com', options);
Want to see more? Check the full documentation at http://jssip.net/documentation/.
Online Demo
Check our Tryit JsSIP online demo:
Website and Documentation
Download
- As Node module:
$ npm install jssip
- As Bower module:
$ bower install jssip
- Manually: jssip.net/download
Authors
José Luis Millán
- Main author. Core Designer and Developer.
- jmillan@aliax.net (Github @jmillan)
Iñaki Baz Castillo
- Core Designer and Developer.
- ibc@aliax.net (Github @ibc)
Saúl Ibarra Corretgé
- Core Designer.
- saghul@gmail.com (Github @saghul)
License
JsSIP is released under the MIT license.