//-------------------------------------------------------------------------------------------------- static void SigHandler ( int sigNum ) { LE_INFO("End audioCallPbRecApp test"); DisconnectAllAudio(); le_mcc_HangUpAll(); exit(EXIT_SUCCESS); }
//-------------------------------------------------------------------------------------------------- static void MyCallEventHandler ( le_voicecall_CallRef_t reference, const char* identifier, le_voicecall_Event_t event, void* contextPtr ) { LE_INFO("MyCallEventHandler DestNumber=> %s", identifier); char eventString[EVENT_STRING_LEN]; switch(event) { case LE_VOICECALL_EVENT_CONNECTED: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_CONNECTED"); OpenAudio(reference); } break; case LE_VOICECALL_EVENT_ALERTING: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_ALERTING"); } break; case LE_VOICECALL_EVENT_BUSY: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_BUSY"); } break; case LE_VOICECALL_EVENT_INCOMING: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_INCOMING"); RequestCallRef = reference; } break; case LE_VOICECALL_EVENT_OFFLINE: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_OFFLINE"); } break; case LE_VOICECALL_EVENT_RESOURCE_BUSY: { snprintf(eventString, EVENT_STRING_LEN, "%s", "LE_VOICECALL_EVENT_RESOURCE_BUSY"); } break; case LE_VOICECALL_EVENT_TERMINATED: { le_voicecall_TerminationReason_t reason; le_result_t result; LE_DEBUG("LE_VOICECALL_EVENT_TERMINATED audio Disconnecting"); DisconnectAllAudio(reference); result = le_voicecall_GetTerminationReason(reference, &reason); if (result == LE_OK) { char reasonstring[REASON_STRING_LEN]; switch(reason) { case LE_VOICECALL_TERM_BAD_ADDRESS: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_BAD_ADDRESS"); } break; case LE_VOICECALL_TERM_BUSY: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_BUSY"); } break; case LE_VOICECALL_TERM_LOCAL_ENDED: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_LOCAL_ENDED"); } break; case LE_VOICECALL_TERM_NETWORK_FAIL: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_NETWORK_FAIL"); } break; case LE_VOICECALL_TERM_REMOTE_ENDED: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_REMOTE_ENDED"); } break; case LE_VOICECALL_TERM_UNDEFINED: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "LE_VOICECALL_TERM_UNDEFINED"); } break; default: { snprintf(reasonstring, REASON_STRING_LEN, "%s", "reason not defined"); } break; break; } snprintf(eventString, EVENT_STRING_LEN, "%s reason =%d => %s", "LE_VOICECALL_EVENT_TERMINATED", reason, reasonstring); } else { snprintf(eventString, EVENT_STRING_LEN, "%s reason not found", "LE_VOICECALL_EVENT_TERMINATED"); } le_voicecall_Delete(reference); } break; default: { snprintf(eventString,EVENT_STRING_LEN,"udefined"); LE_INFO("Unknown event"); } break; } fprintf(stderr,"\n=>Destination %s, Event %d => %s\n\n", identifier ,event, eventString); LE_INFO("MyCallEventHandler Event state %d, %s", event,eventString); return; }