1. XCAP module

Vaclav Kubart

   Iptel/Tekelec
   <vaclav.kubart@iptel.org>
     __________________________________________________________________

   1.1. Dependencies
   1.2. Incompatibility
   1.3. Parameters
   1.4. Functions

   Module for doing XCAP queries.

   This module covers functions called internaly to access XCAP server.
   These functions were separated into standalone module to allow simple
   replacing XCAP queries with queries into database or local filesystem
   or whatever else. Next reason was to protect other modules from linking
   with libcurl (implements HTTP) or other such stuff.

1.1. Dependencies

   Libraries
     * libxml2 (development version) - external library for parsing XML
       documents
     * libcurl (development version) - external library for HTTP queries
     * libcds (internal)
     * libpresence (internal)
     * libxcap (internal) - parsing XCAP documents, ...

1.2. Incompatibility

   This module is not working with TLS module. Fro more information see
   section "Known problems" in presence handbook.

1.3. Parameters

   xcap_root
          Default settings of XCAP root. It can be overridden by
          set_xcap_root call in config script.

1.4. Functions

   set_xcap_root(string xcap_root)
          Overrides XCAP root settings for one config script call. The
          parameter has to be string (AVP not allowed now).

   xcap_query
          This function does the XCAP query. It is no accessible from
          script, it can be called only internaly. It is by default called
          from XCAP library.

   fill_xcap_params
          This function fills internal data structure with XCAP query
          parameters according to XCAP module settings. It can not be
          called from script. (Prepared for authentication to XCAP server,
          ...)

   Example 1. XCAP module functions usage

   This example shows config file overridding XCAP root settings.
...
modparam("xcap", "xcap_root", "http://xcap/xcap")
...

route {

        ...

        if (lookup_domain("To")) {
                if ($t.did == "domain1") {
                        # change XCAP root for domain1
                        set_xcap_root("http://xcap/xcap-for-domain1/");
                }
                # else leave default XCAP root and file names
        }

        ...