Getting Started
JsSIP User Agent is the core element in JsSIP. It represents the SIP client associated to a SIP account. JsSIP User Agent is defined in JsSIP.UA
class.
Multiple JsSIP User Agents can be created (this is useful for having different SIP accounts running in the same web application).
Creating a JsSIP User Agent
User Agent Configuration
JsSIP User Agent requires a configuration object for its initialization. There are some mandatory configuration parameters and many optional ones. Check the full configuration parameters list.
var socket = new JsSIP.WebSocketInterface('wss:/sip.myhost.com');
var configuration = {
sockets : [ socket ],
uri : 'sip:alice@example.com',
password : 'superpassword'
};
User Agent instance
var coolPhone = new JsSIP.UA(configuration);
User Agent events definition
Full list of User Agent events.
WebSocket connection events
coolPhone.on('connected', function(e){ /* Your code here */ });
coolPhone.on('disconnected', function(e){ /* Your code here */ });
New incoming or outgoing call event
coolPhone.on('newRTCSession', function(e){ /* Your code here */ });
New incoming or outgoing IM message event
coolPhone.on('newMessage', function(e){ /* Your code here */ });
SIP registration events
coolPhone.on('registered', function(e){ /* Your code here */ });
coolPhone.on('unregistered', function(e){ /* Your code here */ });
coolPhone.on('registrationFailed', function(e){ /* Your code here */ });
Starting the User Agent
See JsSIP.UA.start() method definition.
coolPhone.start();
Making outbound calls
See JsSIP.UA.call() method definition.
Example
/ Create our JsSIP instance and run it:
var socket = new JsSIP.WebSocketInterface('wss:/sip.myhost.com');
var configuration = {
sockets : [ socket ],
uri : 'sip:alice@example.com',
password : 'superpassword'
};
var ua = new JsSIP.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 }
};
var session = ua.call('sip:bob@example.com', options);
Instant messaging
See JsSIP.UA.sendMessage() method definition.
Example 1
var text = 'Hello Bob!';
coolPhone.sendMessage('sip:bob@example.com', text);
Example 2
var text = 'Hello Bob!';
/ Register callbacks to desired message events
var eventHandlers = {
'succeeded': function(e){ /* Your code here */ },
'failed': function(e){ /* Your code here */ }
};
var options = {
'eventHandlers': eventHandlers
};
coolPhone.sendMessage('sip:bob@example.com', text, options);