Presence_XML Module

Anca-Maria Vamanu

Edited by

Anca-Maria Vamanu


Table of Contents
1. User's Guide
1.1. Overview
1.2. Dependencies
1.2.1. OpenSER Modules
1.2.2. External Libraries or Applications
1.3. Exported Parameters
1.3.1. db_url(str)
1.3.2. xcap_table(str)
1.3.3. force_active (int)
1.3.4. pidf_manipulation (int)
1.3.5. integrated_xcap_server (int)
1.3.6. server_address (str)
1.4. Exported Functions
1.5. Installation
2. Developer's Guide
3. Frequently Asked Questions
List of Examples
1-1. Set db_url parameter
1-2. Set xcap_table parameter
1-3. Set force_active parameter
1-4. Set pidf_manipulation parameter
1-5. Set integrated_xcap_server parameter
1-6. Set xcap_server parameter

Chapter 1. User's Guide

1.1. Overview

The module does specific handling for notify-subscribe events using xml bodies. It is used with the general event handling module, presence. It constructs and adds 3 events to it: presence, presence.winfo, dialog;sla.

This module uses xcap_table with permission rules to deal with authorization rules for presence.


1.2. Dependencies

1.2.1. OpenSER Modules

The following modules must be loaded before this module:

  • a database module.

  • presence.

  • sl.

  • xcap_client.

    Only compulsory if not using an integrated xcap server (if 'integrated_xcap_server' parameter is not set).


1.2.2. External Libraries or Applications

The following libraries or applications must be installed before running OpenSER with this module loaded:

  • libxml.


1.3. Exported Parameters

1.3.1. db_url(str)

The database URL.

Default value is "NULL".

Example 1-1. Set db_url parameter

...
modparam("presence_xml", "db_url", 
	"mysql://openser:openserrw@192.168.2.132/openser")
...

1.3.2. xcap_table(str)

The name of the database table where XCAP documents are stored.

Default value is "xcap".

Example 1-2. Set xcap_table parameter

...
modparam("presence_xml", "xcap_table", "xcaps")
...

1.3.3. force_active (int)

This parameter is used for permissions when handling Subscribe messages. If set to 1, subscription state is considered active and the presentity is not queried for permissions (should be set to 1 if not using an XCAP server). Otherwise, the XCAP server is queried and the subscription states is according to user defined permission rules. If no rules are defined for a certain watcher, the subscriptions remains in pending state and the Notify sent will have no body.

Note: When switching from one value to another, the watchers table must be emptied.

Default value is "0".

Example 1-3. Set force_active parameter

...
modparam("presence_xml", "force_active", 1)
...

1.3.4. pidf_manipulation (int)

Setting this parameter to 1 enables the features described in RFC 4827. It gives the possibility to have a permanent state notified to the users even in the case in which the phone is not online. The presence document is taken from the XCAP server and aggregated together with the other presence information, if any exist, for each Notify that is sent to the watchers. It is also possible to have information notified even if not issuing any Publish (useful for services such as email, SMS, MMS).

Default value is "0".

Example 1-4. Set pidf_manipulation parameter

...
modparam("presence_xml", "pidf_manipulation", 1)
...

1.3.5. integrated_xcap_server (int)

This parameter is a flag for the type of XCAP server or servers used. If the XCAP server is integrated with OpenSER presence_XML module and access the same database tables directly, like the XCAP-lite server from AG Projects, the parameter should be set to a positive value. Apart from updating in xcap table, the integrated server must send an MI command refershWatchers [pres_uri] [event] when a user modifies a rules document, to instruct the presence_xml module to update states from the database and, if needed, send NOTIFY updates.

Otherwise, it uses xcap_client module to fetch documents from the XCAP servers with HTTP requests.

Default value is "0".

Example 1-5. Set integrated_xcap_server parameter

...
modparam("presence_xml", "integrated_xcap_server", 1)
...

1.3.6. server_address (str)

This parameter is compulsory if the integrated_xcap_server parameter is not set. It can be set more that once, to construct an address list of trusted XCAP servers.

Example 1-6. Set xcap_server parameter

...
modparam("presence_xml", "xcap_server", "xcap_server.example.org")
modparam("presence_xml", "xcap_server", "xcap_server.ag.org")
...

1.4. Exported Functions

None to be used in configuration file.


1.5. Installation

The module requires one table in OpenSER database: "xcap". The SQL syntax to create it can be found in presence-create.sql script in the database directories in the openser/scripts folder. You can also find the complete database documentation on the project webpage, http://www.openser-project.org/docs/db-tables/openser-db-devel.html.


Chapter 2. Developer's Guide

The module exports no function to be used in other OpenSER modules.


Chapter 3. Frequently Asked Questions

3.1. Where can I find more about OpenSER?
3.2. Where can I post a question about this module?
3.3. How can I report a bug?

3.1. Where can I find more about OpenSER?

3.2. Where can I post a question about this module?

First at all check if your question was already answered on one of our mailing lists:

E-mails regarding any stable OpenSER release should be sent to and e-mails regarding development versions should be sent to .

If you want to keep the mail private, send it to .

3.3. How can I report a bug?

Please follow the guidelines provided at: http://sourceforge.net/tracker/?group_id=139143.