call_active_list = tcore_call_object_find_by_status(co_call, TCORE_CALL_STATUS_ACTIVE);
tcore_network_get_access_technology(co_network, &result);
- if (result < NETWORK_ACT_UMTS && call_active_list) {
- struct treq_sat_terminal_rsp_data tr;
- dbg("call is busy in not 3G state atc(%d)", result);
-
- memset(&tr, 0, sizeof(struct treq_sat_terminal_rsp_data));
- tr.cmd_number = open_channel_tlv->command_detail.cmd_num;
- tr.cmd_type = open_channel_tlv->command_detail.cmd_type;
-
- memcpy((void*)&tr.terminal_rsp_data.open_channel.command_detail, &open_channel_tlv->command_detail, sizeof(struct tel_sat_cmd_detail_info));
- tr.terminal_rsp_data.open_channel.device_id.src = DEVICE_ID_ME;
- tr.terminal_rsp_data.open_channel.device_id.dest = DEVICE_ID_SIM;
- tr.terminal_rsp_data.open_channel.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
- tr.terminal_rsp_data.open_channel.me_problem_type = ME_PROBLEM_ME_BUSY_ON_CALL;
-
- memcpy((void*)&tr.terminal_rsp_data.open_channel.bearer_desc, &open_channel_tlv->bearer_desc, sizeof(struct tel_sat_bearer_description));
- sat_manager_send_terminal_response(ctx->comm, plg, &tr);
+ if (call_active_list) {
g_slist_free(call_active_list);
- return NULL;
+ if (result < NETWORK_ACT_UMTS) {
+ struct treq_sat_terminal_rsp_data tr;
+ dbg("call is busy in not 3G state atc(%d)", result);
+
+ memset(&tr, 0, sizeof(struct treq_sat_terminal_rsp_data));
+ tr.cmd_number = open_channel_tlv->command_detail.cmd_num;
+ tr.cmd_type = open_channel_tlv->command_detail.cmd_type;
+
+ memcpy((void*)&tr.terminal_rsp_data.open_channel.command_detail, &open_channel_tlv->command_detail, sizeof(struct tel_sat_cmd_detail_info));
+ tr.terminal_rsp_data.open_channel.device_id.src = DEVICE_ID_ME;
+ tr.terminal_rsp_data.open_channel.device_id.dest = DEVICE_ID_SIM;
+ tr.terminal_rsp_data.open_channel.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
+ tr.terminal_rsp_data.open_channel.me_problem_type = ME_PROBLEM_ME_BUSY_ON_CALL;
+
+ memcpy((void*)&tr.terminal_rsp_data.open_channel.bearer_desc, &open_channel_tlv->bearer_desc, sizeof(struct tel_sat_bearer_description));
+ sat_manager_send_terminal_response(ctx->comm, plg, &tr);
+ return NULL;
+ }
}