From 69fb6d94532e3c8377584eed1def21be49fec4f5 Mon Sep 17 00:00:00 2001 From: Jungmin Kim Date: Tue, 4 Sep 2012 09:18:47 +0900 Subject: [PATCH 1/1] Fixed N_SE-8702(Swap issue) --- call-engine/core/include/vc-core-callagent.h | 2 -- call-engine/core/vc-core-callagent.c | 2 -- call-engine/core/vc-core-engine.c | 23 +++++++++++++++++++---- call-engine/core/vc-core-tapi-evnt.c | 8 -------- ui/CMakeLists.txt | 2 +- ui/src/vcui-view-elements.c | 1 - 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/call-engine/core/include/vc-core-callagent.h b/call-engine/core/include/vc-core-callagent.h index 47e3db0..9608155 100755 --- a/call-engine/core/include/vc-core-callagent.h +++ b/call-engine/core/include/vc-core-callagent.h @@ -39,11 +39,9 @@ typedef enum { CALL_VC_CA_STATE_WAIT_SPLIT, /**< Waiting for call split state */ CALL_VC_CA_STATE_DROP_CALLBOX, /**< Call drop state */ CALL_VC_CA_STATE_WAIT_DROP, /**< Waiting for drop state */ -#ifdef SWAP_SUPPORT CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE, /**< Wait for swapping activce/hold call state */ CALL_VC_CA_STATE_WAIT_SWAP_HOLD, /**< Wait for swapping held call state */ CALL_VC_CA_STATE_WAIT_SWAP_ACTIVE, /**< Wait for swapping active call state */ -#endif CALL_VC_CA_STATE_WAIT_SWAP, /**< Wait for swap state */ CALL_VC_CA_STATE_WAIT_HOLD, /**< Wait for hold state */ CALL_VC_CA_STATE_WAIT_UNHOLD, /**< Wait for unhold state */ diff --git a/call-engine/core/vc-core-callagent.c b/call-engine/core/vc-core-callagent.c index 91941ec..d600832 100755 --- a/call-engine/core/vc-core-callagent.c +++ b/call-engine/core/vc-core-callagent.c @@ -58,11 +58,9 @@ char *gszcall_vc_ca_state[CALL_VC_CA_STATE_MAX_NUM] = { "CA_STATE_WAIT_SPLIT", "CA_STATE_DROP_CALLBOX", "CA_STATE_WAIT_DROP", -#ifdef SWAP_SUPPORT "CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE", "CA_STATE_WAIT_SWAP_HOLD", "CA_STATE_WAIT_SWAP_ACTIVATE", -#endif /* */ "CA_STATE_WAIT_SWAP", "CA_STATE_WAIT_HOLD", "CA_STATE_WAIT_UNHOLD", diff --git a/call-engine/core/vc-core-engine.c b/call-engine/core/vc-core-engine.c index d7a8bd9..d232cf2 100755 --- a/call-engine/core/vc-core-engine.c +++ b/call-engine/core/vc-core-engine.c @@ -2051,10 +2051,8 @@ voicecall_error_t _vc_core_engine_swap_calls(voicecall_engine_t *pvoicecall_agen } if (TRUE == _vc_core_tapi_rqst_swap_calls(pagent)) { -#ifdef SWAP_SUPPORT +#ifdef VC_WITHOUT_SWAP_CNF _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE); -#else - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_WAIT_SWAP); #endif return ERROR_VOICECALL_NONE; } @@ -2994,7 +2992,24 @@ void _vc_core_engine_active_call_resp_cb(TapiHandle *handle, int result, void *t void _vc_core_engine_swap_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) { - CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_swap_call_resp_cb : %d", result); + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + TelCallSwapCnf_t callSwapInfo; + + CALL_ENG_DEBUG(ENG_DEBUG, "result:%d, handle:%d", result); + + if (TAPI_CAUSE_SUCCESS == result) { + memset(&callSwapInfo, 0, sizeof(TelCallSwapCnf_t)); + memcpy(&callSwapInfo, tapi_data, sizeof(TelCallSwapCnf_t)); + call_handle = callSwapInfo.id; + + _vc_core_cm_swap_group_state(&pagent->call_manager); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_SS_SWAP, call_handle, 0, NULL); + } else { + /*Reset the Call Agent State*/ + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + _vc_core_ca_send_event_to_client(pagent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL); + } } void _vc_core_engine_join_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) diff --git a/call-engine/core/vc-core-tapi-evnt.c b/call-engine/core/vc-core-tapi-evnt.c index 799d4c0..bba6149 100755 --- a/call-engine/core/vc-core-tapi-evnt.c +++ b/call-engine/core/vc-core-tapi-evnt.c @@ -807,7 +807,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p } switch (pcall_agent->callagent_state) { -#ifdef SWAP_SUPPORT case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE: { /* Reset the Agent State */ @@ -815,7 +814,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p _vc_core_ca_send_event_to_client(pcall_agent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL); } break; -#endif case CALL_VC_CA_STATE_WAIT_SWAP: { /* Reset the Agent State */ @@ -908,7 +906,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p } switch (pcall_agent->callagent_state) { -#ifdef SWAP_SUPPORT case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE: { int held_call_num = 0; @@ -928,7 +925,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p } } break; -#endif case CALL_VC_CA_STATE_WAIT_SWAP: { /*Always reset the agent state as the event for this wait state is arrived */ @@ -1001,7 +997,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_ if (TAPI_CAUSE_SUCCESS != status) { switch (pcall_agent->callagent_state) { -#ifdef SWAP_SUPPORT case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE: { /*Reset the Agent State*/ @@ -1009,7 +1004,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_ _vc_core_ca_send_event_to_client(pcall_agent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL); } break; -#endif case CALL_VC_CA_STATE_WAIT_SWAP: { /*Reset the Call Agent State*/ @@ -1041,7 +1035,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_ CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d, GP_Index:%d, Cur Gp State: %d", call_handle, index, cur_grp_state); switch (pcall_agent->callagent_state) { -#ifdef SWAP_SUPPORT case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE: { int held_call_num = 0; @@ -1061,7 +1054,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_ } } break; -#endif case CALL_VC_CA_STATE_WAIT_SWAP: { /* Always reset the agent state as the event for the wait state is arrived */ diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt index 6c39323..da44636 100755 --- a/ui/CMakeLists.txt +++ b/ui/CMakeLists.txt @@ -60,9 +60,9 @@ MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") ADD_DEFINITIONS("-DCALL_DEBUG_ON_DLOG") # for Engine -ADD_DEFINITIONS("-DSWAP_SUPPORT") ADD_DEFINITIONS("-DCALL_VC_SEND_SAT_RESPONSE_ORIG") ADD_DEFINITIONS("-DRELEASE_ALL_AND_ACCEPT_SUPPORT") +#ADD_DEFINITIONS("-DVC_WITHOUT_SWAP_CNF") # for SOUND diff --git a/ui/src/vcui-view-elements.c b/ui/src/vcui-view-elements.c index cc56ac5..95dd812 100755 --- a/ui/src/vcui-view-elements.c +++ b/ui/src/vcui-view-elements.c @@ -61,7 +61,6 @@ void _vcui_swap_btn_cb(void *data, Evas_Object *obj, void *event_info) vcui_app_call_data_t *ad = vd->app_data; ad->bholdisleft = ad->bswapped; - _vcui_view_popup_load(_("IDS_CALL_POP_SWAPPED"), POPUP_TIMEOUT_LONG, EINA_FALSE); vcall_engine_process_hold_call(); } -- 2.7.4