Introduction
G-NetReport is an Android app for unattended measurements of wireless network. The app measures the serving and neighbor cells parameters and does ping, upload/download, voice call and SMS tests. The measurements are buffered, sent online and recorded in a database. The app is remotely controllable via SMS and over internet. It allows building cost efficient measurement fleet of phones that send measurements in real time to your database where you can do a postprocessing and visualization in order to monitor network quality.
How to use: G-NetReport is very easy to use. Just start the app and it starts to measure, collect and send measurement samples to online database.
G-NetReport features:
• Supported technologies: NR, LTE/UMTS/GSM/CDMA/EVDO
• Logs mobile network measurements and events
• Sends log data to online database
• Test sequence including:
– Data test (Ping, Upload, Download)
– Voice calls
– SMS
• Auto indoor mode for measurements in tunnels and areas with bad GPS coverage
• SMS/Internet controllable
Here is a video demonstration of G-NetReport
Explore measurements here: http://www.gyokovsolutions.com/G-NetLook
Download sample database records here: http://www.gyokovsolutions.com/downloads/G-NetReport/gnetreport_samples.xlsx
App installation
Make sure the following things are done in order app to work properly:
- On app start you will be asked to allow needed app permission. Allow all of them in order app to work properly. You can check app permissions from Menu – App permissions
- Make sure that app is allowed to work in background. In your phone battery optimization settings check if app won’t be closed when in background.
- Make sure in phone settings that the high accuracy location using GPS is allowed
Measurements
Measurement availability depends on the phone. Check here – http://www.gyokovsolutions.com/survey/surveyresults.php
For serving cell the following parameters are measured:
– 2G – RXLEVEL, RXQUAL, CELLID, LAC
– 3G – RSCP, ECNO, CELLID, PSC, RNC, LAC
– 4G – RSRP, RSRQ, SNR, eNodeBID, CELLID, PCI
– 5G – RSRP, RSRQ, SNR, gNodeBID, CELLID, PCI
For neighbor cells the following parameters are measured:
– 2G – RXLEVEL, CELLID, LAC
– 3G – RSCP, ECNO, PSC
– 4G – RSRP, RSRQ, PCI
– 5G – RSRP, RSRQ, PCI
Settings
Reporting – turns reporting to online database on/off
Test – activates test sequence. Test sequence can include data, voice call and SMS tests.
TEST SEQUENCE
The app is capable of performing repetitive test sequence which includes ping, data upload/download voice calls and SMS.
- Ping – include PING in test sequence
- Ping URL – the URL for ping test. The format is like www.xxxxxxxxxxxxxx.com or 10.100.1.101
- Upload – include UPLOAD in data sequence
- Upload URL – the URL for upload test. The format should start with http:// and is like
http://www.xxxxxxxxxxx.com. - Upload time, s – time for upload in seconds.
- Download – include DOWNLOAD in data sequence
- Download URL – the URL for ping test. The format should start with http:// and is like http://www.xxxxxxxxxxx.com/downloadedfile.mp3. It is recommended to set bigger file which can not be downloaded fully for download time in order to achieve bigger download speed.
- Download time, s – time for download in seconds.
- Multithread – when checked multiple simultaneous connections will be used for upload and download in Data Test and Data Sequence. Using several threads increases the bitrates.
- Number of threads – the number of threads to be used ([Multithread] should be checked). Set number of simultaneous threads more than 1 and less or equal to number of phone CPU.
- Voice call – use voice call in test sequence
- Called Number – the number to be dialed. You can enter several numbers (“,” comma separated) that will be called sequentially.
- Number of Calls – number of calls to be made
- Call Duration – duration of a single call
- Pause Between Calls – pause between the calls
- Start calls only on – allows starting of calls only on specific technology (2G, 3G, 4G) – useful for example when you want to test 3G coverage only. If the call has been handovered to 2G the sequence will wait until 3G is reselected again and then will continue
- Make calls in background – make voice calls while app is in background. Works only on some phones.
- SMS test – use SMS test in test sequence
- Number of SMS – numbers of SMS that are sent
- SMS recipient – MSISDN of recipient to whom the SMSs are sent
- SMS text – text of SMS message
- Pause between SMS – pause (seconds) between SMS messages
- Test pause – pause at the end of test sequence
- Detailed log during data sequence – when allowed then measurement samples will be collected every second while data test is running
MOVEMENT FEATURE
- Enable movement feature – enables feature to do data sequence only when device is moving
- Threshold speed – when device seed is bigger than this then device will be considered in motion
- Time interval – time interval in seconds between checks for movement
SMS CONTROL
The app can be controlled with SMS via sending commands and setting changes. Read section for remote control for more details.
– Authorized senders – phone numbers of people authorized to control the app via SMS
– Start reporting code – SMS content for starting reporting
– End reporting code – SMS content for stop reporting
– Start data test code – SMS content for starting data test
– Stop data test code – SMS content for stop data test
– Restart the app code – SMS content for restaring the app
– Info code – SMS content for requesting phone to send via SMS immediately his current measurements information. When the phone receives this code it replies with SMS with its current measurements.
AUTO INDOOR
AUTO INDOOR mode allows auto filling of measurement points when the GPS fix is not available like in tunnels or on places with bad GPS reception.
When GPS fix is lost the measurements are collected in a buffer and when the GPS fix is back again the missing measurements are filled on a straight line connecting the point of loss and regaining GPS fix.
– Auto Indoor Mode – Switches Auto Indoor mode On/Off
– Buffer Size – Max number of measurement samples in buffer during Indoor mode
– Auto Indoor Accuracy threshold – when GPS accuracy is bigger than this value GPS fix is considered not valid and Auto Indoor mode is started
– Auto Indoor Time threshold – when last GPS fix was more seconds ago than this value – the GPS fix is considered not valid and Auto Indoor mode is started
LOG
– Time interval – the interval in seconds between measurement points when location is not changed. This is time between periodic reports.
– Distance interval – distance interval in meters between measurement points. This determines distance between measurement points on route.
– Use network location – use location based on network measurements when GPS fix is not available. When this is turned off latitude and longitude and database will be present only when GPS has fix and if GPS has no fix they will be empty.
CALIBRATION Settings
– Discard Network Type 0/99 – Check this if your phone reports network type 0 or 99 and as a result the level is -200. Check current network type number on bottom of INFO tab.
– Network type 0/99 – casts network type 0 or 99 as what is chosen.
– Use old functions for serving and neighbor cells – if YES then serving cell parameters are not based on new API17 functions. Use it if your phone does not support API17 functions.
– Calibrate 2G/3G – select it to do calibration of levels for 2G/3G. When calibration is done this will be unchecked automatically. Works only when API17 functions are used.
– 2G/3G factor – calibration factor for 2G/3G. Works only when API17 functions are used.
– Calibrate 4G/5G – select it to do calibration of levels for 4G. When calibration is done this will be unchecked automatically. Works only when API17 functions are used.
– 4G/5G factor – calibration factor for 4G. Works only when API17 functions are used.
– Disable auto calibration – select this when you are sure about adjusting factors for 4G and 2G/3G and do not need auto adjustment.
– Use new functions for SNR – if YES the LTE SNR will be read from API17 functions if available.
– SNR factor – calibration factor for LTE SNR. Usually is 1, but for some devices should be set to 10. Works only when API17 functions are used.
– Use alternative method for network type – check this if network type is not correctly determined. Use this only if your phone supports new API17 functions.
– Use calculated LTE RSSI – use calculated LTE RSSI when measured value is not available
– Force updates – use this if your phone does not update values
– 5G NSA mode fix – Show 5G cell as serving cell in 5G non standalone mode
– Enable extended 5G reporting
– gNB length in NCI [22-32] – Set correct value for your 5G network to determine correct eNB and CELLID
– IMEI – set manually IMEI
– IMSI – set manually IMSI
MISC
– Auto Start – when ON the app will auto start on phone boot
– Reporting interval – time between reports sent to online database
– Show events on screen – when ON the app will show screen messages for events like handovers, reselections, calls etc.
– Use measurements buffer – when this is on then when app is closed not reported measurements will be saved in buffer. They will be added to measurements buffer on next app start.
– Auto screen on – keep screen on while app is running
Menu actions
- Send test sample – sends one test sample to online database
- Run single test – runs single data/voice/SMS test
- Settings – open Settings page
- Send diagnostic – sends diagnostics report to database. The diagnostic reports contains all measured data by phone and can be used for checkong phone measurement capabilities
- App permissions – check if all app permissions are allowed
- Exit – exits the app.
Database
timestamp – time of the measurement
lon – longitude of measurement
lat – latitude of measurement
level – RxLev on 2G, RSCP on 3G, RSRP on 4G, RSRP on 5G
speed – speed at the time of measurement in km/h
operatorname – name of the operator
mcc – MCC of the operator
mnc – MNC of the operator
node – RNCID on 3G, eNodeBID on 4G
cellid – CELLID of serving cell
lac – LAC of serving cell
network_type- current technology – 2G, 3G, 4G
qual – RxQual on 2G, ECNO on 3G, RSRQ on 4G, RSRQ on 5G
snr – SNR (4G only)
cqi – CQI (4G only)
lterssi – RSSI
psc – PSC on 3G, PCI on 4G
arfcn – frequency ARFCN
ta – timing advance
ip – IP address
dl_bitrate – current downlink bitrate at the time of measurement
ul_bitrate – current uplink bitrate at the time of measurement
nlac1-6 – Neighbor LAC
ncellid1-6 – Neighbor CELLID on 2G, PSC on 3G, PCI on 4G
nrxlev1-6 – Neighbor level in dBm
event – event info (handovers, reselections etc.) accuracy – GPS/Network accuracy of location
eventdetails – additional information about event
accuracy – location accuracy
locationsource – G for GPS, N for Network accuracy
altitude – altitude
conntype – Mobile or WiFi
conninfo – WiFi SSID when on WiFi
avgping – average ping result from data sequence
minping – min ping result from data sequence
maxping – max ping result from data sequence
stdevping – standard deviation for ping statistic from data sequence
pingloss – ping loss in percents
testdlbitrate – average downlink bitrate from data sequence
testulbitrate – average uplink bitrate from data sequence
testdlmaxbitrate – max downlink bitrate from data sequence
testulmaxbitrate – maxuplink bitrate from data sequence
network_typenum – current network mode
msisdn – MSISDN of the phone
imsi – IMSI of the phone
imei – IMEI of the phone
phone_type – phone type
band – frequency band
bandwidth – frequency bandwidth
ca – carrier aggregation
comment – comment
battery – battery percentage
charging – charging battery
username – username
password – password
teststate – state of running test
credits – credits
buffer – number of measurements in the buffer
csirsrp – CSI RSRP on 5G cell
csirsrq – CSI RSRQ on 5G cell
csisnr – CSI SNR on 5G cell
secondcellnode – 4G cell eNodeBID when phone is on 5G NSA
secondcellcellid – 4G cell CELLID when phone is on 5G NSA
secondcellrsrp – 4G cell RSRP when phone is on 5G NSA
secondcellrsrq – 4G cell RSRQ when phone is on 5G NSA
secondcellsnr – 4G cell SNR when phone is on 5G NSA
ctime – time of import of measurement in database
Remote Control
The app supports internet and SMS remote control for sending commands for setting changes and actions. SMS remote control is supportd only by customized G-NetReport lite client versions. G-NetReport Pro does not support SMS remote control cause sending SMS is not allowed for Playstore apps.
INTERNET REMOTE CONTOL
Internet control allows remote control of the app via internet. You can send commands for settings change and actions. The commands are sent from server in the confirmation report to phone when phone measurement are received. The app reads new settings, applies them and sends confirmation report to server with changed values in “comment” column of the database.
Here is the format that server sends to phone in confirmation report to change settings.
<SETTINGS>
settingkey1:value1
settingkey2:value2
settingkey3:value3
</SETTINGS>
For actions the format is:
<ACTIONS>
ACTION1
ACTION2
</ACTIONS>
Possible actions are:
– RESTART – app is restarted
– EXIT – app is exited
– INFO – sends information about current state
– DIAGNOSTICS – sends diagnostic message with all measurements
Here is an example how to modify your insert_measurement.php file in order to send settings and actions to phone:
In php script for inserting measurements in database after echo ‘1’;
add the following:
echo ‘<br>’;
echo ‘<SETTINGS>’;
echo ‘<br>’;
echo ‘reportinginterval:20’;
echo ‘<br>’;
echo ‘distanceinterval:10’;
echo ‘<br>’;
echo ‘</SETTINGS>’;
echo ‘<br>’;
echo ‘<ACTIONS>’;
echo ‘<br>’;
echo ‘INFO’;
echo ‘<br>’;
echo ‘DIAGNOSTICS’;
echo ‘<br>’;
echo ‘</ACTIONS>’;
echo ‘<br>’;
Also if you want the phone to report all its current settings add this line in php file:
echo ‘<REPORT_SETTINGS>’;
On receiving <REPORT_SETTINGS> command the phone will send all its settings in “comment” column of database. Make sure the column allows enough symbols.
Optionally you can use “if” clause to send commands to speciphic phones likeif you want commands to be sent to specific IMSI:
if( $imsi==’123456789′){
echo ‘<br>’;
echo ‘<SETTINGS>’;
…….
}
You can get the settings keys from this Excel file – https://www.gyokovsolutions.com/downloads/scripts/remotecontrolsettings_demo.xlsx
Internet remote control organization
It is good to split the internet remote control script from script for inserting record in database in order not to interupt measurement reporting to database. It can be done in this way:
Add in insert.php script references to 2 files.
First is control_all.txt file where will be the commands for all mobiles. The commands here will be sent to all mobiles
The other is control_specific.php where commands will be sent to specific phone or define conditions based on any of the measurement parameters. Like send to mobiles in specific cell, or send commands only during specified time interval etc…
Then only these two files will be modified and database inserting of measurements won’t be interupted.
Here is how to do it:
- In your insert php script after the
echo “1”;
add this:
//———-start of script———–
echo ”;
try{
if(file_exists(“control_all.txt”)){
$controlall = file_get_contents(“control_all.txt”);
echo $controlall ;
}
} catch (Exception $e) {}
try{
if(file_exists(“control_specific.php”)){
include(“control_specific.php”);
}
} catch (Exception $e) {}
echo ”;
//———end of script————
Then if these files exists they will be added to server response
- Upload to server example files control_all.txt and control_specific.php. Here you can download the files – http://www.gyokovsolutions.com/downloads/scripts/remotecontrol.rar
Upload them in same folder as inset.php script. Then when mobile reports then server will send to mobile command for all mobiles and commands for specific mobiles if the conditions are satisfied.
SMS REMOTE CONTROL
SMS control allows remote control of the app via SMS. The sender of SMS can be controlled via ‘Authorized Senders’ setting. The app returns confirmation to the sender via SMS.
– SMS control – allows SMS control (requires restart of the app)
– Authorized senders – phone numbers of people authorized to control the app via SMS
– Start logging code – SMS content for starting logging
– End logging code – SMS content for stop logging
– Start data sequence code – SMS content for starting data sequence
– Stop data sequence code – SMS content for stop data sequence
– Start voice sequence code – SMS content for starting voice sequence
– Stop voice sequence code – SMS content for stop voice sequence
– Start SMS sequence code – SMS content for starting SMS sequence
– Stop SMS sequence code – SMS content for stop data SMS
– Info code – SMS content for requesting phone to send via SMS immediately his current measurements information. When the phone receives this code it replies with SMS with its current measurements.
– Restart the app code – SMS content for restarting app.
Changing app settings with SMS:
You can change app settings via SMS. In order to do this sent SMS with specific text describing the settings changes. Here is the SMS format
<SETTINGS>
settingkey1:value1
settingkey2:value2
settingkey3:value3
</SETTINGS>
Here is an example of SMS content:
<SETTINGS>
reportinginterval:59
distanceinterval:14
pause_test:60
</SETTINGS>
You can get the settings keys from this Excel file – https://www.gyokovsolutions.com/downloads/scripts/remotecontrolsettings_demo.xlsx
Contacts
For customized solutions contact:
email: info@gyokovsolutions.com