API
SIP.Subscription
SIP.Subscription
represents a subscription to an event (presence or dialog, for example) of a sip address using the SIP SUBSCRIBE request. Currently, only outgoing subscriptions are available, so incoming SUBSCRIBEs will be ignored.
Construction
The Subscription constructor is intended for internal use only. Subscriptions are obtained via the SIP.UA
subscribe
method.
Examples
//Subscribes to the presence information of alice@example.com
var subscription = myUA.subscribe('alice@example.com', 'presence');
// Once subscribed, receive notifications and print out the presence information
subscription.on('notify', function (notification) {
console.log(notification.request.body);
});
Instance Attributes
SIP.Subscription
inherits some of its instance attributes from SIP.ClientContext
.
id
String
- Once the subscription is confirmed, this string is used to differentiate between subscriptions.
state
String
- String indicating the current state of the subscription.
event
String
- The event that will be subscribed to.
dialog
SIP.Dialog
- The SIP dialog associated with the particular Subscription
timers
Object
- Keeps track of the two timers associated with this subscription, which are RFC6665-defined TIMER_N and a subscription duration timer.
errorCodes
Array
of type Number
- The SIP response codes, defined by RFC 6665, for which a subscription must be considered terminated if they are received.
ua
SIP.UA
- Inherited from SIP.ClientContext
or SIP.ServerContext
.
method
String
- The value of method
is always "INVITE"
. Inherited from SIP.ClientContext
or SIP.ServerContext
.
request
SIP.IncomingRequest
or SIP.OutgoingRequest
- Inherited from SIP.ClientContext
or SIP.ServerContext
.
localIdentity
SIP.NameAddrHeader
- Inherited from SIP.ClientContext
or SIP.ServerContext
.
remoteIdentity
SIP.NameAddrHeader
- Inherited from SIP.ClientContext
or SIP.ServerContext
.
data
Object
- Empty object for application to define custom data. Inherited from SIP.ClientContext
or SIP.ServerContext
.
Instance Methods
subscribe()
Sends a SUBSCRIBE request and sets TIMER_N. This is used for the initial SUBSCRIBE as well as all resubscription requests.
Returns
Type | Description |
---|---|
SIP.Subscription |
This Subscription |
unsubscribe()
Sends an unsubscribe request, which is a SUBSCRIBE request with an expires header with value 0.
close()
Unsubscribes this subscription, terminates its dialog, and removes it from the UA’s array of subscriptions. This should be used to gracefully remove a Subscription.
Events
SIP.Subscription
inherits events from SIP.ClientContext
. Each event allows a callback function to be defined in order to let the user execute a handler for each given stimulus.
notify
Whenever a NOTIFY request is received, this event is emitted with the full request.
on('notify', function(request) {})
Name | Type | Description |
---|---|---|
request |
SIP.IncomingRequest |
The received NOTIFY request. |