JBoss.orgCommunity Documentation

JBoss Communications JAIN SLEE HSS Client Enabler User Guide


This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information.

In PDF and paper editions, this manual uses typefaces drawn from the Liberation Fonts set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default.

Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows.

Mono-spaced Bold

Used to highlight system input, including shell commands, file names and paths. Also used to highlight key caps and key-combinations. For example:

The above includes a file name, a shell command and a key cap, all presented in Mono-spaced Bold and all distinguishable thanks to context.

Key-combinations can be distinguished from key caps by the hyphen connecting each part of a key-combination. For example:

The first sentence highlights the particular key cap to press. The second highlights two sets of three key caps, each set pressed simultaneously.

If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in Mono-spaced Bold. For example:

Proportional Bold

This denotes words or phrases encountered on a system, including application names; dialogue box text; labelled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:

The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in Proportional Bold and all distinguishable by context.

Note the > shorthand used to indicate traversal through a menu and its sub-menus. This is to avoid the difficult-to-follow 'Select Mouse from the Preferences sub-menu in the System menu of the main menu bar' approach.

Mono-spaced Bold Italic or Proportional Bold Italic

Whether Mono-spaced Bold or Proportional Bold, the addition of Italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:

Note the words in bold italics above username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system.

Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:

If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in the the Issue Tracker, against the product JBoss Communications JAIN SLEE HSS Client Enabler, or contact the authors.

When submitting a bug report, be sure to mention the manual's identifier: JAIN_SLEE_ENABLER_HSSClient_User_Guide

If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, please include the section number and some of the surrounding text so we can find it easily.

This section provides instructions on how to obtain and build the HSS Client Enabler from source code.

  1. Downloading the source code

    Use SVN to checkout a specific release source, the base URL is ?, then add the specific release version, lets consider 1.0.0.CR1.

    [usr]$ svn co ?/1.0.0.CR1 slee-enabler-hss-client-1.0.0.CR1
  2. Building the source code

    Important

    Maven 2.0.9 (or higher) is used to build the release. Instructions for using Maven2, including install, can be found at http://maven.apache.org

    Use Maven to build the deployable unit binary.

    				    [usr]$ cd slee-enabler-hss-client-1.0.0.CR1
    				    [usr]$ mvn install
    				    

    Once the process finishes you should have the deployable-unit jar file in the target directory, if JBoss Communications JAIN SLEE is installed and environment variable JBOSS_HOME is pointing to its underlying JBoss Enterprise Application Platform directory, then the deployable unit jar will also be deployed in the container.

    Important

    This procedure does not install the Enabler's dependencies

This chapter explains how to setup a JAIN SLEE Service Sbb to use the Enabler.

In short terms, a Service's Sbb will define the Enabler's Sbb as a child, and to achieve that it will need to setup the XML Descriptor, Abstract Class and SbbLocalObject interface.

Important

The Service's Sbb will be referred as the Parent Sbb in the following sections.

The JBoss Communications JAIN SLEE HSS Client Enabler Sbb provides asynchronous callbacks to the Parent's Sbb, and that can only be achieved if the Parent's SbbLocalObject extends a specific Java interface, deployed also by the Enabler,. The Enabler uses the Parent's SbbLocalObject when a callback to the Parent's Sbb is needed.

The SbbLocalObject which must be used or extended by the Parent's Sbb is named org.mobicents.slee.enabler.hssclient.HSSClientParentSbbLocalObject, which extends the org.mobicents.slee.SbbLocalObjectExt and org.mobicents.slee.enabler.hssclient.HSSClientParent interfaces, the latter declares the callbacks which must be implemented in the Parent's Sbb Abstract Class:



