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.
- Select module you want to build according to customer (other ones from this set you can unload,
keep only one loaded)
app: RTR Austriaont: Open Nettest Globalakep: AKEP Albaniaakos: AKOS Sloveniankom: NKOM Norway
- 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
- Additional setup
- For
appcustomer selectedEnable Google Maps SDK in Google Cloud console and put your API key intogoogleMapsApiKeyin flavor-config.gradle file - For other than
appcustomer to enable MapBox map register and generate key on mapbox.com and set your key as environmental variableORG_GRADLE_PROJECT_MAPBOX_SDK_KEYand replace your public key undermapbox_public_keyinres/values/keys.xmlfor particular selected module - For other than
appcustomer to enable Here map search register and generate key on here.com and set your key as environmental variableORG_GRADLE_PROJECT_HERE_API_KEY - For other than
appcustomer generategoogle-services.jsonaccording to app id you set in step 2. and paste it to root of module you selected to build
- For
- Add/change endpoints information and
example.comin 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_PORTControl server port, default:443CONTROL_SERVER_USE_SSLIndicates SSL should be used for server connection or not, default:trueQOS_SSLIndicates SSL should be used QoS tests, default:true
NDT_ENABLEDIndicates NDT Tests is enabled, default:false(NDT fuctionality not implemented)SKIP_QOS_TESTSIndicates QoS Tests can be skipped after basic measurement, default:falseSKIP_QOS_TESTS_FOR_PERIODIndicates QoS Tests can be skipped until specified time in minutes runs out after previously executed QoS tests, default:falseSKIP_QOS_TESTS_PERIOD_MINIndicates how much time in minutes QoS Tests should be skipped after previously executed QoS tests, default:120LOOP_MODE_ENABLEDIndicates Loop Mode is enabled, defaultfalseLOOP_MODE_WAITING_TIME_MINDefault delay between measurements in Loop Mode in minutes, default:30LOOP_MODE_DISTANCE_METERSDefault distance between measurements in Loop Mode in meters, default:250LOOP_MODE_NUMBER_OF_TESTSDefault number of tests per single Loop Mode test, default:30LOOP_MODE_MAX_NUMBER_OF_TESTSMaximum number of Loop Mode measurements that can be entered by User, default:100LOOP_MODE_MIN_NUMBER_OF_TESTSMinimum number of Loop Mode measurements that can be entered by User, default:1LOOP_MODE_MAX_WAITING_TIME_MINMaximum delay in minutes between measurements in Loop Mode can be entered by User, default1440LOOP_MODE_MIN_WAITING_TIME_MINMinimum delay in minutes between measurements in Loop Mode can be entered by User, default15LOOP_MODE_MAX_DISTANCE_METERSMaximum distance in meters between measurements in Loop Mode can be entered by User, default10000LOOP_MODE_MIN_DISTANCE_METERSMinimum distance in meters between measurements in Loop Mode can be entered by User, default50CAPABILITIES_RMBT_HTTPclient supports RMBT HTTP, default:trueCAPABILITIES_QOS_SUPPORTS_INFOThe third state (=INFO) is supported or not, default:falseCAPABILITIES_CLASSIFICATION_COUNTNumber of intervals(classes) to classify measured values, default:4SIGNAL_MEASUREMENT_DURATION_MINMaximum time in minutes to run signal measurement, default:2880
CAN_MANAGE_LOCATION_SETTINGSSettings 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_ENABLEDIndicates Expert Mode is enabled, default:falseEXPERT_MODE_IPV4_ONLYIndicates that only ip4v protocol should be used, default:falseUSER_SERVER_SELECTION_ENABLEDIndicates that user can select server, default:false
DEVELOPER_MODE_IS_ENABLEDIndicates Developer Mode is enabled, default:falseDEVELOPER_MODE_IS_AVAILABLEIndicates that Developer mode can be activated, default:trueIS_MAP_SERVER_OVERRIDE_ENABLEDMap server overriding is enabled, default:falseIS_CONTROL_SERVER_OVERRIDE_ENABLEDControl server overriding is enabled, default:falseDEVELOPER_ACTIVATE_CODE❗Code to activate Developer Mode (10 taps on version number in Settings), default:qwertyDEVELOPER_DEACTIVATE_CODE❗Code to deactivate Developer Mode (10 taps on version number), default:1111ALL_DEACTIVATE_CODE❗Code to deactivate everything(?) (10 taps on version number), default:0000DEV_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-nettestWEBSITE_URL❗Link to the website, default:https://www.example.comEMAIL_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 (currentlyenorde)TERMS_FOR_ACCEPTANCE_URL❗Terms and Condition for User acceptance, default:https://example.com/%s/tc_android.html, where1{%s}is language code (currentlyenorde)
MAP_SERVER_HOSTMap server host url, default:sdev.example.comMAP_SERVER_PORTMap server port, default:443MAP_SERVER_USE_SSLIndicates SSL should be used for map server connection or not, default:trueMAP_SERVER_ROUTEMap server route, default:RMBTMapServerMAP_TILES_ENDPOINTMap server endpoint to obtain tiles, default:tiles/%s/%d/%d/%d.pngwhere1{%s}map type (heatmaporpointsorshapes),2{%s}is zoom value,3{%s}is x value,4{%s}is y valueMAP_MARKERS_ENDPOINTMap server endpoint to obtain markers, default:tiles/markersMAP_MARKER_SHOW_DETAILS_ROUTEMap server route to get marker details, default:en/Opentest?%s#noMMenuMAP_FILTERS_ENDPOINTMap filters endpoint to get map types & filters, default:tiles/info
CONTROL_SERVER_ROUTERoute to the control server, default:RMBTControlServerCONTROL_SERVER_SETTINGS_ENDPOINTEndpoint to get settings from the control server, default:settingsCONTROL_SERVER_TEST_REQUEST_ENDPOINTEndpoint 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_ENDPOINTEndpoint to send test results to the control server, default:resultCONTROL_SERVER_SEND_QOS_RESULT_ENDPOINTEndpoint to send QoS test results to the control server, default:resultQoSCONTROL_SERVER_HISTORY_ENDPOINTEndpoint to get test history, default:historyCONTROL_SERVER_GET_BASIC_RESULT_PATHEndpoint to get test results from the control server, default:testresultCONTROL_SERVER_GET_OPENDATA_RESULT_PATHEndpoint to get open test results from control server, default:opentestsCONTROL_SERVER_TEST_RESULT_DETAILS_ENDPOINTEndpoint to get detailed test results, default:testresultdetailCONTROL_SERVER_GET_QOS_TEST_RESULT_ENDPOINTEndpoint to get QoS test results, default:qosTestResult?api=2CONTROL_SERVER_SIGNAL_REQUEST_ROUTEEndpoint to get settings for the continious signal measurement, default:signalRequestCONTROL_SERVER_SIGNAL_RESULT_ROUTEEndpoint to send chunk of results of continiouse signal measurement, default:signalResultCONTROL_SERVER_GET_SYNC_CODE_ROUTEEndpoint to get sync code for current device, default:syncCONTROL_SERVER_SYNC_DEVICES_ROUTEEndpoint to send other device sync code and make devices history synchonised, defaultsync(has different params in api)CONTROL_SERVER_GET_NEWS_ENDPOINTEndpoint to get news, default:newsCONTROL_SERVER_NEW_HOSTHost for the updated version of serverCONTROL_SERVER_NEW_ROUTERoute for the updated version of serverREQUEST_HEADER_VALUERequest header to differentiate between customers eg.ntforontcustomer. Default is empty.RMBT_CLIENT_REQUESTS_PATH_PREFIXMiddle part of the request route eg. for route"sdevv6.example.com/RMBTControlServer/ip"and valuev2it will generate"sdevv6.example.com/RMBTControlServer/v2/ip". Default is empty.ENABLED_JITTER_AND_PACKET_LOSSDefines if jitter and packet loss test should be executed during basic test - it needs to be supported by ControlServer. Default isfalse.CMS_URLDefines URL to CMS system to load web pages regarding terms and conditions, privacy policy, ... Used for other than RTR customer. eg."https://cms-api.example.com"