WebSphere brand IBM WebSphere Telecom Web Services Server, Version 7.1

Integrating with Parlay X Terminal Status over SIP/IMS

Parlay X Terminal Status over SIP/IMS allows client applications to use Web services to synchronously request the status of an IMS terminal (or terminals), and then to receive asynchronous Web service notifications for changes to the state of the terminal. This service also supports group-level operations.

On startup, the IMS terminal for each user must register its existence with an S-CSCF. Because this registration must succeed for the terminal to use any IMS-based services, the existence of this registration indicates if a user is online and reachable, or offline and unreachable. Parlay X Terminal Status over SIP/IMS is used by client applications through Parlay X Web service APIs to determine if an IMS terminal is reachable. To retrieve Parlay X Terminal Status over SIP/IMS from IMS, Parlay X Terminal Status over SIP/IMS behaves as an IMS watcher application on top of the Pw reference point where it retrieves Parlay X Terminal Status over SIP/IMS information from a Presence Server.

Call flows

When processing getStatus, getStatusForGroup, startNotification and endNotification requests, Parlay X Terminal Status over SIP/IMS uses SIP SUBSCRIBE and NOTIFY signaling to communicate with the presence server. An example of a SIP message flow would be:
  1. The Parlay X Terminal Status over SIP/IMS receives an incoming getStatus request for a particular terminal (such as the presentity).
  2. The service implementation sends a SIP SUBSCRIBE message to the presence server. This step assumes that the PresenceServerSIPURI is configured.
  3. The presence server sends a 200 OK response to the SUBSCRIBE request. The service implementation receives the 200 OK response.
  4. The presence server sends a NOTIFY response which includes the presence information of the presentity. The service implementation receives the NOTIFY.
  5. The service implementation sends a 200 OK response to the NOTIFY message.
  6. The service implementation processes the rich presence information and determines current status of the terminal. It then responds to the incoming getStatus request with the result.
When the Web service implementation processes a getStatus or getStatusForGroup request, the outbound SUBSCRIBE message has a SIP Expires header indicating that it is a presence fetch. The presence server then sends only a single NOTIFY in response.

When the service processes a startNotification request, the outbound SUBSCRIBE message has a SIP Expires header indicating that it is an extended subscription. The presence server sends an immediate NOTIFY in response, and may send subsequent NOTIFY messages as the underlying state of the presentity changes. Later, the Web service implementation may send additional SUBSCRIBE requests to refresh the subscription.

When the service processes an endNotification request, the outbound SUBSCRIBE message has a SIP Expires header indicating that it wishes to terminate the subscription. The Web service implementation sends only a single NOTIFY in response.

Interfaces

TerminalStatus
getStatus
Obtains the status of the terminal. The Web service implementation generates an outbound SIP SUBSCRIBE request to the configured presence server and uses the incoming presence information to determine whether the terminal is busy, reachable, or unreachable.
getStatusForGroup
Performs the same query as getStatus, except that it accepts group lists and can return multiple results simultaneously.
TerminalStatusNotificationManager
startNotification
Like getStatus and getStatusForGroup, this operation uses SIP SUBSCRIBE and NOTIFY interactions to retrieve presence information. However, startNotification differs in that it creates long-lived subscriptions instead of performing a single fetch operation. The Web service implementation then uses the PX Notification component Web service to deliver Web service callbacks to a Web service endpoint that is implementing the TerminalNotification interface.
endNotification
Terminates a subscription that was created using startNotification.
statusNotification_DeliveryAttempted
The attempted delivery of a StatusNotification.
statusNotification_DeliveryResult
The delivery result for a single StatusNotification.
statusChanged_DeliveryAttempted
The attempted delivery to change the status.
statusChanged_DeliveryResult
The result of a single change in status.
statusError_DeliveryAttempted
The attempted delivery of a StatusError.
statusError_DeliveryResult
The delivery result for a single StatusError.
statusEnd_DeliveryAttempted
The attempted delivery to end the status.
statusEnd_DeliveryResult
The delivery result for a single status to end.



Terms of use
(C) Copyright IBM Corporation 2009. All Rights Reserved.