package org.mobicents.slee.enabler.hssclient;
public interface HSSClientParent {
  // Sh-Pull Operations Callbacks ---------------------------------------------
  public void deliverRepositoryData(String publicIdentity, byte[][] serviceIndication,
            long resultCode, String data);
  public void deliverIMSPublicIdentity(String publicIdentity, byte[] msisdn, 
            int identitySet, long resultCode, String data);
  public void deliverIMSUserState(String publicIdentity, long resultCode, String data);
  public void deliverSCSCFName(String publicIdentity, long resultCode, String data);
  public void deliverInitialFilterCriteria(String publicIdentity, String serverName,
            long resultCode, String data);
  public void deliverLocationInformation(byte[] msisdn, int requestedDomain, long resultCode, 
            String data);
  public void deliverUserState(byte[] msisdn, int requestedDomain, long resultCode, String data);
  public void deliverChargingInformation(String publicIdentity, byte[] msisdn, long resultCode, 
            String data);
  public void deliverMSISDN(String publicIdentity, byte[] msisdn, long resultCode, String data);
  public void deliverPSIActivation(String publicIdentity, long resultCode, String data);
  // Sh-Update Operations Callbacks -------------------------------------------
  public void updateRepositoryDataResponse(String publicIdentity, long resultCode);
  public void updatePSIActivationResponse(String publicIdentity, long resultCode);
  // Sh-Subscribe Operations Callbacks ----------------------------------------
  public void subscribeRepositoryDataResponse(String publicIdentity, byte[][] serviceIndication,
            long resultCode);
  public void subscribeIMSUserStateResponse(String publicIdentity, long resultCode);
  public void subscribeSCSCFNameResponse(String publicIdentity, long resultCode);
  public void subscribeInitialFilterCriteriaResponse(String publicIdentity, String serverName, 
            long resultCode);
  public void subscribePSIActivationResponse(String publicIdentity, long resultCode);
  
  // Sh-Notify Operations Callbacks -------------------------------------------
  public void receivedProfileUpdate(String userIdentity, byte[] msisdn, String data, 
            String originRealm, String originHost);
}
        
        
The deliverRepositoryData(String, byte[][], long, String) method:

Callback from the Enabler providing the response for a request for the "Repository Data" data type.

The deliverIMSPublicIdentity(String, byte[], int, long, String) method:

Callback from the Enabler providing the response for a request for the "IMS Public Identity" data type.

The deliverIMSUserState(String, long, String) method:

Callback from the Enabler providing the response for a request for the "IMS User State" data type.

The deliverSCSCFName(String, long, String) method:

Callback from the Enabler providing the response for a request for the "S-CSCF Name" data type.

The deliverInitialFilterCriteria(String, String, long, String) method:

Callback from the Enabler providing the response for a request for the "Initial Filter Criteria" data type.

The deliverLocationInformation(byte[], int, long, String) method:

Callback from the Enabler providing the response for a request for the "Location Information" data type.

The deliverUserState(byte[], int, long, String) method:

Callback from the Enabler providing the response for a request for the "User State" data type.

The deliverChargingInformation(String, byte[], long, String) method:

Callback from the Enabler providing the response for a request for the "Charging Information" data type.

The deliverMSISDN(String, byte[], long, String) method:

Callback from the Enabler providing the response for a request for the "MSISDN" data type.

The deliverPSIActivation(String, long, String) method:

Callback from the Enabler providing the response for a request for the "PSI Activation" data type.

The updateRepositoryDataResponse(String, long) method:

Callback from the Enabler providing the response for a request to update the "Repository Data" data type.

The updatePSIActivationResponse(String, long) method:

Callback from the Enabler providing the response for a request to update the "PSI Activation" data type.

The subscribeRepositoryDataResponse(String, byte[][], int, long) method:

Callback from the Enabler providing the response for a request to subscribe/unsubscribe to the "Repository Data" data type.

The subscribeIMSUserStateResponse(String, int, long) method:

Callback from the Enabler providing the response for a request to subscribe/unsubscribe to the "User State" data type.

The subscribeSCSCFNameResponse(String, int, long) method:

Callback from the Enabler providing the response for a request to subscribe/unsubscribe to the "S-CSCF Name" data type.

The subscribeInitialFilterCriteriaResponse(String, String, int, long) method:

Callback from the Enabler providing the response for a request to subscribe/unsubscribe to the "Initial Filter Criteria" data type.

The subscribePSIActivationResponse(String, int, long) method:

Callback from the Enabler providing the response for a request to subscribe/unsubscribe to the "PSI Activation" data type.

The receivedProfileUpdate(String, byte[], String, String, String) method:

