# &adminguide;

## Overview

The pua_usrloc module is the connector between the usrloc and pua modules. With this module, you can monitor the status of SIP registrations. The module sends PUBLISH requests for user location record changes, based on specific events (e.g., when a new record is added in usrloc, a PUBLISH with status open (online) is issued; when expires, it sends closed (offline)).

Using this module phones which have no support for presence can be seen as online/offline.

## Dependencies

### &kamailio; Modules

The following modules must be loaded before this module:

- usrloc.

- pua.

### External Libraries or Applications

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

- libxml.

## Parameters

### `default_domain` (str)

The default domain to use when constructing the presentity URI if it is missing from stored AOR in the usrloc table (in memory or database).

Default value is NULL.

#### Set `default_domain` parameter

    ...
    modparam("pua_usrloc", "default_domain", "kamailio.org")
    ...

### `entity_prefix` (str)

The prefix used when constructing the entity attribute to be added to a presence node in the XML PIDF document. (ex: pres:user@domain ).

Default value is NULL.

#### Set `entity_prefix` parameter

    ...
    modparam("pua_usrloc", "entity_prefix", "pres")
    ...

### `branch_flag` (int)

Which branch flag to be used to select the contact addresses for which to generate PUBLISH. Valid values are 0 to 31.

Default value is -1 (disabled).

#### Set `branch_flag` parameter

    ...
    modparam("pua_usrloc", "branch_flag", 9)
    ...

## Functions

### `pua_set_publish()`

The function is used to mark REGISTER requests that have to issue a PUBLISH. The PUBLISH is issued when REGISTER is saved in location table.

#### `pua_set_publish` usage

    ...
    if(is_method("REGISTER") && from_uri=~"john@kamailio.org")
    	pua_set_publish();
    ...