TSP Lab |
LUcollectorCSPS |
LUcollectorCSPS |
Location update statistics for CS and PS networks
Table of Contents
Features
- The aim of this software is to create 15-minute and daily statistics about 'Location Update' transactions on both CS and PS international signalling links.
- Different statistics files are generated for inbound and outbound roamers.
- Statistics are opened and closed based on the time of the first message of transactions.
- Each time stamp is in GMT format.
- The names of the statistical files contain the time of the beginning of the statistical period.
- Every statistics contain messages exactly within the period.
- Statistics are closed when the time is bigger than the end of the statistics period plus the transaction time out value.
- Message disorder is logged and this message is dropped. If the disorder of the messages does not occur during the day change it will be displayed in the daily statistics.
- Collected statistics are saved at module exit and can be reloaded at module start.
- For the GTP PDP activation statistics please see its relevant page: GTP PDP activation statistics
- Provide location related information for the Sga-DB (HAR) server through Sga-9006 files which are being forwarded by the Sga-LUcollector / Data Sender module
User interface

The main menu
Menu
| Menuitem
| Shortcut(s)
| Meaning
|
[Log] |
|
Find line containing... |
(Ctrl-F) |
Find text in log window |
|
Find next matching line |
(F3) |
Find next occurrence of text in log window |
|
Details |
|
Detail level of logging (Off, Normal, Detailed, or Debug) |
[Actions] |
|
Go on / Pause |
(Ctrl-P) |
Start or pause the processing of the 7199 files. |
|
Reload IMSI prefix names |
|
Reload the actual IMSI prefix file to memory. |
|
Reload operator prefix names |
|
Reload the actual Operator prefix file to memory. |
|
Reload INI / [HLR GTs] |
|
Reload the actual HLR GT list to memory. |
|
Flush counters into log |
|
Write the counters into the logfile. |
|
Flush & reset counters |
|
Write the counters into the logfile and reset them. |
[Options]
|
|
Auto scroll |
(Scroll Lock, or  ) |
Allow automatic scrolling of the log screen |
|
Save settings |
|
Save actual settings into the configuration (INI) file |
The bottom status-line
- Reading 7199.nnn - File read at the present. The 7199 files are coming from the AntiSpy system (sorter) which monitors all the interconnect links.
- Writing 9006.nnn - File write. The 9006 files contain location related data and are being sent to the Sga-DB (HAR) server by the Sga-LUcollector / Data Sender module.
- IPs - Received IP packets.
- MSUs - Received MSUs.
- decodeErr - Number of undecodeable MSUs.
- reTX{UL} - Number of retransmitted UpdateLocation MSUs.
- BEGIN/ULcs+ULps+CL+PU - Received CS + PS UpdateLocation + CancelLocation + Purge Invoke messages.
- wo/IMSI - UpdateLocations received without IMSI.
- END/ULcs+ULps - Received CS + PS UpdateLocation Result messages.
- unrelated - UpdateLocation_Res messages received without an invoke message.
- END/other - Number of Result messages received, without MAP / UpdateLocation content.
- related - Number of Result messages received for an UpdateLocation_Inv, without MAP / UpdateLocation content.
- ABORT - Number of TCAP / Abort messages received, without MAP / UpdateLocation content.
- related - Number of TCAP / Abort messages received for an UpdateLocation_Inv, without MAP / UpdateLocation content.
- Transactions
- active - Now active transaction count.
- overflow - Overflown transactions. Try to increase "dwTransactionMaxElemCount".
- reuse -
- complete - Complete transactions count.
- in - Complete transactions for inbound roamers.
- out - Complete transactions for outbound roamers.
- outsteered - Complete transactions from the steering system. GTs used by the steering should be listed in ini section "[HLR GTs]".
- timeout - Number of transactions that are longer than configured in "dwTransactionMaxDurationSec".
- Statistics|15min now - Refers to the current 15 minutes roaming statistics.
- inbound - 15 minute statistics for inbound roamers indexed by IMSI prefix.
- seen - Inbound UpdLoc transactions seen in this period.
- overflown - Number of inbound roamers that exceeded the limit configured in the "dwMaxKeyCount_Inbound" field.
- toolate - In the "toolate" case, the message that arrived is referring to a time period that has been already written to disk. Normally this should not be happened if so, the sorting pool may not be correctly configured.
- keys - Different IMSI prefixes seen in this period.
- outbound - 15 minute statistics for outbound roamers indexed by ClgPA GT number.
- seen - Outbound UpdLoc transactions seen in this period.
- overflown - Number of outbound roamers that exceeded the limit configured in the "dwMaxKeyCount_Outbound" field.
- toolate - In the "toolate" case, the message that arrived is referring to a time period that has been already written to disk. Normally this should not be happened if so, the sorting pool may not be correctly configured.
- keys - Different ClgPA GT numbers seen in this period.
- Statistics|daily now - Refers to daily roaming statistics.
- inbound - Daily statistics for inbound roamers indexed by IMSI prefix. For details, please see the "Statistics|15min now" field.
- outbound 1 - Daily statistics for outbound roamers indexed by ClgPA GT number. For details, please see the "Statistics|15min now" field.
- outbound 2 - Daily statistics for outbound roamers indexed by OpPrefName.
- seen - Outbound UpdLoc transactions seen in this period.
- overflown - Number of outbound roamers that exceeded the limit configured in the "dwMaxKeyCount_Outbound" field.
- toolate - In the "toolate" case, the message that arrived is referring to a time period that has been already written to disk. Normally this should not be happened if so, the sorting pool may not be correctly configured.
- keys - Different OpPrefNames seen in this period.
- IMSI4stat|15min now - 15 min statistics of subscribers who attached either only to CS or only to PS network.
- inbound - IMSI4stat for inbound roamers.
- stored - Number of inbound roamers per ClgPA GT stored in the memory.
- overflown - Number of inbound roamers that exceeded the limit configured in the "dwMaxIMSIcount_Inbound" field.
- outbound - IMSI4stat for outbound roamers.
- stored - Number of outbound roamers per ClgPA GT stored in the memory.
- overflown - Number of outbound roamers that exceeded the limit configured in the "dwMaxIMSIcount_Outbound" field.
- IMSI4stat|daily now - Daily statistics of subscribers who attached either only to CS or only to PS network.
- inbound - IMSI4stat for inbound roamers. For details please see the "IMSI4stat|15min now" field.
- outbound 1 - IMSI4stat for outbound roamers per ClgPA GT. For details please see the "IMSI4stat|15min now" field.
- outbound 2 - IMSI4stat for outbound roamers per OpPrefName.
- stored - Number of outbound roamers per OpPrefName stored in the memory.
- overflown - Number of outbound roamers that exceeded the limit configured in the "dwMaxIMSIcount_Outbound" field.
- Uptime - Time elapsed since module restart.
Input Files
Input lists are applied at the start of the module and can be reloaded via menu items from the [Actions] menu. (IMSIPref.cfg, OpPref.cfg)
In case of unsuccessful read of any input files the module logs which line contains the problem and continues its working without loading the input file.
IMSI prefix list (IMSIPref.cfg)
This file contains the list of IMSI prefixes and the assigned names.
Some example entries of IMSIPref.cfg:
26203 GERMANY-E-PLUS
26207 GERMANY-O2
26208 GERMANY-O2
26201 GERMANY-T-MOBILE
26202 GERMANY-VODAFONE
Operator list (OpPref.cfg)
This list contains the operator prefixes and the assigned operator names.
Some example entries of OpPref.cfg:
49157 GERMANY-E-PLUS
49177 GERMANY-E-PLUS
49176 GERMANY-O2
49151 GERMANY-T-MOBILE
49160 GERMANY-T-MOBILE
49170 GERMANY-T-MOBILE
49171 GERMANY-T-MOBILE
49175 GERMANY-T-MOBILE
49172 GERMANY-VODAFONE
EC values for inbound and outbound cases
These lists define the EC values which are appended to the statistics entries of the daily statistics files.
Different values are defined for inbound and outbound cases.
When the IMSI is not 21630*, then the inbound list is used, otherwise the outbound one is applied.
The IMSIPrefName (inbount case) and the OpPrefName (outbound case) are used for selecting the proper EC values from the lists.
If the 'Name' is not found in the corresponding list then the "*** default ***" entry is applied.
The EC lists related INI entries:
- [Statistics]/sEC1EC2EC3file_Inbound=Sga-LUcollectorCSPS_E1E2E3_inbound.ini:
- Path and file name for the inbound EC list file
- [Statistics]/sEC1EC2EC3section_Inbound=E1E2E3 inbound:
- Defines the section name for the inbound EC list within the sEC1EC2EC3file_Inbound file
- [Statistics]/sEC1EC2EC3file_Outbound=Sga-LUcollectorCSPS_E1E2E3_outbound.ini:
- Path and file name for the outbound EC list file
- [Statistics]/sEC1EC2EC3section_Outbound=E1E2E3 outbound:
- Defines the section name for the outbound EC list within the sEC1EC2EC3file_Outbound file
Some example entries of Sga-LUcollectorCSPS_E1E2E3_inbound.ini:
Note: The first character must be a comma so that the statistics file structure remains consistent.
[E1E2E3 inbound]
GAMBIA-AFRICELL = ,95,9,any text
*** default *** = ,80,6,text2
UKRAINE-KYIVSTAR = ,75,7,text3
Some example entries of Sga-LUcollectorCSPS_E1E2E3_outbound.ini:
[E1E2E3 outbound]
GAMBIA-AFRICELL = ,90,9,any text
*** default *** = ,88,6,textA
UKRAINE-KYIVSTAR = ,82,7,textB
Output Files
15-minute statistics
Statistics files contain comma separated values and are saved in CSV files in every quarter hour.
The file names of the 15-minute statistics are the following:
Inbound_CSPS_YYYYMMDD_hhmm.csv
Outbound_CSPS_YYYYMMDD_hhmm.csv
Date and time indicate the beginning of the statistics period.
The structure of 15-minute statistics files are the following:
Inbound_CSPS:
15-minute statistics of inbound roamers grouped by IMSIPrefCode.
IMSIPrefCode, IMSIPrefName, LU, LUOK, Per, IMSIOK, LUGPRS, LUOKGPRS, PerGPRS, IMSIOKGPRS
20210, Greece-Wind, 1, 0, 0, 0, 1, 1, 100, 1
26201, Germany-Telekom, 2, 2, 100, 2, 2, 1, 50, 1
26202, Germany-Vodafone, 4, 1, 25, 1, 0, 0, , 0
Fields of 15-minute statistics file for inbound roamers:
- IMSIPrefCode: IMSIPrefCode value from the 1st column of the IMSIPref.cfg file based on IMSI of the transaction.
- IMSIPrefName: IMSIPrefName value from the 2nd column of the IMSIPref.cfg file.
- LU: Number of CS location updates.
- LUOK: Number of successful CS location updates.
- Per: Percent of successful CS location updates.
- IMSIOK: Number of different IMSIs in CS location updates.
- LUGPRS: Number of PS location updates.
- LUOKGPRS: Number of successful PS location updates.
- PerGPRS: Percent of successful PS location updates.
- IMSIOKGPRS: Number of different IMSIs in PS location updates.
Outbound_CSPS:
15-minute statistics of Oubound roamers grouped by SCCP/ClgPa GT.
GT, OpPrefName, LU, LUOK, Per, IMSIOK, LUGPRS, LUOKGPRS, PerGPRS, IMSIOKGPRS
306912345678, Greece-Wind, 1, 0, 0, 0, 1, 1, 100, 1
491612345678, Germany-Telekom, 2, 2, 100, 2, 2, 1, 50, 1
491712345678, Germany-Vodafone, 4, 1, 25, 1, 0, 0, , 0
Fields of 15-minute statistics file for outbound roamers:
- GT: The SCCP/ClgPa GT address of the location update message.
- OpPrefName: OpPrefName value from the 2nd column of the OpPref.cfg file.
- LU: Number of CS location updates.
- LUOK: Number of successful CS location updates.
- Per: Percent of successful CS location updates.
- IMSIOK: Number of different IMSIs in CS location updates.
- LUGPRS: Number of PS location updates.
- LUOKGPRS: Number of successful PS location updates.
- PerGPRS: Percent of successful PS location updates.
- IMSIOKGPRS: Number of different IMSIs in PS location updates.
When an IMSI or an Operator prefix cannot be found in the corresponding list then the IMSIPrefName
or the OpPrefName field would be "<*_NotRecognized_*>" and this case is logged.
Daily statistics
Statistics files contain comma separated values and are saved into CSV files in every day.
The file names of the daily statistics are the following:
Inbound_CSPS_Day_YYYYMMDD_hhmm.csv
Outbound_CSPS_GT_Day_YYYYMMDD_hhmm.csv
Outbound_CSPS_Day_YYYYMMDD_hhmm.csv
Inbound_CSxorPS_DailyIMSIlist_YYYMMDD.csv
Outbound_CSxorPS_DailyIMSIlist_YYYMMDD.csv
Date indicates the beginning of the statistics period.
The structure of daily statistics files are the following:
Inbound_CSPS_Day:
Daily statistics of inbound roamers grouped by IMSIPrefName.
IMSIPrefName, LU, LUOK, Per, IMSIOK, LUGPRS, LUOKGPRS, PerGPRS, IMSIOKGPRS, EC1, EC2, EC3
Greece-Wind, 1, 0, 0, 0, 1, 1, 100, 1, 45, 45, 45
Germany-Telekom, 2, 2, 100, 2, 2, 1, 50, 1, 45, 45, 45
Germany-Vodafone, 4, 1, 25, 1, 0, 0, , 0, 45, 45, 45
Fields of the daily statistics file for inbound roamers:
- IMSIPrefName: IMSIPrefName value from the 2nd column of the IMSIPref.cfg file.
- LU: Number of CS location updates.
- LUOK: Number of successful CS location updates.
- Per: Percent of successful CS location updates.
- IMSIOK: Number of different IMSIs in CS location updates.
- LUGPRS: Number of PS location updates.
- LUOKGPRS: Number of successful PS location updates.
- PerGPRS: Percent of successful PS location updates.
- IMSIOKGPRS: Number of different IMSIs in PS location updates.
- EC1, EC2, EC3: These values are from EC lists. When the IMSI is not 21630* then the inbound list is used, otherwise the outbound one is applied.
When an IMSI or an Operator prefix cannot be found in the corresponding list then the IMSIPrefName
or the OpPrefName field would be "<*_NotRecognized_*>" and this case is logged.
Outbound_CSPS_Day:
Daily statistics of inbound roamers grouped by OpPrefName.
OpPrefName, LU, LUOK, Per, IMSIOK, LUGPRS, LUOKGPRS, PerGPRS, IMSIOKGPRS, EC1, EC2, EC3
Greece-Wind, 1, 0, 0, 0, 1, 1, 100, 1 45, 45, 45
Germany-Telekom, 2, 2, 100, 2, 2, 1, 50, 1 45, 45, 45
Germany-Vodafone, 4, 1, 25, 1, 0, 0, , 0 45, 45, 45
Fields of the daily statistics file no1 for outbound roamers:
- OpPrefName: OpPrefName value from the 2nd column of the OpPref.cfg file.
- LU: Number of CS location updates.
- LUOK: Number of successful CS location updates.
- Per: Percent of successful CS location updates.
- IMSIOK: Number of different IMSIs in CS location updates.
- LUGPRS: Number of PS location updates.
- LUOKGPRS: Number of successful PS location updates.
- PerGPRS: Percent of successful PS location updates.
- IMSIOKGPRS: Number of different IMSIs in PS location updates.
- EC1, EC2, EC3: These values are from EC lists. When the IMSI is not 21630* then the inbound list is used, otherwise the outbound one is applied.
When an IMSI or an Operator prefix cannot be found in the corresponding list then the IMSIPrefName
or the OpPrefName field would be "<*_NotRecognized_*>" and this case is logged.
Outbound_CSPS_GT_Day:
Daily statistics of inbound roamers grouped by SCCP/ClgPa GT.
GT, OpPrefName, LU, LUOK, Per, IMSIOK, LUGPRS, LUOKGPRS, PerGPRS, IMSIOKGPRS, EC1, EC2, EC3
306912345678, Greece-Wind, 1, 0, 0, 0, 1, 1, 100, 1 45, 45, 45
491612345678, Germany-Telekom, 2, 2, 100, 2, 2, 1, 50, 1 45, 45, 45
491712345678, Germany-Vodafone, 4, 1, 25, 1, 0, 0, , 0 45, 45, 45
Fields of the daily statistics file no2 for outbound roamers:
- GT: The SCCP/ClgPa GT address of the location update message.
- OpPrefName: OpPrefName value from the 2nd column of the OpPref.cfg file.
- LU: Number of CS location updates.
- LUOK: Number of successful CS location updates.
- Per: Percent of successful CS location updates.
- IMSIOK: Number of different IMSIs in CS location updates.
- LUGPRS: Number of PS location updates.
- LUOKGPRS: Number of successful PS location updates.
- PerGPRS: Percent of successful PS location updates.
- IMSIOKGPRS: Number of different IMSIs in PS location updates.
- EC1, EC2, EC3: These values are from EC lists. When the IMSI is not 21630* then the inbound list is used, otherwise the outbound one is applied.
When an IMSI or an Operator prefix cannot be found in the corresponding list then the IMSIPrefName
or the OpPrefName field would be "<*_NotRecognized_*>" and this case is logged.
Inbound_CSxorPS_DailyIMSIlist: A list of the inbound subscribers who attached only to CS or to PS network.
Outbound_CSxorPS_DailyIMSIlist: A list of the outbound subscribers who attached only to CS or to PS network.
Date, IMSI, Operator, Only-...
2015.01.01, 216991234567890 Greece-Wind, CS,
2015.01.01, 226991234567891 Germany-Telekom, CS,
2015.01.01, 236991234567890 Germany-Vodafone, PS,
Fields of the daily statistics file no2 for outbound roamers:
- Date: Date of the entry.
- IMSI: IMSI of the subscriber.
- Operator: Current operator of the subscriber.
- Only-...: The network type to which the user attached to.
When an IMSI or an Operator prefix cannot be found in the corresponding list then the IMSIPrefName
or the OpPrefName field would be "<*_NotRecognized_*>" and this case is logged.
Logging
The module creates daily logfiles about its working. The name of the logfile is "Modulename_YYYYMMDD.log"
reflecting the day when it is created.
The module can write information into the logfile and onto the screen with several detail levels
set by the [Log]/Details menu item. The logging level can be:
- Off (0) - warnings/errors are only reported (minimal logfile size and CPU usage)
- Normal (1) - information about normal operation are also written into the logfile/screen
- Detailed (2) - every received and sent signaling messages are logged
- Debug (3) - hexadecimal information of messages is recorded (largest logfile and CPU usage)
Status line counters are logged in every fifteen minutes irrespectively of logging level actually set.
The different colors of log entries have different meanings:
Code |
Color |
Usage |
0 |
Black |
Compact data record |
1 |
Red |
Errors |
2 |
Green |
Open/close output file/stream |
3 |
Blue |
Open/close input file/stream |
4 |
Yellow |
Warnings |
5 |
Light Gray |
Detailed data (debug info) |
6 |
Dark Grey |
Detailed data (user info) |
7 |
Purple |
Operator intervention; Errors with emphasis |
Configuration (Sga-LUcollectorCSPS.ini) file settings
Section |
Entry |
Example |
Meaning |
[Position] |
|
iLeft |
140 |
Position of the program module on the display screen |
|
iTop |
72 |
Position of the program module on the display screen |
|
iWidth |
995 |
Position of the program module on the display screen |
|
iHeight |
694 |
Position of the program module on the display screen |
[Options] |
|
bAutoScroll |
True |
(Refer to the corresponding menu item!) |
[HLR GTs] |
|
36909876543 |
HLR1_GT |
GT number of the HLRs. Right side is mandatory but ignored. |
[Statistics] |
|
dwMaxKeyCount_Inbound |
2000 |
Maximum keys saved in memory for inbound roamers. The keys have different meaning based on the statistic type. Please check the bottom status line for more information. |
|
dwMaxKeyCount_Outbound |
3000 |
Maximum keys saved in memory for outbound roamers. The keys have different meaning based on the statistic type. Please check the bottom status line for more information. |
|
dwMaxIMSIcount_Inbound |
200000 |
Maximum IMSIs saved in memory for inbound roamers. |
|
dwMaxIMSIcount_Outbound |
300000 |
Maximum IMSIs saved in memory for outbound roamers. |
|
sOutputPath |
d:\StatFiles |
Path of the statistic files. |
|
sDailyIMSIlistPath |
d:\StatFiles |
Path of the daily IMSI list file. |
|
sEC1EC2EC3file_Inbound |
.\Sga-LUcollectorCSPS_E1E2E3_inbound.ini |
Path and file name for inbound EC list file. The file referred here can either be a separate file or can point to any existing file, even to the main module's ini. Loaded on-the-fly, i.e., when daily statistics are written. |
|
sEC1EC2EC3section_Inbound |
E1E2E3 inbound |
Defines the section name for inbound EC list within the EC1EC2EC3file_Inbound file. Loaded on-the-fly, i.e., when daily statistics are written. |
|
sEC1EC2EC3file_Outbound |
.\Sga-LUcollectorCSPS_E1E2E3_outbound.ini |
Path and file name for outbound EC list file. The file referred here can either be a separate file or can point to any existing file, even to the main module's ini. Loaded on-the-fly, i.e., when daily statistics are written. |
|
sEC1EC2EC3section_Outbound |
E1E2E3 outbound |
Defines the section name for outbound EC list within the EC1EC2EC3file_Outbound file. Loaded on-the-fly, i.e., when daily statistics are written. |
[Advanced] |
|
wLogDetailLevel |
3 |
(Equals to the listed order; refer to the corresponding menu item!) |
|
dwMaxLinesInLogWindow |
1000 |
Number of lines in the log window on screen. |
|
wMaxCPUUsagePercent |
90 |
Maximum CPU usage in percent. |
|
dwTransactionMaxElemCount |
3000 |
Number of maximum active transactions at the same time. |
|
dwTransactionMaxDurationSec |
15 |
Maximum time period for an UpdLoc transaction in seconds. After this time the transaction will force-close with TimedOut reason. |
|
sIMSIPrefFile |
IMSIPref.cfg |
Path and file name for the IMSI prefix file. |
|
sOpPrefFile |
OpPref.cfg |
Path and file name for the operator prefix file. |
|
sLogFilesPath |
d:\LogFiles |
Path of the LOG files. |
|
sLUdataFilesPath |
d:\DataFiles |
Path of the "CDR" files for debug purposes. |
|
sOutput9006FilesPath |
d:\Data9006Files |
Path of the "Sga-9006" files containing location related data. |
Version history
v0.91
- (n) Optional output containing location related data to be sent to the Sga-DB (HAR) server.
- (n) INI/[Advanced]/sOutput9006FilesPath
v0.90
- The very first release