XCAP Module

Saul Ibarra Corretge

   AG Projects

Edited by

Saul Ibarra Corretge

   Copyright © 2012 AG Projects
   Revision History
   Revision $Revision$ $Date$
     __________________________________________________________

   Table of Contents

   1. Admin Guide

        1.1. Overview
        1.2. Dependencies

              1.2.1. OpenSIPS Modules

        1.3. External Libraries or Applications
        1.4. Exported Parameters

              1.4.1. db_url(str)
              1.4.2. xcap_table(str)
              1.4.3. integrated_xcap_server (int)

        1.5. Exported Functions

   2. Developer Guide

        2.1. bind_xcap_api(xcap_api_t* api)
        2.2. parse_xcap_uri
        2.3. db_url
        2.4. xcap_table
        2.5. integrated_server

   List of Examples

   1.1. Set db_url parameter
   1.2. Set xcap_table parameter
   1.3. Set integrated_xcap_server parameter
   2.1. xcap_api structure

Chapter 1. Admin Guide

1.1. Overview

   The module contains several parameters and functions common to
   all modules using XCAP capabilities.

   The module is currently used by the following modules:
   presence_xml, rls and xcap_client.

1.2. Dependencies

1.2.1. OpenSIPS Modules

   The following modules must be loaded before this module:
     * a database module.

1.3. External Libraries or Applications

   The following libraries or applications must be installed
   before running OpenSIPS with this module loaded:
     * libxml-dev.

1.4. Exported Parameters

1.4.1. db_url(str)

   The database url.

   Default value is
   “mysql://opensips:opensipsrw@localhost/opensips”.

   Example 1.1. Set db_url parameter
...
modparam("xcap", "db_url", "dbdriver://username:password@dbhost/dbname")
...

1.4.2. xcap_table(str)

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

   Default value is “xcap”.

   Example 1.2. Set xcap_table parameter
...
modparam("xcap", "xcap_table", "xcap")
...

1.4.3. integrated_xcap_server (int)

   This parameter is a flag for the type of XCAP server or servers
   used. If integrated ones, like OpenXCAP from AG Projects, with
   direct access to database table, 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.

   Default value is “0”.

   Example 1.3. Set integrated_xcap_server parameter
...
modparam("xcap", "integrated_xcap_server", 1)
...

1.5. Exported Functions

   None to be used in configuration file.

Chapter 2. Developer Guide

   The module exports a number of parameters and functions that
   are used in several other modules.

2.1.  bind_xcap_api(xcap_api_t* api)

   This function allows binding the needed functions.

   Example 2.1. xcap_api structure
...
typedef struct xcap_api {
        int integrated_server;
        str db_url;
        str xcap_table;
        parse_xcap_uri_t parse_xcap_uri;
} xcap_api_t;
...

2.2.  parse_xcap_uri

   This function parses the given XCAP URI.

   The parameters signification:
     * uri- the URI that needs to be parsed in string format
     * xcap_uri- xcap_uri_t structure that will be filled with the
       parsed information
Parameter type:
...
typedef struct {
    char buf[MAX_URI_SIZE];
    str uri;
    str root;
    str auid;
    str tree;
    str xui;
    str filename;
    str selector;
} xcap_uri_t;
...

2.3.  db_url

   URL of the database to which the XCAP mdoules witll connect.

2.4.  xcap_table

   Name of the table used to store XCAP documents. Defaults to
   'xcap'.

2.5.  integrated_server

   Boolean flag indicating if the XCAP server has access to the
   local database or xcap_client will be used to fetch documents.