Callback from the Enabler providing a received Profile Update for a subscribed profile, for any data type.

The Parent's Sbb must define a reference to the Enabler's Child Sbb, declare which is the method name to get the related ChildRelation object, and also ensure the SbbLocalObject interface is defined correctly.

A reference to the Enabler's Child Sbb is defined right after the Parent's Sbb Vendor ID element, using the following XML element:



        <sbb-ref>
            <sbb-name>HSSClientChildSbb</sbb-name>
            <sbb-vendor>org.mobicents</sbb-vendor>
            <sbb-version>1.0</sbb-version>
            <sbb-alias>hssClientChildSbb</sbb-alias>
        </sbb-ref>
        
        

The method name to get the Enabler's ChildRelation object must be defined after the CMP Fields (if any), this XML element links the sbb-alias previously defined with the abstract method declared in the Parent's Sbb Abstract Class:



        <get-child-relation-method>                 
            <sbb-alias-ref>hssClientChildSbb</sbb-alias-ref>
            <get-child-relation-method-name>getHSSClientChildRelation</get-child-relation-method-name>
            <default-priority>0</default-priority>
        </get-child-relation-method>
        
        

Finally, after the sbb-abstract-class element the Parent's SbbLocalObject interface name is defined:



        <sbb-local-interface>
            <sbb-local-interface-name>...</sbb-local-interface-name>
        </sbb-local-interface>
        
        

In the last chapter we integrated the Enabler in the JAIN SLEE Service's Sbb, the Parent Sbb, in this chapter it is explained how to use the Enabler's Sbb, the Child Sbb.

The JBoss Communications JAIN SLEE HSS Client Enabler Sbb, the Child Sbb, implements the org.mobicents.slee.enabler.hssclient.HSSClientChildSbbLocalObject, which extends the org.mobicents.slee.SbbLocalObjectExt and org.mobicents.slee.enabler.hssclient.HSSClientChild interfaces, the latter declares the methods which can be used to interact with the HSS:



package org.mobicents.slee.enabler.hssclient;
import java.io.IOException;
public interface HSSClientChild {
  // Sh-Pull Operations -------------------------------------------------------
  public String getRepositoryData(String publicIdentity, byte[][] serviceIndications, 
            String destinationRealm, String destinationHost) throws IOException;
  public String getIMSPublicIdentity(String publicIdentity, byte[] msisdn, int identitySet, 
            String destinationRealm, String destinationHost) throws IOException;
  public String getIMSUserState(String publicIdentity, String destinationRealm, 
            String destinationHost) throws IOException;
  public String getSCSCFName(String publicIdentity, String destinationRealm, String destinationHost)
            throws IOException;
  public String getInitialFilterCriteria(String publicIdentity, String serverName, 
            String destinationRealm, String destinationHost) throws IOException;
  public String getLocationInformation(byte[] msisdn, int requestedDomain, String destinationRealm, 
            String destinationHost) throws IOException;
  public String getUserState(byte[] msisdn, int requestedDomain, String destinationRealm, 
            String destinationHost) throws IOException;
  public String getChargingInformation(String publicIdentity, byte[] msisdn, String destinationRealm,
            String destinationHost) throws IOException;
  public String getMSISDN(String publicIdentity, byte[] msisdn, String destinationRealm, 
            String destinationHost) throws IOException;
  public String getPSIActivation(String publicIdentity, String destinationRealm, 
            String destinationHost) throws IOException;
  // Sh-Update Operations -----------------------------------------------------
  public String updateRepositoryData(String publicIdentity, String data, String destinationRealm, 
            String destinationHost) throws IOException;
  public String updatePSIActivation(String publicIdentity, String data, String destinationRealm, 
            String destinationHost) throws IOException;
  
