diff --git a/src/ctrlm_main.cpp b/src/ctrlm_main.cpp index 2d5348bf..0603fd64 100644 --- a/src/ctrlm_main.cpp +++ b/src/ctrlm_main.cpp @@ -964,12 +964,6 @@ void ctrlm_thread_monitor_init(void) { g_ctrlm.monitor_threads.shrink_to_fit(); - if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_THREAD_MONITOR_MINIDUMP_ENABLE, &g_ctrlm.thread_monitor_minidump)) { - XLOGD_INFO("Thread Monitor Minidump is <%s> (TR181 not present)", (g_ctrlm.thread_monitor_minidump ? "ENABLED" : "DISABLED")); - } else { - XLOGD_INFO("Thread Monitor Minidump is <%s>", (g_ctrlm.thread_monitor_minidump ? "ENABLED" : "DISABLED")); - } - // Run once to kick off the first poll ctrlm_thread_monitor(NULL); } diff --git a/src/ctrlm_tr181.h b/src/ctrlm_tr181.h index 8fdb0b34..b1eb19a5 100644 --- a/src/ctrlm_tr181.h +++ b/src/ctrlm_tr181.h @@ -24,46 +24,12 @@ #include "rfcapi.h" #define CTRLM_RFC_MAX_PARAM_LEN MAX_PARAM_LEN //from rfcapi.h is 2048 -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPollingConfiguration." -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_ENABLED CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Enable" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_DEFAULT CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Default" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR11V2 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR11v2" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR15v1" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V2 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR15v2" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR16V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR16v1" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR19V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR19v1" -#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XRAV1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XRAv1" -#define CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_TIMEOUT "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PressAndRelease.EOSTimeout" -#define CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_METHOD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PressAndRelease.EOSMethod" -#define CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_ENABLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRmacPolling.Enable" -#define CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_INTERVAL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRmacPolling.macPollingInterval" -#define CTRLM_RF4CE_TR181_ASB_ENABLED "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBEnable" -#define CTRLM_RF4CE_TR181_ASB_DERIVATION_METHOD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBDerivationMethod" -#define CTRLM_RF4CE_TR181_ASB_FAIL_THRESHOLD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBFailThreshold" -#define CTRLM_RF4CE_TR181_THREAD_MONITOR_MINIDUMP_ENABLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ThreadMonitorMinidump.Enable" -#define CTRLM_RF4CE_TR181_XR19_DSP_CONFIGURATION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRDsp.XR19.Configuration" -#define CTRLM_RF4CE_TR181_RF4CE_AUDIO_PROFILE_TARGET "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.AudioProfileTarget" -#define CTRLM_RF4CE_TR181_RF4CE_OPUS_ENCODER_PARAMS "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.OpusEncoderParams" -#define CTRLM_RF4CE_TR181_RF4CE_RSP_IDLE_FF "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.FF.RspIdle" -#define CTRLM_RF4CE_TR181_RF4CE_VOICE_ENCRYPTION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.VoiceEncryption.Enable" -#define CTRLM_RF4CE_TR181_RF4CE_HOST_PACKET_DECRYPTION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.HostPacketDecryption.Enable" -#define CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.RspTime." -#define CTRLM_RF4CE_TR181_RSP_TIME_XRC CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XRC" -#define CTRLM_RF4CE_TR181_RSP_TIME_XVP CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XVP" -#define CTRLM_RF4CE_TR181_RSP_TIME_XDIU CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XDIU" -#define CTRLM_TR181_VOICE_PARAMS_AUDIO_MODE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioMode" -#define CTRLM_TR181_VOICE_PARAMS_AUDIO_TIMING "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioTiming" -#define CTRLM_TR181_VOICE_PARAMS_AUDIO_CONFIDENCE_THRESHOLD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioConfidenceThreshold" -#define CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_TYPE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioDuckingType" -#define CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_LEVEL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioDuckingLevel" -#define CTRLM_TR181_VOICE_PARAMS_VSDK_CONFIGURATION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.VSDKConfiguration" -#define CTRLM_TR181_VOICE_PARAMS_KEYWORD_SENSITIVITY "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.KeywordSensitivity" #define CTRLM_TR181_TELEMETRY_REPORT_GLOBAL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.global" #define CTRLM_TR181_TELEMETRY_REPORT_RF4CE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.rf4ce" #define CTRLM_TR181_TELEMETRY_REPORT_BLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.ble" #define CTRLM_TR181_TELEMETRY_REPORT_IP "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.ip" #define CTRLM_TR181_TELEMETRY_REPORT_VOICE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.voice" -#define CTRLM_RT181_POWER_RFC_PWRMGR2 "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Power.PwrMgr2.Enable" +#define CTRLM_TR181_POWER_RFC_PWRMGR2 "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Power.PwrMgr2.Enable" typedef enum { diff --git a/src/rf4ce/ctrlm_rf4ce_network.cpp b/src/rf4ce/ctrlm_rf4ce_network.cpp index 91df3fb5..db7a2302 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.cpp +++ b/src/rf4ce/ctrlm_rf4ce_network.cpp @@ -726,9 +726,6 @@ gboolean ctrlm_obj_network_rf4ce_t::load_config(json_t *json_obj_net_rf4ce) { sub_conf.config_value_get(JSON_INT_NAME_NETWORK_RF4CE_DSP_IC_DETECT, dsp_configuration_.ic_config_detect, 0x00, 0xFF); } } - //Read tr181 values here. tr181 values will override any config file values. - polling_config_tr181_read(); - process_xconf(); XLOGD_INFO("User String <%s>", user_string_.c_str()); XLOGD_INFO("Timeout Key Release %u ms", timeout_key_release_); @@ -2934,110 +2931,6 @@ void ctrlm_obj_network_rf4ce_t::default_polling_configuration() { } } -void ctrlm_obj_network_rf4ce_t::polling_config_tr181_read() { - guint8 default_polling_methods = 0; - ctrlm_rf4ce_polling_configuration_t default_polling_config_hb = {0}; - - ctrlm_rf4ce_polling_configuration_t default_polling_config_mac; - errno_t safec_rc = memset_s(&default_polling_config_mac, sizeof(ctrlm_rf4ce_polling_configuration_t), 0, sizeof(ctrlm_rf4ce_polling_configuration_t)); - ERR_CHK(safec_rc); - default_polling_config_mac.trigger = POLLING_TRIGGER_FLAG_TIME; - default_polling_config_mac.time_interval = JSON_INT_VALUE_NETWORK_RF4CE_POLLING_DEFAULT_MAC_TIME_INTERVAL; - - bool b_has_default_config = false; - - char tr181_buf[1024] = {0}; - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_DEFAULT, tr181_buf, sizeof(tr181_buf))) { - if(4 == sscanf(tr181_buf, "%hhu:%hu:%hhu:%u:", &default_polling_methods, &default_polling_config_hb.trigger, &default_polling_config_hb.kp_counter, &default_polling_config_hb.time_interval)) { - XLOGD_INFO("Default HB Polling Configuration from TR181"); - b_has_default_config = true; - } - } - - bool b_has_default_mac_config = false; - - bool mac_polling_enabled = false; - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_ENABLE, &mac_polling_enabled)) { - XLOGD_INFO("Default Mac Polling Configuration from TR181"); - b_has_default_mac_config = mac_polling_enabled; - ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_INTERVAL, (int*)&default_polling_config_mac.time_interval, 1000, 60000); - - if(mac_polling_enabled) { - polling_methods_ |= POLLING_METHODS_FLAG_MAC; - } else { - polling_methods_ &= ~POLLING_METHODS_FLAG_MAC; - } - - } - for(int i = 0; i < RF4CE_CONTROLLER_TYPE_INVALID; i++) { - XLOGD_INFO("Polling Configuration Remote Type <%s>", ctrlm_rf4ce_controller_type_str((ctrlm_rf4ce_controller_type_t)i)); - const char *controller_tr181_str = 0; - - switch((ctrlm_rf4ce_controller_type_t)i) { - case RF4CE_CONTROLLER_TYPE_XR11: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR11V2; - break; - } - case RF4CE_CONTROLLER_TYPE_XR15: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V1; - break; - } - case RF4CE_CONTROLLER_TYPE_XR15V2: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V2; - break; - } - case RF4CE_CONTROLLER_TYPE_XR16: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR16V1; - break; - } - case RF4CE_CONTROLLER_TYPE_XR19: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR19V1; - break; - } - case RF4CE_CONTROLLER_TYPE_XRA: { - controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XRAV1; - break; - } - default: { - break; - } - } - - if (b_has_default_mac_config) { - controller_polling_configuration_mac_[i] = default_polling_config_mac; - } - - if(controller_tr181_str) { - if (b_has_default_config) { - controller_polling_methods_[i] = default_polling_methods; - controller_polling_configuration_heartbeat_[i] = default_polling_config_hb; - } - safec_rc = memset_s(tr181_buf, sizeof(tr181_buf), 0, sizeof(tr181_buf)); - ERR_CHK(safec_rc); - ctrlm_rf4ce_polling_configuration_t controller_polling_configuration; - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(controller_tr181_str, tr181_buf, sizeof(tr181_buf))) { - if(4 == sscanf(tr181_buf, "%hhu:%hu:%hhu:%u:", &controller_polling_methods_[i], - &controller_polling_configuration.trigger, - &controller_polling_configuration.kp_counter, - &controller_polling_configuration.time_interval)) { - //If MAC polling bit is set, save the mac config - if(controller_polling_methods_[i] & POLLING_METHODS_FLAG_MAC) { - controller_polling_configuration_mac_[i].trigger = controller_polling_configuration.trigger; - controller_polling_configuration_mac_[i].kp_counter = controller_polling_configuration.kp_counter; - // The MAC polling period has been set above when MAC was enabled - } - //If Heartbeat polling bit is set, save the heartbeat config - if(controller_polling_methods_[i] & POLLING_METHODS_FLAG_HEARTBEAT) { - controller_polling_configuration_heartbeat_[i] = controller_polling_configuration; - } - XLOGD_INFO("Controller Polling Configuration Read from TR181 <%s><%s>", ctrlm_rf4ce_controller_type_str((ctrlm_rf4ce_controller_type_t)i),ctrlm_rf4ce_controller_polling_methods_str(controller_polling_methods_[i])); - } - } - } - controller_polling_methods_[i] &= polling_methods_; // The controller polling_methods should only contain methods currently supported by target - } -} - void ctrlm_obj_network_rf4ce_t::polling_config_read(json_config *conf) { if(NULL == conf) { XLOGD_ERROR("json config is NULL!"); @@ -3412,42 +3305,6 @@ void ctrlm_obj_network_rf4ce_t::polling_action_push(void *data, int size) { } } -void ctrlm_obj_network_rf4ce_t::process_xconf() { - int result; - int value = 0; - bool b_value = true; - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RF4CE_AUDIO_PROFILE_TARGET, &value, 1, 7); - if(result != CTRLM_TR181_RESULT_SUCCESS) { - XLOGD_INFO("audio profile target not present"); - } else { - audio_profiles_targ_ = value; - XLOGD_INFO("audio profile target 0x%04X", audio_profiles_targ_); - } - - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RF4CE_RSP_IDLE_FF, &value, 0, 1000); - if(result != CTRLM_TR181_RESULT_SUCCESS) { - XLOGD_INFO("FF Rsp Idle time not present"); - } else { - response_idle_time_ff_ = value; - XLOGD_INFO("FF Rsp Idle time %u", response_idle_time_ff_); - } - - if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_RF4CE_VOICE_ENCRYPTION, &b_value)) { - XLOGD_INFO("TR181 RF4CE Voice Encryption not present"); - } else { - XLOGD_TELEMETRY("TR181 RF4CE Voice Encryption set to %s", (b_value ? "TRUE" : "FALSE")); - voice_command_encryption_ = (b_value ? VOICE_COMMAND_ENCRYPTION_ENABLED : VOICE_COMMAND_ENCRYPTION_DISABLED); - } - - if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_RF4CE_HOST_PACKET_DECRYPTION, &host_decryption_)) { - XLOGD_INFO("TR181 RF4CE Host Packet Decryption not present"); - } else { - XLOGD_INFO("TR181 RF4CE Host Packet Decryption set to %s", (host_decryption_ ? "TRUE" : "FALSE")); - } - - rsp_time_.legacy_rfc(); -} - // ASB Functions bool ctrlm_obj_network_rf4ce_t::rf4ce_asb_init(void *data, int size) { @@ -3525,8 +3382,6 @@ void ctrlm_obj_network_rf4ce_t::asb_link_key_derivation_perform(void *data, int } void ctrlm_obj_network_rf4ce_t::asb_configuration(json_config *conf) { - int temp_i; - bool temp_b; // Get JSON configuration first if(NULL != conf) { conf->config_value_get(JSON_BOOL_NAME_NETWORK_RF4CE_ASB_ENABLE, asb_enabled_); @@ -3534,23 +3389,6 @@ void ctrlm_obj_network_rf4ce_t::asb_configuration(json_config *conf) { conf->config_value_get(JSON_INT_NAME_NETWORK_RF4CE_ASB_FALLBACK_THRESHOLD, asb_fallback_count_threshold_, 0x01, 0xFF); conf->config_value_get(JSON_BOOL_NAME_NETWORK_RF4CE_ASB_FORCE_SETTINGS, asb_force_settings_); } - - // Now check TR181 - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_ASB_ENABLED, &temp_b)) { - asb_enabled_ = temp_b; - XLOGD_INFO("TR181 ASB Enable set to %s", (asb_enabled_ ? "TRUE" : "FALSE")); - } - if(asb_enabled_) { - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_ASB_DERIVATION_METHOD, &temp_i, 0x01, 0xFF)) { - asb_key_derivation_methods_ = temp_i; - XLOGD_INFO("TR181 ASB Key Derivation Method set to %d", asb_key_derivation_methods_); - } - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_ASB_FAIL_THRESHOLD, &temp_i, 0x01, 0xFF)) { - asb_fallback_count_threshold_ = temp_i; - XLOGD_INFO("TR181 ASB Fallback Threshold set to %d", asb_fallback_count_threshold_); - } - } - } void ctrlm_obj_network_rf4ce_t::rf4ce_asb_destroy(void *data, int size) { @@ -3990,9 +3828,7 @@ void ctrlm_obj_network_rf4ce_t::set_timers() { } void ctrlm_obj_network_rf4ce_t::xconf_configuration() { - if(FALSE == force_dsp_configuration_) { - dsp_configuration_xconf(); - } else { + if(FALSE != force_dsp_configuration_) { XLOGD_WARN("force dsp configuration is true, tell device(s) to read it"); update_far_field_configuration(RF4CE_POLLING_ACTION_DSP_CONFIGURATION); } @@ -4127,32 +3963,6 @@ void ctrlm_obj_network_rf4ce_t::update_far_field_configuration(ctrlm_rf4ce_polli } } -void ctrlm_obj_network_rf4ce_t::dsp_configuration_xconf() { - char rfc_val[100] = {'\0'}; - unsigned char *decoded_buf = NULL; - size_t decoded_buf_len = 0; - if(force_dsp_configuration_) { - XLOGD_WARN("not going to xconf for DSP configuration"); - return; - } - if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(CTRLM_RF4CE_TR181_XR19_DSP_CONFIGURATION, rfc_val, sizeof(rfc_val))) { - decoded_buf = g_base64_decode(rfc_val, &decoded_buf_len); - if(decoded_buf) { - if(decoded_buf_len == CTRLM_RF4CE_RIB_ATTR_LEN_DSP_CONFIGURATION) { - XLOGD_INFO("DSP configuration taken from XCONF"); - property_write_dsp_configuration(decoded_buf, (uint8_t)decoded_buf_len); - } else { - XLOGD_WARN("incorrect length"); - } - free(decoded_buf); - } else { - XLOGD_WARN("failed to decode base64"); - } - } else { - XLOGD_INFO("no rfc value"); - } -} - void ctrlm_obj_network_rf4ce_t::attributes_from_db() { // So far just getting the DSP configuration if(!force_dsp_configuration_) { diff --git a/src/rf4ce/ctrlm_rf4ce_network.h b/src/rf4ce/ctrlm_rf4ce_network.h index 44dd2570..2c48c962 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.h +++ b/src/rf4ce/ctrlm_rf4ce_network.h @@ -636,10 +636,6 @@ class ctrlm_obj_network_rf4ce_t : public ctrlm_obj_network_t static gboolean binding_in_progress_timeout(gpointer user_data); void default_polling_configuration(); void polling_config_read(json_config *conf); - void polling_config_tr181_read(); - void process_xconf(); - - void dsp_configuration_xconf(); gboolean is_asb_active(ctrlm_hal_rf4ce_ieee_address_t ieee_address); static gboolean asb_link_validation_timeout(gpointer user_data); diff --git a/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.cpp b/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.cpp index f4898cac..4988b397 100644 --- a/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.cpp +++ b/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.cpp @@ -62,51 +62,6 @@ unsigned int ctrlm_rf4ce_rsp_time_t::get_us(uint8_t profile_id) const { return(1000 * this->get_ms(profile_id)); } -// TODO: remove once generic RFC is approved for use -void ctrlm_rf4ce_rsp_time_t::legacy_rfc() { - unsigned int value = 0; - bool changed = false; - int rsp_time_min = (ctrlm_is_production_build() ? RESPONSE_TIME_MIN : RESPONSE_TIME_CONFIG_VBN_MIN); - int rsp_time_max = (ctrlm_is_production_build() ? RESPONSE_TIME_MAX : RESPONSE_TIME_CONFIG_VBN_MAX); - ctrlm_tr181_result_t result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XRC, &value, rsp_time_min, rsp_time_max); - if(result != CTRLM_TR181_RESULT_SUCCESS) { - XLOGD_INFO("XRC Response Time not present"); - } else { - if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XRC]) { - changed = true; - } - this->rsp_times[RESPONSE_TIME_PROFILE_XRC] = value; - XLOGD_INFO("XRC Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XRC]); - } - - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XVP, &value, rsp_time_min, rsp_time_max); - if(result != CTRLM_TR181_RESULT_SUCCESS) { - XLOGD_INFO("XVP Response Time not present"); - } else { - if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XVP]) { - changed = true; - } - this->rsp_times[RESPONSE_TIME_PROFILE_XVP] = value; - XLOGD_INFO("XVP Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XVP]); - } - - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XDIU, &value, rsp_time_min, rsp_time_max); - if(result != CTRLM_TR181_RESULT_SUCCESS) { - XLOGD_INFO("XDIU Response Time not present"); - } else { - if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XDIU]) { - changed = true; - } - this->rsp_times[RESPONSE_TIME_PROFILE_XDIU] = value; - XLOGD_INFO("XDIU Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XDIU]); - } - - if(changed && this->updated_listener) { - XLOGD_INFO("calling updated listener for %s", this->get_name().c_str()); - this->updated_listener(*this); - } -} - std::string ctrlm_rf4ce_rsp_time_t::to_string() const { std::stringstream ss; ss << "XRC <" << this->rsp_times.at(RESPONSE_TIME_PROFILE_XRC) << "ms> "; diff --git a/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.h b/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.h index 44a6a646..cdabf815 100644 --- a/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.h +++ b/src/rf4ce/network/attributes/ctrlm_rf4ce_network_attr_config.h @@ -54,7 +54,6 @@ class ctrlm_rf4ce_rsp_time_t : public ctrlm_attr_t, public ctrlm_rf4ce_rib_attr_ public: unsigned int get_ms(uint8_t profile_id) const; unsigned int get_us(uint8_t profile_id) const; - void legacy_rfc(); public: /** diff --git a/src/voice/ctrlm_voice_obj.cpp b/src/voice/ctrlm_voice_obj.cpp index 43f28c05..808c0f87 100644 --- a/src/voice/ctrlm_voice_obj.cpp +++ b/src/voice/ctrlm_voice_obj.cpp @@ -417,6 +417,7 @@ bool ctrlm_voice_t::voice_configure_config_file_json(json_t *obj_voice, json_t * ctrlm_voice_iarm_call_settings_t *voice_settings = NULL; uint32_t voice_settings_len = 0; std::string init; + (void)local_conf; XLOGD_INFO("Configuring voice"); ctrlm_voice_audio_settings_t audio_settings = {this->audio_mode, this->audio_timing, this->audio_confidence_threshold, this->audio_ducking_type, this->audio_ducking_level, this->audio_ducking_beep_enabled}; @@ -578,7 +579,6 @@ bool ctrlm_voice_t::voice_configure_config_file_json(json_t *obj_voice, json_t * } this->set_audio_mode(&audio_settings); - this->process_xconf(&json_obj_vsdk, local_conf); // Disable muting/ducking to recover in case ctrlm restarts while muted/ducked. this->audio_state_set(false); @@ -949,118 +949,6 @@ bool ctrlm_voice_t::voice_init_set(const char *init, bool db_write) { return(ret); } -void ctrlm_voice_t::process_xconf(json_t **json_obj_vsdk, bool local_conf) { - XLOGD_INFO("Voice XCONF Settings"); - int result; - - char vsdk_config_str[CTRLM_RFC_MAX_PARAM_LEN] = {0}; //MAX_PARAM_LEN from rfcapi.h is 2048 - - if(ctrlm_is_rf4ce_enabled()) { - char encoder_params_str[CTRLM_RCU_RIB_ATTR_LEN_OPUS_ENCODING_PARAMS * 2 + 1] = {0}; - - result = ctrlm_tr181_string_get(CTRLM_RF4CE_TR181_RF4CE_OPUS_ENCODER_PARAMS, encoder_params_str, sizeof(encoder_params_str)); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - std::string opus_encoder_params_str = encoder_params_str; - this->voice_params_opus_encoder_validate(opus_encoder_params_str); - - XLOGD_INFO("opus encoder params <%s>", this->prefs.opus_encoder_params_str.c_str()); - } - } - - ctrlm_voice_audio_settings_t audio_settings = {this->audio_mode, this->audio_timing, this->audio_confidence_threshold, this->audio_ducking_type, this->audio_ducking_level, this->audio_ducking_beep_enabled}; - bool changed = false; - - result = ctrlm_tr181_int_get(CTRLM_TR181_VOICE_PARAMS_AUDIO_MODE, (int*)&audio_settings.mode); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - changed = true; - } - result = ctrlm_tr181_int_get(CTRLM_TR181_VOICE_PARAMS_AUDIO_TIMING, (int *)&audio_settings.timing); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - changed = true; - } - result = ctrlm_tr181_real_get(CTRLM_TR181_VOICE_PARAMS_AUDIO_CONFIDENCE_THRESHOLD, &audio_settings.confidence_threshold); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - changed = true; - } - result = ctrlm_tr181_int_get(CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_TYPE, (int *)&audio_settings.ducking_type); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - changed = true; - } - result = ctrlm_tr181_real_get(CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_LEVEL, &audio_settings.ducking_level); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - changed = true; - } - - // CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_BEEP doesn't exist because this is a user configurable setting via configureVoice thunder api - - result = ctrlm_tr181_string_get(CTRLM_TR181_VOICE_PARAMS_VSDK_CONFIGURATION, &vsdk_config_str[0], CTRLM_RFC_MAX_PARAM_LEN); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - json_error_t jerror; - json_t *jvsdk; - char *decoded_buf = NULL; - size_t decoded_buf_len = 0; - - decoded_buf = (char *)g_base64_decode((const gchar*)vsdk_config_str, &decoded_buf_len); - if(decoded_buf) { - if(decoded_buf_len > 0 && decoded_buf_len < CTRLM_RFC_MAX_PARAM_LEN) { - XLOGD_INFO("VSDK configuration taken from XCONF"); - XLOGD_INFO("%s", decoded_buf); - - jvsdk = json_loads(&decoded_buf[0], 0, &jerror); - do { - if(NULL == jvsdk) { - XLOGD_ERROR("XCONF has VSDK params but json_loads() failed, line %d: %s ", jerror.line, jerror.text ); - break; - } - if(!json_is_object(jvsdk)) - { - XLOGD_ERROR("found VSDK in text but invalid object"); - break; - } - - //If execution reaches here we have XCONF settings to use. If developer has used local conf settings, keep them. - if(local_conf) { - if(!json_object_update(jvsdk, *json_obj_vsdk)) { - XLOGD_ERROR("failed to update json_obj_vsdk"); - break; - } - } - - *json_obj_vsdk = json_deep_copy(jvsdk); - if(NULL == *json_obj_vsdk) - { - XLOGD_ERROR("found VSDK object but failed to copy. We have lost any /opt file VSDK parameters"); - /* Nothing to do about this unlikely error. If I copy to a temp pointer to protect the input, - * then I have to copy from temp to real, and check that copy for failure. Where would it end? - */ - break; - } - }while(0); - } else { - XLOGD_WARN("incorrect length"); - } - free(decoded_buf); - } else { - XLOGD_WARN("failed to decode base64"); - } - } - - int value = 0; - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_TIMEOUT, &value, 0, UINT16_MAX); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - this->prefs.par_voice_eos_timeout = value; - } - - result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_METHOD, &value, 0, UINT8_MAX); - if(result == CTRLM_TR181_RESULT_SUCCESS) { - this->prefs.par_voice_eos_method = value; - } - - if(changed) { - this->set_audio_mode(&audio_settings); - } -} - void ctrlm_voice_t::query_strings_updated() { // N/A } diff --git a/src/voice/ctrlm_voice_obj.h b/src/voice/ctrlm_voice_obj.h index 3ec217b2..b7368631 100644 --- a/src/voice/ctrlm_voice_obj.h +++ b/src/voice/ctrlm_voice_obj.h @@ -554,7 +554,6 @@ class ctrlm_voice_t { void voice_params_qos_get(voice_params_qos_t *params); void voice_params_opus_encoder_get(voice_params_opus_encoder_t *params); void voice_params_par_get(voice_params_par_t *params); - virtual void process_xconf(json_t **json_obj_vsdk, bool local_conf); virtual void query_strings_updated(); int packet_loss_threshold_get() const;