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
googleMapsApiKeyin flavor-config.gradle file
- 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:0000
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 server