API
SIP.Transport
SIP.js Transport provides a parent class in which an implementation transport layer is built on top of. This layer handles the actual sending and receiving of SIP requests and responses.
Construction
The construction of a transport is not meant to be done manually. Instead, SIP.js user agents create a transport to use for themselves. As of 0.11.0, transport in SIP.js represents a generic layer upon which an implementation is built, with websockets being the default. A transport implementation can be specified in the UA passing in the constructor as the transportConstructor
configuration option. Any configuration options required for the transport layer will be passed in as the transportOptions
UA configuration option.
When constructed, the UA will assign the new Transport as its own transport property before automatically attempting to connect (configurable by ua.configuration.autostart
).
Instance Methods
send(msg)
Send a message and automatically emits a messageSent
event. Implementation delegated to abstract method sendPromise
.
Parameters
Name | Mandatory? | Type | Description |
---|---|---|---|
msg |
Yes | SIP.OutgoingRequest | String | A SIP Request (represented as a String or SIP.OutgoingRequest) to send along the WebSocket. |
options |
No | Object | Object to pass to sendPromise()
|
Returns
Promise
sendPromise()
Abstract
Implementation of sending a message over the transport. MUST return a promise that resolves with an object with mandatory parameter msg
and optional parameter overrideEvent
.
Parameters
Name | Mandatory? | Type | Description |
---|---|---|---|
msg |
Yes | SIP.OutgoingRequest | String | A SIP Request (represented as a String or SIP.OutgoingRequest) to send along the WebSocket. |
options |
No | Object | Options to pass to the implementation |
Returns
Promise
that resolves with an object with 2 parameters, overrideEvent
and msg
.
Name | Mandatory? | Type | Description |
---|---|---|---|
msg |
Yes | String | A SIP Request (represented as a String or SIP.OutgoingRequest) to send along the WebSocket. |
overrideEvent |
No | Boolean | If set to true , the default messageSent event emitted by send() will not be emitted. If you override the event in this fashion, you SHOULD emit it in your implementation of sendPromise()
|
connect()
Connects the transport and automatically emits a connected
event. Implementation is delegated to abstract method connectPromise()
.
Parameters
Name | Mandatory? | Type | Description |
---|---|---|---|
options |
No | Object | Object to pass to connectPromise()
|
Returns
Promise
connectPromise()
Abstract
Implementation of connecting the transport. Called by connect()
. MUST return a promise that resolves with an object.
Returns
Promise
that resolves with an object with properties:
Name | Mandatory? | Type | Description |
---|---|---|---|
overrideEvent |
No | Boolean | If set to true , the default connected event emitted by connect() will not be emitted. If you override the event in this fashion, you SHOULD emit it in your implementation of connectPromise()
|
disconnect()
Disconnects the transport and automatically emits a disconnected
event. Implementation is delegated to abstract method disconnectPromise()
.
Parameters
Name | Mandatory? | Type | Description |
---|---|---|---|
options |
No | Object | Object to pass to disconnectPromise()
|
Returns
Promise
disconnectPromise()
Abstract
Implementation of disconnecting the transport. Called by disconnect()
. MUST return a promise that resolves with an object.
Returns
Promise
that resolves with an object with properties:
Name | Mandatory? | Type | Description |
---|---|---|---|
overrideEvent |
No | Boolean | If set to true , the default disconnected event emitted by disconnect() will not be emitted. If you override the event in this fashion, you SHOULD emit it in your implementation of disconnectPromise()
|
isConnected()
Abstract
Returns
Type | Description |
---|---|
Boolean |
true if the connection is established, false otherwise |
afterConnected()
If the transport is connected, the callback
is executed immediately- otherwise sets up a once
listener on own connected
event supplying the given callback
. Checks connection state via own isConnected()
method.
Parameters
Name | Type | Description |
---|---|---|
callback |
Function | A callback to be executed |
Events
Transport objects extends EventEmitter interface. Each event emitted by the transport passes specific relevant arguments to its callbacks. Additional events MAY be added for child implementations.
connecting
Fired when the transport is attempting to connect.
on('connecting', function() {})
There are no documented arguments for this event.
connected
Fired when the connection is established.
on('connected', function () {})
There are no documented arguments for this event.
disconnecting
Fired when the connection is attempting to disconnect.
on('disconnecting', function() {})
There are no documented arguments for this event.
disconnected
Fired when the connection is interrupted or lost
on('disconnected', function () {})
There are no documented arguments for this event.
messageSent
Fired when a message is sent over the transport
on('messageSent', function (message) {})
Arguments
message
- String
- The message that was sent
message
Fired when a message is received over the transport
on('message', function (message) {})
Arguments
message
- String
- The message that was received
transportError
Fired when an error occurs in the transport layer and other layers need to be notified
on('transportError', function () {})
There are no documented arguments for this event.