Open-RMBT is an open source, multi-threaded bandwidth test used in RTR-Netztest (RTR-Nettest in English).
This repository contains the source code of the new version of the RTR-Netztest application for Android.The source code of the new implementation is developed by Specure GmbH, based on the previous app developed by the Austrian Regulatory Authority for Broadcasting and Telecommunications (RTR GmbH) and alladin-IT GmbH. The source code is published under Apache version 2.0 license.
- Change app id to preferred one in dependencies.gradle (optional)
- Update signing config (optional)
- Replace signing/debug.keystore with your own one
- Update signing/debug.properties with credentials to your signing/debug.keystore key
- Replace signing/release.keystore with your own one
- Update signing/release.properties with credentials to your signing/release.keystore key
- Enable Google Maps SDK in Google Cloud console and put your API key into
googleMapsApiKey
in flavor-config.gradle file
- Add/change endpoints information and
example.com
in fileapp/src/rtr/config.json
CONTROL_SERVER_HOST
❗Controßl server host, example:"sdev.example.com"
CONTROL_SERVER_CHECK_PRIVATE_IPV4_HOST
❗Url to the host for IPv4 test, example"sdevv4.example.com"
CONTROL_SERVER_CHECK_PRIVATE_IPV6_HOST
❗Url to the host for IPv6 test, example"sdevv6.example.com"
CONTROL_SERVER_CHECK_PUBLIC_IPV4_URL
❗Link to check public IPv4 address, example"sdevv4.example.com/RMBTControlServer/ip"
CONTROL_SERVER_CHECK_PUBLIC_IPV6_URL
❗Link to check public IPv6 address, example"sdevv6.example.com/RMBTControlServer/ip"
CAPTIVE_PORTAL_WALLED_GARDEN_URL
❗Url for checking captive portal presence, example:"http://webtest.example.com/generate_204"
CONTROL_SERVER_PORT
Control server port, default:443
CONTROL_SERVER_USE_SSL
Indicates SSL should be used for server connection or not, default:true
QOS_SSL
Indicates SSL should be used QoS tests, default:true
NDT_ENABLED
Indicates NDT Tests is enabled, default:false
(NDT fuctionality not implemented)SKIP_QOS_TESTS
Indicates QoS Tests can be skipped after basic measurement, default:false
SKIP_QOS_TESTS_FOR_PERIOD
Indicates QoS Tests can be skipped until specified time in minutes runs out after previously executed QoS tests, default:false
SKIP_QOS_TESTS_PERIOD_MIN
Indicates how much time in minutes QoS Tests should be skipped after previously executed QoS tests, default:120
LOOP_MODE_ENABLED
Indicates Loop Mode is enabled, defaultfalse
LOOP_MODE_WAITING_TIME_MIN
Default delay between measurements in Loop Mode in minutes, default:30
LOOP_MODE_DISTANCE_METERS
Default distance between measurements in Loop Mode in meters, default:250
LOOP_MODE_NUMBER_OF_TESTS
Default number of tests per single Loop Mode test, default:30
LOOP_MODE_MAX_NUMBER_OF_TESTS
Maximum number of Loop Mode measurements that can be entered by User, default:100
LOOP_MODE_MIN_NUMBER_OF_TESTS
Minimum number of Loop Mode measurements that can be entered by User, default:1
LOOP_MODE_MAX_WAITING_TIME_MIN
Maximum delay in minutes between measurements in Loop Mode can be entered by User, default1440
LOOP_MODE_MIN_WAITING_TIME_MIN
Minimum delay in minutes between measurements in Loop Mode can be entered by User, default15
LOOP_MODE_MAX_DISTANCE_METERS
Maximum distance in meters between measurements in Loop Mode can be entered by User, default10000
LOOP_MODE_MIN_DISTANCE_METERS
Minimum distance in meters between measurements in Loop Mode can be entered by User, default50
CAPABILITIES_RMBT_HTTP
client supports RMBT HTTP, default:true
CAPABILITIES_QOS_SUPPORTS_INFO
The third state (=INFO) is supported or not, default:false
CAPABILITIES_CLASSIFICATION_COUNT
Number of intervals(classes) to classify measured values, default:4
SIGNAL_MEASUREMENT_DURATION_MIN
Maximum time in minutes to run signal measurement, default:2880
CAN_MANAGE_LOCATION_SETTINGS
Settings menu that allows to open application settings (If location permissions are not provided to app) or System Location settings (if location settings disabled for device)
EXPERT_MODE_ENABLED
Indicates Expert Mode is enabled, default:false
EXPERT_MODE_IPV4_ONLY
Indicates that only ip4v protocol should be used, default:false
USER_SERVER_SELECTION_ENABLED
Indicates that user can select server, default:false
DEVELOPER_MODE_IS_ENABLED
Indicates Developer Mode is enabled, default:false
DEVELOPER_MODE_IS_AVAILABLE
Indicates that Developer mode can be activated, default:true
IS_MAP_SERVER_OVERRIDE_ENABLED
Map server overriding is enabled, default:false
IS_CONTROL_SERVER_OVERRIDE_ENABLED
Control server overriding is enabled, default:false
DEVELOPER_ACTIVATE_CODE
❗Code to activate Developer Mode (10 taps on version number in Settings), default:qwerty
DEVELOPER_DEACTIVATE_CODE
❗Code to deactivate Developer Mode (10 taps on version number), default:1111
ALL_DEACTIVATE_CODE
❗Code to deactivate everything(?) (10 taps on version number), default:0000
DEV_SIMULATE_5G_NETWORK
:Allows to simulate 5G network in the developer modeDEV_SIMULATE_5G_NETWORK_IS_AVAILABLE
:This flag makes simulate 5G network visible in the developer mode or not
SOURCE_CODE_URL
❗Link to Source Code, value:https://github.com/rtr-nettest
WEBSITE_URL
❗Link to the website, default:https://www.example.com
EMAIL_ADDRESS
❗Email address for support, default:RMBT Support <support@example.com>
DATA_PRIVACY_AND_TERMS_URL
❗Link to Privacy Policy & Terms And Condition, default:https://example.com/%s/tk/netztestterms
, where1{%s}
is language code (currentlyen
orde
)TERMS_FOR_ACCEPTANCE_URL
❗Terms and Condition for User acceptance, default:https://example.com/%s/tc_android.html
, where1{%s}
is language code (currentlyen
orde
)
MAP_SERVER_HOST
Map server host url, default:sdev.example.com
MAP_SERVER_PORT
Map server port, default:443
MAP_SERVER_USE_SSL
Indicates SSL should be used for map server connection or not, default:true
MAP_SERVER_ROUTE
Map server route, default:RMBTMapServer
MAP_TILES_ENDPOINT
Map server endpoint to obtain tiles, default:tiles/%s/%d/%d/%d.png
where1{%s}
map type (heatmap
orpoints
orshapes
),2{%s}
is zoom value,3{%s}
is x value,4{%s}
is y valueMAP_MARKERS_ENDPOINT
Map server endpoint to obtain markers, default:tiles/markers
MAP_MARKER_SHOW_DETAILS_ROUTE
Map server route to get marker details, default:en/Opentest?%s#noMMenu
MAP_FILTERS_ENDPOINT
Map filters endpoint to get map types & filters, default:tiles/info
CONTROL_SERVER_ROUTE
Route to the control server, default:RMBTControlServer
CONTROL_SERVER_SETTINGS_ENDPOINT
Endpoint to get settings from the control server, default:settings
CONTROL_SERVER_TEST_REQUEST_ENDPOINT
Endpoint to get basic measurement set up to start measurement, default:testRequest
(currently not in use. Control client uses same endpoint from old implementation)CONTROL_SERVER_SEND_RESULT_ENDPOINT
Endpoint to send test results to the control server, default:result
CONTROL_SERVER_SEND_QOS_RESULT_ENDPOINT
Endpoint to send QoS test results to the control server, default:resultQoS
CONTROL_SERVER_HISTORY_ENDPOINT
Endpoint to get test history, default:history
CONTROL_SERVER_GET_BASIC_RESULT_PATH
Endpoint to get test results from the control server, default:testresult
CONTROL_SERVER_GET_OPENDATA_RESULT_PATH
Endpoint to get open test results from control server, default:opentests
CONTROL_SERVER_TEST_RESULT_DETAILS_ENDPOINT
Endpoint to get detailed test results, default:testresultdetail
CONTROL_SERVER_GET_QOS_TEST_RESULT_ENDPOINT
Endpoint to get QoS test results, default:qosTestResult?api=2
CONTROL_SERVER_SIGNAL_REQUEST_ROUTE
Endpoint to get settings for the continious signal measurement, default:signalRequest
CONTROL_SERVER_SIGNAL_RESULT_ROUTE
Endpoint to send chunk of results of continiouse signal measurement, default:signalResult
CONTROL_SERVER_GET_SYNC_CODE_ROUTE
Endpoint to get sync code for current device, default:sync
CONTROL_SERVER_SYNC_DEVICES_ROUTE
Endpoint to send other device sync code and make devices history synchonised, defaultsync
(has different params in api)CONTROL_SERVER_GET_NEWS_ENDPOINT
Endpoint to get news, default:news