Update XCAP server

To configure the XCAP Server for Sentinel VoLTE, you need to populate XCAP server settings and MMTel service data. You may optionally enable XCAP authentication using Sentinel AGW.

Populate XCAP server settings and MMTel service data

There are several configuration items for the administrative User Interface (in REM) related to XCAP connectivity and MMTel service data mappings.

These include:

  • the XCAP server configuration, such as

    • Sh Cache Microservice stack configuration

    • XPaths used to map between the UE’s "simservs" document and the HSS "MMTel-Services" document

    • any extension configuration to expand the standard Simservs document

  • the REM Web UI for viewing and editing Transparent Data in the HSS, such as

    • the MMTel-Services document (for example Communication Diversion, Communication Barring etc)

    • the IMS-ODB-Information document used for Operator Determined Barring

    • the Metaswitch-TAS-Services document used for additional subscriber configuration

This can either be done manually following the admin guide, or more easily using the script sentinel-volte-mappings-config. This file is located in the build/bin directory of the Sentinel VoLTE SDK.

This can be executed from your VoLTE TAS’s command line, provided the Java Runtime Environment (v 7+) is installed. The command must be given these arguments:

Mandatory Arguments What it specifies
-u (--username)

Your Rhino Element Manager (REM) username.

-pw (--password)

Your Rhino Element Manager (REM) password.

-h (--hostname)

The hostname or IP address of your Rhino Element Manager (REM).

-p (--port)

The port of your Rhino Element Manager (REM).

-n (--network-operator)

The network operator name.

-r (--rhino-instance-id)

The Rhino Instance ID.

-s (--serverurl-shcm)

The URL for the Sh Cache Microservice

Optional Arguments

What it specifies

-sph (--shcm-proxy-host)

The proxy host used to connect to the Sh Cache Microservice

-sph (--shcm-proxy-port)

The proxy port used to connect to the Sh Cache Microservice

-x (--xcap-mapping)

Must be in the format -x "<simservsPath>;<mmtelPath>".

Can be specified multiple times. e.g. -x "<simservsPath1>;<mmtelPath1>" -x "<simservsPath2>;<mmtelPath2>"

-m (--metaswitch-xcap-mapping)

Must be in the format -x "<simservsPath>;<metaswitchTasServicesPath>".

Can be specified multiple times. e.g. -m "<simservsPath1>;<metaswitchTasServicesPath1>" -x "<simservsPath2>;<metaswitchTasServicesPath2>"

-im (--include-mappings)

Explicitly designate what Subscriber Data and XCAP mappings to include in a comma delimited list while implicitly excluding other mappings. Valid options include 'msw' = Metaswitch-TAS-Services, 'odb' = IMS-ODB-Information, 'mmtel' = MMTEL-Services

-ah (--additional-host-mappings)

Additional XCAP host names (in addition to the one specified with -h or --hostname), can be specified multiple times

-o (--override)

Will override all existing mappings with the currently provided options

Here is an example command:

cd ~/sentinel-volte/sentinel-volte-sdk
./build/bin/sentinel-volte-mappings-config -u emadm -pw password -h localhost -p 8080 -r Local -n Metaswitch -s http://localhost:8088/shcache/v1
Tip To see a listing of the required arguments, from the command line, execute the JAR file without any arguments.
Tip The tool can also be run from the Sentinel AGW SDK inside the sentinel-gaa-sdk directory.

Enable XCAP authentication using Sentinel AGW

By default the XCAP Server assumes that requests will be authenticated externally using an Authentication Proxy (AP). If this is the case, no further configuration is required.

If an AP is not suitable or available, the XCAP server can be configured to authenticate requests itself using OpenCloud Sentinel AGW. Sentinel AGW provides an implementation of 3GPP GAA (Generic Authentication Architecture) procedures.

For more information, and instructions on configuring the XCAP Server with Sentinel AGW, see the Sentinel AGW Guide.


If you’re using the OpenIMS HSS, you’ll need to specify the interface (IP address and port values) that it uses:


Edit the DiameterPeerHSS.xml file in the /path/to/HSS/FHoss/deploy directory.


Find the Acceptor XML element.


Change its binding to the desired IP address (or host name).


