PUA MI Anca-Maria Vamanu voice-system.ro Edited by Anca-Maria Vamanu Edited by Juha Heinanen Copyright é 2006 voice-system.ro Revision History Revision $Revision: 8160 $ $Date: 2009-07-21 10:45:05 +0300 (Tue, 21 Jul 2009) $ __________________________________________________________ Table of Contents 1. Admin Guide 1.1. Overview 1.2. Dependencies 1.2.1. OpenSIPS Modules 1.2.2. External Libraries or Applications 1.3. Exported Parameters 1.3.1. presence_server (str) 1.4. Exported Functions 1.5. Exported MI functions 1.5.1. pua_publish 1.6. pua_subscribe List of Examples 1.1. Set presence_server parameter 1.2. pua_publish FIFO example Chapter 1. Admin Guide 1.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. 1.2. Dependencies 1.2.1. OpenSIPS Modules The following modules must be loaded before this module: * pua 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running OpenSIPS with this module loaded: * none 1.3. Exported Parameters 1.3.1. presence_server (str) The the address of the presence server. If set, it will be used as outbound proxy when sending PUBLISH requests. Example 1.1. Set presence_server parameter ... modparam("pua_mi", "presence_server", "sip:pa@opensips.org:5075") ... 1.4. Exported Functions The module does not export functions to be used in configuration script. 1.5. Exported MI functions 1.5.1. pua_publish Command parameters: * presentity_uri - e.g. sip:system@opensips.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. * ETag - ETag that publish should match or . if no ETag is given. * 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@opensips.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:rpid' xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='s ystem@opensips.org'><tuple id='0x81475a0'><status><basic>open</basic></s tatus></tuple><dm:person id='pdd748945'><rpid:activities><rpid:away/>awa y</rpid:activities><dm:note>CPU:16 MEM:476</dm:note></dm:person></presen ce> 1.6. pua_subscribe Command parameters: * presentity_uri - e.g. sip:presentity@opensips.org * watcher_uri - e.g. sip:watcher@opensips.org * event package * expires - Relative time in seconds for the desired validity of the subscription.