XMLOPS Module

Daniel-Constantin Mierla

   asipto.com
   <miconda@gmail.com>

   Copyright © 2009 asipto.com
     __________________________________________________________________

   Table of Contents

   1. Admin Guide

        1. Overview
        2. Dependencies

              2.1. Kamailio Modules
              2.2. External Libraries or Applications

        3. Parameters

              3.1. buf_size (integer)
              3.2. xml_ns (str)

        4. Pseudo-Variables

              4.1. $xml(name=>spec)

   List of Examples

   1.1. Set buf_size parameter
   1.2. Set xml_ns parameter
   1.3. xml usage

Chapter 1. Admin Guide

   Table of Contents

   1. Overview
   2. Dependencies

        2.1. Kamailio Modules
        2.2. External Libraries or Applications

   3. Parameters

        3.1. buf_size (integer)
        3.2. xml_ns (str)

   4. Pseudo-Variables

        4.1. $xml(name=>spec)

1. Overview

   This is a module implementing functions and pseudo-variables for XML
   operations.

2. Dependencies

   2.1. Kamailio Modules
   2.2. External Libraries or Applications

2.1. Kamailio Modules

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

2.2. External Libraries or Applications

   The following libraries or applications must be installed before
   running kamailio with this module loaded:
     * libxml - for compilation from source, the development headers from
       this library are needed as well.

3. Parameters

   3.1. buf_size (integer)
   3.2. xml_ns (str)

3.1. buf_size (integer)

   Maximum size of the XML buffer.

   Default value is 4096.

   Example 1.1. Set buf_size parameter
...
modparam("xmlops", "buf_size", 8192)
...

3.2. xml_ns (str)

   Register xml namespace prefix. Parameter value must have the format:
   'prefix=uri'. It can be set many times to cope with multiple namespaces
   without prefix.

   This is useful when it is needed to access XML documents that specify
   xmlns without prefix, which is not XML-standard compliant, but it comes
   with SIP SIMPLE presence bodies.

   Example 1.2. Set xml_ns parameter
...
modparam("xmlops", "xml_ns", "rpid=urn:ietf:params:xml:ns:pidf:rpid")
modparam("xmlops", "xml_ns", "pidf=urn:ietf:params:xml:ns:pidf")
...
$xml(x=>doc) = '<?xml version="1.0" encoding="utf-8"?>
    <presence xmlns="urn:ietf:params:xml:ns:pidf" entity="sip:test@mydomain.com"
>
        <tuple id="86ae65b7-42de-4399-b635-295caad13aac">
            <status><basic>none</basic></status>
        </tuple>
    </presence>';

xinfo("status: $xml(x=>xpath:/pidf:presence/pidf:tuple/pidf:status/pidf:basic)\n
");
...

4. Pseudo-Variables

   4.1. $xml(name=>spec)

4.1.  $xml(name=>spec)

   Pseudo-variable for XML document operations using xpath syntax. For
   more see the Pseudo-Variables Cookbook.

   Example 1.3. xml usage
...
$xml(x=>doc)
    = '<?xml version="1.0" encoding="UTF-8"?><a><b>test</b></a>';
xlog("content of node b: $xml(x=>xpath:/a/b/text())\n");
$xml(x=>xpath:/a/b) = "1234";
...