PortaSIP enables IP Telephony Service Providers to deliver a presence service that allows users to monitor each other’s availability and make decisions about communicating. Presence information is highly dynamic, and generally indicates whether a user is online or offline, busy or idle, away from or close to a communication device, etc. Having real-time information about presence lets you increase the effectiveness of your communication and enjoy greater flexibility when setting up short-term meetings and conference calls. In other words, it can save you time and money. Today, nearly all VoIP multimedia clients, such as Linphone, x-Lite and Zoiper, support presence services.
Presence requests are handled using the subscription manager. It is part of PortaSIP. It communicates both with SIP user agents and with other PortaSIP components, and maintains online information for all users registered within your network. The subscription manager allows SIP user agents to publish subscribe requests and respond to them, and generate notifications of changes in presence status.
Typically, the whole process functions in the publish/subscribe manner. Presence information is published from a certain source, e.g., mobile phones, laptop computers, PDAs, desktop PCs, or even other application servers. The subscription manager processes the presence information to form a complete overview of each user’s presence. It also resends the user’s presence to all other subscription managers within PortaSIP. The combined presence data is sent to all watchers who have subscribed to the presence service for the given user.
- The SIP user agent sends a SUBSCRIBE request to the dispatching node which forwards it to one of the available subscription managers (1).
- The subscription manager authorizes the user’s account in PortaBilling (2), and records the subscription in the database (3).
- Based on the authorization results, the subscription manager sends a response (a 200 OK SIP response) via the dispatching node back to the SIP user agent (4).
- The user agent (publisher) sends a PUBLISH request (e.g., when the user is dialing a number) to the dispatching node which forwards it to a currently available subscription manager (5).
- The subscription manager sends the authorization request to PortaBilling (6).
- When authorized successfully (7), the subscription manager re-sends the PUBLISH request to all the other subscription managers within the PortaSIP cluster (8).
- The subscription managers identify the SIP user agents (watchers) who subscribe to the presence for the given user and send NOTIFY requests to the dispatching node, which then forwards the NOTIFY requests to the respective SIP user agents (9).