Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions include/ctrlm_ipc_voice.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,17 @@ typedef enum {
/// @brief Voice Session End Reasons
/// @details An enumeration of the reasons that cause a voice session to end.
typedef enum {
CTRLM_VOICE_SESSION_END_REASON_DONE = 0, ///< Session completed normally
CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_FIRST_PACKET = 1, ///< Session ended due to timeout on the first audio sample
CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_INTERPACKET = 2, ///< Session ended due to timeout on a subsequent audio sample
CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_MAXIMUM = 3, ///< Session ended due to maximum duration
CTRLM_VOICE_SESSION_END_REASON_ADJACENT_KEY_PRESSED = 4, ///< Session ended due to adjacent key press
CTRLM_VOICE_SESSION_END_REASON_OTHER_KEY_PRESSED = 5, ///< Session ended due to any other key press
CTRLM_VOICE_SESSION_END_REASON_OTHER_ERROR = 6, ///< Session ended due to any other reason
CTRLM_VOICE_SESSION_END_REASON_NEW_SESSION = 7, ///< Session ended due to a new voice session request before previous session is ended
CTRLM_VOICE_SESSION_END_REASON_MINIMUM_QOS = 8, ///< Session ended due to low quality of service
CTRLM_VOICE_SESSION_END_REASON_MAX = 9 ///< Session End Reason maximum value
} ctrlm_voice_session_end_reason_t;
CTRLM_VOICE_SESSION_END_REASON_RCU_DONE = 0, ///< Session completed normally
CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_FIRST_PACKET = 1, ///< Session ended due to timeout on the first audio sample
CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_INTERPACKET = 2, ///< Session ended due to timeout on a subsequent audio sample
CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_MAXIMUM = 3, ///< Session ended due to maximum duration
CTRLM_VOICE_SESSION_END_REASON_RCU_ADJACENT_KEY_PRESSED = 4, ///< Session ended due to adjacent key press
CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_KEY_PRESSED = 5, ///< Session ended due to any other key press
CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_ERROR = 6, ///< Session ended due to any other reason
CTRLM_VOICE_SESSION_END_REASON_RCU_NEW_SESSION = 7, ///< Session ended due to a new voice session request before previous session is ended
CTRLM_VOICE_SESSION_END_REASON_RCU_MINIMUM_QOS = 8, ///< Session ended due to low quality of service
CTRLM_VOICE_SESSION_END_REASON_RCU_MAX = 9 ///< Session End Reason maximum value
} ctrlm_voice_session_end_reason_rcu_t;

/// @brief Voice Session Abort Reasons
/// @details An enumeration of the reasons that cause a voice session to be aborted.
Expand Down Expand Up @@ -223,13 +223,13 @@ typedef struct {
} ctrlm_voice_iarm_event_session_begin_t;

typedef struct {
unsigned char api_revision; ///< The revision of this API.
ctrlm_network_id_t network_id; ///< Identifier of network on which the controller is bound
ctrlm_network_type_t network_type; ///< Type of network on which the controller is bound
ctrlm_controller_id_t controller_id; ///< A unique identifier of the remote
unsigned long session_id; ///< A unique id for the voice session.
ctrlm_voice_session_end_reason_t reason; ///< The reason for ending
unsigned char is_voice_assistant; ///< Boolean indicating if the device is a far-field device (1) as opposed to a hand-held remote (0).
unsigned char api_revision; ///< The revision of this API.
ctrlm_network_id_t network_id; ///< Identifier of network on which the controller is bound
ctrlm_network_type_t network_type; ///< Type of network on which the controller is bound
ctrlm_controller_id_t controller_id; ///< A unique identifier of the remote
unsigned long session_id; ///< A unique id for the voice session.
ctrlm_voice_session_end_reason_rcu_t reason; ///< The reason for ending session
unsigned char is_voice_assistant; ///< Boolean indicating if the device is a far-field device (1) as opposed to a hand-held remote (0).
} ctrlm_voice_iarm_event_session_end_t;