  // Sh-Subscribe Operations --------------------------------------------------
  public String subscribeRepositoryData(String publicIdentity, byte[][] serviceIndications, 
            int subscriptionRequestType, String destinationRealm, String destinationHost) 
            throws IOException;
  public String subscribeIMSUserState(String publicIdentity, int subscriptionRequestType, 
            String destinationRealm, String destinationHost) throws IOException;
  public String subscribeSCSCFName(String publicIdentity, int subscriptionRequestType, 
            String destinationRealm, String destinationHost) throws IOException;
  public String subscribeInitialFilterCriteria(String publicIdentity, String serverName, 
            int subscriptionRequestType, String destinationRealm, String destinationHost) 
            throws IOException;
  public String subscribePSIActivation(String publicIdentity, int subscriptionRequestType, 
            String destinationRealm, String destinationHost) throws IOException;
}
        
        
The getRepositoryData(String, byte[][], String, String) method:

Retrieves the "Repository Data" data type from the HSS, for the specified Public Identity and Service Indication(s). Response is provided through parent's callback deliverRepositoryData(...).

The getIMSPublicIdentity(String, byte[], int, String, String) method:

Retrieves the "IMS Public Identity" data type from the HSS, for the specified Public Identity or MSISDN, and Identity Set. Response is provided through parent's callback deliverIMSPublicIdentity(...).

The getIMSUserState(String, String, String) method:

Retrieves the "IMS User State" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback deliverIMSUserState(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getSCSCFName(String, String, String) method:

Retrieves the "S-CSCF Name" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback deliverSCSCFName(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getInitialFilterCriteria(String, String, String, String) method:

Retrieves the "Initial Filter Criteria" data type from the HSS, for the specified Public Identity and Server Name. Response is provided through parent's callback deliverInitialFilterCriteria(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getLocationInformation(byte[], int, String, String) method:

Retrieves the "Location Information" data type from the HSS, for the specified MSISDN and Requested Domain. Response is provided through parent's callback deliverLocationInformation(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getUserState(byte[], int, String, String) method:

Retrieves the "User State" data type from the HSS, for the specified MSISDN and Requested Domain. Response is provided through parent's callback deliverUserState(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getChargingInformation(String, byte[], String, String) method:

Retrieves the "Charging Information" data type from the HSS, for the specified Public Identity or MSISDN. Response is provided through parent's callback deliverChargingInformation(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getMSISDN(String, byte[], String, String) method:

Retrieves the "MSISDN" data type from the HSS, for the specified Public Identity or MSISDN. Response is provided through parent's callback deliverMSISDN(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.getPSIActivation(String, String, String) method:

Retrieves the "PSI Activation" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback deliverPSIActivation(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.updateRepositoryData(String, String, String, String) method:

Updates the "Repository Data" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback updateRepositoryDataResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.updatePSIActivation(String, String, String, String) method:

Updates the "PSI Activation" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback updatePSIActivationResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.subscribeRepositoryData(String, byte[][], int, String, String) method:

Subscribes/Unsubcribes (depending on Subscription-Request-Type value) to the "Repository Data" data type from the HSS, for the specified Public Identity and Service Indication(s). Response is provided through parent's callback subscribeRepositoryDataResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.subscribeIMSUserState(String, int, String, String) method:

Subscribes/Unsubcribes (depending on Subscription-Request-Type value) to the "IMS User State" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback subscribeIMSUserStateResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.subscribeSCSCFName(String, int, String, String) method:

Subscribes/Unsubcribes (depending on Subscription-Request-Type value) to the "S-CSCF Name" data type from the HSS, for the specified Public Identity. Response is provided through parent's callback subscribeSCSCFNameResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.subscribeInitialFilterCriteria(String, String, int, String, String) method:

Subscribes/Unsubcribes (depending on Subscription-Request-Type value) to the "Initial Filter Criteria" data type from the HSS, for the specified Public Identity and Server Name. Response is provided through parent's callback subscribeInitialFilterCriteriaResponse(...).

The org.mobicents.slee.enabler.hssclient.HSSClientChild.subsribePSIActivation(String, int, String, String) method:

Subscribes/Unsubcribes (depending on Subscription-Request-Type value) to the "PSIActivation" data type from the HSS, for the specified Public Identity and Service Indication(s). Response is provided through parent's callback subsribePSIActivationResponse(...).

Revision History
Revision 1.0Thu Jan 06 2011Alexandre Mendonça
Creation of the JBoss Communications JAIN SLEE HSS Client Enabler User Guide.