by Amit Bhayani
Preface ............................................................................................................................. v
1. Document Conventions .......................................................................................... v
1.1. Typographic Conventions ............................................................................ v
1.2. Pull-quote Conventions .............................................................................. vii
1.3. Notes and Warnings .................................................................................. vii
2. Provide feedback to the authors! .......................................................................... viii
1. Introduction to Mobicents JAIN SLEE MAP Resource Adaptor ................................... 1
2. Resource Adaptor Type ............................................................................................... 3
2.1. Activities ............................................................................................................. 3
2.2. Events ................................................................................................................ 3
2.2.1. Component .............................................................................................. 3
2.2.2. Dialog ...................................................................................................... 4
2.2.3. Suplementary service ............................................................................... 6
2.2.4. Local service management ....................................................................... 7
2.2.5. Short message service ............................................................................. 8
2.3. Activity Context Interface Factory ......................................................................... 9
2.4. Resource Adaptor Interface ............................................................................... 10
2.5. Restrictions .......................................................................................................
2.6. Sbb Code Examples .........................................................................................
3. Resource Adaptor Implementation ............................................................................
3.1. Configuration ....................................................................................................
3.2. Default Resource Adaptor Entities .....................................................................
3.3. Traces and Alarms ............................................................................................
3.3.1. Tracers ..................................................................................................
3.3.2. Alarms ...................................................................................................
4. Setup .........................................................................................................................
4.1. Pre-Install Requirements and Prerequisites ........................................................
4.1.1. Hardware Requirements .........................................................................
4.1.2. Software Prerequisites ............................................................................
4.2. Mobicents JAIN SLEE MAP Resource Adaptor Source Code ...............................
4.2.1. Release Source Code Building ................................................................
4.2.2. Development Trunk Source Building ........................................................
4.3. Installing Mobicents JAIN SLEE MAP Resource Adaptor .....................................
4.4. Uninstalling Mobicents JAIN SLEE MAP Resource Adaptor .................................
A. Revision History ..........................................................................................................
Index ...............................................................................................................................
11
12
17
17
17
18
18
19
21
21
21
21
21
21
22
22
22
25
27
iii
iv
Preface
1. Document Conventions
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 [https://
fedorahosted.org/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.
Used to highlight system input, including shell commands, file names and paths. Also used to
highlight key caps and key-combinations. For example:
To see the contents of the file my_next_bestselling_novel in your current
working directory, enter the cat my_next_bestselling_novel command at the
shell prompt and press Enter to execute the command.
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:
Press Enter to execute the command.
Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to
return to your X-Windows session.
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:
File-related classes include filesystem for file systems, file for files, and dir
for directories. Each class has its own associated set of permissions.
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:
Preface
Choose System > Preferences > Mouse from the main menu bar to launch
Mouse Preferences. In the Buttons tab, click the Left-handed mouse check
box and click Close to switch the primary mouse button from the left to the right
(making the mouse suitable for use in the left hand).
To insert a special character into a gedit file, choose Applications >
Accessories > Character Map from the main menu bar. Next, choose Search
> Find from the Character Map menu bar, type the name of the character in the
Search field and click Next. The character you sought will be highlighted in the
Character Table. Double-click this highlighted character to place it in the Text
to copy field and then click the Copy button. Now switch back to your document
and choose Edit > Paste from the gedit menu bar.
The above text includes application names; system-wide menu names and items; applicationspecific 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:
To connect to a remote machine using ssh, type ssh username@domain.name
at a shell prompt. If the remote machine is example.com and your username on
that machine is john, type ssh john@example.com.
The mount -o remount file-system command remounts the named file
system. For example, to remount the /home file system, the command is mount
-o remount /home.
To see the version of a currently installed package, use the rpm -q package
command. It will return a result as follows: package-version-release.
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:
When the Apache HTTP Server accepts requests, it dispatches child processes
or threads to handle them. This group of child processes or threads is known as
vi
Pull-quote Conventions
a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and
maintaining these server-pools has been abstracted to a group of modules called
Multi-Processing Modules (MPMs). Unlike other modules, only one module from
the MPM group can be loaded by the Apache HTTP Server.
books
books_tests
Desktop
Desktop1
documentation
downloads
drafts
images
mss
notes
photos
scripts
stuff
svgs
svn
Source-code listings are also set in Mono-spaced Roman but are presented and highlighted as
follows:
package org.jboss.book.jca.ex1;
import javax.naming.InitialContext;
public class ExClient
{
public static void main(String args[])
throws Exception
{
InitialContext iniCtx = new InitialContext();
Object
ref = iniCtx.lookup("EchoBean");
EchoHome
home = (EchoHome) ref;
Echo
echo = home.create();
System.out.println("Created Echo");
System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
}
}
vii
Preface
Note
A note is a tip or shortcut or alternative approach to the task at hand. Ignoring a
note should have no negative consequences, but you might miss out on a trick that
makes your life easier.
Important
Important boxes detail things that are easily missed: configuration changes that
only apply to the current session, or services that need restarting before an update
will apply. Ignoring Important boxes won't cause data loss but may cause irritation
and frustration.
Warning
A Warning should not be ignored. Ignoring warnings will most likely cause data
loss.
be
sure
to
mention
the
manual's
identifier:
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.
viii
Chapter 1.
Chapter 2.
2.1. Activities
An MAP activity object represents a set of related events in an MAP resource. This RA Type
defines only one activity object:
MAPDialog
All the events related to MAP Dialog and events related to Service are fired on this activity. This
activity ends implicitly when MAP stack sends P-Abort or explicitly when user aborts the Dialog
or end's the Dialog. Class name is org.mobicents.protocols.ss7.map.api.MAPDialog
New MAPDialog activity objects are created via specific MAP Service interface. Check
Section 2.4, Resource Adaptor Interface section for available services.
Depending on service used, activity object provides additional set of methods. For instance
USSD
dialog:
org.mobicents.protocols.ss7.map.api.service.supplementary.MAPDialogSupplementary
2.2. Events
Events represent's MAP's common services as well as services related to USSD Events are fired
on MAPDialog. Below sections detail different type of events, depending on cause
of it beeing fired into SLEE.
2.2.1. Component
Below events are fired into SLEE when something happens with components passed in MAP
messages.
Important
For proper render of this table prefixes, for entries on some columns are omitted.
For prefix values, for each column, please see list below:
Name
ss7.map.
Event Class
org.mobicents.slee.resource.map.events
Version for all defined events is 1.0
Event Class
Comments
INVOKE_TIMEOUT
InvokeTimeout
ERROR_COMPONENT
ErrorComponent
Fired
peer
when
indicates
remote
abnormal
REJECT_COMPONENT
RejectComponent
2.2.2. Dialog
Dialog events are fired into SLEE to indicate basic occurrence of dialog related data.
Important
For proper render of this table prefixes, for entries on some columns are omitted.
For prefix values, for each column, please see list below:
Name
ss7.map.
Event Class
org.mobicents.slee.resource.map.events
Version for all defined events is 1.0
Dialog
Event Class
Comments
DIALOG_DELIMITER
DialogDelimiter
Indicates
end
of
MAP
commands that triggered other
events to be fired.
DIALOG_REQUEST
DialogRequest
DIALOG_ACCEPT
DialogAccept
DIALOG_REJECT
DialogReject
Opposite
to
DIALOG_ACCEPT. Indicates
that remote peer rejected
dialog for some reason. This
event is fired prior to one
indicating reason.
DIALOG_USERABORT
DialogUserAbort
DIALOG_PROVIDERABORT
DialogProviderAbort
DIALOG_CLOSE
DialogClose
DIALOG_NOTICE
DialogNotice
Fired
when
abnormal
message is received within
dialog. For instance when
when duplicated InvokeID
or
wrong
operation
is
received(for running MAP
service).
DIALOG_TIMEOUT
DialogTimeout
Name
Event Class
Comments
configuration RA may sustain
dialog or let it timeout. This
event is fired when there is no
activity on dialog for extended
period of time.
Important
For proper render of this table prefixes, for entries on some columns are omitted.
For prefix values, for each column, please see list below:
Name
ss7.map.service.suplementary.
Event Class
org.mobicents.protocols.ss7.map.api.service.supplementary.
Version for all defined events is 1.0
Vendor for all defined events is org.mobicents
Spaces where introduced in Name column values, to correctly render the table.
Please remove them when using copy/paste.
Event Class
Comments
UNSTRUCTURED
_SS_REQUEST
ProcessUnstructuredSSRequestIndicates
either
or
subsequent
initial
USSD
message(all
non
final
messages exchanged are of
this type). Its exchanged
between user device and
USSD application.
UNSTRUCTURED
_SS_RESPONSE
ProcessUnstructuredSSResponse
Final message exchanged in
USSD dialog.
PROCESS_UNSTRUCTURED ProcessUnstructuredSSRequestAs
UNSTRUCTURED
_SS_REQUEST
_SS_REQUEST, however this
message
is
exchanged
Name
Event Class
Comments
between SS7 equipment/
nodes, like HLR and VLR
PROCESS_UNSTRUCTURED ProcessUnstructuredSSResponse
This event is equivalent of
_SS_RESPONSE
UNSTRUCTURED
_SS_RESPONSE.
UNSTRUCTURED_SS
_NOTIFY_REQUEST
Important
For proper render of this table prefixes, for entries on some columns are omitted.
For prefix values, for each column, please see list below:
Name
ss7.map.service.lsm.
Event Class
org.mobicents.protocols.ss7.map.api.service.lsm.
Version for all defined events is 1.0
Vendor for all defined events is org.mobicents
Spaces where introduced in Name column values, to correctly render the table.
Please remove them when using copy/paste.
Event Class
Comments
PROVIDE_SUBSCRIBER
_LOCATION_REQUEST
ProvideSubscriberLocationRequest
This event indicates that
GLMC requests location of
user device(subscriber).
PROVIDE_SUBSCRIBER
_LOCATION_RESPONSE
ProvideSubscriberLocationResponse
SEND_ROUTING_INFO
_FOR_LCS_REQUEST
from
HLR.
7
Name
Event Class
Comments
Provided information is used
to route SMS
SEND_ROUTING_INFO
_FOR_LCS_RESPONSE
SendRoutingInfoForLCSResponse
SUBSCRIBER_LOCATION
_REPORT_REQUEST
SubscriberLocationReportRequest
This event indicates change
in location of user device. It
provides SS7 equipment with
update on subscriber location.
SUBSCRIBER_LOCATION
_REPORT_RESPONSE
SubscriberLocationReportResponse
Important
For proper render of this table prefixes, for entries on some columns are omitted.
For prefix values, for each column, please see list below:
Name
ss7.map.service.sms.
Event Class
org.mobicents.protocols.ss7.map.api.service.sms.
Version for all defined events is 1.0
Vendor for all defined events is org.mobicents
Spaces where introduced in Name column values, to correctly render the table.
Please remove them when using copy/paste.
Event Class
Comments
FORWARD_SHORT
_MESSAGE_REQUEST
Name
Event Class
Comments
FORWARD_SHORT
_MESSAGE_RESPONSE
ForwardShortMessageResponse
MO_FORWARD_SHORT
_MESSAGE_REQUEST
MoForwardShortMessageRequest
This event indicates that
mobile originated SMS must
be forwarded to another SS7
node.
MO_FORWARD_SHORT
_MESSAGE_RESPONSE
MoForwardShortMessageResponse
MT_FORWARD_SHORT
_MESSAGE_REQUEST
MtForwardShortMessageRequest
This event indicates that
mobile terminated SMS must
be forwarded to another SS7
node.
MT_FORWARD_SHORT
_MESSAGE_RESPONSE
MtForwardShortMessageResponse
SEND_ROUTING_INFO
_FOR_SM_REQUEST
SEND_ROUTING_INFO
_FOR_SM_RESPONSE
SendRoutingInfoForSMResponse
REPORT_SM_DELIVERY
_STATUS_REQUEST
REPORT_SM_DELIVERY
_STATUS_RESPONSE
ReportSMDeliveryStatusResponse
INFORM_SERVICE
_CENTER_REQUEST
InformServiceCentreRequest
ALERT_SERVICE
_CENTER_REQUEST
AlertServiceCentreRequest
ALERT_SERVICE
_CENTER_RESPONSE
AlertServiceCentreResponse
package org.mobicents.slee.resource.map;
import org.mobicents.protocols.ss7.map.api.MAPDialog;
import javax.slee.ActivityContextInterface;
import javax.slee.FactoryException;
import javax.slee.UnrecognizedActivityException;
public interface MAPContextInterfaceFactory {
public ActivityContextInterface getActivityContextInterface(MAPDialog
NullPointerException,
UnrecognizedActivityException, FactoryException;
dialog)
throws
package org.mobicents.protocols.ss7.map.api;
10
Restrictions
Note
As MAP stack is beeing completed, it will support more services, this list of
getMAPServiceX will expand to support all implemented services.
2.5. Restrictions
The resource adaptor implementation should prevent SBBs from adding themselves as MAP
listeners, or changing the MAP network configuration. Any attempt to do so should be rejected
by throwing a SecurityException.
11
12
if (this.logger.isFineEnabled()) {
this.logger
.fine("Received PROCESS_UNSTRUCTURED_
SS_REQUEST_INDICATION for MAP Dialog Id "
+ evt.getMAPDialog().getDialogId()+
" ussdString = "+ussdString);
}
USSDString ussdStringObj = this.mapServiceFactory
.createUSSDString("1. Movies 2. Songs 3. End");
evt.getMAPDialog().addUnstructuredSSResponse(invokeId, false,
ussdDataCodingScheme, ussdStringObj);
evt.getMAPDialog().send();
} catch (Exception e) {
logger.severe("Error while sending MAP USSD message", e);
}
}
public void onUnstructuredSSRequest(UnstructuredSSIndication evt,
ActivityContextInterface aci) {
if (this.logger.isFineEnabled()) {
this.logger
.fine("Received UNSTRUCTURED_SS_REQUEST_INDICATION for MAP Dialog Id "
+ evt.getMAPDialog().getDialogId());
}
try{
MAPDialog mapDialog = evt.getMAPDialog();
USSDString ussdStrObj = evt.getUSSDString();
long invokeId = evt.getInvokeId();
13
//End MAPDialog
evt.getMAPDialog().close(false);
}catch(Exception e){
logger.severe("Error while sending MAP USSD ", e);
}
}
...
14
15
16
Chapter 3.
3.1. Configuration
The Resource Adaptor supports configuration only at Resource Adaptor Entity creation time. It
supports following properties:
Description
Property Type
ssn
Default Value
8
transport.
sccpJndi
timeout
java:/mobicents/ss7/
sccp
Important
JAIN SLEE 1.1 Specification requires values set for properties without a default
value, which means the configuration for those properties are mandatory,
otherwise the Resource Adaptor Entity creation will fail!
17
The MAPRA entity is also bound to Resource Adaptor Link Name MAPRA, to use it in an Sbb add
the following XML to its descriptor:
<resource-adaptor-type-binding>
<resource-adaptor-type-ref>
<resource-adaptor-type-name>
MAPResourceAdaptorType
</resource-adaptor-type-name>
<resource-adaptor-type-vendor>
org.mobicents
</resource-adaptor-type-vendor>
<resource-adaptor-type-version>
2.0
</resource-adaptor-type-version>
</resource-adaptor-type-ref>
<activity-context-interface-factory-name>
slee/resources/map/2.0/acifactory
</activity-context-interface-factory-name>
<resource-adaptor-entity-binding>
<resource-adaptor-object-name>
slee/resources/map/2.0/provider
</resource-adaptor-object-name>
<resource-adaptor-entity-link>
MAPRA
</resource-adaptor-entity-link>
</resource-adaptor-entity-binding>
</resource-adaptor-type-binding>
18
Alarms
3.3.2. Alarms
No alarms are set by this Resource Adaptor.
19
20
Chapter 4.
Setup
4.1. Pre-Install Requirements and Prerequisites
Ensure that the following requirements have been met before continuing with the install.
1.
Important
Subversion is used to manage its source code. Instructions for using
Subversion, including install, can be found at http://svnbook.red-bean.com
Use SVN to checkout a specific release source, the base URL is http://
mobicents.googlecode.com/svn/tags/servers/jain-slee/2.x.y/resources/MAP, then add the
specific release version, lets consider 1.0.0.FINAL.
21
Chapter 4. Setup
2.
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
[usr]$ cd slee-ra-MAP-1.0.0.FINAL
[usr]$ mvn install
Once the process finishes you should have the deployable-unit jar file in the target
directory, if Mobicents JAIN SLEE is installed and environment variable JBOSS_HOME is
pointing to its underlying JBoss Application Server directory, then the deployable unit jar will
also be deployed in the container.
[usr]$ ant
The script will copy the RA deployable unit jar to the default Mobicents JAIN SLEE server profile
deploy directory, to deploy to another server profile use the argument -Dnode=.
22
The script will delete the RA deployable unit jar from the default Mobicents JAIN SLEE server
profile deploy directory, to undeploy from another server profile use the argument -Dnode=.
23
24
AmitBhayani
25
26
Index
F
feedback, viii
27
28