typedef struct {
Expand Down Expand Up @@ -272,13 +272,13 @@ typedef struct {
} ctrlm_voice_iarm_event_session_abort_t;

typedef struct {
unsigned char api_revision; ///< The revision of this API.
ctrlm_network_id_t network_id; ///< Identifier of network on which the controller is bound
ctrlm_network_type_t network_type; ///< Type of network on which the controller is bound
ctrlm_controller_id_t controller_id; ///< A unique identifier of the remote
unsigned long session_id; ///< A unique id for the voice session.
ctrlm_voice_session_end_reason_t reason; ///< The reason that the voice streaming ended
long return_code_internal; ///< Internally generated return code
unsigned char api_revision; ///< The revision of this API.
ctrlm_network_id_t network_id; ///< Identifier of network on which the controller is bound
ctrlm_network_type_t network_type; ///< Type of network on which the controller is bound
ctrlm_controller_id_t controller_id; ///< A unique identifier of the remote
unsigned long session_id; ///< A unique id for the voice session.
ctrlm_voice_session_end_reason_rcu_t reason; ///< The reason that the voice streaming ended
long return_code_internal; ///< Internally generated return code
} ctrlm_voice_iarm_event_session_short_t;

typedef struct {
Expand Down
8 changes: 4 additions & 4 deletions src/ble/ctrlm_ble_network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ void ctrlm_obj_network_ble_t::req_process_voice_session_begin(void *data, int si

if (false == success) {
XLOGD_TELEMETRY("Failed to start voice streaming, ending voice session...");
end_voice_session_for_controller(ieee_address, CTRLM_VOICE_SESSION_END_REASON_OTHER_ERROR);
end_voice_session_for_controller(ieee_address, CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_ERROR);
} else {
dqm->params->result = CTRLM_IARM_CALL_RESULT_SUCCESS;
}
Expand All @@ -595,7 +595,7 @@ void ctrlm_obj_network_ble_t::req_process_voice_session_begin(void *data, int si
}
}

bool ctrlm_obj_network_ble_t::end_voice_session_for_controller(uint64_t ieee_address, ctrlm_voice_session_end_reason_t reason, int32_t audioDuration, int32_t startLag, rdkx_timestamp_t *keyDownTime, rdkx_timestamp_t *keyUpTime) {
bool ctrlm_obj_network_ble_t::end_voice_session_for_controller(uint64_t ieee_address, ctrlm_voice_session_end_reason_rcu_t reason, int32_t audioDuration, int32_t startLag, rdkx_timestamp_t *keyDownTime, rdkx_timestamp_t *keyUpTime) {
ctrlm_controller_id_t controller_id;

if (!getControllerId(ieee_address, &controller_id)) {
Expand Down Expand Up @@ -643,7 +643,7 @@ void ctrlm_obj_network_ble_t::req_process_voice_session_end(void *data, int size
XLOGD_ERROR("Controller doesn't exist!");
dqm->params->result = CTRLM_IARM_CALL_RESULT_ERROR_INVALID_PARAMETER;
} else {
if (end_voice_session_for_controller(dqm->params->ieee_address, CTRLM_VOICE_SESSION_END_REASON_DONE)) {
if (end_voice_session_for_controller(dqm->params->ieee_address, CTRLM_VOICE_SESSION_END_REASON_RCU_DONE)) {
dqm->params->result = CTRLM_IARM_CALL_RESULT_SUCCESS;
}
}
Expand Down Expand Up @@ -2306,7 +2306,7 @@ void ctrlm_obj_network_ble_t::ind_process_keypress(void *data, int size) {
audioDuration = audioDurationKeys;
}

end_voice_session_for_controller(dqm->ieee_address, CTRLM_VOICE_SESSION_END_REASON_DONE, audioDuration, startLag, &voiceStartTimeLocal, &keyUpTimeLocal);
end_voice_session_for_controller(dqm->ieee_address, CTRLM_VOICE_SESSION_END_REASON_RCU_DONE, audioDuration, startLag, &voiceStartTimeLocal, &keyUpTimeLocal);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/ble/ctrlm_ble_network.h
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ class ctrlm_obj_network_ble_t : public ctrlm_obj_network_t {
ctrlm_controller_id_t controller_add(ctrlm_hal_ble_rcu_data_t &rcu_data);
ctrlm_controller_id_t controller_id_assign(void);
ctrlm_controller_id_t get_last_used_controller(void);
bool end_voice_session_for_controller(uint64_t ieee_address, ctrlm_voice_session_end_reason_t reason, int32_t audioDuration = -1, int32_t startLag = -1, rdkx_timestamp_t *keyDownTime = NULL, rdkx_timestamp_t *keyUpTime = NULL);
bool end_voice_session_for_controller(uint64_t ieee_address, ctrlm_voice_session_end_reason_rcu_t reason, int32_t audioDuration = -1, int32_t startLag = -1, rdkx_timestamp_t *keyDownTime = NULL, rdkx_timestamp_t *keyUpTime = NULL);
ctrlm_controller_id_t find_controller_from_upgrade_session_uuid(const std::string &uuid);

json_t * json_config_ = NULL;
Expand Down
22 changes: 11 additions & 11 deletions src/ctrlm_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -666,18 +666,18 @@ const char *ctrlm_voice_session_result_str(ctrlm_voice_session_result_t result)
return(ctrlm_invalid_return(result));
}

const char *ctrlm_voice_session_end_reason_str(ctrlm_voice_session_end_reason_t reason) {
const char *ctrlm_voice_session_end_reason_rcu_str(ctrlm_voice_session_end_reason_rcu_t reason) {
switch(reason) {
case CTRLM_VOICE_SESSION_END_REASON_DONE: return("DONE");
case CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_FIRST_PACKET: return("TIMEOUT_FIRST_PACKET");
case CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_INTERPACKET: return("TIMEOUT_INTERPACKET");
case CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_MAXIMUM: return("TIMEOUT_MAXIMUM");
case CTRLM_VOICE_SESSION_END_REASON_ADJACENT_KEY_PRESSED: return("ADJACENT_KEY_PRESSED");
case CTRLM_VOICE_SESSION_END_REASON_OTHER_KEY_PRESSED: return("OTHER_KEY_PRESSED");
case CTRLM_VOICE_SESSION_END_REASON_NEW_SESSION: return("NEW_SESSION");
case CTRLM_VOICE_SESSION_END_REASON_OTHER_ERROR: return("OTHER_ERROR");
case CTRLM_VOICE_SESSION_END_REASON_MINIMUM_QOS: return("MINIMUM_QOS");
case CTRLM_VOICE_SESSION_END_REASON_MAX: return("MAX");
case CTRLM_VOICE_SESSION_END_REASON_RCU_DONE: return("DONE");
case CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_FIRST_PACKET: return("TIMEOUT_FIRST_PACKET");
case CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_INTERPACKET: return("TIMEOUT_INTERPACKET");
case CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_MAXIMUM: return("TIMEOUT_MAXIMUM");
case CTRLM_VOICE_SESSION_END_REASON_RCU_ADJACENT_KEY_PRESSED: return("ADJACENT_KEY_PRESSED");
case CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_KEY_PRESSED: return("OTHER_KEY_PRESSED");
case CTRLM_VOICE_SESSION_END_REASON_RCU_NEW_SESSION: return("NEW_SESSION");
case CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_ERROR: return("OTHER_ERROR");
case CTRLM_VOICE_SESSION_END_REASON_RCU_MINIMUM_QOS: return("MINIMUM_QOS");
case CTRLM_VOICE_SESSION_END_REASON_RCU_MAX: return("MAX");
}
return(ctrlm_invalid_return(reason));
}
Expand Down
2 changes: 1 addition & 1 deletion src/ctrlm_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ const char *ctrlm_rcu_reverse_cmd_result_str(ctrlm_rcu_reverse_cmd_result_t resu
const char *ctrlm_rcu_ir_remote_types_str(ctrlm_ir_remote_type controller_type);

const char *ctrlm_voice_session_result_str(ctrlm_voice_session_result_t result);
const char *ctrlm_voice_session_end_reason_str(ctrlm_voice_session_end_reason_t reason);
const char *ctrlm_voice_session_end_reason_rcu_str(ctrlm_voice_session_end_reason_rcu_t reason);
const char *ctrlm_voice_session_abort_reason_str(ctrlm_voice_session_abort_reason_t reason);
const char *ctrlm_voice_internal_error_str(ctrlm_voice_internal_error_t error);
const char *ctrlm_voice_reset_type_str(ctrlm_voice_reset_type_t reset_type);
Expand Down
10 changes: 5 additions & 5 deletions src/rf4ce/ctrlm_rf4ce_indication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ ctrlm_hal_result_t ctrlm_voice_ind_data_rf4ce(ctrlm_network_id_t network_id, ctr

msg.controller_id = controller_id;
msg.timestamp = timestamp;
msg.session_end_reason = CTRLM_VOICE_SESSION_END_REASON_DONE;
msg.session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_DONE;
msg.key_code = 0;

ctrlm_main_queue_handler_push(CTRLM_HANDLER_NETWORK, (ctrlm_msg_handler_network_t)&ctrlm_obj_network_t::ind_process_voice_session_stop, &msg, sizeof(msg), NULL, network_id);
Expand All @@ -436,17 +436,17 @@ ctrlm_hal_result_t ctrlm_voice_ind_data_rf4ce(ctrlm_network_id_t network_id, ctr

msg.controller_id = controller_id;
msg.timestamp = timestamp;
msg.session_end_reason = CTRLM_VOICE_SESSION_END_REASON_OTHER_KEY_PRESSED;
msg.session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_KEY_PRESSED;
msg.key_code = data[2];

ctrlm_main_queue_handler_push(CTRLM_HANDLER_NETWORK, (ctrlm_msg_handler_network_t)&ctrlm_obj_network_t::ind_process_voice_session_stop, &msg, sizeof(msg), NULL, network_id);
} else { // CRTLM_VOICE_REMOTE_*
ctrlm_voice_session_end_reason_t session_end_reason = CTRLM_VOICE_SESSION_END_REASON_DONE;
ctrlm_voice_session_end_reason_rcu_t session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_DONE;

if(reason == CRTLM_VOICE_REMOTE_VOICE_END_TIMEOUT_MAXIMUM) {
session_end_reason = CTRLM_VOICE_SESSION_END_REASON_TIMEOUT_MAXIMUM;
session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_TIMEOUT_MAXIMUM;
} else if(reason == CRTLM_VOICE_REMOTE_VOICE_END_MINIMUM_QOS) {
session_end_reason = CTRLM_VOICE_SESSION_END_REASON_MINIMUM_QOS;
session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_MINIMUM_QOS;
}
ctrlm_main_queue_msg_voice_session_stop_t msg = {0};

Expand Down
4 changes: 2 additions & 2 deletions src/rf4ce/ctrlm_rf4ce_network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3890,8 +3890,8 @@ void ctrlm_obj_network_rf4ce_t::ind_process_voice_session_stop(void *data, int s
}

// Check adjacent key press
if(CTRLM_VOICE_SESSION_END_REASON_OTHER_KEY_PRESSED == dqm->session_end_reason && true == is_key_adjacent(dqm->controller_id, dqm->key_code)) {
dqm->session_end_reason = CTRLM_VOICE_SESSION_END_REASON_ADJACENT_KEY_PRESSED;
if(CTRLM_VOICE_SESSION_END_REASON_RCU_OTHER_KEY_PRESSED == dqm->session_end_reason && true == is_key_adjacent(dqm->controller_id, dqm->key_code)) {
dqm->session_end_reason = CTRLM_VOICE_SESSION_END_REASON_RCU_ADJACENT_KEY_PRESSED;
XLOGD_INFO("Adjacent key press. Modifying end reason.");
}

Expand Down
2 changes: 1 addition & 1 deletion src/telemetry/ctrlm_telemetry_markers.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
// <server_message> - server message.
// <result> - flag to indicate if session was successful.
#define MARKER_VOICE_SESSION_STATS "ctrlm.voice.session.stats"
#define MARKER_VOICE_SESSION_STATS_VERSION "1"
#define MARKER_VOICE_SESSION_STATS_VERSION "2"

// End Voice Session Statistics

Expand Down
Loading