PUA MI

Anca-Maria Vamanu

   Voice Sistem SRL

Edited by

Anca-Maria Vamanu

Edited by

Juha Heinanen

   Copyright (c) 2006 Voice Sistem SRL
     __________________________________________________________________

   Table of Contents

   1. Admin Guide

        1. Overview
        2. Dependencies

              2.1. Kamailio Modules
              2.2. External Libraries or Applications

        3. Parameters

              3.1. publish_with_ob_proxy (int)

        4. MI Commands

              4.1. pua_publish
              4.2. pua_subscribe

   List of Examples

   1.1. Set publish_with_ob_proxy parameter
   1.2. pua_publish FIFO example

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. publish_with_ob_proxy (int)

   4. MI Commands

        4.1. pua_publish
        4.2. pua_subscribe

1. Overview

   The pua_mi offers the possibility to publish presence information and
   subscribe to presence information via MI transports.

   Using this module you can create independent applications/scripts to
   publish not sip-related information (e.g., system resources like
   CPU-usage, memory, number of active subscribers ...). Also, this module
   allows non-SIP speaking applications to subscribe presence information
   kept in a SIP presence server.

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:
     * pua

2.2. External Libraries or Applications

   The following libraries or applications must be installed before
   running Kamailio with this module loaded:
     * none

3. Parameters

   3.1. publish_with_ob_proxy (int)

3.1. publish_with_ob_proxy (int)

   If 1, pua_publish MI command has outbound proxy parameter.

   Default value is "0".

   Example 1.1. Set publish_with_ob_proxy parameter
...
modparam("pua_mi", "publish_with_ob_proxy", 1)
...

4. MI Commands

   4.1. pua_publish
   4.2. pua_subscribe

4.1.  pua_publish

   Command parameters:
     * presentity_uri - e.g. sip:system@kamailio.org
     * expires - Relative expires time in seconds (e.g. 3600).
     * event package - Event package that is target of published
       information (e.g. presence).
     * content type - Content type of published information (e.g.
       application/pidf+xml) or . if no information is enclosed.
     * id - id for a series of related PUBLISHes to the same
       presentity-uri or . to always use the same series. For example
       dialog-info must reuse the same id for the same call otherwise
       status will be lost when multiple parallel calls to/from the same
       user take place. The dialog-id from the dialog-info body qualifies
       as a suitable id here.
     * ETag - ETag that publish should match or . if no ETag is given.
     * outbound proxy - SIP URI of outbound proxy to be used when sending
       PUBLISH request or . if no outbound proxy is given. This parameter
       is present only when publish_with_ob_proxy module parameter has
       value 1.
     * extra_headers - Extra headers added to PUBLISH request or . if no
       extra headers.
     * body - The body of the publish request containing published
       information or missing if no published information. It has to be a
       single line for FIFO transport.

   Example 1.2. pua_publish FIFO example
...

:pua_publish:fifo_test_reply
sip:system@kamailio.org
3600
presence
application/pidf+xml
.
.
.
<?xml version='1.0'?><presence xmlns='urn:ietf:params:xml:ns:pidf' xmlns:dm='urn
:ietf:params:xml:ns:pidf:data-model' xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpi
d' xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='system@kamailio.org'><tup
le id='0x81475a0'><status><basic>open</basic></status></tuple><dm:person id='pdd
748945'><rpid:activities><rpid:away/>away</rpid:activities><dm:note>CPU:16 MEM:4
76</dm:note></dm:person></presence>

4.2.  pua_subscribe

   Command parameters:
     * presentity_uri - e.g. sip:presentity@kamailio.org
     * watcher_uri - e.g. sip:watcher@kamailio.org
     * event package
     * expires - Relative time in seconds for the desired validity of the
       subscription.
