# &adminguide;

## Overview

The pua_rpc module offers the possibility to publish presence information via the RPC transport. Subscribing to presence information has not been implemented yet.

Using this module you can create independent applications/scripts to publish SIP and not SIP related information (e.g., MWI message summary information, system resources like CPU-usage, memory, number of active subscribers, ...). Future version of this module may allow non-SIP speaking applications to subscribe to presence information kept in a SIP presence server.

## Dependencies

### &kamailio; Modules

The following modules must be loaded before this module:

- pua

### External Libraries or Applications

The following libraries or applications must be installed before running &kamailio; with this module loaded:

- none

## Parameters

none

## RPC Commands

### pua.publish

Send a SIP PUBLISH request and wait for its response.

Command parameters:

- presentity_uri - e.g. sip:jh@tutpro.com

- expires - Relative expires time in seconds (e.g. 3600).

- event package - Event package that is target of published information (e.g. message-summary).

- content type - Content type of published information (e.g. application/simple-message-summary) 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.

- 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.

#### `pua.publish` XMLRPC example

    <?xml version="1.0" ?>
    <methodCall>
     <methodName>pua.publish</methodName>
     <params>
      <param>
       <value>
        <string>sip:jh@test.tutpro.com</string>
       </value>
      </param>
      <param>
       <value>
        <string>7776000</string>
       </value>
      </param>
      <param>
       <value>
        <string>message-summary</string>
       </value>
      </param>
      <param>
       <value>
        <string>application/simple-message-summary</string>
       </value>
      </param>
      <param>
       <value>
        <string>.</string>
       </value>
      </param>
      <param>
       <value>
        <string>a.1481534683.13958.6.7</string>
       </value>
      </param>
      <param>
       <value>
        <string>sip:127.0.0.1:5080;transport=tcp</string>
       </value>
      </param>
      <param>
       <value>
        <string>P-Flags: 0

    </string>
       </value>
      </param>
      <param>
       <value>
        <string>Messages-Waiting: yes

    Message-Account: sip:jh@vm.test.tutpro.com

    Voice-Message: 2/0 (0/0)

    </string>
       </value>
      </param>
     </params>
    </methodCall>

### pua.send_publish

Send a SIP PUBLISH request without waiting for its response.

Command parameters are the same as for pua.publish.

### pua.subscribe

Send a SIP SUBSCRIBE request. 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.