This section describes configuration of the Diameter Sh stack instance(s) inside the Rhino EM Web Application.

Tip
Architecture reference

For background on the architecture related to the instructions below, please read the XCAP Support page.

Diameter Sh stack configuration

As seen in XCAP Support, the Diameter Sh stack is used by the XCAP Server and Rhino EM’s Web User interface.

Instances of the Diameter Sh stack are configured through two ‘locations’:

Note Both ‘locations’ are required to configure an instance.

Configuring an Sh stack instance with REM

To configure an Sh stack with the REM:

1

Navigate to Sentinel ▶ HSS Configuration.

400

The Diameter Instance Configuration page displays.

400

2

The Diameter instance name field identifies each instance of the Diameter Sh stack. Select an Sh stack instance, and specify entries in the other fields to configure key parameters.

Tip Click the ? help button next to a field for a description of that parameter.
Important
Use a unique Sh stack instance per cluster

Selecting the name of the Diameter Sh stack instance in this panel links it with the Rhino cluster that your REM session is logged into.

This means that when an administrator uses the HSS Transparent Data Editor, since they’ve logged into a Rhino cluster, the associated Diameter Sh stack instance in REM will be selected.

Also, when processing an XCAP request, the XCAP Server will find the Rhino cluster to use, as it queries this for some settings. The Diameter Sh stack instance is then selected by the Rhino cluster’s linked Diameter Sh stack instance.

In the case where REM is connected to only one Rhino cluster, there only needs to be one Diameter Sh stack instance.

*We strongly recommend that you configure each Rhino cluster to use a unique Diameter Sh stack instance!_

Configuring an Sh stack instance with a file

When REM starts, it reads a configuration file. This file is formatted according to a Rhino Profile Export format.

Note Although REM uses this file format for a profile export; but this information is not stored in JSLEE profiles. The file itself is read and parsed as REM initialises.

The file name is VolteHssDiameterConfig.xml, in the rem_home directory. (With the Tomcat HTTP Servlet container, this directory is a subdirectory of the Tomcat home directory.)

Diameter Sh stack instance name and attributes

In the configuration file, each Diameter Sh stack instance is declared using a <profile> element. The <profile> element must have a name (the name of the Diameter Sh Stack instance) and an action attribute. The action attribute should be set to create. For example:

<profile name="xcapserver" action="create">

In this case, the Diameter Sh stack instance is named xcapserver. This name is the core link between the XML configuration file and the REM configuration screen.

The following attributes are also required:

Attribute name What it specifies
productVendorId

used for the Vendor-Id AVP of the CER and CEA messages

applicationVendorId

Vendor ID; must be 0 for IETF-specified applications, or an IANA-assigned private enterprise number

host

host to use in all Origin-Host AVPs; must be resolvable

applicationId

Diameter Application ID

realm

realm to use in all Origin-Realm AVPs

peerTable

a diameter peer table XML encoded as Character Data See the Diameter documentation

realmTable

a diameter realm table XML encoded as Character Data See the Diameter documentation

product

product name to use in Product-Name AVPs generated by the stack

version

version number to use in all Firmware-Revision AVPs generated by the stack; must be a positive integer

Example configuration file

This example shows a single Diameter Sh stack instance, with the name xcapserver.

