# Call

**Detailed Description**

This section contains APIs related to Call.

- *group* Telematics\_call

    - Typedefs

- using MakeCallCallback = std::function&lt;void([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error, std::shared\_ptr&lt;ICall&gt; call)&gt;

    - This function is called with the response to make normal call and emergency call.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param error:

    - **[out]** ErrorCode

- Param call:

    - **[out]** Pointer to Call object or nullptr in case of failure

- using ECallHlapTimerStatusCallback = std::function&lt;void([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error, int phoneId, ECallHlapTimerStatus timersStatus)&gt;

    - This function is called with response to request for eCall High Level Application Protocol(HLAP) timers status.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param error:

    - **[out]** ErrorCode

- Param phoneId:

    - **[out]** Represents the phone corresponding to which the response is being reported.

- Param timersStatus:

    - **[out]** [ECallHlapTimerStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00643)

- using EcbmStatusCallback = std::function&lt;void([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[EcbMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7EcbModeE) ecbMode, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called with response to request for ECBM(requestEcbm API).

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param ecbMode:

    - **[out]** Indicates the status of the ECBM. [EcbMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga2f29f4f9131dcd0b824a36b8fa7c4b8d.html#a00016_1ga2f29f4f9131dcd0b824a36b8fa7c4b8d)

- Param error:

    - **[out]** ErrorCode

- using ECallHlapTimerCallback = std::function&lt;void([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error, uint32\_t timeDuration)&gt;

    - This function is called with the response to request for the HLAP timer configuration.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param error:

    - **[out]** ErrorCode

- Param timeDuration:

    - **[out]** Represents the time duration for the HLAP timer.

Enums

- enum CallDirection

    - Defines type of call like incoming, outgoing and none.

*Values:*

- enumerator INCOMING

    - 

- enumerator OUTGOING

    - 

- enumerator NONE

    -

- enum CallState

    - Defines the states a call can be in

*Values:*

- enumerator CALL\_IDLE

    - idle call, default state of a newly created call object

- enumerator CALL\_ACTIVE

    - active call

- enumerator CALL\_ON\_HOLD

    - on hold call

- enumerator CALL\_DIALING

    - out going call, in dialing state and not yet connected, MO Call only

- enumerator CALL\_INCOMING

    - incoming call, not yet answered

- enumerator CALL\_WAITING

    - waiting call

- enumerator CALL\_ALERTING

    - alerting call, MO Call only

- enumerator CALL\_ENDED

    - call ended / disconnected

- enum CallType

    - Defines call type

*Values:*

- enumerator UNKNOWN

    - Unknown; information is not available

- enumerator VOICE\_CALL

    - Normal voice call or TPS eCall

- enumerator VOICE\_IP\_CALL

    - Normal Voice over IP (VoIP) call or TPS eCall over IP

- enumerator EMERGENCY\_CALL

    - Non-automotive emergency call, automotive eCall or NGeCall

- enumerator EMERGENCY\_IP\_CALL

    - Non-automotive emergency Voice over IP (VoIP) call

- enum CallEndCause

    - Reason for the recently terminated call (either normally ended or failed)

*Values:*

- enumerator UNOBTAINABLE\_NUMBER

    - Unassigned(unallocated) number

- enumerator NO\_ROUTE\_TO\_DESTINATION

    - No route to destination

- enumerator CHANNEL\_UNACCEPTABLE

    - Channel unacceptable

- enumerator OPERATOR\_DETERMINED\_BARRING

    - Operator determined barring

- enumerator NORMAL

    - Normal call barring

- enumerator BUSY

    - User busy

- enumerator NO\_USER\_RESPONDING

    - No user responding

- enumerator NO\_ANSWER\_FROM\_USER

    - User alerting, no answer

- enumerator NOT\_REACHABLE

    - Not reachable

- enumerator CALL\_REJECTED

    - Call rejected

- enumerator NUMBER\_CHANGED

    - Number changed

- enumerator PREEMPTION

    - Pre-emption

- enumerator DESTINATION\_OUT\_OF\_ORDER

    - Destination out of order

- enumerator INVALID\_NUMBER\_FORMAT

    - Invalid number format (incomplete number)

- enumerator FACILITY\_REJECTED

    - Facility rejected

- enumerator RESP\_TO\_STATUS\_ENQUIRY

    - Response to STATUS ENQUIRY

- enumerator NORMAL\_UNSPECIFIED

    - Normal, unspecified

- enumerator CONGESTION

    - No circuit/channel available

- enumerator NETWORK\_OUT\_OF\_ORDER

    - Network out of order

- enumerator TEMPORARY\_FAILURE

    - Temporary failure

- enumerator SWITCHING\_EQUIPMENT\_CONGESTION

    - Switching equipment congestion

- enumerator ACCESS\_INFORMATION\_DISCARDED

    - Access information discarded

- enumerator REQUESTED\_CIRCUIT\_OR\_CHANNEL\_NOT\_AVAILABLE

    - Requested circuit/channel not available

- enumerator RESOURCES\_UNAVAILABLE\_OR\_UNSPECIFIED

    - Resource unavailable, unspecified

- enumerator QOS\_UNAVAILABLE

    - Quality of service unavailable

- enumerator REQUESTED\_FACILITY\_NOT\_SUBSCRIBED

    - Requested facility not subscribed

- enumerator INCOMING\_CALLS\_BARRED\_WITHIN\_CUG

    - Incoming calls barred within the CUG

- enumerator BEARER\_CAPABILITY\_NOT\_AUTHORIZED

    - Bearer capability not authorized

- enumerator BEARER\_CAPABILITY\_UNAVAILABLE

    - Bearer capability not presently available

- enumerator SERVICE\_OPTION\_NOT\_AVAILABLE

    - Service or option not available, unspecified

- enumerator BEARER\_SERVICE\_NOT\_IMPLEMENTED

    - Bearer service not implemented

- enumerator ACM\_LIMIT\_EXCEEDED

    - ACM equal to or greater than ACMmax

- enumerator REQUESTED\_FACILITY\_NOT\_IMPLEMENTED

    - Requested facility not implemented

- enumerator ONLY\_DIGITAL\_INFORMATION\_BEARER\_AVAILABLE

    - Only restricted digital information bearer capability is available

- enumerator SERVICE\_OR\_OPTION\_NOT\_IMPLEMENTED

    - Service or option not implemented, unspecified

- enumerator INVALID\_TRANSACTION\_IDENTIFIER

    - Invalid transaction identifier value

- enumerator USER\_NOT\_MEMBER\_OF\_CUG

    - User not member of CUG

- enumerator INCOMPATIBLE\_DESTINATION

    - Incompatible destination

- enumerator INVALID\_TRANSIT\_NW\_SELECTION

    - Invalid transit network selection

- enumerator SEMANTICALLY\_INCORRECT\_MESSAGE

    - Semantically incorrect message

- enumerator INVALID\_MANDATORY\_INFORMATION

    - Invalid mandatory information

- enumerator MESSAGE\_TYPE\_NON\_IMPLEMENTED

    - Message type non-existent or not implemented

- enumerator MESSAGE\_TYPE\_NOT\_COMPATIBLE\_WITH\_PROTOCOL\_STATE

    - Message type not compatible with protocol state

- enumerator INFORMATION\_ELEMENT\_NON\_EXISTENT

    - Information element non-existent or not implemented

- enumerator CONDITIONAL\_IE\_ERROR

    - Conditional IE error

- enumerator MESSAGE\_NOT\_COMPATIBLE\_WITH\_PROTOCOL\_STATE

    - Message not compatible with protocol state

- enumerator RECOVERY\_ON\_TIMER\_EXPIRED

    - Recovery on timer expiry

- enumerator PROTOCOL\_ERROR\_UNSPECIFIED

    - Protocol error, unspecified

- enumerator INTERWORKING\_UNSPECIFIED

    - Interworking, unspecified

- enumerator CALL\_BARRED

    - Call barred

- enumerator FDN\_BLOCKED

    - FDN blocked

- enumerator IMSI\_UNKNOWN\_IN\_VLR

    - Incorrect IMSI

- enumerator IMEI\_NOT\_ACCEPTED

    - IMEI not accepted

- enumerator DIAL\_MODIFIED\_TO\_USSD

    - DIAL request modified to USSD

- enumerator DIAL\_MODIFIED\_TO\_SS

    - DIAL request modified to SS

- enumerator DIAL\_MODIFIED\_TO\_DIAL

    - DIAL request modified to DIAL with different data

- enumerator RADIO\_OFF

    - Radio is OFF

- enumerator OUT\_OF\_SERVICE

    - No cellular coverage

- enumerator NO\_VALID\_SIM

    - No valid SIM is present

- enumerator RADIO\_INTERNAL\_ERROR

    - Internal error at Modem

- enumerator NETWORK\_RESP\_TIMEOUT

    - No response from network

- enumerator NETWORK\_REJECT

    - Explicit network reject

- enumerator RADIO\_ACCESS\_FAILURE

    - RRC connection failure. Eg.RACH

- enumerator RADIO\_LINK\_FAILURE

    - Radio Link Failure

- enumerator RADIO\_LINK\_LOST

    - Radio link lost due to poor coverage

- enumerator RADIO\_UPLINK\_FAILURE

    - Radio uplink failure

- enumerator RADIO\_SETUP\_FAILURE

    - RRC connection setup failure

- enumerator RADIO\_RELEASE\_NORMAL

    - RRC connection release, normal

- enumerator RADIO\_RELEASE\_ABNORMAL

    - RRC connection release, abnormal

- enumerator ACCESS\_CLASS\_BLOCKED

    - Access class barring

- enumerator NETWORK\_DETACH

    - Explicit network detach

- enumerator EMERGENCY\_TEMP\_FAILURE

    - Emergency redial temporary failure

- enumerator EMERGENCY\_PERM\_FAILURE

    - Emergency redial permanent failure

- enumerator HO\_NOT\_FEASIBLE

    - Hand over not feasible

- enumerator USER\_BUSY

    - User busy

- enumerator USER\_REJECT

    - User reject

- enumerator LOW\_BATTERY

    - Battery is low

- enumerator BLACKLISTED\_CALL\_ID

    - Blacklisted caller id

- enumerator CS\_RETRY\_REQUIRED

    - Retry CS call, VoLTE service can’t be provided by the network or remote end

- enumerator CDMA\_LOCKED\_UNTIL\_POWER\_CYCLE

    - MS is locked until next power cycle

- enumerator CDMA\_DROP

    - Drop call

- enumerator CDMA\_INTERCEPT

    - INTERCEPT order received, MS state idle entered

- enumerator CDMA\_REORDER

    - MS has been redirected, call is cancelled

- enumerator CDMA\_SO\_REJECT

    - Service option rejection

- enumerator CDMA\_RETRY\_ORDER

    - Requested service is rejected, retry delay is set

- enumerator CDMA\_ACCESS\_FAILURE

    - Unable to obtain access to the CDMA system

- enumerator CDMA\_PREEMPTED

    - Not a preempted call

- enumerator CDMA\_NOT\_EMERGENCY

    - For non-emergency number dialed during emergency callback mode

- enumerator CDMA\_ACCESS\_BLOCKED

    - CDMA network access probes blocked

- enumerator NETWORK\_UNAVAILABLE

    - Network unavailable

- enumerator FEATURE\_UNAVAILABLE

    - Feature unavailable

- enumerator SIP\_ERROR

    - SIP internal error

- enumerator MISC

    - SIP miscellaneous error

- enumerator ANSWERED\_ELSEWHERE

    - MT call has ended due to a release from the network because the call was answered elsewhere

- enumerator PULL\_OUT\_OF\_SYNC

    - MultiEndpoint - call pull request has failed

- enumerator CAUSE\_CALL\_PULLED

    - MultiEndpoint - call has been pulled from primary to secondary

- enumerator SIP\_REDIRECTED

    - Request is redirected

- enumerator SIP\_BAD\_REQUEST

    - Bad request

- enumerator SIP\_FORBIDDEN

    - Forbidden

- enumerator SIP\_NOT\_FOUND

    - Remote URI not found

- enumerator SIP\_NOT\_SUPPORTED

    - Not supported

- enumerator SIP\_REQUEST\_TIMEOUT

    - Request timed out

- enumerator SIP\_TEMPORARILY\_UNAVAILABLE

    - Temporarily unavailable

- enumerator SIP\_BAD\_ADDRESS

    - Address incomplete

- enumerator SIP\_BUSY

    - User busy

- enumerator SIP\_REQUEST\_CANCELLED

    - Request(call) rejected

- enumerator SIP\_NOT\_ACCEPTABLE

    - Not acceptable

- enumerator SIP\_NOT\_REACHABLE

    - Not reachable

- enumerator SIP\_SERVER\_INTERNAL\_ERROR

    - Server internal error

- enumerator SIP\_SERVER\_NOT\_IMPLEMENTED

    - Server not implemented

- enumerator SIP\_SERVER\_BAD\_GATEWAY

    - Server bad gateway

- enumerator SIP\_SERVICE\_UNAVAILABLE

    - Service unavailable

- enumerator SIP\_SERVER\_TIMEOUT

    - Server time out

- enumerator SIP\_SERVER\_VERSION\_UNSUPPORTED

    - Server version not supported

- enumerator SIP\_SERVER\_MESSAGE\_TOOLARGE

    - Server message is too large

- enumerator SIP\_SERVER\_PRECONDITION\_FAILURE

    - Server pre-condition failure

- enumerator SIP\_USER\_REJECTED

    - User(call) rejected

- enumerator SIP\_GLOBAL\_ERROR

    - Global error

- enumerator MEDIA\_INIT\_FAILED

    - Media resource initialization failure

- enumerator MEDIA\_NO\_DATA

    - RTP timeout(no audio/video traffic in the session)

- enumerator MEDIA\_NOT\_ACCEPTABLE

    - Media is not supported

- enumerator MEDIA\_UNSPECIFIED\_ERROR

    - Media unspecified error

- enumerator HOLD\_RESUME\_FAILED

    - Resume failed for hold call

- enumerator HOLD\_RESUME\_CANCELED

    - Resume cancelled for hold call

- enumerator HOLD\_REINVITE\_COLLISION

    - Reinvite collision for hold call

- enumerator SIP\_ALTERNATE\_EMERGENCY\_CALL

    - Alternate emergency call

- enumerator NO\_CSFB\_IN\_CS\_ROAM

    - CS fallback in roaming not allowed

- enumerator SRV\_NOT\_REGISTERED

    - Service not registered

- enumerator CALL\_TYPE\_NOT\_ALLOWED

    - Call type not allowed

- enumerator EMRG\_CALL\_ONGOING

    - Emergency call is in progress

- enumerator CALL\_SETUP\_ONGOING

    - Call setup is in progress

- enumerator MAX\_CALL\_LIMIT\_REACHED

    - Maximum call limit reached

- enumerator UNSUPPORTED\_SIP\_HDRS

    - Unsupported sip header

- enumerator CALL\_TRANSFER\_ONGOING

    - Call transfer is in progress

- enumerator PRACK\_TIMEOUT

    - Memory allocation failure or RTP open failure

- enumerator QOS\_FAILURE

    - Call failed due to lack of dedicated bearer

- enumerator ONGOING\_HANDOVER

    - Call rejected due to pending handover

- enumerator VT\_WITH\_TTY\_NOT\_ALLOWED

    - TTY and VT are not supported together

- enumerator CALL\_UPGRADE\_ONGOING

    - Upgrade request is in progress

- enumerator CONFERENCE\_WITH\_TTY\_NOT\_ALLOWED

    - Call from conference server received when TTY is ON

- enumerator CALL\_CONFERENCE\_ONGOING

    - Conference call is ongoing

- enumerator VT\_WITH\_AVPF\_NOT\_ALLOWED

    - VT call with AVPF

- enumerator ENCRYPTION\_CALL\_ONGOING

    - Encrypted call could not coexist with other calls

- enumerator CALL\_ONGOING\_CW\_DISABLED

    - Call waiting disabled during incoming call

- enumerator CALL\_ON\_OTHER\_SUB

    - Active call on other subscription

- enumerator ONE\_X\_COLLISION

    - CDMA collision

- enumerator UI\_NOT\_READY

    - UI is not ready during the incoming call

- enumerator CS\_CALL\_ONGOING

    - CS call ongoing when incoming call is received

- enumerator REJECTED\_ELSEWHERE

    - One of the devices (interconnected endpoints) rejected the call

- enumerator USER\_REJECTED\_SESSION\_MODIFICATION

    - Upgrade/downgrade rejected

- enumerator USER\_CANCELLED\_SESSION\_MODIFICATION

    - Upgrade/downgrade cancelled

- enumerator SESSION\_MODIFICATION\_FAILED

    - Upgrade/downgrade failed

- enumerator SIP\_UNAUTHORIZED

    - Unauthorized

- enumerator SIP\_PAYMENT\_REQUIRED

    - Payment required

- enumerator SIP\_METHOD\_NOT\_ALLOWED

    - Method requested in the address line was not allowed for the address identified by the request-URI

- enumerator SIP\_PROXY\_AUTHENTICATION\_REQUIRED

    - Client must first authenticate with a proxy

- enumerator SIP\_REQUEST\_ENTITY\_TOO\_LARGE

    - Request entity body is larger than what the server is willing to process

- enumerator SIP\_REQUEST\_URI\_TOO\_LARGE

    - Server is refusing to service because the request-URI is longer than the server willing to interpret

- enumerator SIP\_EXTENSION\_REQUIRED

    - Extension to process a request is not listed in the supported header field in the request

- enumerator SIP\_INTERVAL\_TOO\_BRIEF

    - Expiration time of the resource refreshed by the request is too short

- enumerator SIP\_CALL\_OR\_TRANS\_DOES\_NOT\_EXIST

    - Request received by a UAS does not match any existing dialog or transaction

- enumerator SIP\_LOOP\_DETECTED

    - Server detected a loop

- enumerator SIP\_TOO\_MANY\_HOPS

    - Request received has Max-Forwards header field at 0

- enumerator SIP\_AMBIGUOUS

    - Requested URI was ambiguous

- enumerator SIP\_REQUEST\_PENDING

    - Request was received by a UAS that had a pending request within the same dialog

- enumerator SIP\_UNDECIPHERABLE

    - Request has an encrypted MIME body for which the recipient does not possess an appropriate decryption key

- enumerator RETRY\_ON\_IMS\_WITHOUT\_RTT

    - Call should be tried on IMS with RTT disabled

- enumerator MAX\_PS\_CALLS

    - Maximum PS calls exceeded

- enumerator SIP\_MULTIPLE\_CHOICES

    - Multiple choices

- enumerator SIP\_MOVED\_PERMANENTLY

    - Moved permanently

- enumerator SIP\_MOVED\_TEMPORARILY

    - Moved temporarily

- enumerator SIP\_USE\_PROXY

    - Use proxy

- enumerator SIP\_ALTERNATE\_SERVICE

    - Alternate service

- enumerator SIP\_UNSUPPORTED\_URI\_SCHEME

    - Unsupported URI scheme

- enumerator SIP\_REMOTE\_UNSUPP\_MEDIA\_TYPE

    - Unsupported media type

- enumerator SIP\_BAD\_EXTENSION

    - Bad extension

- enumerator DSDA\_CONCURRENT\_CALL\_NOT\_POSSIBLE

    - Concurrent call is not possible

- enumerator EPSFB\_FAILURE

    - Call ended due to evolved packet system fallback (EPSFB) failure

- enumerator TWAIT\_EXPIRED

    - Call ended due to twait timer expired

- enumerator TCP\_CONNECTION\_REQ

    - Call ended due to TCP connection

- enumerator THERMAL\_EMERGENCY

    - Thermal emergency

- enumerator CLIENT\_END

    - Client end

- enumerator INCOM\_REJ

    - Incoming call rejection

- enumerator NO\_GATEWAY\_SRV

    - No gateway srv

- enumerator NO\_FULL\_SRV

    - No full srv

- enumerator CDMA\_MAX\_ACCESS\_PROBE

    - CDMA max access probe

- enumerator CDMA\_PSIST\_N

    - CDMA persistence test failure

- enumerator USSD\_BUSY

    - USSD busy

- enumerator REJECTED\_BY\_USER

    - Rejected by user

- enumerator NORMAL\_CALL\_CLEARING

    - Normal call clearing

- enumerator NORMAL\_CALL\_RINGBACK\_TIMEOUT

    - Normal call ringback timeout

- enumerator UIM\_NOT\_PRESENT

    - Uim not present

- enumerator INCOMPATIBLE

    - Incompatible

- enumerator ALREADY\_IN\_TC

    - Already in tc

- enumerator USER\_CALL\_ORIG\_DURING\_GPS

    - User call orig during gps

- enumerator USER\_CALL\_ORIG\_DURING\_SMS

    - User call orig during sms

- enumerator USER\_CALL\_ORIG\_DURING\_DATA

    - User call orig during data

- enumerator TRM\_REQ\_FAIL

    - Trm req fail

- enumerator CALL\_CANNOT\_BE\_IDENTIFIED

    - Call cannot be identified

- enumerator INCORRECT\_SEMANTICS\_IN\_MESSAGE

    - Incorrect semantics in message

- enumerator MANDATORY\_INFORMATION\_INVALID

    - Mandatory information invalid

- enumerator WRONG\_STATE

    - Wrong state

- enumerator INVALID\_USER\_DATA

    - Invalid user data

- enumerator CNM\_MM\_REL\_PENDING

    - Cnm mm rel pending

- enumerator ACCESS\_STRATUM\_REJ\_LOW\_LEVEL\_FAIL

    - Access stratum rej low level fail

- enumerator ACCESS\_STRATUM\_REJ\_LOW\_LEVEL\_FAIL\_REDIAL\_NOT\_ALLOWED

    - Access stratum rej low level fail redial not allowed

- enumerator ACCESS\_STRATUM\_REJ\_LOW\_LEVEL\_IMMED\_RETRY

    - Access stratum rej low level immed retry

- enumerator ACCESS\_STRATUM\_REJ\_ABORT\_RADIO\_UNAVAILABLE

    - Access stratum rej abort radio unavailable

- enumerator CCS\_NOT\_SUPPORTED\_BY\_BS

    - Ccs not supported by bs

- enumerator REJECTED\_BY\_BS

    - Rejected by bs

- enumerator ACC\_FAIL\_REJ\_ORD

    - Acc fail rej ord

- enumerator ACC\_FAIL\_RETRY\_ORD

    - Acc fail retry ord

- enumerator UNKNOWN\_SUBSCRIBER

    - Unknown subscriber

- enumerator ILLEGAL\_SUBSCRIBER

    - Illegal subscriber

- enumerator BEARER\_SERVICE\_NOT\_PROVISIONED

    - Bearer service not provisioned

- enumerator TELE\_SERVICE\_NOT\_PROVISIONED

    - Tele service not provisioned

- enumerator ILLEGAL\_EQUIPMENT

    - Illegal equipment

- enumerator ILLEGAL\_SS\_OPERATION

    - Illegal ss operation

- enumerator SS\_ERROR\_STATUS

    - Ss error status

- enumerator SS\_NOT\_AVAILABLE

    - Ss not available

- enumerator SS\_SUBSCRIPTION\_VIOLATION

    - Ss subscription violation

- enumerator SS\_INCOMPATIBILITY

    - Ss incompatibility

- enumerator FACILITY\_NOT\_SUPPORTED

    - Facility not supported

- enumerator ABSENT\_SUBSCRIBER

    - Absent subscriber

- enumerator SHORT\_TERM\_DENIAL

    - Short term denial

- enumerator LONG\_TERM\_DENIAL

    - Long term denial

- enumerator SYSTEM\_FAILURE

    - System failure

- enumerator IMSI\_UNKNOWN\_IN\_HLR

    - Imsi unknown in hlr

- enumerator ILLEGAL\_MS

    - Illegal ms

- enumerator ILLEGAL\_ME

    - Illegal me

- enumerator PLMN\_NOT\_ALLOWED

    - Plmn not allowed

- enumerator LOCATION\_AREA\_NOT\_ALLOWED

    - Location area not allowed

- enumerator ROAMING\_NOT\_ALLOWED\_IN\_THIS\_LOCATION\_AREA

    - Roaming not allowed in this location area

- enumerator NO\_SUITABLE\_CELLS\_IN\_LOCATION\_AREA

    - No suitable cells in location area

- enumerator NETWORK\_FAILURE

    - Network failure

- enumerator MAC\_FAILURE

    - Mac failure

- enumerator SYNCH\_FAILURE

    - Synch failure

- enumerator GSM\_AUTHENTICATION\_UNACCEPTABLE

    - Gsm authentication unacceptable

- enumerator SERVICE\_NOT\_SUBSCRIBED

    - Service not subscribed

- enumerator ABORT\_MSG\_RECEIVED

    - Abort msg received

- enumerator SERVICE\_OPTION\_NOT\_SUPPORTED

    - Service option not supported

- enumerator AS\_REJ\_LRRC\_CONN\_EST\_FAILURE\_CONN\_REJECT

    - As rej lrrc conn est failure conn reject

- enumerator EMM\_REJ\_SERVICE\_REQ\_FAILURE\_LTE\_NW\_REJECT

    - Emm rej service req failure lte nw reject

- enumerator EMM\_REJ\_SERVICE\_REQ\_FAILURE\_CS\_DOMAIN\_NOT\_AVAILABLE

    - Emm rej service req failure cs domain not available

- enumerator EMM\_REJ

    - Emm rej

- enumerator NETWORK\_RESP\_TIMEOUT\_FROM\_BS

    - Network resp timeout from bs

- enumerator NETWORK\_RESP\_TIMEOUT\_T42

    - Network resp timeout t42

- enumerator NETWORK\_RESP\_TIMEOUT\_T40

    - Network resp timeout t40

- enumerator NETWORK\_RESP\_TIMEOUT\_T50

    - Network resp timeout t50

- enumerator NETWORK\_RESP\_TIMEOUT\_T51

    - Network resp timeout t51

- enumerator NETWORK\_RESP\_TIMEOUT\_BAD\_FL

    - Network resp timeout bad fl

- enumerator NETWORK\_RESP\_TIMEOUT\_T41

    - Network resp timeout t41

- enumerator NETWORK\_RESP\_TIMEOUT\_T3230

    - Network resp timeout t3230

- enumerator NETWORK\_RESP\_TIMEOUT\_T303

    - Network resp timeout t303

- enumerator NETWORK\_RESP\_TIMEOUT\_MT\_CSFB

    - Network resp timeout mt csfb

- enumerator NETWORK\_RESP\_TIMEOUT\_T3417\_EXT

    - Network resp timeout t3417 ext

- enumerator NETWORK\_RESP\_TIMEOUT\_T3417

    - Network resp timeout t3417

- enumerator RADIO\_ACCESS\_FAILURE\_REJ\_RR\_RANDOM

    - Radio access failure rej rr random

- enumerator RADIO\_ACCESS\_ESR\_FAILURE

    - Radio access esr failure

- enumerator RADIO\_ACCESS\_CS\_ACQ\_FAILURE

    - Radio access cs acq failure

- enumerator ACCESS\_BARRED

    - Access barred

- enumerator SSAC\_REJECT

    - Ssac reject

- enumerator RADIO\_RELEASE\_NORMAL\_REJ\_RR\_REL

    - Radio release normal rej rr rel

- enumerator RADIO\_RELEASE\_NORMAL\_REJ\_RRC\_REL

    - Radio release normal rej rrc rel

- enumerator RADIO\_RELEASE\_NORMAL\_OOS\_DURING\_CRE

    - Radio release normal oos during cre

- enumerator RADIO\_RELEASE\_ABNORMAL\_CLOSE\_SESSION\_IND

    - Radio release abnormal close session ind

- enumerator RADIO\_RELEASE\_ABNORMAL\_OPEN\_SESSION\_FAILURE

    - Radio release abnormal open session failure

- enumerator RADIO\_RELEASE\_ABNORMAL\_CRE\_FAILURE

    - Radio release abnormal cre failure

- enumerator RADIO\_RELEASE\_ABNORMAL\_SIB\_READ\_ERROR

    - Radio release abnormal sib read error

- enumerator RADIO\_RELEASE\_ABNORMAL\_ABORTED\_IRAT\_SUCCESS

    - Radio release abnormal aborted irat success

- enumerator RADIO\_UPLINK\_FAILURE\_TXN

    - Radio uplink failure txn

- enumerator RADIO\_UPLINK\_FAILURE\_HO

    - Radio uplink failure ho

- enumerator RADIO\_UPLINK\_FAILURE\_CTRL\_NOT\_CONN

    - Radio uplink failure ctrl not conn

- enumerator RADIO\_LINK\_FAILURE\_UL\_DATA\_CNF

    - Radio link failure ul data cnf

- enumerator RADIO\_LINK\_FAILURE\_EST\_FAILURE

    - Radio link failure est failure

- enumerator RADIO\_LINK\_FAILURE\_CONN\_REL\_RLF

    - Radio link failure conn rel rlf

- enumerator RADIO\_LINK\_FAILURE\_REJ

    - Radio link failure rej

- enumerator RADIO\_LINK\_FAILURE\_DURING\_CC\_DISCONNECT

    - Radio link failure during cc disconnect

- enumerator RADIO\_SETUP\_FAILURE\_REJ

    - Radio setup failure rej

- enumerator RADIO\_SETUP\_FAILURE\_ABORTED

    - Radio setup failure aborted

- enumerator RADIO\_SETUP\_FAILURE\_CELL\_RESEL

    - Radio setup failure cell resel

- enumerator RADIO\_SETUP\_FAILURE\_CONFIG\_FAILURE

    - Radio setup failure config failure

- enumerator RADIO\_SETUP\_FAILURE\_TIMER\_EXPIRED

    - Radio setup failure timer expired

- enumerator RADIO\_SETUP\_FAILURE\_SI\_FAILURE

    - Radio setup failure si failure

- enumerator NETWORK\_DETACH\_WITH\_OUT\_REATTACH

    - Network detach with out reattach

- enumerator PDN\_DISCONNECTED

    - Pdn disconnected

- enumerator CSFB\_FAILURE\_CALL\_REL\_NW\_REL\_ODR

    - 1xcsfb failure call rel nw rel odr

- enumerator CSFB\_FAILURE\_CALL\_REL\_REG\_REJ

    - 1xcsfb failure call rel reg rej

- enumerator CSFB\_FAILURE\_RETRY\_EXHAUST

    - 1xcsfb failure retry exhaust

- enumerator CSFB\_FAILURE\_USER\_CALL\_END

    - 1xcsfb failure user call end

- enumerator CSFB\_FAILURE\_SRCH\_TT\_FAIL

    - 1xcsfb failure srch tt fail

- enumerator CSFB\_FAILURE\_TCH\_INIT\_FAIL

    - 1xcsfb failure tch init fail

- enumerator CSFB\_FAIL\_ACQ\_FAIL

    - 1xcsfb fail acq fail

- enumerator CSFB\_FAIL\_CALL\_REL\_INTERCEPT\_ORDER

    - 1xcsfb fail call rel intercept order

- enumerator CSFB\_FAIL\_CALL\_REL\_NORMAL

    - 1xcsfb fail call rel normal

- enumerator CSFB\_FAIL\_CALL\_REL\_OTASP\_SPC\_ERR

    - 1xcsfb fail call rel otasp spc err

- enumerator CSFB\_FAIL\_CALL\_REL\_REL\_ORDER

    - 1xcsfb fail call rel rel order

- enumerator CSFB\_FAIL\_CALL\_REL\_REORDER

    - 1xcsfb fail call rel reorder

- enumerator CSFB\_FAIL\_CALL\_REL\_SO\_REJ

    - 1xcsfb fail call rel so rej

- enumerator CSFB\_HARD\_FAILURE

    - 1xcsfb hard failure

- enumerator CSFB\_HO\_FAILURE

    - 1xcsfb ho failure

- enumerator CSFB\_MSG\_IGNORE

    - 1xcsfb msg ignore

- enumerator CSFB\_MSG\_INVAILD

    - 1xcsfb msg invaild

- enumerator CSFB\_SOFT\_FAILURE

    - 1xcsfb soft failure

- enumerator ACCESS\_BLOCK

    - Access block

- enumerator ACC\_IN\_PROG

    - Acc in prog

- enumerator ACTIVATION

    - Activation

- enumerator ADDRESS\_INCOMPLETE

    - Address incomplete

- enumerator ALERT\_STOP

    - Alert stop

- enumerator ALTERNATE\_EMERGENCY\_CALL

    - Alternate emergency call

- enumerator ALTERNATE\_SERVICE

    - Alternate service

- enumerator AMBIGUOUS

    - Ambiguous

- enumerator AS\_REJ\_LRRC\_CONN\_EST\_FAILURE\_NOT\_CAMPED

    - Conn est failure not camped

- enumerator AS\_REJ\_LRRC\_CONN\_EST\_SUCCESS

    - As rej lrrc conn est success

- enumerator BAD\_EXTENSION

    - Bad extension

- enumerator BAD\_GATEWAY

    - Bad gateway

- enumerator BAD\_REQ\_WAIT\_INVITE

    - Bad req wait invite

- enumerator BAD\_REQ\_WAIT\_REINVITE

    - Bad req wait reinvite

- enumerator BUSY\_EVERYWHERE

    - Busy everywhere

- enumerator CALL\_COMPLETED\_ELSEWHERE

    - Call completed elsewhere

- enumerator CALL\_DEFLECTED

    - Call deflected

- enumerator CALL\_OR\_TRANS\_DOES\_NOT\_EXIST

    - Call or trans does not exist

- enumerator CALL\_PULLED

    - Call pulled

- enumerator CALL\_PULL\_OUT\_OF\_SYNC

    - Call pull out of sync

- enumerator CCBS\_NOT\_POSSIBLE

    - Ccbs not possible

- enumerator CCBS\_POSSIBLE

    - Ccbs possible

- enumerator CLIR\_NOT\_SUBSCRIBED

    - Clir not subscribed

- enumerator CODEC\_ERROR

    - Codec error

- enumerator CSFB\_NOT\_FEASIBLE\_IN\_ROAM\_CS\_NW

    - Csfb not feasible in roam cs nw

- enumerator CS\_HARD\_FAILURE

    - Cs hard failure

- enumerator CUG\_CALL\_FAILURE\_UNSPECIFIED

    - Cug call failure unspecified

- enumerator CUG\_INDEX\_INCOMPATIBLE

    - Cug index incompatible

- enumerator DATA\_CONNECTION\_LOST

    - Data connection lost

- enumerator DATA\_MISSING

    - Data missing

- enumerator DEAD\_BATTERY

    - Dead battery

- enumerator DEFLECTION\_TO\_SERVED\_SUBSCRIBER

    - Deflection to served subscriber

- enumerator DOES\_NOT\_EXIST\_ANYWHERE

    - Does not exist anywhere

- enumerator DRVCC\_END\_CALL

    - Drvcc end call

- enumerator DRVCC\_IN\_PROG

    - Drvcc in prog

- enumerator EXTENSION\_REQUIRED

    - Extension required

- enumerator FALLBACK\_TO\_CS

    - Fallback to cs

- enumerator GONE

    - Gone

- enumerator INCOMING\_REJ\_CAUSE\_1X\_COLLISION

    - Incoming rej cause 1x collision

- enumerator INCOMING\_REJ\_CAUSE\_CALL\_ONGOING\_CB\_ENABLED

    - Incoming call ongoing cb enabled

- enumerator INCOMING\_REJ\_CAUSE\_CALL\_ONGOING\_CW\_DISABLED

    - Incoming call ongoing cw disabled

- enumerator INCOMING\_REJ\_CAUSE\_CALL\_ON\_OTHER\_SUB

    - Incoming rej cause call on other sub

- enumerator INCOM\_REJ\_CAUSE\_UI\_NOT\_READY

    - Incom rej cause ui not ready

- enumerator INTERVAL\_TOO\_BRIEF

    - Interval too brief

- enumerator INVALID\_DEFLECTED\_TO\_NUMBER

    - Invalid deflected to number

- enumerator INVALID\_REMOTE\_URI

    - Invalid remote uri

- enumerator IS707B\_MAX\_ACC

    - Is707b max acc

- enumerator LOOP\_DETECTED

    - Loop detected

- enumerator MC\_ABORT

    - Mc abort

- enumerator MERGED\_TO\_CONFERENCE

    - Merged to conference

- enumerator MESSAGE\_TOO\_LARGE

    - Message too large

- enumerator METHOD\_NOT\_ALLOWED

    - Method not allowed

- enumerator MOVED\_PERMANENTLY

    - Moved permanently

- enumerator MOVED\_TEMPORARILY

    - Moved temporarily

- enumerator MPTY\_PARTICIPANTS\_EXCEEDED

    - Mpty participants exceeded

- enumerator MULTIPLE\_CHOICES

    - Multiple choices

- enumerator NEGATIVE\_PWD\_CHECK

    - Negative pwd check

- enumerator NETWORK\_NO\_RESP\_HOLD\_FAIL

    - Network no resp hold fail

- enumerator NETWORK\_NO\_RESP\_TIME\_OUT

    - Network no resp time out

- enumerator NOT\_ACCEPTABLE

    - Not acceptable

- enumerator NOT\_ACCEPTABLE\_GLOBAL

    - Not acceptable global

- enumerator NOT\_ACCEPTABLE\_HERE

    - Not acceptable here

- enumerator NOT\_IMPLEMENTED

    - Not implemented

- enumerator NO\_CDMA\_SRV

    - No cdma srv

- enumerator NO\_CELL\_AVAILABLE

    - No cell available

- enumerator NO\_CUG\_SELECTION

    - No cug selection

- enumerator NO\_NETWORK\_RESP

    - No network resp

- enumerator NO\_RESOURCES

    - No resources

- enumerator NUM\_OF\_PWD\_ATTEMPTS\_VIOLATION

    - Num of pwd attempts violation

- enumerator OTASP\_SPC\_ERR

    - Otasp spc err

- enumerator OUTGOING\_CALLS\_BARRED\_WITHIN\_CUG

    - Outgoing calls barred within cug

- enumerator PAYMENT\_REQUIRED

    - Payment required

- enumerator POSITION\_METHOD\_FAILURE

    - Position method failure

- enumerator PRECONDITION\_FAILURE

    - Precondition failure

- enumerator PROXY\_AUTHENTICATION\_REQUIRED

    - Proxy authentication required

- enumerator PWD\_REGISTRATION\_FAILURE

    - Pwd registration failure

- enumerator REDIR\_OR\_HANDOFF

    - Redir or handoff

- enumerator REG\_RESTORATION

    - Reg restoration

- enumerator REMOTE\_UNSUPP\_MEDIA\_TYPE

    - Remote unsupp media type

- enumerator REQUEST\_ENTITY\_TOO\_LARGE

    - Request entity too large

- enumerator REQUEST\_PENDING

    - Request pending

- enumerator REQUEST\_TERMINATED

    - Request terminated

- enumerator REQUEST\_URI\_TOO\_LARGE

    - Request uri too large

- enumerator RESOURCES\_NOT\_AVAILABLE

    - Resources not available

- enumerator RRC\_CONN\_REL\_NO\_MT\_SETUP

    - Rrc conn rel no mt setup

- enumerator RTP\_FAILURE

    - Rtp failure

- enumerator RTP\_RTCP\_TIMEOUT

    - Rtp rtcp timeout

- enumerator SERVER\_INTERNAL\_ERROR

    - Server internal error

- enumerator SERVER\_TIME\_OUT

    - Server time out

- enumerator SERVER\_UNAVAILABLE

    - Server unavailable

- enumerator SESS\_DESCR\_NOT\_ACCEPTABLE

    - Sess descr not acceptable

- enumerator SIP\_403\_FORBIDDEN

    - Sip 403 forbidden

- enumerator SIP\_503\_SERVER\_UNAVAILABLE

    - Sip 503 server unavailable

- enumerator SPECIAL\_SERVICE\_CODE

    - Special service code

- enumerator SRVCC\_END\_CALL

    - Srvcc end call

- enumerator SRV\_INIT\_FAIL

    - Srv init fail

- enumerator TOO\_MANY\_HOPS

    - Too many hops

- enumerator UNAUTHORIZED

    - Unauthorized

- enumerator UNDECIPHERABLE

    - Undecipherable

- enumerator UNEXPECTED\_DATA\_VALUE

    - Unexpected data value

- enumerator UNKNOWN\_ALPHABET

    - Unknown alphabet

- enumerator UNKNOWN\_CUG\_INDEX

    - Unknown cug index

- enumerator UNSUPPORTED\_SDP

    - Unsupported sdp

- enumerator UNSUPPORTED\_URI\_SCHEME

    - Unsupported uri scheme

- enumerator UNWANTED\_CALL

    - Unwanted call

- enumerator UPGRADE\_DOWNGRADE\_CANCELLED

    - Upgrade downgrade cancelled

- enumerator UPGRADE\_DOWNGRADE\_FAILED

    - Upgrade downgrade failed

- enumerator UPGRADE\_DOWNGRADE\_REJ

    - Upgrade downgrade rej

- enumerator USE\_PROXY

    - Use proxy

- enumerator VERSION\_NOT\_SUPPORTED

    - Version not supported

- enumerator ERROR\_UNSPECIFIED

    - Error unspecified

- enum RttMode

    - Defines the real time text (RTT) mode of a call.

*Values:*

- enumerator UNKNOWN

    - 

- enumerator DISABLED

    - 

- enumerator FULL

    -

- class ICall

    - [ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639) represents a call in progress. An [ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639) cannot be directly created by the client, rather it is returned as a result of instantiating a call or from the PhoneListener when receiving an incoming call.

Public Functions

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) answer(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr, [RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) mode = [RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE)::[DISABLED](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttMode8DISABLEDE)) = 0

    - Allows the client to answer the call. This is only applicable for CallState::INCOMING and CallState::WAITING calls during a normal voice call. If a Waiting call is being answered and the existing call is Active, then existing call will move to Hold state.If the existing call is on Hold already, then it will remain on Hold. The waiting call state transition from Waiting to Active. Answering an incoming RTT call is supported. However, if an RTT call is waiting, there is no support to answer such a call currently.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **callback** – **[in]** - optional callback pointer to get the response of answer request below are possible error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE
- **mode** – **[in]** - telux::tel::RttMode::DISABLED - To answer incoming call as a normal voice call. telux::tel::RttMode::FULL - To answer incoming call as a real time text (RTT) call.

- Returns:

    - Status of answer function i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) hold(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Puts the ongoing call on hold.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - **callback** – **[in]** - optional callback pointer to get the response of hold request below are possible error codes for callback response

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
- telux::common::ErrorCode::NO\_MEMORY
- telux::common::ErrorCode::MODEM\_ERR
- telux::common::ErrorCode::INTERNAL\_ERR
- telux::common::ErrorCode::INVALID\_STATE
- telux::common::ErrorCode::INVALID\_CALL\_ID
- telux::common::ErrorCode::INVALID\_ARGUMENTS
- telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
- telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of hold function i.e. success or suitable error code.

- virtual int getDetailedCauseCode() = 0

    - Retrieve the underlying low level cause for the call termination. This API is intended for debugging purposes.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to invoke this API successfully.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Returns:

    - integer representing low level call end cause.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) resume(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Resumes this call from on-hold state to active state

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_CALL\_MGMT permission to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** - optional callback pointer to get the response of resume request below are possible error codes for callback response

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
- telux::common::ErrorCode::NO\_MEMORY
- telux::common::ErrorCode::MODEM\_ERR
- telux::common::ErrorCode::INTERNAL\_ERR
- telux::common::ErrorCode::INVALID\_STATE
- telux::common::ErrorCode::INVALID\_CALL\_ID
- telux::common::ErrorCode::INVALID\_ARGUMENTS
- telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
- telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of resume function i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) reject(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Reject the incoming/waiting call. Only applicable for CallState::INCOMING and CallState::WAITING calls.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - **callback** – **[in]** - optional callback pointer to get the response of reject request below are possible error codes for callback response

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
- telux::common::ErrorCode::NO\_MEMORY
- telux::common::ErrorCode::MODEM\_ERR
- telux::common::ErrorCode::INTERNAL\_ERR
- telux::common::ErrorCode::INVALID\_STATE
- telux::common::ErrorCode::INVALID\_CALL\_ID
- telux::common::ErrorCode::INVALID\_ARGUMENTS
- telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
- telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of reject function i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) reject(const std::string &rejectSMS, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Reject the call and send an SMS to caller. Only applicable for CallState::INCOMING and CallState::WAITING calls.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

Deprecated This API not being supported

- Parameters:

    - - **rejectSMS** – **[in]** SMS string used to send in response to a call rejection.
- **callback** – **[in]** - optional callback pointer to get the response of rejectwithSMS request below are possible error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of success for call [reject()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639_1ada6b9cdd060fa6f93bb25d58fc0746f9) or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) hangup(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Hangup the call if the call state is either active, hold, dialing, waiting or alerting.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - **callback** – **[in]** - optional callback pointer to get the response of hangup request below are possible error codes for callback response

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
- telux::common::ErrorCode::NO\_MEMORY
- telux::common::ErrorCode::MODEM\_ERR
- telux::common::ErrorCode::INTERNAL\_ERR
- telux::common::ErrorCode::INVALID\_STATE
- telux::common::ErrorCode::INVALID\_CALL\_ID
- telux::common::ErrorCode::INVALID\_ARGUMENTS
- telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
- telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of hangup i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) playDtmfTone(char tone, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Play a DTMF tone and stop it. The interval for which the tone is played is dependent on the system implementation. If continuous DTMF tone is playing, it will be stopped. This API is used to play DTMF tone on TX path so that it is heard on far end. For DTMF playback on local device on the RX path use [telux::audio::IAudioVoiceStream::playDtmfTone](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00268_1a42cd426a0573c00e8e9d4b6a059b6b24)

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **tone** – **[in]** - a single character with one of 12 values: 0-9, \*, #.
- **callback** – **[in]** - Optional callback pointer to get the result of playDtmfTones function

- Returns:

    - Status of playDtmfTones i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) startDtmfTone(char tone, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Starts a continuous DTMF tone. To terminate the continous DTMF tone,stopDtmfTone API needs to be invoked explicitly. This API is used to play DTMF tone on TX path so that it is heard on far end. For DTMF playback on local device on the RX path use [telux::audio::IAudioVoiceStream::playDtmfTone](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00268_1a42cd426a0573c00e8e9d4b6a059b6b24)

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **tone** – **[in]** - a single character with one of 12 values: 0-9, \*, #.
- **callback** – **[in]** - Optional callback pointer to get the result of startDtmfTone function.

- Returns:

    - Status of startDtmfTone i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) stopDtmfTone(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Stop the currently playing continuous DTMF tone.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - **callback** – **[in]** - Optional callback pointer to get the result of stopDtmfTone function.

- Returns:

    - Status of stopDtmfTone i.e. success or suitable error code.

- virtual [CallState](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel9CallStateE) getCallState() = 0

    - Get the current state of the call, such as ringing, in progress etc.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

- Returns:

    - CallState - enumeration representing call State

- virtual int getCallIndex() = 0

    - Get the unique index of the call assigned by Telephony subsystem

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Returns:

    - Call Index

- virtual [CallDirection](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel13CallDirectionE) getCallDirection() = 0

    - Get the direction of the call

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Returns:

    - CallDirection - enumeration representing call direction i.e. INCOMING/ OUTGOING

- virtual std::string getRemotePartyNumber() = 0

    - Get the dailing number

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_PRIVATE\_INFO permission to successfully invoke this API.

- Returns:

    - Phone Number to which the call was dialed out. Empty string in case of INCOMING call direction.

- virtual [CallEndCause](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel12CallEndCauseE) getCallEndCause() = 0

    - Get the cause of the termination of the call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

- Returns:

    - Enum representing call end cause.

- virtual int getSipErrorCode() = 0

    - Get the SIP error code for the termination of the IMS call. Refer RFC3261 Section 21 for error description.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Returns:

    - integer representing SIP error code.

- virtual std::string getCallReason() = 0

    - Retrieves a string indicating the reason for an incoming PS call, limited to 64 UTF-16 characters. For more details, refer to RFC9796 Section 6.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Returns:

    - A string representing the reason for the incoming PS call.

- virtual int getPhoneId() = 0

    - Get id of the phone object which represents the network/SIM on which the call is in progress.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

- Returns:

    - Phone Id.

- virtual bool isMultiPartyCall() = 0

    - To check if call is in multi party call(conference) or not

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

- Returns:

    - True if call is in conference otherwise false.

- virtual [RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) getRttMode() = 0

    - Retrieves the RTT mode of the call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Returns:

    - RttMode - enumeration representing RTT mode [telux::tel::RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00032_1ga065742f840bb4a1c4f0873af2a21f64d.html#a00032_1ga065742f840bb4a1c4f0873af2a21f64d)

- virtual [RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) getLocalRttCapability() = 0

    - Retrieves the local RTT capability of the call, indicating whether a local device can support a RTT call. Users can upgrade to a RTT call using [telux::tel::ICall::modify](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639_1a6a385a301192f977c2f85f024a5a1556).

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Returns:

    - RttMode - enumeration representing RTT mode [telux::tel::RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00032_1ga065742f840bb4a1c4f0873af2a21f64d.html#a00032_1ga065742f840bb4a1c4f0873af2a21f64d)

- virtual [RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) getPeerRttCapability() = 0

    - Retrieves the peer RTT capability of the call, indicating whether a peer device can support a RTT call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Returns:

    - RttMode - enumeration representing RTT mode [telux::tel::RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00032_1ga065742f840bb4a1c4f0873af2a21f64d.html#a00032_1ga065742f840bb4a1c4f0873af2a21f64d)

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) modify([RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) mode, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Request to upgrade the call from a normal voice call to a RTT call or downgrade the call from a RTT call to a normal voice call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **mode** – **[in]** - Parameter to send desired real time text mode for a call telux::tel::RttMode::DISABLED, to send request to downgrade a RTT call to normal voice call. telux::tel::RttMode::FULL, to send upgrade normal voice call to a RTT call.
- **callback** – **[in]** - optional callback pointer to get the response of modify request below are possible error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of modify i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) respondToModifyRequest(bool modifyResponseType, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Accepts or rejects a modify call request triggered by a remote party after the user receives a notification to modify the call using [ICallListener::onModifyCallRequest](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00640_1acd10490d16f12803a985da2330bd712b).

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

Below are possible error codes for callback response

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::MODEM\_ERR
- telux::common::ErrorCode::GENERIC\_FAILURE

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **modifyResponseType** – **[in]** - Send the response to accept or reject the modify request Accept corresponds to true and reject corresponds to false
- **callback** – **[in]** - Optional, callback pointer to get the response of the respondToModifyRequest request.

- Returns:

    - Status of respondToModifyRequest i.e. success or suitable error code.

- virtual [CallType](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel8CallTypeE) getCallType() = 0

    - Gets the current type of the call, such as emergency call, voice call, etc.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Returns:

    - CallType - enumeration representing call type [telux::tel::CallType](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00032_1ga17a9edc8d3bca73d3b58833f7d7b4194.html#a00032_1ga17a9edc8d3bca73d3b58833f7d7b4194)

- virtual [NetworkMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel11NetworkModeE) getNetworkMode() = 0

    - Retrieves the current network mode of the ongoing call, such as GSM telux::tel::NetworkMode::GSM, LTE telux::tel::NetworkMode::LTE, or other supported RAT.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Returns:

    - NetworkMode - enumeration representing network mode [telux::tel::NetworkMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1gac743925c203b90388e70e74b1b56a20d.html#a00016_1gac743925c203b90388e70e74b1b56a20d)

- inline virtual ~ICall()

    -

- class ICallListener : public [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[IServiceStatusListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00049.html#_CPPv4N5telux6common22IServiceStatusListenerE)

    - A listener class for monitoring changes in call, including call state change and ECall state change. Override the methods for the state that you wish to receive updates for.

The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.

Public Functions

- inline virtual void onIncomingCall(std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; call)

    - This function is called when device receives an incoming/waiting call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to receive this notification.

- Parameters:

    - **call** – **[in]** - Pointer to [ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639) instance

- inline virtual void onCallInfoChange(std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; call)

    - This function is called when there is a change in call attributes

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to receive this notification.

- Parameters:

    - **call** – **[in]** - Pointer to [ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639) instance

- inline virtual void onECallMsdTransmissionStatus(int phoneId, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) errorCode)

    - This function is called when device completes MSD Transmission.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

Deprecated Use another [onECallMsdTransmissionStatus()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00640_1a62de3c937876181ebd6b9213f547fb33) API with argument [ECallMsdTransmissionStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga09e82ce8c36df861776f74cbf5f863cc.html#a00016_1ga09e82ce8c36df861776f74cbf5f863cc)

- Parameters:

    - - **phoneId** – **[in]** - Unique Id of phone on which MSD Transmission Status is being reported
- **errorCode** – **[in]** - Indicates MSD Transmission status i.e. success or failure

- inline virtual void onECallMsdTransmissionStatus(int phoneId, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[ECallMsdTransmissionStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel26ECallMsdTransmissionStatusE) msdTransmissionStatus)

    - This function is called when there is Minimum Set of Data (MSD) transmission. The MSD transmission happens at call connect and also when the modem or client responds to MSD pull request from PSAP.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

- Parameters:

    - - **phoneId** – **[in]** - Unique Id of phone on which MSD Transmission Status is being reported
- **msdTransmissionStatus** – **[in]** - Indicates MSD Transmission status [ECallMsdTransmissionStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga09e82ce8c36df861776f74cbf5f863cc.html#a00016_1ga09e82ce8c36df861776f74cbf5f863cc)

- inline virtual void OnMsdUpdateRequest(int phoneId)

    - This function is called when MSD update is requested by PSAP.

Client is expected to update the MSD using [telux::tel::ICallManager::updateECallMsd](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00644_1a45d12fd45f062774d178d18506770483) upon receiving this notification. Modem updates its internal cache and responds to PSAP with the new MSD. In situations, where the client fails to update the MSD, modem will time out and send the outdated MSD from its cache.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

- Parameters:

    - **phoneId** – **[in]** - Unique Id of phone on which MSD update request is received.

- inline virtual void onECallHlapTimerEvent(int phoneId, [ECallHlapTimerEvents](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00641.html#_CPPv4N5telux3tel20ECallHlapTimerEventsE) timersStatus)

    - This function is called when the eCall High Level Application Protocol(HLAP) timers status is changed.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

- Parameters:

    - - **phoneId** – **[in]** - Unique Id of phone on which HLAP timer status is being reported
- **timersStatus** – **[in]** - Indicates the HLAP timer event [ECallHlapTimerEvents](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00641)

- inline virtual void onEmergencyNetworkScanFail(int phoneId)

    - This function is called whenever there is a scan failure after one round of network scan during origination of emergency call or at any time during the emergency call.

During origination of an ecall or in between an ongoing ecall, if the UE is in an area of no/poor coverage and loses service, the modem will perform network scan and try to register on any available network. If the scan completes successfully and the device finds a suitable cell, the ecall will be placed and the call state changes to the active state. If the network scan fails then this function will be invoked after one round of network scan.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

- Parameters:

    - **phoneId** – **[in]** - Unique Id of phone on which network scan failure reported.

- inline virtual void onEcbmChange([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[EcbMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7EcbModeE) mode)

    - This function is called whenever emergency callback mode(ECBM) changes.

- Parameters:

    - **mode** – **[in]** - Indicates the status of the ECBM. [EcbMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga2f29f4f9131dcd0b824a36b8fa7c4b8d.html#a00016_1ga2f29f4f9131dcd0b824a36b8fa7c4b8d)

- inline virtual void onRingbackTone(bool isAlerting, int phoneId)

    - When the network doesn’t play an in-band ringback tone for an alerting call, an application can play the ringback tone locally based on this notification. This function is called when the ringback tone needs to be started or stopped.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to receive this notification.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Parameters:

    - - **isAlerting** – **[in]** - true to start playing ringback tone, false to stop playing ringback tone.
- **phoneId** – **[in]** - Unique Id of phone on which local ringback tone need to be triggered.

- inline virtual void onModifyCallRequest([RttMode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel7RttModeE) rttMode, int callId, int phoneId)

    - This function is called when a modification request is triggered by the other party to change the call from a normal voice call to a real time text (RTT) call. This API shall not be invoked when other party sends the modification request to change the call from real time text (RTT) to normal voice call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to receive this notification.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Parameters:

    - - **rttMode** – **[in]** - telux::tel::RttMode::FULL to indicate a upgrade request,
- **callId** – **[in]** - Unique CallId on which upgrade request was triggered.
- **phoneId** – **[in]** - Unique Id of phone on which upgrade request was triggered.

- inline virtual void onRttMessage(int phoneId, std::string message)

    - This function is called when a RTT message is received from a remote party.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to receive this notification.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Parameters:

    - - **phoneId** – **[in]** Unique Id of phone on which RTT message is received.
- **message** – **[in]** Text message received from device is in UTF8 encoding format. It supports the English language.

- inline virtual void onECallRedial(int phoneId, [ECallRedialInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00642.html#_CPPv4N5telux3tel15ECallRedialInfoE) info)

    - This function is called to notify the clients whether eCall will be redialed or not by the modem along with the reason for the operation.

Note: In situations where the user does not configure retry eCall parameters using telux::tel::configureECallRedial, the default eCall retry parameters will be considered by the modem.

Behavior of redial:

ERA-GLONASS eCall - During an eCall redial, when AP sends a call termination request using [telux::tel::ICall::hangup()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639_1a0dc5f665bfb1381f29d2157454171645), modem will terminate any ongoing redials. European eCall(EU) eCall - During an eCall redial, when AP sends a call termination request using [telux::tel::ICall::hangup()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00639_1a0dc5f665bfb1381f29d2157454171645), modem will not terminate any ongoing redials.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to receive this notification.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Parameters:

    - - **phoneId** – **[in]** - Unique identifier of phone on which eCall redial information is received.
- **info** – **[in]** - Indicates eCall redial information

    1. Modem performs redial of eCall when its origination has failed or it gets dropped before receipt of MSD transmission status. In above situation, the contents of info is as follows: [telux::tel::ECallRedialInfo::willECallRedial](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00642_1aac9de67c2782da2f382393569392100b) is true and [telux::tel::ECallRedialInfo::reason](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00642_1aa35941dd1c7ee6068004795c072cc6fc) can either be telux::tel::ReasonType::CALL\_ORIG\_FAILURE or telux::tel::ReasonType::CALL\_DROP.
    2. Modem does not perform redial when eCall is successfully connected or the number of attempts of redial have been exhausted. In above situation, the contents of info is as follows: [telux::tel::ECallRedialInfo::willECallRedial](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00642_1aac9de67c2782da2f382393569392100b) is false and [telux::tel::ECallRedialInfo::reason](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00642_1aa35941dd1c7ee6068004795c072cc6fc) can either be telux::tel::ReasonType::CALL\_CONNECTED or telux::tel::ReasonType::MAX\_REDIAL\_ATTEMPTED.

- inline virtual ~ICallListener()

    -

- class ICallManager

    - Call Manager is the primary interface for call related operations Allows to conference calls, swap calls, make normal voice call and emergency call, send and update MSD pdu.

Public Functions

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

    - This status indicates whether the [ICallManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00644) object is in a usable state.

- Returns:

    - SERVICE\_AVAILABLE - If CallManager is ready for service. SERVICE\_UNAVAILABLE - If CallManager is temporarily unavailable. SERVICE\_FAILED - If CallManager encountered an irrecoverable failure.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeCall(int phoneId, const std::string &dialNumber, std::shared\_ptr&lt;[IMakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00649.html#_CPPv4N5telux3tel17IMakeCallCallbackE)&gt; callback = nullptr) = 0

    - Initiate a voice call. This API can also be used for e911/e112 type of regular emergency call. This is not meant for an automotive eCall. Regular voice call will be blocked by device while eCall is in progress.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on make call operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **callback** – **[in]** Optional callback pointer to get the response of makeCall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_USSD
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_SS
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_DIAL
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::NO\_RESOURCES
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::FDN\_CHECK\_FAILURE
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::NO\_SUBSCRIPTION
    - telux::common::ErrorCode::NO\_NETWORK\_FOUND
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::DEVICE\_IN\_USE
    - telux::common::ErrorCode::MODE\_NOT\_SUPPORTED
    - telux::common::ErrorCode::ABORTED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeCall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeRttCall(int phoneId, const std::string &dialNumber, std::shared\_ptr&lt;[IMakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00649.html#_CPPv4N5telux3tel17IMakeCallCallbackE)&gt; callback = nullptr) = 0

    - Initiate a real time text (RTT) voice call. This API can also be used for e911/e112 emergency calls. This is not meant to originate an automotive eCall. During an ongoing eCall, regular RTT voice calls cannot be originated by the device. To enable RTT calls, the RTT service must be enabled first using the [telux::tel::IImsSettingsManager::setServiceConfig](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00713_1a0d31560e81bf4210d9d81ba7b8421ae7) method.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backward compatibility.

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the call operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **callback** – **[in]** Optional callback pointer to get the response of makeRttCall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_USSD
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_SS
    - telux::common::ErrorCode::DIAL\_MODIFIED\_TO\_DIAL
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::NO\_RESOURCES
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::FDN\_CHECK\_FAILURE
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::NO\_SUBSCRIPTION
    - telux::common::ErrorCode::NO\_NETWORK\_FOUND
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::DEVICE\_IN\_USE
    - telux::common::ErrorCode::MODE\_NOT\_SUPPORTED
    - telux::common::ErrorCode::ABORTED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeRttCall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const [ECallMsdData](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00645.html#_CPPv4N5telux3tel12ECallMsdDataE) &eCallMsdData, int category, int variant, std::shared\_ptr&lt;[IMakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00649.html#_CPPv4N5telux3tel17IMakeCallCallbackE)&gt; callback = nullptr) = 0

    - Initiate an European(EU) or ERA-GLONASS automotive eCall. Regular voice calls will be blocked by device while eCall is in progress. MSD encoding for optional ERA-GLONASS additional data is not supported as per spec GOST R 54620 / GOST R 33464.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to invoke this API successfully.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which make eCall operation is performed
- **eCallMsdData** – **[in]** The structure containing required fields to create eCall Minimum Set of Data (MSD)
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **variant** – **[in]** [ECallVariant](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga13da4325346f27f7dbc7c8338fb2d96a.html#a00016_1ga13da4325346f27f7dbc7c8338fb2d96a)
- **callback** – **[in]** Optional callback pointer to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::string dialNumber, const [ECallMsdData](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00645.html#_CPPv4N5telux3tel12ECallMsdDataE) &eCallMsdData, int category, std::shared\_ptr&lt;[IMakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00649.html#_CPPv4N5telux3tel17IMakeCallCallbackE)&gt; callback = nullptr) = 0

    - Initiate an automotive Third Party Service(TPS) eCall over CS based RAT only (i.e. not IMS), to the specified phone number with Minimum Set of Data(MSD) at call connect. It will be treated like a regular voice call by the UE and the network. During this request, if the device was registered over a PS based RAT, it will attempt to fallback to a CS based RAT. If this attempt fails, the call will end with a failure.

It is the responsibility of application to make sure that another call is not dialed while Third Party Service eCall is in progress.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to invoke this API successfully.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which make eCall operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **eCallMsdData** – **[in]** The structure containing required fields to create eCall Minimum Set of Data (MSD)
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **callback** – **[in]** Optional callback pointer to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::string dialNumber, const std::vector&lt;uint8\_t&gt; &msdPdu, [CustomSipHeader](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00646.html#_CPPv4N5telux3tel15CustomSipHeaderE) header = {[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[CONTENT\_HEADER](https://docs.qualcomm.com/doc/80-PF458-10/topic/variable_a00016_1gaa0fd81a0322edd4daada8e518519be40.html#_CPPv4N5telux3tel14CONTENT_HEADERE), ""}, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an automotive Third Party Service(TPS) eCall over IMS only, to the specified phone number with Minimum Set of Data(MSD) at call connect. It will be treated like a regular voice call over IMS by the UE and the network. During this request, if the device was not registered over IMS for voice service, the request will fail.

Application is expected to dial only one Third Party Service eCall per subscription. It is the responsibility of application to make sure that another call is not dialed while Third Party Service eCall is in progress.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which make eCall operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **msdPdu** – **[in]** Encoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015 Max size 255 bytes
- **header** – **[in]** Optional SIP headers intended to be sent in the SIP invite message to the network for PSAP

    - [telux::tel::CustomSipHeader](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00646)
- **callback** – **[in]** Optional callback function to get the response of makeECall request.

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::vector&lt;uint8\_t&gt; &msdPdu, int category, int variant, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an European(EU) or ERA-GLONASS automotive eCall with raw MSD pdu. Regular voice calls will be blocked by device while eCall is in progress. MSD encoding for optional ERA-GLONASS additional data is not supported as per spec GOST R 54620 / GOST R 33464.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on make eCall operation is performed
- **msdPdu** – **[in]** Encoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **variant** – **[in]** [ECallVariant](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga13da4325346f27f7dbc7c8338fb2d96a.html#a00016_1ga13da4325346f27f7dbc7c8338fb2d96a)
- **callback** – **[in]** Callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::string dialNumber, const std::vector&lt;uint8\_t&gt; &msdPdu, int category, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an automotive eCall with raw MSD pdu, to the specified phone number for TPS eCall over CS based RAT only (i.e. not IMS). It will be treated like a regular voice call by the UE and the network. During this request, if the device was registered over a PS based RAT, it will attempt to fallback to a CS based RAT. If this attempt fails, the call will end with a failure.

It is the responsibility of application to make sure that another call is not dialed while Third Party Service eCall is in progress.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on make eCall operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **msdPdu** – **[in]** Encoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **callback** – **[in]** Callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, int category, int variant, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an European(EU) or ERA-GLONASS automotive eCall without transmitting Minimum Set of Data (MSD) at call connect. Regular voice calls will be blocked by device while eCall is in progress. MSD encoding for optional ERA-GLONASS additional data is not supported as per spec GOST R 54620 / GOST R 33464.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which make eCall operation is performed
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **variant** – **[in]** [ECallVariant](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga13da4325346f27f7dbc7c8338fb2d96a.html#a00016_1ga13da4325346f27f7dbc7c8338fb2d96a)
- **callback** – **[in]** Optional callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::string dialNumber, int category, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an automotive eCall to the specified phone number for TPS eCall over CS based RAT only (i.e. not IMS), without transmitting Minimum Set of Data(MSD) at call connect. It will be treated like a regular voice call by the UE and the network. During this request, if the device was registered over a PS based RAT, it will attempt to fallback to a CS based RAT. If this attempt fails, the call will end with a failure.

It is the responsibility of application to make sure that another call is not dialed while Third Party Service eCall is in progress.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which make eCall operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **category** – **[in]** [ECallCategory](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8.html#a00016_1ga01d67e1bf1f43ffd430e1b58eb09add8)
- **callback** – **[in]** Optional callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) updateECallMsd(int phoneId, const [ECallMsdData](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00645.html#_CPPv4N5telux3tel12ECallMsdDataE) &eCallMsd, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Update the eCall MSD in modem to be sent to Public Safety Answering [Point](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00663) (PSAP) when requested.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which updateECallMsd operation is performed
- **eCallMsd** – **[in]** The data structure represents the Minimum Set of Data (MSD)
- **callback** – **[in]** Optional callback pointer to get the response of updateECallMsd.

- Returns:

    - Status of updateECallMsd i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) updateECallMsd(int phoneId, const std::vector&lt;uint8\_t&gt; &msdPdu, [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback) = 0

    - This API could be used to explicitly send MSD to PSAP in response to MSD pull request from the PSAP.The modem will not automatically update MSD to the Public Safety Answering Point(PSAP)  [telux::tel::ICallListener::OnMsdUpdateRequest](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00640_1a1474f8c4218313b2eecbefd2ee819b5a).

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which updateECallMsd operation is performed
- **msdPdu** – **[in]** Encoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015 For Third Party Service(TPS) eCall over IMS technology: Maximum length allowed for MSD is 255 bytes For all other types of eCall: Maximum length allowed for MSD is 140 bytes
- **callback** – **[in]** Callback function to get the response of updateECallMsd.

- Returns:

    - Status of updateECallMsd i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) requestECallHlapTimerStatus(int phoneId, [ECallHlapTimerStatusCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga08cafc37c1f079ee511028a02b1b21f5.html#_CPPv4N5telux3tel28ECallHlapTimerStatusCallbackE) callback) = 0

    - Request for status of eCall High Level Application Protocol(HLAP) timers that are maintained by the UE state machine. This does not retrieve status of timers maintained by the PSAP. The provided timers are as per EN 16062:2015 standard.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding on which requestECallHlapTimerStatus operation is performed
- **callback** – **[in]** Callback function to get the response of requestECallHlapTimerStatus

- Returns:

    - Status of requestECallHlapTimerStatus i.e. success or suitable error code.

- virtual std::vector&lt;std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt;&gt; getInProgressCalls() = 0

    - Get in-progress calls.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_INFO\_READ permission to successfully invoke this API.

- Returns:

    - List of active calls.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) conference(std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; call1, std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; call2, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Merge two calls in a conference.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **call1** – **[in]** Call object to conference.
- **call2** – **[in]** Call object to conference.
- **callback** – **[in]** Optional callback pointer to get the result of conference function

- Returns:

    - Status of conference i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) swap(std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; callToHold, std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; callToActivate, std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00280.html#_CPPv4N5telux6common24ICommandResponseCallbackE)&gt; callback = nullptr) = 0

    - Swap calls to make one active and put the another on hold.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **callToHold** – **[in]** Active call object to swap to hold state.
- **callToActivate** – **[in]** Hold call object to swap to active state.
- **callback** – **[in]** Optional callback pointer to get the result of swap function

- Returns:

    - Status of swap i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) hangupForegroundResumeBackground(int phoneId, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Hangup all the foreground call(s) if any and accept the background call as the active call. The foreground call here could be active call, incoming call or multiple active calls in case of conference and background call could be held call or waiting call.

If a call(s) is active, the active call(s) will be terminated or if a call is waiting, the waiting call will be accepted and becomes active. Otherwise, if a held call is present, the held call becomes active. In case of hold and waiting calls, the hold call will still be on hold and waiting call will be accepted. In case of hold, active and waiting scenario, the hold call will still be on hold, active call will be ended and waiting call will be accepted. Answering a waiting RTT call during the above scenarios is not supported.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** - Represents phone corresponding to which this operation is performed.
- **callback** – **[in]** - optional callback pointer to get the response of hangup request below are possible error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of hangupForegroundResumeBackground i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) hangupWaitingOrBackground(int phoneId, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Hangup all the waiting or background call(s). The background call here could be waiting call, hold call or multiple hold calls in case of conference.

If a call(s) is hold, the hold call(s) will be terminated or if a call is waiting, the waiting call will be be terminated as well. In case of hold, active and waiting scenario, the active call will still be on active, hold and waiting call will be ended.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** - Represents phone corresponding to which this operation is performed.
- **callback** – **[in]** - optional callback pointer to get the response of hangup request below are possible error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of hangupWaitingOrBackground i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) requestEcbm(int phoneId, [EcbmStatusCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga08202cb4403d57f818fc25142c1729d9.html#_CPPv4N5telux3tel18EcbmStatusCallbackE) callback) = 0

    - Request for emergency callback mode

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the emergency callback mode(ECBM) status is requested.
- **callback** – **[in]** Callback pointer to get the result of ECBM status request

- Returns:

    - Status of requestEcbm i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) exitEcbm(int phoneId, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Exit emergency callback mode.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_EMERGENCY\_OPS permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the emergency callback mode(ECBM) exit is requested.
- **callback** – **[in]** Optional callback pointer to get the result of exit ECBM request

- Returns:

    - Status of exitEcbm i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) requestNetworkDeregistration(int phoneId, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Deregister from the network after an eCall when the modem is in eCall-only mode. This is typically done after the T9 eCall HLAP timer has expired to stop the T10 eCall HLAP timer and deregister from the serving network.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the network deregistration will be performed.
- **callback** – **[in]** Callback function to get the response of the request. The response is sent after the operation is complete.

- Returns:

    - Status of requestNetworkDeregistration request, i.e., success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) updateEcallHlapTimer(int phoneId, [HlapTimerType](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel13HlapTimerTypeE) type, uint32\_t timeDuration, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Set the value of an eCall HLAP timer. Only the T10 Timer is supported currently.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the value of T10 eCall HLAP timer updated will be performed.
- **type** – **[in]** [HlapTimerType](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1gac0271e5184872de8c1b3a4fb46315ff7.html#a00016_1gac0271e5184872de8c1b3a4fb46315ff7)
- **timeDuration** – **[in]** Represents the time duration for the HLAP timer. T10 timer is in units of minutes, and the supported range is from 60 to 720.
- **callback** – **[in]** Callback function to get the response of the request. The response is sent after the operation is complete.

- Returns:

    - Status of updateEcallHlapTimer i.e., success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) requestEcallHlapTimer(int phoneId, [HlapTimerType](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel13HlapTimerTypeE) type, [ECallHlapTimerCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1gabb9bcd5264a3b35475c2fbd016bd84e1.html#_CPPv4N5telux3tel22ECallHlapTimerCallbackE) callback) = 0

    - Get the value of an eCall HLAP timer. Only the T10 Timer is supported currently.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API

- Parameters:

    - - **phoneId** – **[in]** Represents the phone corresponding to which the value of eCall HLAP timer query will be performed.
- **type** – **[in]** [HlapTimerType](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1gac0271e5184872de8c1b3a4fb46315ff7.html#a00016_1gac0271e5184872de8c1b3a4fb46315ff7)
- **callback** – **[in]** Callback function to get the response of the request. The response is sent after the operation is complete.

- Returns:

    - Status of requestEcallHlapTimer i.e., success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) setECallConfig([EcallConfig](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00647.html#_CPPv4N5telux3tel11EcallConfigE) config) = 0

    - Set the configuration related to emergency call. The configuration is persistent and takes effect when the next emergency call is dialed.

Minimum value of [EcallConfig.t9Timer](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00647_1a98b4191ce5fc3fc7ab53a237ab987725) value should be 3600000. If a lesser value is provided, this API will still succeed but the actual value would be set to 3600000.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API

- Parameters:

    - **config** – **[in]** eCall configuration to be set [EcallConfig](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00647)

- Returns:

    - Status of setECallConfig i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) getECallConfig([EcallConfig](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00647.html#_CPPv4N5telux3tel11EcallConfigE) &config) = 0

    - Get the configuration related to emergency call.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - **config** – **[out]** Parameter to hold the fetched eCall configuration [EcallConfig](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00647)

- Returns:

    - Status of getECallConfig i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) encodeECallMsd([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[ECallMsdData](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00645.html#_CPPv4N5telux3tel12ECallMsdDataE) eCallMsdData, std::vector&lt;uint8\_t&gt; &data) = 0

    - Gets encoded bytes of eCall MSD according to EN 15722:2015 (MSD version 2) and EN 15722:2020 (MSD version 3).

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **eCallMsdData** – **[in]** eCall MSD data. [telux::tel::ECallMsdData](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00645)
- **data** – **[out]** Encoded bytes of eCall MSD.

- Returns:

    - error code for encodeECallMsd i.e. success or suitable error code. Below are possible error codes.

- telux::common::ErrorCode::SUCCESS
- telux::common::ErrorCode::INVALID\_ARGUMENTS
- telux::common::ErrorCode::GENERIC\_FAILURE

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) encodeEuroNcapOptionalAdditionalData([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[ECallOptionalEuroNcapData](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00648.html#_CPPv4N5telux3tel25ECallOptionalEuroNcapDataE) optionalEuroNcapData, std::vector&lt;uint8\_t&gt; &data) = 0

    - Gets encoded bytes of optional additional data content as per the Euro NCAP Technical Bulletin TB 040. Client needs to pass this vector of bytes to the data field of the [ECallOptionalPdu](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00702). [telux::tel::ECallOptionalPdu::data](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00702_1af622a2d9e2e8e755efdb08128243d0ae)

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **optionalEuroNcapData** – **[in]** ECall optional additional data as per Euro NCAP Technical Bulletin TB 040. [telux::tel::ECallOptionalEuroNcapData](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00648)
- **data** – **[out]** Encoded optional additional data.

- Returns:

    - Status of encodeEuroNcapOptionalAdditionalData i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) sendRtt(int phoneId, std::string message, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Sends real Time Text (RTT) to remote party during an active RTT call session.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_CALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** PhoneId to which text is sent.
- **message** – **[in]** Text to be sent to a remote party in UTF8 encoding format. Maximum length of the message is 127 characters.
- **callback** – **[in]** Callback function to get the response of sendRtt request.

- Returns:

    - Status of sendRtt i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) configureECallRedial([RedialConfigType](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel16RedialConfigTypeE) config, const std::vector&lt;int&gt; &timeGap, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Configure eCall redial parameters. Redial of an eCall can be attempted by the modem during an eCall origination failure or when it gets terminated before receipt of the MSD transmission status. The eCall redial parameters should be configured before initiating a regulatory eCall and this configuration is not persistent after modem reset.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

——————————–—ECALL ORIGINATION FAILURE——————————— *—————-(  telux::tel::RedialConfigType::CALL\_ORIG )———————–*

Call attempt Minimum duration between call attempt ( in milliseconds as per *3GPP TS22.001 annex 6 )*

Initial call attempt NA 1 5000 2 60000 3 60000 4 60000 5 attempt and 180000 *subsequent attempts*

————————————–—ECALL DROP ————————————–— *——————–(  telux::tel::RedialConfigType::CALL\_DROP )——————-*

Call attempt Minimum duration between call attempt ( in milliseconds as per *3GPP TS22.001 annex 6 )*

Initial call attempt NA 1 5000 *2 60000*

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **config** – **[in]** Indicates eCall redial configuration [telux::tel::RedialConfigType](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1ga13f24ba81318782317d7a0b4ae171019.html#a00016_1ga13f24ba81318782317d7a0b4ae171019)
- **timeGap** – **[in]** Indicates time gap between successive redial attempts in milliseconds. Redial attempts can range from 1 to 10 for eCall origination failures. For eCall termination before the receipt of MSD Transmission status, the range is between 1 and 2 attempts. The redial minimum time duration between the successive redial attempts is set as per 3GPP TS22.001 annex 6 and the user is *expected to provide a suitable value of timeGap.*
- **callback** – **[in]** Callback function to get the response of the configureECallRedial request.

- Returns:

    - Status of configureECallRedial i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) restartECallHlapTimer(int phoneId, [EcallHlapTimerId](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3tel16EcallHlapTimerIdE) timerId, int duration, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Restart T9 and T10 eCall High Level Application Protocol (HLAP) timers with residual timer duration. Application is expected to maintain residual timer information and resume the timers during events like modem reset or transition of device operating mode from low power mode to online.

Notes:

1. Application must restart timer according to eCall operating mode of device. T10 eCall HLAP timer must be restarted only when eCall operating mode is telux::tel::ECallMode::ECALL\_ONLY.
2. Application must validate the residual timer value before calling the API to prevent invalid data being processed.
3. T9 eCall HLAP timer cannot be restarted after transition of device operating mode from low power mode to online.

On platforms with access control enabled, caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to invoke this API successfully.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **timerId** – **[in]** - Represents the timer which is required to be restarted by application. [telux::tel::EcallHlapTimerId](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00016_1gae3568172150efbc32bac4ff06ee2c57f.html#a00016_1gae3568172150efbc32bac4ff06ee2c57f).
- **duration** – **[in]** - Remaining time duration in seconds for the timer to run.
- **callback** – **[in]** - Callback function to get the response of the restartECallHlapTimer request.

- Returns:

    - Status of restartECallHlapTimer i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) getECallRedialConfig(std::vector&lt;int&gt; &callOrigTimeGap, std::vector&lt;int&gt; &callDropTimeGap) = 0

    - Retrieve the configured eCall redial parameters for call origination and call drop failures.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

Note

Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

- Parameters:

    - - **callOrigTimeGap** – **[out]** Gets redial time gap between successive redial attempts in milliseconds for call origination failures.
- **callDropTimeGap** – **[out]** Gets redial time gap between successive redial attempts in milliseconds for call drop failures.

- Returns:

    - ErrorCode for getECallRedialConfig i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) makeECall(int phoneId, const std::string dialNumber, const std::vector&lt;uint8\_t&gt; &msdPdu, [MakeCallCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00032_1ga6ea25b0d515be30d226ed9a007f784ab.html#_CPPv4N5telux3tel16MakeCallCallbackE) callback = nullptr) = 0

    - Initiate an ERA-GLONASS self test automotive eCall with raw MSD pdu, to the specified phone number over CS based RAT only (i.e. not IMS). It will be treated like a regular voice call by the UE and the network. When an ERA-GLONASS emergency eCall is triggered by user during a self test ECALL, self test eCall will terminate. Application must not trigger ERA-GLONASS self test automotive eCall when T10 HLAP timer [telux::tel::ECallHlapTimerStatus::t10](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00643_1acd6f0d885f9c7e6df842601dfe618fb0) is active telux::tel::HlapTimerStatus::ACTIVE due to a previous activation of automotive emergency eCall.

Self test ECall can be triggered in both the eCall operating mode telux::tel::ECallMode::ECALL\_ONLY and telux::tel::ECallMode::NORMAL. T9 and T10 HLAP timers will not triggered during a self test ERA-GLONASS eCall.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on make eCall operation is performed
- **dialNumber** – **[in]** String representing the dialing number
- **msdPdu** – **[in]** Encoded MSD(Minimum Set of Data) PDU as per spec GOST R 54620/ GOST R 33464
- **callback** – **[in]** Callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response

    - telux::common::ErrorCode::SUCCESS
    - telux::common::ErrorCode::RADIO\_NOT\_AVAILABLE
    - telux::common::ErrorCode::NO\_MEMORY
    - telux::common::ErrorCode::MODEM\_ERR
    - telux::common::ErrorCode::INTERNAL\_ERR
    - telux::common::ErrorCode::INVALID\_STATE
    - telux::common::ErrorCode::INVALID\_CALL\_ID
    - telux::common::ErrorCode::INVALID\_ARGUMENTS
    - telux::common::ErrorCode::OPERATION\_NOT\_ALLOWED
    - telux::common::ErrorCode::GENERIC\_FAILURE

- Returns:

    - Status of makeECall i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) updateECallPostTestRegistrationTimer(int phoneId, uint32\_t timer, [common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Post test registration timer is started upon termination of ERA-GLONASS self-test to ensure UE remains registered on the network for the specified duration. Upon expiry of this timer UE will deregister from the network when UE is in telux::tel::ECallMode::ECALL\_ONLY mode. Application must update post test registration timer before triggering self-test eCall to overrride exisiting settings.

The update of post test registration timer is not persistent across reboot.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on request to update the post test registration timer is made.
- **timer** – **[in]** Input timer value in minutes. Input timer value must be greater than 0 mins. In situations when, AP sets the timer value to 0 minutes, UE will interpret it as 2 minutes.
- **callback** – **[in]** Callback function to get the response of updateECallPostTestRegistrationTimer request.

- Returns:

    - Status of updateECallPostTestRegistrationTimer i.e. success or suitable status code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) getECallPostTestRegistrationTimer(int phoneId, uint32\_t &timer) = 0

    - Get the post test registration timer. This timer is applicable only for ERA-GLONASS self test eCall when device is in telux::tel::ECallMode::ECALL\_ONLY eCall operating mode. Default value of timer is 2 minutes.

On platforms with access control enabled, the caller needs to have TELUX\_TEL\_ECALL\_MGMT permission to successfully invoke this API.

- Parameters:

    - - **phoneId** – **[in]** Represents phone corresponding to which on request to get the post test registration timer is made. operation is performed
- **timer** – **[out]** Timer value in minutes.

- Returns:

    - ErrorCode of getECallPostTestRegistrationTimer i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) registerListener(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[ICallListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00640.html#_CPPv4N5telux3tel13ICallListenerE)&gt; listener) = 0

    - Add a listener to listen for incoming call, call info change and eCall MSD transmission status change.

- Parameters:

    - **listener** – **[in]** Pointer to [ICallListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00640) object which receives event corresponding to phone

- Returns:

    - Status of registerListener i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) removeListener(std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[tel](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux3telE)::[ICallListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00640.html#_CPPv4N5telux3tel13ICallListenerE)&gt; listener) = 0

    - Remove a previously added listener.

- Parameters:

    - **listener** – **[in]** Listener to be removed.

- Returns:

    - Status of removeListener i.e. success or suitable error code.

- inline virtual ~ICallManager()

    -

- class IMakeCallCallback : public [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ICommandCallback](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00279.html#_CPPv4N5telux6common16ICommandCallbackE)

    - Interface for Make Call callback object. Client needs to implement this interface to get single shot responses for commands like make call.

The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.

Public Functions

- inline virtual void makeCallResponse([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error, std::shared\_ptr&lt;[ICall](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00639.html#_CPPv4N5telux3tel5ICallE)&gt; call = nullptr)

    - This function is called with the response to makeCall API.

- Parameters:

    - - **error** – **[out]** [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)
- **call** – **[out]** Pointer to Call object or nullptr in case of failure

- inline virtual ~IMakeCallCallback()

    -

Last Published: Mar 31, 2026

[Previous Topic
hysteresisDb](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/phone.md) [Next Topic
eCall](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/ecall.md)