All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
le_mcc_call_interface.h File Reference
#include "legato.h"
#include "le_mdmDefs_interface.h"
#include "le_audio_interface.h"

Go to the source code of this file.

Typedefs

typedef struct le_mcc_call_Obj * le_mcc_call_ObjRef_t
 

Enumerations

enum  le_mcc_call_Event_t {
  LE_MCC_CALL_EVENT_SETUP, LE_MCC_CALL_EVENT_INCOMING, LE_MCC_CALL_EVENT_ORIGINATING, LE_MCC_CALL_EVENT_ALERTING,
  LE_MCC_CALL_EVENT_EARLY_MEDIA, LE_MCC_CALL_EVENT_CONNECTED, LE_MCC_CALL_EVENT_TERMINATED, LE_MCC_CALL_EVENT_ON_HOLD,
  LE_MCC_CALL_EVENT_TRANSFERED
}
 
enum  le_mcc_call_TerminationReason_t {
  LE_MCC_CALL_TERM_LOCAL_ENDED, LE_MCC_CALL_TERM_REMOTE_ENDED, LE_MCC_CALL_TERM_NETWORK_FAIL, LE_MCC_CALL_TERM_UNASSIGNED_NUMBER,
  LE_MCC_CALL_TERM_NO_ROUTE_TO_DESTINATION, LE_MCC_CALL_TERM_CHANNEL_UNACCEPTABLE, LE_MCC_CALL_TERM_OPERATOR_DETERMINED_BARRING, LE_MCC_CALL_TERM_USER_BUSY,
  LE_MCC_CALL_TERM_NO_USER_RESPONDING, LE_MCC_CALL_TERM_USER_ALERTING_NO_ANSWER, LE_MCC_CALL_TERM_CALL_REJECTED, LE_MCC_CALL_TERM_NUMBER_CHANGED,
  LE_MCC_CALL_TERM_PREEMPTION, LE_MCC_CALL_TERM_DESTINATION_OUT_OF_ORDER, LE_MCC_CALL_TERM_INVALID_NUMBER_FORMAT, LE_MCC_CALL_TERM_FACILITY_REJECTED,
  LE_MCC_CALL_TERM_RESP_TO_STATUS_ENQUIRY, LE_MCC_CALL_TERM_NORMAL_UNSPECIFIED, LE_MCC_CALL_TERM_NO_CIRCUIT_OR_CHANNEL_AVAILABLE, LE_MCC_CALL_TERM_NETWORK_OUT_OF_ORDER,
  LE_MCC_CALL_TERM_TEMPORARY_FAILURE, LE_MCC_CALL_TERM_SWITCHING_EQUIPMENT_CONGESTION, LE_MCC_CALL_TERM_ACCESS_INFORMATION_DISCARDED, LE_MCC_CALL_TERM_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE,
  LE_MCC_CALL_TERM_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED, LE_MCC_CALL_TERM_QOS_UNAVAILABLE, LE_MCC_CALL_TERM_REQUESTED_FACILITY_NOT_SUBSCRIBED, LE_MCC_CALL_TERM_INCOMING_CALLS_BARRED_WITHIN_CUG,
  LE_MCC_CALL_TERM_BEARER_CAPABILITY_NOT_AUTH, LE_MCC_CALL_TERM_BEARER_CAPABILITY_UNAVAILABLE, LE_MCC_CALL_TERM_SERVICE_OPTION_NOT_AVAILABLE, LE_MCC_CALL_TERM_ACM_LIMIT_EXCEEDED,
  LE_MCC_CALL_TERM_BEARER_SERVICE_NOT_IMPLEMENTED, LE_MCC_CALL_TERM_REQUESTED_FACILITY_NOT_IMPLEMENTED, LE_MCC_CALL_TERM_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE, LE_MCC_CALL_TERM_SERVICE_OR_OPTION_NOT_IMPLEMENTED,
  LE_MCC_CALL_TERM_INVALID_TRANSACTION_IDENTIFIER, LE_MCC_CALL_TERM_USER_NOT_MEMBER_OF_CUG, LE_MCC_CALL_TERM_INCOMPATIBLE_DESTINATION, LE_MCC_CALL_TERM_INVALID_TRANSIT_NW_SELECTION,
  LE_MCC_CALL_TERM_SEMANTICALLY_INCORRECT_MESSAGE, LE_MCC_CALL_TERM_INVALID_MANDATORY_INFORMATION, LE_MCC_CALL_TERM_MESSAGE_TYPE_NON_IMPLEMENTED, LE_MCC_CALL_TERM_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,
  LE_MCC_CALL_TERM_INFORMATION_ELEMENT_NON_EXISTENT, LE_MCC_CALL_TERM_CONDITONAL_IE_ERROR, LE_MCC_CALL_TERM_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE, LE_MCC_CALL_TERM_RECOVERY_ON_TIMER_EXPIRY,
  LE_MCC_CALL_TERM_PROTOCOL_ERROR_UNSPECIFIED, LE_MCC_CALL_TERM_INTERWORKING_UNSPECIFIED, LE_MCC_CALL_TERM_PLATFORM_SPECIFIC, LE_MCC_CALL_TERM_UNDEFINED
}
 