Change its port values to the desired port.

Create init.d scripts

There are two init.d scripts for Ubuntu Linux which make starting and stopping Rhino and REM easier (linked below):

  • rhino — for Rhino

  • rem — for REM running on Apache Tomcat

Note: These are illustrative and useful for Proof of concept rather than production environments.

To set these up:


Copy the script to the host server’s /etc/init.d/ folder:

sudo cp rhino /etc/init.d


Make the script executable:

sudo chmod +x /etc/init.d/rhino


Refresh, with the update-rc.d command:

sudo update-rc.d rhino defaults 99

Rhino SAS Configuration

To enable Rhino to send events to MetaView Service Assurance Server (SAS), refer to Enabling VoLTE SAS tracing

Provision Location Based Dialling Data

Tools are provided to provision and verify data mappings for the LocationBasedDialling feature.

lbd-provision and ldb-verify are located in the build/bin directory of the Sentinel VoLTE SDK.


This tool takes a .csv file as input and populates the location_based_dialling_data_3gpp table in Cassandra with the data.

Mandatory Arguments What it specifies

Comma separated list of Cassandra contact points.

Optional Arguments

What it specifies


Cassandra port (defaults to 9042 if omitted).


Input CSV file.


Dryrun, no data in Cassandra will be modified.


Reset, Cassandra data will be overwritten with input file.


Rollback, second most recent stored data will be restored.



The input CSV file must be comma separated with no header row. Each line should be in the following format <cell-id>,<dialled-number>,<destination-number>. Whitespaces and empty lines are ignored. Valid characters for dialled-number and destination-number entries are: 0-9, #, and *.

lbd-provision will fetch the existing data in cassandra and perform a diff with the content of the input CSV file. New entries in the input file not present in the database are added. Current entries not in the input file are removed. If the -i option is used, all data is overwritten with the content of the input file.

Each time lbd-provision is run the dataset is stored in the location_based_dialling_uploaded_files table. The -b option can be used to rollback to the previous data set. The location_based_dialling_uploaded_files table has to have been loaded with previous runs of lbd-provision before rollback can be used. If -b is run twice, the original record set is returned, so effectively it toggles between the current and previous data sets. If the -b option is not used, -f must be provided.

Here is an example:

$ cat lbd-provision-test-data.csv
$ ./lbd-provision -c localhost -f lbd-provision-test-data.csv -i
Saving Cassandra contact points: localhost
Saving input file: /home/ubuntu/lbd-provision-test-data.csv
Setting reset flag
Connected to Cassandra
Sorted file to: /home/ubuntu/work/input-sorted.csv
Processing input file to update Cassandra: /home/ubuntu/work/input-sorted.csv
Creating entry: testdata0,717,4165550000
Creating entry: testdata1,718,4165550001
Creating entry: testdata2,719,4165550002
Removing all data from table: location_based_dialling_data_3gpp
Creating data in: location_based_dialling_data_3gpp
Updated Cassandra with entire input file
Not deleting old rows as less than 3 files saved

Note The lbd-provisioning tool can provision up to 5 million rows. Functionality beyond this number of rows is not supported.


This tool queries the existing data in Cassandra and the Vertical Service Code profiles in Rhino and checks that each entry exists in both places.

Mandatory Arguments What it specifies

Comma separated list of Cassandra contact points.


Rhino client directory.

Optional Arguments

What it specifies


Cassandra port (defaults to 9042 if omitted).



Here is an example:

$ ./lbd-verify -c localhost -r RhinoSDK/client
Saving Cassandra contact points: localhost
Saving rhino client: /home/ubuntu/RhinoSDK/client
Connected to Cassandra
Found dialled number: 717
Found dialled number: 718
Found dialled number: 719
Found platformOperator: Metaswitch
Found address: 718
Found address: 717
Found address: 719

SUCCESS: All data in Cassandra and profiles matches

Restart Rhino

Finally, restart Rhino by executing the following commands in a terminal, from the Rhino install directory.

./stop-rhino.sh --node 101
Tip If you chose to set up the Rhino init.d script, you can use these commands to stop and start it.
Previous page Next page
Sentinel VoLTE Version 3.1.0