API

SIP.PublishClientContext

A SIP.PublishClientContext encapsulates the behavior required to send a SIP publish event as outlined in RFC 3903. Currently only outgoing publish requests are supported, hence you will not find a PublishServerContext.

Construction

Typically, construction and sending of a PublishClientContext is managed by a SIP.UA, through the ua.publish(target, event, body[, options]) function.

Parameters

Name Type Description
target String | SIP.URI The destination URI for the request to send to.
event String The event to publish
body String The body for the request
options Object Optional options to use for the PublishClientContext, see below

Instance Attributes

event

string, event to publish

target

string SIP.URI, request target

body

string, request body to send with publish

options

object, optional. Object with extra parameters, see below

options.extraHeaders

array, optional. Array of strings with extra SIP headers to add with publish/unpublish requests

options.contentType

string, optional. Content-Type header representing body content type. Default is ‘text/plain’

options.expires

int, optional. Default expire value for the published event. If not set, default value 3600 is used

options.unpublishOnClose

boolean, optional. If set true, UA will gracefully unpublish for the event on UA close. Default value is true.

Instance Methods

publish([body])

publish the event state. Used for updating the current state for the event or to restore the publish after the unpublish was called. When no body provided, existing state is refreshed ( no need to do this manually, as state will be refreshed periodically on 0.9 * Expire intervals)

unpublish()

removes published event

close()

removes published event and UA internal pointer to the object

sendPublishRequest()

Internal Is called by publish(), this function is what actually sends the request via SIP.OutgoingRequest

receiveResponse()

Internal Handles the response by the Event State Compositor (see RFC 3903)

Events

published Fired for a publish request success (2xx response received on PUBLISH request) .on('published', function (response, cause) {});

unpublished Fired for a unpublish request success or for a periodic publish refresh failure .on('unpublished', function (response, cause) {});

progress Fired for a publish/unpublish request progress. This event indicate session progress state (1xx response received) or recovering after the 412 or 423 responses .on('progress', function (response, cause) {});

failed Fired for a publish request failure or on a periodic publish refresh failure .on('failed', function (response, cause) {});