Functions

void le_mcc_call_ConnectService (void)
 
void le_mcc_call_DisconnectService (void)
 
void le_mcc_call_Delete (le_mcc_call_ObjRef_t callRef)
 
le_result_t le_mcc_call_Start (le_mcc_call_ObjRef_t callRef)
 
bool le_mcc_call_IsConnected (le_mcc_call_ObjRef_t callRef)
 
le_result_t le_mcc_call_GetRemoteTel (le_mcc_call_ObjRef_t callRef, char *telPtr, size_t telPtrNumElements)
 
le_mcc_call_TerminationReason_t le_mcc_call_GetTerminationReason (le_mcc_call_ObjRef_t callRef)
 
int32_t le_mcc_call_GetPlatformSpecificTerminationCode (le_mcc_call_ObjRef_t callRef)
 
le_audio_StreamRef_t le_mcc_call_GetTxAudioStream (le_mcc_call_ObjRef_t callRef)
 
le_audio_StreamRef_t le_mcc_call_GetRxAudioStream (le_mcc_call_ObjRef_t callRef)
 
le_result_t le_mcc_call_Answer (le_mcc_call_ObjRef_t callRef)
 
le_result_t le_mcc_call_HangUp (le_mcc_call_ObjRef_t callRef)
 
le_result_t le_mcc_call_HangUpAll (void)
 
le_result_t le_mcc_call_GetCallerIdRestrict (le_mcc_call_ObjRef_t callRef, le_onoff_t *clirStatusPtrPtr)
 
le_result_t le_mcc_call_SetCallerIdRestrict (le_mcc_call_ObjRef_t callRef, le_onoff_t clirStatus)
 

Detailed Description

Legato Modem Call Control include file.

Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.

Typedef Documentation

typedef struct le_mcc_call_Obj* le_mcc_call_ObjRef_t

Reference type for managing active calls.

Enumeration Type Documentation

Enumeration of the possible events that may be reported to a call event handler.

Enumerator
LE_MCC_CALL_EVENT_SETUP 

Call is being set up.

LE_MCC_CALL_EVENT_INCOMING 

Incoming call attempt (new call).

LE_MCC_CALL_EVENT_ORIGINATING 

Outgoing call attempt.

LE_MCC_CALL_EVENT_ALERTING 

Far end is now alerting its user (outgoing call).

LE_MCC_CALL_EVENT_EARLY_MEDIA 

Callee has not accepted the call, but a media stream is available.

LE_MCC_CALL_EVENT_CONNECTED 

Call has been established, and is media is active.

LE_MCC_CALL_EVENT_TERMINATED 

Call has terminated.

LE_MCC_CALL_EVENT_ON_HOLD 

Remote party has put the call on hold.

LE_MCC_CALL_EVENT_TRANSFERED 

Remote party transferred or forwarded the call.

Enumeration of the possible reasons for call termination.

Enumerator
LE_MCC_CALL_TERM_LOCAL_ENDED 

Local party ended the call (Normal Call Clearing).

LE_MCC_CALL_TERM_REMOTE_ENDED 

Remote party ended the call (Normal Call Clearing).

LE_MCC_CALL_TERM_NETWORK_FAIL 

Network could not complete the call.

LE_MCC_CALL_TERM_UNASSIGNED_NUMBER 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NO_ROUTE_TO_DESTINATION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_CHANNEL_UNACCEPTABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_OPERATOR_DETERMINED_BARRING 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_USER_BUSY 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NO_USER_RESPONDING 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_USER_ALERTING_NO_ANSWER 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_CALL_REJECTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NUMBER_CHANGED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_PREEMPTION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_DESTINATION_OUT_OF_ORDER 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INVALID_NUMBER_FORMAT 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_FACILITY_REJECTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_RESP_TO_STATUS_ENQUIRY 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NORMAL_UNSPECIFIED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NO_CIRCUIT_OR_CHANNEL_AVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_NETWORK_OUT_OF_ORDER 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_TEMPORARY_FAILURE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_SWITCHING_EQUIPMENT_CONGESTION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_ACCESS_INFORMATION_DISCARDED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_QOS_UNAVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_REQUESTED_FACILITY_NOT_SUBSCRIBED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INCOMING_CALLS_BARRED_WITHIN_CUG 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_BEARER_CAPABILITY_NOT_AUTH 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_BEARER_CAPABILITY_UNAVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_SERVICE_OPTION_NOT_AVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_ACM_LIMIT_EXCEEDED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_BEARER_SERVICE_NOT_IMPLEMENTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_REQUESTED_FACILITY_NOT_IMPLEMENTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_SERVICE_OR_OPTION_NOT_IMPLEMENTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INVALID_TRANSACTION_IDENTIFIER 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_USER_NOT_MEMBER_OF_CUG 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INCOMPATIBLE_DESTINATION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INVALID_TRANSIT_NW_SELECTION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_SEMANTICALLY_INCORRECT_MESSAGE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INVALID_MANDATORY_INFORMATION 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_MESSAGE_TYPE_NON_IMPLEMENTED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INFORMATION_ELEMENT_NON_EXISTENT 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_CONDITONAL_IE_ERROR 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_RECOVERY_ON_TIMER_EXPIRY 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_PROTOCOL_ERROR_UNSPECIFIED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_INTERWORKING_UNSPECIFIED 

