//-------------------------------------------------------------------------------------------------- static void MyECallEventHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("eCall TEST: New eCall state: %d for eCall ref.%p", state, eCallRef); AppContext_t * appCtxPtr = (AppContext_t*) contextPtr; LE_INFO("Handler of app id: %d", appCtxPtr->appId); LE_ASSERT(CurrentEcallState == state); LE_ASSERT(CurrentEcallRef == eCallRef); appCtxPtr->ecallState = state; appCtxPtr->ecallRef = eCallRef; switch(state) { case LE_ECALL_STATE_STARTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STARTED."); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_DISCONNECTED."); LE_INFO("Termination reason: %d", le_ecall_GetTerminationReason(eCallRef) ); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); LE_INFO("Send MSD..."); LE_ASSERT(le_ecall_SendMsd(eCallRef) == LE_OK); break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STOPPED."); break; } case LE_ECALL_STATE_RESET: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_RESET."); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_COMPLETED."); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_FAILED."); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_INFO("Check MyECallEventHandler failed, unknown state."); break; } } // Semaphore is used to synchronize the task execution with the core test le_sem_Post(ThreadSemaphore); }
//-------------------------------------------------------------------------------------------------- static void MyECallEventHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("eCall TEST: New eCall state: %d for eCall ref.%p", state, eCallRef); LE_INFO("eCall state from get function %d", le_ecall_GetState(eCallRef)); switch(state) { case LE_ECALL_STATE_STARTED: { IsMsdSentOnce = false; LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STARTED."); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_DISCONNECTED."); LE_INFO("Termination reason: %d", le_ecall_GetTerminationReason(eCallRef) ); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); if (IsMsdSentOnce) { // The MSD has been already sent once, I update the MSD when I receive again the // LE_ECALL_STATE_PSAP_START_IND_RECEIVED event. LE_INFO("UpdateMSD"); LE_ASSERT(le_ecall_ImportMsd(eCallRef, ImportedMsd, sizeof(ImportedMsd)) == LE_OK); if (le_ecall_SendMsd(eCallRef) != LE_OK) { LE_ERROR("Could not send the MSD"); } } else { LE_INFO("1st MSD sending..."); if (le_ecall_SendMsd(eCallRef) == LE_OK) { IsMsdSentOnce = true; } else { LE_ERROR("Could not send the MSD"); } } break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STOPPED."); break; } case LE_ECALL_STATE_RESET: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_RESET."); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_COMPLETED."); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_FAILED."); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_TIMEOUT_T2: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T2."); break; } case LE_ECALL_STATE_TIMEOUT_T3: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T3."); break; } case LE_ECALL_STATE_TIMEOUT_T5: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T5."); break; } case LE_ECALL_STATE_TIMEOUT_T6: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T6."); break; } case LE_ECALL_STATE_TIMEOUT_T7: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T7."); break; } case LE_ECALL_STATE_TIMEOUT_T9: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T9."); break; } case LE_ECALL_STATE_TIMEOUT_T10: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T10."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_INFO("Check MyECallEventHandler failed, unknown state."); break; } } }
//-------------------------------------------------------------------------------------------------- static void ECallStateHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("New eCall state for eCallRef.%p", eCallRef); switch(state) { case LE_ECALL_STATE_STARTED: { LE_INFO("New eCall state is LE_ECALL_STATE_STARTED."); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("New eCall state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("New eCall state is LE_ECALL_STATE_DISCONNECTED."); LE_INFO("Termination reason: %d", le_ecall_GetTerminationReason(eCallRef) ); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("New eCall state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); if (le_ecall_SendMsd(eCallRef) != LE_OK) { LE_ERROR("Could not send the MSD"); } break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("New eCall state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("New eCall state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("New eCall state is LE_ECALL_STATE_STOPPED."); break; } case LE_ECALL_STATE_RESET: { LE_INFO("New eCall state is LE_ECALL_STATE_RESET."); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("New eCall state is LE_ECALL_STATE_COMPLETED."); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("New eCall state is LE_ECALL_STATE_FAILED."); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("New eCall state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_TIMEOUT_T2: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T2."); break; } case LE_ECALL_STATE_TIMEOUT_T3: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T3."); break; } case LE_ECALL_STATE_TIMEOUT_T5: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T5."); break; } case LE_ECALL_STATE_TIMEOUT_T6: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T6."); break; } case LE_ECALL_STATE_TIMEOUT_T7: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T7."); break; } case LE_ECALL_STATE_TIMEOUT_T9: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T9."); break; } case LE_ECALL_STATE_TIMEOUT_T10: { LE_INFO("New eCall state is LE_ECALL_STATE_TIMEOUT_T10."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_WARN("Unknown eCall state %d!", state); break; } } }
//-------------------------------------------------------------------------------------------------- static void ECallStateHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("New eCall state for eCallRef.%p", eCallRef); switch(state) { case LE_ECALL_STATE_STARTED: { LE_INFO("New eCall state is LE_ECALL_STATE_STARTED."); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("New eCall state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("New eCall state is LE_ECALL_STATE_DISCONNECTED."); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("New eCall state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); if (le_ecall_SendMsd(eCallRef) != LE_OK) { LE_ERROR("Could not send the MSD"); } break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("New eCall state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("New eCall state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("New eCall state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("New eCall state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("New eCall state is LE_ECALL_STATE_STOPPED."); break; } case LE_ECALL_STATE_RESET: { LE_INFO("New eCall state is LE_ECALL_STATE_RESET."); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("New eCall state is LE_ECALL_STATE_COMPLETED."); le_ecall_End(eCallRef); le_ecall_Delete(eCallRef); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("New eCall state is LE_ECALL_STATE_FAILED."); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("New eCall state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_WARN("Unknown eCall state %d!", state); break; } } }
//-------------------------------------------------------------------------------------------------- static void MyECallEventHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("eCall TEST: New eCall state: %d for eCall ref.%p", state, eCallRef); switch(state) { case LE_ECALL_STATE_STARTED: { LE_INFO("eCall state is LE_ECALL_STATE_STARTED."); #if (ENABLE_CODEC == 1) LE_INFO("Mute Speaker"); #else LE_INFO("Mute PCM Tx interface."); #endif le_audio_Mute(FeOutRef); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("eCall state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("eCall state is LE_ECALL_STATE_DISCONNECTED."); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("eCall state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("eCall state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); if (le_ecall_SendMsd(eCallRef) != LE_OK) { LE_ERROR("Could not send the MSD"); } break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("eCall state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("eCall state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("eCall state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("eCall state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("eCall state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("eCall state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("eCall state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("eCall state is LE_ECALL_STATE_STOPPED."); #if (ENABLE_CODEC == 1) LE_INFO("Unmute Speaker"); #else LE_INFO("Unmute PCM Tx interface."); #endif le_audio_Unmute(FeOutRef); break; } case LE_ECALL_STATE_RESET: { // PSAP has correctly received the MSD LE_INFO("eCall state is LE_ECALL_STATE_RESET."); #if (ENABLE_CODEC == 1) LE_INFO("Unmute Speaker"); #else LE_INFO("Unmute PCM Tx interface."); #endif le_audio_Unmute(FeOutRef); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("eCall state is LE_ECALL_STATE_COMPLETED."); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("eCall state is LE_ECALL_STATE_FAILED."); #if (ENABLE_CODEC == 1) LE_INFO("Unmute Speaker"); #else LE_INFO("Unmute PCM Tx interface."); #endif le_audio_Unmute(FeOutRef); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("eCall state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_INFO("Unknown eCall state."); break; } } }