Technical Helpweb

Dialogic® Distributed Signaling Interface (DSI) - Signaling and SS7 Products

Guide to Global Title Translation

This article concerns how Global Title Translation can be performed using the Dialogic® Distributed Signaling Interface (DSI) APIs.

What is Global Title Translation?

The SS7 SCCP protocol was added to extend the addressing capabilities of the MTP3 layer below it. One of the functions of SCCP is to allow addresses to be translated according to a table, and this is called Global Title Translation. A Global Title is a special number that you might give to a device (such as an SMSC)that will be the publicly known address of that unit. This means that an operator can allow access to its SMSC from outside its network (for example, to a competitor) without giving away vital topology information about its network.   This means that it is no longer necessary to tell outsiders that the SMSC is at a specific pointcode (such as 2-82-5), but the SMSC can be referred to by a 'virtual' number: the Global Title. Another use of Global Titles is to have two SMSCs (for load sharing and resilience) that share the same Global Title, but which exist at two different pointcodes.

A Global Title translator takes a set of address digits as input, and transforms these into an actual address, which could comprise address digits, pointcode information and a subsystem number. The Global Title translation might involve manipulating the address digits by inserting, extracting or appending digits, depending on what the final target element is expecting to see.

Defining a GT Translation

To define a Global Title Translation, an entry is added to the table maintained by the SCCP layer by sending the Add Translation message (SCP_MSG_GTT_ADD, 0x7745) to the SCCP layer (see the Dialogic® DSI SCCP Programmer’s Manual for details). This message has a minimum of two parameters: the target address (sometimes confusingly referred to as the 'gt') and the primary address. This defines the way that the incoming 'target' address is converted to the outgoing ‘primary’ address.

The optional 'backup' address gives a second output for the target address; the optional parameter 'gtt_mask' allows wildcard matching and digit manipulation as part of the lookup operation.

The relevant parameters in the Dialogic® Distributed Signaling Interface (DSI) API are:

   SCPPN_TARGET_ADDR (8)
   SCPPN_PRIMARY_ADDR (9)
   SCPPN_BACKUP_ADDR (0x0A)
   SCPPN_GTT_MASK (0x1C)

The addresses are coded according to Q.713, which defines not only the digits, but also other related information such as numbering plan, nature of address, pointcode (PC), and subsystem number (SSN). For details of the encoding scheme, refer to section 3.4 'Called Party Address' in the Q.713 specification, available from www.itu.int (Dialogic is not responsible for the content of external links).

Many Global Title translations are a simple mapping that add a pointcode (PC) and subsystem number (SSN) to the address digits. For this, only the target and primary parameters need to be defined.

Example

The target address is 123456, and this is to be translated to the same digits, but a PC of 511 and an SSN of 8 will be added as the Global Title translation.

The SCPPN_TARGET_ADDR parameter will look like this:

   08 07 10 00 12 03 21 43 65

Breaking this down:

   08 = SCPPN_TARGET_ADDR
   07 = length of data that follows
   10 00 12 03 21 43 65 = Q.713 style address.

The Q.713 address field breaks down like this:
  10 Address Indicator (AI) field
  00 Translation Type (TT)
  12 Numbering Plan (NP) = 1 (National) / Encoding Scheme (ES) = BCD, even number of digits
  03 Nature of Address (NoA)
  21 43 65 = even number of digits in BCD, '123456'

The SCPPN_PRIMARY_ADDR parameter also has a Q.713 address field, but this time the field includes the PC and SSN fields:

   09 0A 13 FF 01 08 00 12 03 21 43 65

Breaking this down:

  09 = SCPPN_PRIMARY_ADDR
  0A = length of data that follows
  13 FF 01 08 00 12 03 21 43 65 = Q.713 address

The address field breaks down like this:

   13 = Address Indicator field (extra bits are set to indicate PC and SSN present)
   FF 01 = PC (0x1FF = 511)
   08 = SSN (8 = MSC)
   00 = TT
   12 = NP/ES
   03 = NoA
   21 43 65 = digits in BCD '123456'

The two parameters are concatenated and a final 00 is added to terminate the parameter list:

   080710001203214365090A13FF010800120321436500

This is the parameter list that is added to the SCP_MSG_GTT_ADD message to complete the command.

Use this string to issue the command from a script (using s7_play):

  M-t7745-i0000-fef-d33-r8000-p080710001203214365090A13FF010800120321436500

't7745' is the message type (SCP_MSG_GTT_ADD), 'd33' directs the message to the SCCP layer, and the parameter field 'p807…' is the field built above, containing the target and primary addresses.


Testing Global Titles

The Dialogic® DSI SCCP API has a command SCP_MSG_GTT_TEST (774c) that allows us to test whether our Global Title translation table is producing the expected results. This has only one parameter, SCPPN_CALLED_ADDRESS (5), which is once again a Q.713 encoded address. When you issue a SCP_MSG_GTT_TEST, the number is processed via the current GT table (the number is the target address input) and if a match is found in the table it will be converted into a primary address.

To test this function with s7_play, switch on the SCCP tracing (by adding the command SCCP_TRACE 0x3 0x7 0x3 to the config.txt) so that you can see the response to your message.

Example

This example shows how to use s7_play to create and test a GT translation.

To program the SCCP layer with a new GT translation, we can use s7_play to play the 7745 command constructed above:

   M-t7745-i0000-fef-d33-r8000-p080710001203214365090A13FF010800120321436500

Assuming this is accepted by SCCP, we can now test the GT translation by playing a 774c command:

   M-t774c-i0000-fef-d33-r8000-p05071000120321436500

Where t774c = SCP_MSG_GTT_TEST, d33 sends the message to the SCCP module, and the parameter field p0507… is the
parameter field as follows:

   05 = SCPPN_CALLED_ADDRESS
   07 = length
   0001203214365 = address field in Q.713 format
   00 = end of parameter list

Looking at the address field in more detail:

   10 = Address Indicator
   00 = TT
   12 = NP/ES
   03 = NAI
   214365 = digits in BCD, = “123456”

If the parameters are specified correctly, when you issue this command (with s7_play) the result you see will be like this:

   M t374c i0000 f33 def s00 p050a13ff010800120321436500

Where t374c = response to SCP_MSG_GTT_TEST, def = message going to s7_log, and p050a… is the parameter field
of the result.

To look at the parameter field in more detail:

   05 = SCPPN_CALLED_ADDRESS
   0a = length 10
   13ff0108001203214365 = Q.713 address field
   00 = end of parameter list

Once again decoding the address field, using Q.713, we see:

   13 = AI (with bits set for PC/SSN present)
   ff01 = PC 0x1FF (511)
   08 = SSN 8 (MSC)
   00 = TT
   12 = NP/ES
   03 = NoA
   214365 = digits, “123456”

To summarize, we sent in the digits "12345" and this was translated to "12345" with an added PC of 511 and SSN of 8.

GT translations can also be used to translate number formats (for example: national to international), or changing the number digits as well. The GTT_MASK parameter (SCPPN_GTT_MASK) is sometimes useful for making modifications to numbers that follow some kind of pattern. For example, it is possible to add a standard prefix to all numbers, or replace certain digits within addresses.

Note that a Dialogic® Distributed Signaling Interface (DSI) Signaling Interface Unit (SIU) has table space for 256 GT translations, and the GTT_MASK can sometimes be used to create a small number of general rules, rather than a lot of separate table entries.






Feedback

Please rate the usefulness of this page:  
0 - not useful at all
1 - potentially useful
2 - quite useful
3 - very useful
4 - exactly the information I needed     

Please enter a comment about this page: