# &adminguide;

## Overview

This module serves as a storage engine for PCSCF contacts, much like the standard Kamailio module, usrloc, is a storage engine for standard SIP contacts. The concept of a contact in IMS, PCSCF specifically, is very different to that of std. SIP and as a result we have built this new module. A lot of the design has been borrowed from the std. usrloc module. For example. An IMS contact, in PCSCF, needs things like:

- Diameter Rx session for signalling bearer status. i.e. this is effectively QoS from the network to make sure the signalling link can be 'trusted'

- IPSEC Security Association for secure signalling between UE and PCSCF (first point of contact)

- IMPU, each contact can have a number of associated public identities (IMPU).

## Dependencies

### &kamailio; Modules

The following modules must be loaded before this module:

- None.

### External Libraries or Applications

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

- None.

## Parameters

### hash_size (int)

The number of entries of the hash table used by to store the contact records is 2^hash_size. For hash_size=4, the number of entries of the hash table is 16.

Default value is 9.

#### Set `hash_size` parameter

    ...
    modparam("ims_usrloc_pcscf", "hash_size", 10)
    ...

### timer_interval (int)

Number of seconds between two timer runs. The module uses timer to delete expired contacts.

Default value is 60.

#### Set timer_interval parameter

    ...
    modparam("ims_usrloc_pcscf", "timer_interval", 30)
    ...

### db_url (int)

Database URL

Default value is "&defaultdb;".

#### Set db_url parameter

    ...
    modparam("ims_usrloc_pcscf", "db_url",
           "&exampledb;")
    ...

### db_mode (int)

This is the database mode to be used for the PCSCF usrloc data persistent storage. Currently this module supports the Write-Through scheme only.

- 0 - This disables DB mode. Only memory will be used for usrloc and data will not survive a restart.

- 1 - Write-Through Scheme. All changes to usrloc are immediately reflected in the database. This is slow but very reliable. This mode will ensure that no registration data is lost as a result of a restart or crash.

Default value is 0.

#### Set db_mode parameter

    ...
    modparam("ims_usrloc_pcscf", "db_mode", 1)
    ...

### match_contact_host_port (int)

If set to 1 (default), the contact is matched using only host and port in the contact URI.

- 0 - When matching contact do full contact match procedure.

- 1 - When matching contact compare only host and port of the contact URI.

Default value is 1.

#### Set match_contact_host_port parameter

    ...
    modparam("ims_usrloc_pcscf", "match_contact_host_port", 0)
    ...

## RPC Commands

exported RPC commands.

### ulpcscf.status

Status of pcscf_usrloc, AORs, max slots, etc.

## Statistics

Exported statistics are listed in the next sections.

### registered contacts

Number of AOR contacts in registered state - cannot be reset.

### impus

Number of IMPUs - cannot be reset.

### expired contacts

Number of expired contacts - can be reset.