I'm afraid that this is probably a RTFM question but I've really tried to find the answer in the docs and previous forum posts.
How to configure Global Title routing in config.txt? I have a setup which connects to a signalling gateway with M3UA. The M3UA layer establish fine and I start mtr to respond to the requests.
I configured according to the M3UA example in MTU-MTR document, only changed to my point codes. As I understand it will route everything for the given function to mtr then.
However, when I try to do a mo-forwardSM request I get the following output (complete from the start):
S7_MGT Boot completeS7L:I0000 M t02e2 i0000 fd2 def s02S7L:I0000 M t02d6 i0000 fd2 def s00S7L:I0000 M t02f0 i0000 fd2 def s00 p0000000100040000000000011122334400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000S7L:I0000 M t02dc i0000 fd2 def s00 p00000000S7L:I0000 M t02e0 i0000 fd2 def s00 p0002S7L:I0000 M t02f0 i0000 fd2 def s00 p0000000100030000000000011122334400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000S7L:I0000 T 0000083c M t8f01 i0000 fd2 d33 s00 p8379c401d10980030e190b12080011046998390024020b12080011046998390044007462724804d500005f6b1e281c060700118605010101a011600f80020780a1090607040000010015036c80a14602010102012e303e8407916998390024f28207916998789989f6042011470b914565363654f80000a71466327b3d27abcd73f67a4e569bc973f65a0d040824021204100015f10000S7L:I0000 T 0000083c M t0761 i0000 f33 def s01 p0000000008S7L:I0000 SCCP Maintenance event : SCPEV_RTF_TTYPES7L:I0000 T 0000083c M tcf00 i0003 f33 d22 s00 p8307441e010a00030e120b120800110469983900440004437904007462724804d500005f6b1e281c060700118605010101a011600f80020780a1090607040000010015036c80a14602010102012e303e8407916998390024f28207916998789989f6042011470b914565363654f80000a71466327b3d27abcd73f67a4e569bc973f65a0d040824021204100015f10000S7L:I0000 M t02ef i0000 fd2 def s00 p250000000000000407
Searching the forum indicates that I should add Global Title Translation but I can't figure out how to do that. I've tried to use the example file and other examples found here in the forum but no luck. My pc is 1145, the remote pc of the STP is 1031 (and 1030 but that is not added yet)
I've attached my current config.txt and system.txt A pcap trace of the request which shows the global titles can be found at http://www.abrahamsson.com/dialogic-mo-forwardSM.pcap
It didn't work to attach files so please find config.txt and system.txt on the url's below:
After extensive trial'n'error I've been able to make a small step forward. I've set up two new lab virtual machines. At first I tried to configure them to use m2pa but couldn't get that to work no matter what. I then switched to use m3ua instead and that worked fine using the original point codes 1&2 from the example to send between mtu and mtr. When I changed to my pointcodes I couldn't get it to work until I found this post: http://www.dialogic.com/den/forums/p/5145/19967.aspx which describes how to format -a and -g parameters.
So now I'm back to the original question, I believe I need to set up Global Title Translation to get that to work but I haven't been able to find much examples on that which really explains what parameters to set and why. Do you have any examples or a forum post like the one linked to above which explains how to calculate and set the parameters?
I've been able to figure out the parameters now but not completely how to use them. Since there has been others asking the same kind of questions, and it's not so easy to find the answers in the extensive material, I thought I'll share my findings so far (and ask some additional questions).
First step was to understand how to format the addresses. That is described in section 3.4 of Q.713 and also on this page: http://www.dialogic.com/support/helpweb/signaling/iw1414.aspx. In my case I have a GT 96899300422 which translates to 1208001104699839002402 where each field means this:
12 Address Indicator (can be analyzed further but in short means route on GT, the format of the GT, that SSN is present and pointcode is not)
08 Subsystem number: MSC 8
00 Translation type
1 Numbering plan (E.164)
1 Encoding scheme: BCD, odd number of digits
04 Nature of address indication: International number
699839002402 The address, BCD encoded. In short, a tailing zero is added to make the number of digits even and then each pair is swapped.
With that figured out it was easier to use mtu to send requests and view the results with wireshark. Next step was to configure GTT in config.txt, which is done with the parameters SCCP_GTT_PATTERN, SCCP_GTT_ADDRESS and SCCP_GTT. The command syntax is described in SS7HD programmers manual.
SCCP_GTT_PATTERN specifies what is matched against my incoming request and has the following syntax: SCCP_GTT_PATTERN <pattern_id> <addr_indicator> <pc> <ssn> <global_title> [<gtai_pattern>]
<pattern_id> is just a number that identifies the pattern
<addr_indicator> matches the address indicator in the address above.
<pc> the point code, ignored if bit 0 in address indicator is not set
<ssn> the subsystem number, ignored if bit 1 in address indicator is not set
<global_title> this was a bit tricky as it should be set to the first part of GT part of the address, i.e. the part that contains translation type, numbering plan, encoding scheme and nature of address indication. 0x001104 means TT:0,NPI-ES:1-1,NAI:4
<gtai_pattern> is the part that matches my address digits, wildcards can be used and / can be used to split the matching into sections (which is used in combination with SCCP_GTT_ADDRESS and SCCP_GTT)
SCCP_GTT_ADDRESS specifies the destination, i.e. what the GT should be translated to if pattern matches. Syntax is SCCP_GTT_ADDRESS <address_id> <addr_indicator> <pc> <ssn> <global_title> [<gtai_replacement>]. The fields are like above, the only addition is the gtai_replacement which matches against gtai_pattern
SCCP_GTT is the command that connects SCCP_GTT_PATTERN and SCCP_GTT_ADDRESS together. Syntax: SCCP_GTT <pattern_id> <mask> <primary_address_id> [<backup_address_id>]
<pattern_id> matches a SCCP_GTT_PATTERN
<mask> describes how the gtai_pattern connects to gtai_replacement
<primary_address_id>, <backup_address_id> refers to the id's specified by SCCP_GTT_ADDRESS
So in my case, I set the following:
SCCP_GTT_PATTERN 1 0x12 0x0000 8 0x001104 96899300422
SCCP_GTT_ADDRESS 1 0x13 1145 8 0x001104 0
SCCP_GTT 1 K 1
I haven't completely understood how the mask and replacements work but since I specify K (=Keep) as mask on the whole number then no replacement is done. I.e. what the above section does is to add my point code (1145) to the address and hence set bit 0 in the address indicator. Without that the stack didn't understand that it should receive these messages, which seem logical.
Let me try and offer you some additional assistance.
There are a number of documents that can offer you some assistance here:
The SIGTRAN programmer's manual does not cover the configuration of GTTs within the config.txt file at present. However, if you refer to the SS7MD programmer's manual and look up the SCCP_GTT configuration entries, then additional documentation on their use can be found there. You may also wish to refer to both Q.713 and the SCCP Programmer's manual, which I believe that you mentioned in your post.
I believe that your only outstanding question is around the use of the masks that can be specified in the config.txt file. Let me add some additional information around this.
Previously our GTTs required a digit to digit match which meant that often multiple GTTs were needed to capture every scenario for different digit lengths. The newer system uses a system of sections to help perform wildcard translations, allowing a single GTT to cover also possible digit lengths.
Lets take the following example where we want to take any number that starts with the prefix 44 and change that to prefix of 66, but leave any remaining numbers in place. To do this we split the pattern up into two sections, that of the prefix we want to change and the remaining number, using the "/" as a seperator. so for example your SCCP_GTT_PATTERN command might look like this:
SCCP_GTT_PATTERN 1 0x12 0x0000 8 0x001104 44/+
The + symbol means that this is a wildcard section with any number of digits in it. This means that we will use this pattern for any number which has a prefix of 44.
The gtai_replacement field in the GTT_ADDRESS command is the same, but this allows us to specifiy the digits we want to replace or add. So in this case, we put in the new prefix we want so:
SCCP_GTT_ADDRESS 1 0x13 1145 8 0x001104 66/+
Finally we now need to tie these two together (the pattern and the address commands), using the SCC_GTT command. So in this case, we want to pull together the two entries above and set the appropriate mask. So this would be:
SCCP_GTT 1 R / K 1
This perform the match in pattern 1 and when it finds that match, it performs the translation based on the mask in the SCCP_GTT command and making any substitutions to the digits, using those in the SCCP_GTT_ADDRESS, where appropriate.
I hope that helps, but if you do have any specific questions on this, then please let me know.
With Kind Regards
I think your explanation is clear. I just have one small question on the configuration, in the example file it's used '-', like SCCP_GTT 5 R-/K 9. As I understand from the desctiption - padding (ignored) the '-' doesn't do anything but is just a placeholder for pretty printing?
That's correct, the "-" is purely for padding and is ignored. It is not used in any way as part of the GTT.configuration but can be used to make your configuration more readable if desired.
I don't have a ss7md card right now, but we've orderd the board, which we will get shortly.
I had developed a MAP application with ATI and SRI.
Can we add the GTT and test the application? How can we achieve this?
I've tried the example, using s7_play: Here are the results
S7L:I0000 M t3745 i0000 f33 def s06 p080a10001203198967452301090b130200080012034302000800
S7L:I0000 M t374c i0000 f33 def s06 p050f1000120319896745230100
I can't test my application as it gives the following error.
S7L:I0000 SCCP Maintenance event : SCPEV_RTF_NET_FAIL
can anyone help?
If you closely at the response messages for both of your messages, you can see that the status field is set to 06, indicating an invalid parameter in the message it received.
Could I please ask you to confirm what you are expecting to occur with this translation. Are you trying to match a full set of digits and insert a point code? Are any changes made to the digits themselves? If you can clarify your requirements and show me the full trace showing what your application is sending down the stack (an SCCP trace showing the message passed from TCAP to SCCP should be sufficient), then I should be able to help you come up with an appropriate GTT configuration message.
Thank you for the quick response.
The MTR doesn't have any GT, it only has the pointcode value 2.
Yes, I think its afull set of digits.
can you please check the log the bold part? it is from TCAP to SCCP:
S7L:I0000 T 0000014c M tc7e2 i0000 f2d d15 s00 p01010d13000206001204192984004148030d130001080012041989674523010b09060704000001001d0300S7L:I0000 T 0000014c M tc7e0 i0000 f2d d15 s00 p1d0e01013501010f07911929840041483307911989674523012d02280000S7L:I0000 T 0000014c M tc781 i0000 f15 d14 s00 p08030101040200280122a1200201010201473018a009810791192984004148a102800083079119896745230100S7L:I0000 T 0000014c M tc781 i0000 f15 d14 s00 p08030101040200280122a1200201010201473018a009810791192984004148a102800083079119896745230100S7L:I0000 T 0000014c M tc7e2 i0000 f2d d15 s00 p0500S7L:I0000 T 0000014c M tc783 i0000 f15 d14 s00 p02060102070d13000206001204192984004148080d130001080012041989674523010d0ba109060704000001001d0300S7L:I0000 T 0000014c M tc783 i0000 f15 d14 s00 p02060102070d13000206001204192984004148080d130001080012041989674523010d0ba109060704000001001d0300S7L:I0000 T 0000014c M tc740 i0000 f14 d33 s00 p01010100020100030102050d13000206001204192984004148040d13000108001204198967452301064862464804000200006b1a2818060700118605010101a00d600ba109060704000001001d036c22a1200201010201473018a009810791192984004148a102800083079119896745230100S7L:I0000 T 0000014c M tc740 i0000 f14 d33 s00 p01010100020100030102050d13000206001204192984004148040d13000108001204198967452301064862464804000200006b1a2818060700118605010101a00d600ba109060704000001001d036c22a1200201010201473018a009810791192984004148a102800083079119896745230100S7L:I0000 T 0000014c M t0761 i0000 f33 def s03 p0500020006S7L:I0000 SCCP Maintenance event : SCPEV_RTF_NET_FAILS7L:I0000 T 000002dc M t8782 i0000 f14 d15 s00 p0c05010102010100S7L:I0000 T 000002dc M t8782 i0000 f14 d15 s00 p0c05010102010100S7L:I0000 T 000002dc M t87e3 i0000 f15 d2d s00 p8205010000S7L:I0000 T 000002dc M t87e1 i0000 f15 d2d s00 p980e010116010800S7L:I0000 T 000002dc M tc7e2 i0000 f2d d15 s00 p0708010000S7L:I0000 T 000002dc M tc783 i0000 f15 d14 s00 p050601020a01020e11280f060704000001010101a004a402800000S7L:I0000 T 000002dc M tc783 i0000 f15 d14 s00 p050601020a01020e11280f060704000001010101a004a402800000
I had posted the logs, can you check what is wrong with the parameters or values
Thanks in Advance
I would like to apply your expert opinions about achieving 2 GT Translations below ,
SCCP_GTT_PATTERN 1 0x12 0x0000 0x06 0x001204 12345/+
SCCP_GTT_ADDRESS 1 0x13 0x3100 0x06 0x001204 12345/
SCCP_GTT 1 K/K 1
The target address is 12345XXXXXXX, and this is to be translated to the same digits, but a PC of 0x3100 will be added as the Global Title translation. 12345XXXXXXX is any international number starts with let's say 123 country code , 45 is operator code and rest is the subscriber number.
SCCP_GTT_PATTERN 1 0x12 0x0000 0x06 0x001204 +
SCCP_GTT_ADDRESS 1 0x13 0x3100 0x06 0x001204 +
SCCP_GTT 1 K 1
The target address is XXXYYZZZZZZZ, and this is to be translated to the same digits, but a PC of 0x3100 will be added as the Global Title translation. XXXYYZZZZZZZ is any international number starts with let's say XXX country, YY is operator code and ZZZZZZZ subscriber number.
Could you please kindly confirm or correct translation rules above?
SCCP_GTT_PATTERN 1 0x12 0x0000 0x06 0x001204 12/+
SCCP_GTT_ADDRESS 1 0x13 0x3100 0x06 0x001204 12-/-
SCCP_GTT 1 R-/K 1
Thanks a lot special_ny for assistance, you uncovered secrets of dialogic gt translation for us :)
Hi Sverker, Can you pls help me to configure GTT translation in config.txt file, as i am configurinf it but its failing.
Now my PC+SSN is working fine when i am testing with MTU and MTR but failing with GTT.
Can you help me to configure GTT so that i can test with MTU and MTR.