cf. 3GPP 24.008 Annex H

LE_MCC_CALL_TERM_PLATFORM_SPECIFIC 

Platform specific code.

LE_MCC_CALL_TERM_UNDEFINED 

Undefined reason.

Function Documentation

le_result_t le_mcc_call_Answer ( le_mcc_call_ObjRef_t  callRef)

Answers incoming call.

Returns
LE_TIMEOUT No response was received from the Modem.
LE_OK The function succeeded.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference.
void le_mcc_call_ConnectService ( void  )

Connect the client to the service

void le_mcc_call_Delete ( le_mcc_call_ObjRef_t  callRef)

Call to free up a call reference.

Note
This frees up the reference, but remains active if other holders reference it.
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call object to free.
void le_mcc_call_DisconnectService ( void  )

Disconnect the client from the service

le_result_t le_mcc_call_GetCallerIdRestrict ( le_mcc_call_ObjRef_t  callRef,
le_onoff_t clirStatusPtrPtr 
)

This function return the Calling Line Identification Restriction (CLIR) status on the specific call.

The output parameter is updated with the CLIR status.

  • LE_ON Disable presentation of own phone number to remote.
  • LE_OFF Enable presentation of own phone number to remote.
Returns
  • LE_OK The function succeed.
  • LE_NOT_FOUND The call reference was not found.
Parameters
[in]callRefThe call reference.
[out]clirStatusPtrPtrthe Calling Line Identification Restriction (CLIR) status
int32_t le_mcc_call_GetPlatformSpecificTerminationCode ( le_mcc_call_ObjRef_t  callRef)

Called to get the platform specific termination code.

Returns
The platform specific termination code.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read from.
le_result_t le_mcc_call_GetRemoteTel ( le_mcc_call_ObjRef_t  callRef,
char *  telPtr,
size_t  telPtrNumElements 
)

Display the remote party telephone number associated with the call.

Output parameter is updated with the telephone number. If the Telephone number string length exceeds the value of 'len' parameter, the LE_OVERFLOW error code is returned and 'telPtr' is used until 'len-1' characters and a null-character is implicitly appended at the end of 'telPtr'.

Returns
LE_OVERFLOW The Telephone number length exceed the maximum length.
LE_OK The function succeeded.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read from.
[out]telPtrThe telephone number string.
[in]telPtrNumElements
le_audio_StreamRef_t le_mcc_call_GetRxAudioStream ( le_mcc_call_ObjRef_t  callRef)

Called to get the received audio stream. All audio received from the other end of the call is received on this stream.

Returns
Received audio stream reference.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read from.
le_mcc_call_TerminationReason_t le_mcc_call_GetTerminationReason ( le_mcc_call_ObjRef_t  callRef)

Called to get the termination reason.

Returns
The termination reason.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read from.
le_audio_StreamRef_t le_mcc_call_GetTxAudioStream ( le_mcc_call_ObjRef_t  callRef)

Called to get the transmitted audio stream. All audio generated on this end of the call is sent on this stream.

Returns
Transmitted audio stream reference.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read from.
le_result_t le_mcc_call_HangUp ( le_mcc_call_ObjRef_t  callRef)

Disconnect, or hang up, the specifed call. Any active call handlers will be notified.

Returns
LE_TIMEOUT No response was received from the Modem.
LE_OK Function succeeded.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call to end.
le_result_t le_mcc_call_HangUpAll ( void  )

This function will disconnect, or hang up all the ongoing calls. Any active call handlers will be notified.

Returns
LE_FAULT The function failed.
LE_TIMEOUT No response was received from the Modem.
LE_OK The function succeeded.
bool le_mcc_call_IsConnected ( le_mcc_call_ObjRef_t  callRef)

Allow the caller to know if the given call is actually connected or not.

Returns
TRUE if the call is connected, FALSE otherwise.
Note
If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefThe call reference to read.
le_result_t le_mcc_call_SetCallerIdRestrict ( le_mcc_call_ObjRef_t  callRef,
le_onoff_t  clirStatus 
)

This function set the Calling Line Identification Restriction (CLIR) status on the specific call. Default value is LE_OFF (Enable presentation of own phone number to remote).

Returns
  • LE_OK The function succeed.
  • LE_NOT_FOUND The call reference was not found.
Parameters
[in]callRefThe call reference.
[in]clirStatusThe Calling Line Identification Restriction (CLIR) status.
le_result_t le_mcc_call_Start ( le_mcc_call_ObjRef_t  callRef)

Start a call attempt.

Asynchronous due to possible time to connect.

As the call attempt proceeds, the profile's registered call event handler receives events.

Returns
LE_OK Function succeed.
  • Note
    As this is an asynchronous call, a successful only confirms a call has been started. Don't assume a call has been successful yet.
    If the caller is passing a bad pointer into this function, it is a fatal error, the function will not return.
Parameters
[in]callRefReference to the call object.