Esempio n. 1
0
//--------------------------------------------------------------------------------------------------
static void SigHandler
(
    int sigNum
)
{
    LE_INFO("End audioCallPbRecApp test");
    DisconnectAllAudio();
    le_mcc_HangUpAll();

    exit(EXIT_SUCCESS);
}
Esempio n. 2
0
//--------------------------------------------------------------------------------------------------
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;
}