Revision: 0380462fc214
Author: Vinu S Renish <[email protected]>
Date: Sat Jan 12 11:17:08 2013
Log: issue 223
http://code.google.com/p/jss7/source/detail?r=0380462fc214
Modified:
/docs/sources/src/main/resources/en-US/Chapter-Source_Build_Binary.xml
/docs/sources/src/main/resources/en-US/Chapter-TCAP.xml
=======================================
--- /docs/sources/src/main/resources/en-US/Chapter-Source_Build_Binary.xml
Fri Sep 7 03:30:26 2012
+++ /docs/sources/src/main/resources/en-US/Chapter-Source_Build_Binary.xml
Sat Jan 12 11:17:08 2013
@@ -662,9 +662,10 @@
<title>Configuring TCAP</title>
<para>
<literal>TcapStack</literal> initiates the
TCAP stack routines. Respective TCAP stack beans are instantiated for each
<literal>MAP</literal>, <literal>CAP</literal>
- Service. If you are using either one, feel
free to delete other.
+ Service. If you are using either one, feel
free to delete the other.
</para>
- <programlisting language="XML"
role="XML"><![CDATA[ <!--
==================================================================== -->
+ <programlisting language="XML" role="XML"><![CDATA[
+ <!-- ====================================================================
-->
<!-- TCAP Service -->
<!-- ====================================================================
-->
<bean name="TcapStackMap"
class="org.mobicents.protocols.ss7.tcap.TCAPStackImpl">
@@ -708,48 +709,77 @@
</para>
<para>
- Stack has following properties:
+ TCAP Stack has following configurable
properties:
<variablelist>
<varlistentry>
-
<term>dialogIdleTimeout</term>
+ <term>dialogIdleTimeout:
public void setDialogIdleTimeout(long l);</term>
<listitem>
- <para>The TCAP
Dialog idle timeout in milli-seconds </para>
+ <para>This
property specifies how long a dialog can be idle (i.e. not receive/send any
messages) before a timeout occurs. The value is specified in milliseconds.
When a timeout occurs the method
<literal>TCListener.onDialogTimeout()</literal> will be invoked. If a
TCAP-User does not invoke <literal>Dialog.keepAlive()</literal> inside the
method <literal>TCListener.onDialogTimeout()</literal>, the TCAP Dialog
will be released.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>invokeTimeout</term>
+ <term>invokeTimeout:
public void setInvokeTimeout(long l);</term>
<listitem>
+ <para>This
property specifies, by default, how long Invoke will wait for a response
from a peer before a timeout occurs. The value is specified in
milliseconds. If a TCAP-User does not specify a custom Invoke timeout when
sending a new Invoke, this default value will be used for outgoing Invoke
timeout. When this timeout occurs
<literal>TCListener.onInvokeTimeout()</literal> will be invoked.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>maxDialogs: public
void setMaxDialogs(int v); </term>
+ <listitem>
<para>
- Component
invoke timeout value in milli-seconds
+This property specifes the maximum number of concurrent dialogs allowed to
be alive at any point of time. If this property is not set, a default value
of 5000 dialogs will be used. If an application attempts to create more
dialogs than this maximum number specified, an Exception is thrown.
</para>
</listitem>
- </varlistentry>
+ </varlistentry>
+
+
<varlistentry>
-
<term>dialogIdRangeStart</term>
+ <term>dialogIdRangeStart:
public void setDialogIdRangeStart(long val);</term>
<listitem>
- <para>All the
outgoing Dialog will have id started with dialogIdRangeStart.
dialogIdRangeStart cannt be greater than dialogIdRangeEnd </para>
+ <para>
+TCAP stack can be configured to use a range of local DialogId values. You
may install a set of TCAP Stack instances with different DialogId ranges.
These ranges can be used for loadsharing of SS7 traffic between the TCAP
instances.
+All the outgoing Dialogs will have id starting with
<literal>dialogIdRangeStart</literal>. This value of
<literal>dialogIdRangeStart</literal> cannt be greater than
<literal>dialogIdRangeEnd</literal>. In addition, the value of
<literal>dialogIdRangeEnd - dialogIdRangeStart</literal> must always be
less than the value of <literal>maxDialogs</literal>. </para>
</listitem>
</varlistentry>
<varlistentry>
-
<term>dialogIdRangeEnd</term>
+ <term>dialogIdRangeEnd:
public void setDialogIdRangeStart(long val);</term>
<listitem>
<para>
- All the outgoing
Dialog will have id started with dialogIdRangeStart and incremented by 1
for each new outgoing dialog till dialogIdRangeEnd. After this
- dialog is will
again start from dialogIdRangeStart value.
+ All the outgoing
Dialogs will have id starting with <literal>dialogIdRangeStart</literal>
and incremented by 1 for each new outgoing dialog till
<literal>dialogIdRangeEnd</literal>. After this,
+ dialog will again
start from the value of<literal>dialogIdRangeStart</literal>.
</para>
</listitem>
- </varlistentry>
+ </varlistentry>
<varlistentry>
- <term>maxDialogs</term>
+ <term>previewMode: public
void setPreviewMode(boolean val);</term>
<listitem>
<para>
- Maximum
concurrent dialog's allowed at any given point of time. If application
tries to create more dialog than this, exception is thrown.
- dialogIdRangeEnd
- dialogIdRangeStart must alwasy be less than maxDialogs
+ PreviewMode is
needed for special processing mode. By default TCAP is not set in
PreviewMode. When PreviewMode set in TCAP level:
+<itemizedlist>
+ <listitem>
+ <para>Stack only listens for incoming messages and does not send
anything. The methods <literal>send()</literal>,
+ <literal>close()</literal>, <literal>sendComponent()</literal> and other
such methods do nothing.</para>
+ </listitem>
+ <listitem>
+ <para>A TCAP Dialog is temporary. TCAP Dialog is discarded
after any
+ incoming message like TC-BEGIN or TC-CONTINUE has been processed.</para>
+ </listitem>
+ <listitem>
+ <para>For any incoming messages (including TC-CONTINUE, TC-END,
TC-ABORT)
+ a new TCAP Dialog is created (and then deleted).</para>
+ </listitem>
+ <listitem>
+ <para>There are no timers and timeouts.</para>
+ </listitem>
+</itemizedlist>
</para>
</listitem>
- </varlistentry>
+ </varlistentry>
</variablelist>
</para>
+
+
</section>
<section id="configuring_MAP">
=======================================
--- /docs/sources/src/main/resources/en-US/Chapter-TCAP.xml Sat Jan 12
07:27:02 2013
+++ /docs/sources/src/main/resources/en-US/Chapter-TCAP.xml Sat Jan 12
11:17:08 2013
@@ -12,27 +12,27 @@
<para>
The Transaction Capabilities Application Part (TCAP) is defined in ITU-T
Recommendations Q.771-Q.775.
TCAP allows services at network nodes to communicate with each other
using an agreed-upon set of data elements.
- Its primary purpose is to facilitate multiple concurrent dialogs between
the same sub-systems on the same machines,
+ The primary purpose of TCAP is to facilitate multiple concurrent dialogs
between the same sub-systems on the same machines,
using Transaction IDs to differentiate these, similar to the way TCP
ports facilitate multiplexing connections between
the same IP addresses on the Internet.
</para>
<section>
<title>&THIS.PLATFORM; &THIS.APPLICATION; TCAP Usage</title>
<para>
- The
<classname>org.mobicents.protocols.ss7.tcap.api.TCAPStack</classname>
interface defines the methods required to represent TCAP
+ The
<classname>org.mobicents.protocols.ss7.tcap.api.TCAPStack</classname>
interface defines the methods required to represent the TCAP
Protocol Stack. TCAPStack exposes
<classname>org.mobicents.protocols.ss7.tcap.api.TCAPProvider</classname>
that interacts directly
- with TCAPStack. TCAPProvider defines methods that will be used by TCAP
User Part to create new
-
<classname>org.mobicents.protocols.ss7.tcap.api.tc.dialog.Dialog</classname>
to be sent across network.
- TCAP User Part also allows to
register<classname>org.mobicents.protocols.ss7.tcap.api.TCListener</classname>
to listen TCAP messages.
+ with the TCAPStack. TCAPProvider defines methods that will be used by
TCAP User Part to create new
+
<classname>org.mobicents.protocols.ss7.tcap.api.tc.dialog.Dialog</classname>
to be sent across the network.
+ TCAP User Part also allows to
register<classname>org.mobicents.protocols.ss7.tcap.api.TCListener</classname>
to listen for TCAP messages.
</para>
<para>
TCAPProvider also exposes
<classname>org.mobicents.protocols.ss7.tcap.api.DialogPrimitiveFactory</classname>
to create dialog primitives
and
<classname>org.mobicents.protocols.ss7.tcap.api.ComponentPrimitiveFactory</classname>
to create components.
- Components are a means of invoking an operation at a
remote node
+ Components are a means of invoking an operation at a
remote node.
</para>
<para>
- The UML Class Diagram looks like
+ The UML Class Diagram is depicted in the figure below:
</para>
@@ -52,8 +52,8 @@
</mediaobject>
<para>
- The
<classname>org.mobicents.protocols.ss7.tcap.TCAPStackImpl</classname> is
concrete implementation of <classname>TCAPStack</classname>.
- The TCAP User Part gets access to <classname>TCAPProvider</classname>
by doing JNDI lookup as explained in <xref
linkend="design_overview_ss7_service"/>
+ The
<classname>org.mobicents.protocols.ss7.tcap.TCAPStackImpl</classname> is a
concrete implementation of <classname>TCAPStack</classname>.
+ The TCAP User Part gets access to <classname>TCAPProvider</classname>
by doing JNDI lookup as explained in the <xref
linkend="design_overview_ss7_service"/>.
</para>
<programlisting
@@ -86,8 +86,8 @@
]]>
</programlisting>
- <para>The TCAP User Part leverages TCAPProvider to create new Dialog. The
component's between the nodes
- are exchanged within this Dialog
+ <para>TCAP User Part leverages <classname>TCAPProvider</classname> to
create a new Dialog. The components between the nodes
+ are exchanged within this Dialog.
</para>
<programlisting
@@ -100,30 +100,30 @@
</programlisting>
<para>
- The TCAP User Part leverages ComponentPrimitiveFactory to create new
components. These components are sent using the dialog
+ The TCAP User Part leverages
<classname>ComponentPrimitiveFactory</classname> to create new components.
These components are sent using the dialog.
</para>
<para>
- Common scenario of using TCAP stack is:
+ Below is a list of common scenarios using the TCAP stack :
</para>
<itemizedlist>
<listitem>
- <para><literal>Creating TCAP Dialog by TCAPProvider.getNewDialog() or
getNewUnstructuredDialog()</literal></para>
+ <para>Creating a TCAP Dialog by invoking the methods
<literal>TCAPProvider.getNewDialog()</literal> or
<literal>getNewUnstructuredDialog()</literal></para>
</listitem>
<listitem>
- <para><literal>adding components into a Dialog for sending by
Dialog.sendComponent();</literal></para>
+ <para>Adding components into a Dialog for sending by
<literal>Dialog.sendComponent();</literal></para>
</listitem>
<listitem>
- <para><literal>sending a TCAP message TC-UNI, TC-BEGIN, TC-CONTINUE,
TC-END or TC-ABORT via Dialog.send() methods</literal></para>
+ <para>Sending a TCAP message TC-UNI, TC-BEGIN, TC-CONTINUE, TC-END or
TC-ABORT via <literal>Dialog.send()</literal> methods.</para>
</listitem>
<listitem>
- <para><literal>waiting for responses of a
peer</literal></para>
+ <para>Waiting for responses from a peer</para>
</listitem>
<listitem>
- <para><literal>when TCAP stack receives a message from a peer events
like TCListener.onTCUni(), onTCBegin(), onTCContinue(), onTCEnd(),
onTCUserAbort(), onTCPAbort() will be invoked</literal></para>
+ <para>When the TCAP stack receives a message from a peer, events like
<literal>TCListener.onTCUni()</literal>, <literal>onTCBegin()</literal>,
<literal>onTCContinue()</literal>, <literal>onTCEnd()</literal>,
<literal>onTCUserAbort()</literal>, <literal>onTCPAbort()</literal> will be
invoked.</para>
</listitem>
<listitem>
- <para><literal>after an Invoke component is received a TCAP user should
process it and</literal></para>
+ <para>After an Invoke component is received, a TCAP-User should process
it and do one of the below:</para>
<itemizedlist>
<listitem>
<para>
@@ -137,7 +137,7 @@
</listitem>
<listitem>
<para>
- invoke Dialog.processInvokeWithoutAnswer() method if TCAP uses will
not answer to the Invoke
+ invoke Dialog.processInvokeWithoutAnswer() method if TCAP-Users
will not answer to the Invoke.
</para>
</listitem>
</itemizedlist>
@@ -163,7 +163,7 @@
<section>
<title>&THIS.PLATFORM; &THIS.APPLICATION; TCAP User Part
Example</title>
- <para>Below is TCAP User Part example. This example creates dialog and
exchanges messages withing structured dialog. Refer to source for function
calls:
+ <para>Below is a TCAP User Part example. This example creates a dialog
and exchanges messages within a structured dialog. Refer to source for
function calls.
</para>
<programlisting
language="Java"