<exported-profile-data table="VolteHssDiameterConfiguration">
    <attributes>
        <attribute-desc name="productVendorId" type="long" serialised="false"/>
        <attribute-desc name="applicationVendorId" type="long" serialised="false"/>
        <attribute-desc name="host" type="java.lang.String" serialised="false"/>
        <attribute-desc name="applicationId" type="long" serialised="false"/>
        <attribute-desc name="realm" type="java.lang.String" serialised="false"/>
        <attribute-desc name="peerTable" type="java.lang.String" serialised="false"/>
        <attribute-desc name="realmTable" type="java.lang.String" serialised="false"/>
        <attribute-desc name="product" type="java.lang.String" serialised="false"/>
        <attribute-desc name="version" type="int" serialised="false"/>
        <attribute-desc name="enableMultiNodeConfig" type="boolean" serialised="false"/>
        <attribute-desc name="nodeIDs" type="int[]" serialised="false"/>
        <attribute-desc name="perNodeHosts" type="java.lang.String[]" serialised="false"/>
        <attribute-desc name="perNodeListenAddresses" type="java.lang.String[]" serialised="false"/>
        <attribute-desc name="perNodePorts" type="int[]" serialised="false"/>
        <attribute-desc name="perNodeSecondaryAddresses" type="java.lang.String[]" serialised="false"/>
    </attributes>
    <profile name="xcapserver" action="create">
        <attribute-value name="productVendorId">19808</attribute-value>
        <attribute-value name="applicationVendorId">10415</attribute-value>
        <attribute-value name="host">xcapserver</attribute-value>
        <attribute-value name="applicationId">16777217</attribute-value>
        <attribute-value name="realm">ims.mncXXX.mccYYY.3gppnetwork.org</attribute-value>
        <attribute-value name="peerTable">
            <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
                     <!DOCTYPE peer-table PUBLIC "-//Open Cloud Ltd.//DTD Diameter Peer Table Configuration 1.1.0//EN"
                     "http://www.opencloud.com/dtd/diameter-peer-table-1.1.0.dtd">
                     <peer-table>
                        <default-options>
                            <option>
                                <option-name>TCP_NODELAY</option-name>
                                <option-type>java.lang.Boolean</option-type>
                                <option-value>true</option-value>
                            </option>
                        </default-options>
                        <peer connectAtStartup="true">
                            <!--
                              Note that the XXX and YYY portions mncXXX and mccYYY
                               are expected to change to your network's
                               MNC and MCC value respectively
                             -->
                            <uri>aaa://hss1.ims.mncXXX.mccYYY.3gppnetwork.org:3888;transport=tcp</uri>
                            <!-- address only needed if the URI does not resolve -->
                            <address>192.168.1.111</address>
                            <option>
                                <option-name>TCP_NODELAY</option-name>
                                <option-type>java.lang.Boolean</option-type>
                                <option-value>false</option-value>
                            </option>
                        </peer>
                        <peer connectAtStartup="true">
                            <uri>aaa://hss2.ims.mncXXX.mccYYY.3gppnetwork.org:3888;transport=tcp</uri>
                            <address>192.168.1.222</address>
                            <option>
                                <option-name>TCP_NODELAY</option-name>
                                <option-type>java.lang.Boolean</option-type>
                                <option-value>false</option-value>
                            </option>
                         </peer>
                     </peer-table>]]>
        </attribute-value>
        <attribute-value name="realmTable">
        <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
                 <!DOCTYPE realm-table PUBLIC "-//Open Cloud Ltd.//DTD Diameter Realm Table Configuration 1.0//EN"
                 "http://www.opencloud.com/dtd/diameter-realm-table-1.0.dtd">
                 <realm-table>

                     <realm>
                         <realm-name>ims.mncXXX.mccYYY.3gppnetwork.org</realm-name>
                             <application-route>
                                 <application>
                                     <application-id>16777217</application-id> <!-- Diameter Sh -->
                                     <vendor-id>10415</vendor-id> <!-- optional, default is zero
                                                                       3GPP is 10415 -->
                                 </application>
                                 <action>LOCAL</action>
                                 <peer-ref>
                                     <hostname>hss1.ims.mncXXX.mccYYY.3gppnetwork.org</hostname>
                                     <metric>1</metric>
                                 </peer-ref>
                                 <peer-ref>
                                     <hostname>hss2.ims.mncXXX.mccYYY.3gppnetwork.org</hostname>
                                     <metric>1</metric>
                                 </peer-ref>

                             </application-route>
                     </realm>
                 </realm-table>]]>
        </attribute-value>
        <attribute-value name="product">OpenCloud Diameter</attribute-value>
        <attribute-value name="version">1</attribute-value>
        <attribute-value name="enableMultiNodeConfig">false</attribute-value>
        <attribute-value name="nodeIDs" content-type="null"/>
        <attribute-value name="perNodeHosts" content-type="null"/>
        <attribute-value name="perNodeListenAddresses" content-type="null"/>
        <attribute-value name="perNodePorts" content-type="null"/>
        <attribute-value name="perNodeSecondaryAddresses" content-type="null"/>
    </profile>
</exported-profile-data>

Configuring the Sentinel network operator’s destination HSS

Now that we have a test operator, the HSS configuration can be added for this operator:

1

In REM, navigate to Sentinel ▶ HSS Configuration.

400

2

Select the Diameter Destinations tab.

400

The screen above shows a network operator named OpenCloud with a configured destination.

3

Click the + Add New button.

4

Enter these parameters:

  • Network operator —  the name of the operator you added (in the example, TestOperator)

  • Destination realm — the value used for the Destination Realm AVP (in the example, home1.net)

  • Destination host — optional; if specified, used as the value for the destination host AVP (in the example, hss).

5

Click the Save button.

Once saved, the panel will display a green-coloured success message, and the REM log will have a green-coloured log message.

400
Note In the left-most panel, the configuration for TestOperator has appeared.
Previous page Next page
Sentinel VoLTE Public Version 2.8.0