API
Simple
Simple is a simplified interface to make getting up and running easier for new users. It is not intended for advanced use cases.
Construction
new SIP.WebRTC.Simple([configuration])
A new Simple interface via the SIP.WebRTC.Simple
constructor. A remote video or audio DOM element is required, as well as credentials to register SIP.js with your SIP service. Check the Simple Configuration Parameters for a full list of parameters.
Example
// Create a Simple interface with a user named bob and a remote video element in the DOM
var simple = new SIP.WebRTC.Simple({
media: {
remote: {
video: document.getElementById('remoteVideo'),
// This is necessary to do an audio/video call as opposed to just a video call
audio: document.getElementById('remoteAudio')
}
},
ua: {
uri: 'bob@example.com',
wsServers: ['wss://sip-ws.example.com'],
}
});
Instance Variables
state
The state that simple is in. See states
below for a list of states and description of each state.
Instance Methods
call(destination)
Start a call with the destination
Parameters
Name | Type | Description |
---|---|---|
destination |
String |
The destination endpoint that wish to call |
Example
simple.call('bob@example.com');
answer()
Answer an incoming call.
Example
simple.answer();
reject()
Reject an incoming call.
Example
simple.reject();
hangup()
Hangup a call.
Example
simple.hangup();
mute()
Mute the local media of a call.
Example
simple.mute();
unmute()
Unmute the local media of a call.
Example
simple.unmute();
hold()
Place a call on hold and mute the local media.
Example
simple.hold();
unhold()
Take a call off hold and unmute the local media.
Example
simple.unhold();
hangup()
Hangup a call.
Example
simple.hangup();
sendDTMF(tone)
Send a DTMF event via SIP Message to the active call. Requires an active call.
Parameters
Name | Type | Description |
---|---|---|
tone |
String |
The tone that you want to send to the active call |
Example
simple.sendDTMF('1');
message(destination, message)
Send a SIP Message to the destination. Does not require an active call.
Parameters
Name | Type | Description |
---|---|---|
tone |
String |
The tone that you want to send to the active call |
message |
String |
The message to be sent |
Example
simple.message('bob@example.com','Hello Bob');
Events
registered
Fired for a successful registration.
on('registered', function() {})
unregistered
Fired for an unregistration. This is event is fired in the following scenarios:
- As a result of an unregistration request,
UA.unregister()
. - When registered, a periodic re-registration fails.
on('unregistered', function() {})
new
Fired when there is a new call (incoming or outgoing), before a progress message is sent or received.
on('new', function() {})
ringing
Fired when there is an incoming call that has not yet been answered.
on('ringing', function() {})
connecting
Fired when there is a progress message sent or received by a call, and the call is not yet in a connected state.
on('connectiing', function() {})
connected
Fired when the call is connected.
on('connected', function() {})
ended
Fired when the call has ended.
on('ended', function() {})
hold
Fired when the call is placed on hold by either side.
on('hold', function() {})
unhold
Fired when the call is taken off hold by either side.
on('unhold', function() {})
mute
Fired when the local media is muted.
on('mute', function() {})
unmute
Fired when the local media is unmuted.
on('unmute', function() {})
dtmf
Fired for an incoming or outgoing DTMF.
.on('dtmf', function(tone) {})
Name | Type | Description |
---|---|---|
tone |
SIP.Session.DTMF |
DTMF instance. |
message
Fired when an incoming MESSAGE request is received. Valid messages are automatically accepted by SIP.js, to confirm delivery of this message.
on('message', function (message) {})
The argument passed to this event implements multiple interfaces.
Name | Types | Description |
---|---|---|
message |
SIP.Message , SIP.ServerContext
|
The inbound message received. This argument also implements the shared SIP.ServerContext behavior for inbound requests |
Example
simple.on('message', function(message) {
alert(message.body);
});
States
Simple has 5 states that it can be in at any given time. The states will always flow in a single direction from STATUS_NEW
to STATUS_COMPLETED
. For example you cannot go from STATUS_CONNECTED
to STATUS_CONNECTING
, but you could go directly from STATUS_CONNECTING
to STATUS_COMPLETED
. Once you are in STATUS_COMPLETED
you can transition back to STATUS_NEW
.
STATUS_NULL
A blank state for when Simple is instantiated.
STATUS_NEW
A new call has been initialized.
STATUS_CONNECTING
The call is setting up, but is not yet finalized.
STATUS_CONNECTED
The call is now connected and media is flowing.
STATUS_COMPLETED
The call is completed.