# Supplementary services

**Detailed Description**

This section contains APIs related to supplementary services to provide services like call forwarding, call waiting.

- *group* Telematics\_supp\_services

    - Typedefs

- using ServiceClass = std::bitset&lt;8&gt;

    - 8 bit mask that denotes which of the service class to be used. [telux::tel::ServiceClassType](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga805f1dc84e883c9cc6ea6c79ca803572.html#a00029_1ga805f1dc84e883c9cc6ea6c79ca803572)

- using SetSuppSvcPrefCallback = std::function&lt;void([telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause)&gt;

    - This function is called with the response to setCallWaitingPref and setForwardingPref APIs.

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

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors [telux::tel::FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0.html#a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0).

- using GetCallWaitingPrefExCb = std::function&lt;void([SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv418SuppServicesStatus) suppSvcStatus, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

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

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

- Param suppSvcStatus:

    - **[in]** - Call waiting status [telux::tel::SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga4b3d4bf650c2d356def7e2e27c844e28.html#a00029_1ga4b3d4bf650c2d356def7e2e27c844e28)

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors [telux::tel::FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0.html#a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0).

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- using GetForwardingPrefExCb = std::function&lt;void(std::vector&lt;ForwardInfo&gt; forwardInfoList, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

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

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

- Param forwardInfoList:

    - **[in]** - List of forward info [telux::tel::ForwardInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00765). Multiple info are received when different service class are forwarded to different numbers.

- Param failureCause:

    - **[in]** - Returns failure cause in case the request fails.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- using GetOirPrefCb = std::function&lt;void([SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv418SuppServicesStatus) suppSvcStatus, [SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv422SuppSvcProvisionStatus) provisionStatus, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

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

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

- Param suppSvcStatus:

    - **[in]** - OIR status [telux::tel::SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga4b3d4bf650c2d356def7e2e27c844e28.html#a00029_1ga4b3d4bf650c2d356def7e2e27c844e28)

- Param provisionStatus:

    - **[in]** - Provision status [telux::tel::SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga1887ed7abdf043cffe8339a2efe360f7.html#a00029_1ga1887ed7abdf043cffe8339a2efe360f7).

- Param failureCause:

    - **[in]** - Returns failure cause in case the request fails.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- using GetCallWaitingPrefCb = std::function&lt;void([SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv418SuppServicesStatus) suppSvcStatus, [SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv422SuppSvcProvisionStatus) provisionStatus, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

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

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

Deprecated Use GetCallWaitingPrefExCb callback.

- Param suppSvcStatus:

    - **[in]** - Call waiting status [telux::tel::SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga4b3d4bf650c2d356def7e2e27c844e28.html#a00029_1ga4b3d4bf650c2d356def7e2e27c844e28)

- Param provisionStatus:

    - **[in]** - Provision status [telux::tel::SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga1887ed7abdf043cffe8339a2efe360f7.html#a00029_1ga1887ed7abdf043cffe8339a2efe360f7).

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors [telux::tel::FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0.html#a00029_1ga32a5b2bfc22c20d4dbcb0944ca6d91b0).

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

- using GetForwardingPrefCb = std::function&lt;void(std::vector&lt;ForwardInfo&gt; forwardInfoList, [SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv422SuppSvcProvisionStatus) provisionStatus, [FailureCause](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv412FailureCause) failureCause, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

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

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

Deprecated Use GetForwardingPrefExCb callback.

- Param forwardInfoList:

    - **[in]** - List of forward info [telux::tel::ForwardInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00765). Multiple info are received when different service class are forwarded to different numbers.

- Param provisionStatus:

    - **[in]** - Provision status [telux::tel::SuppSvcProvisionStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga1887ed7abdf043cffe8339a2efe360f7.html#a00029_1ga1887ed7abdf043cffe8339a2efe360f7).

- Param failureCause:

    - **[in]** - Returns failure cause in case the request fails.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not [telux::common::ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga84acdb74b7d34616b1ca497c7369810d.html#a00023_1ga84acdb74b7d34616b1ca497c7369810d)

Enums

- enum SuppServicesStatus

    - Defines supplementary services status.

*Values:*

- enumerator UNKNOWN

    - Supplementary service status unknown

- enumerator ENABLED

    - Supplementary service is enabled

- enumerator DISABLED

    - Supplementary service is disabled

- enum SuppSvcProvisionStatus

    - Defines supplementary services provision status.

*Values:*

- enumerator UNKNOWN

    - Supplementary service provision status unknown

- enumerator NOT\_PROVISIONED

    - Supplementary service is not provisioned

- enumerator PROVISIONED

    - Supplementary service is provisioned

- enumerator PRESENTATION\_RESTRICTED

    - Supplementary service is presentation restricted

- enumerator PRESENTATION\_ALLOWED

    - Supplementary service is presentation allowed

- enum ForwardOperation

    - Defines call forwarding operation.

*Values:*

- enumerator UNKNOWN

    - Status unknown

- enumerator ACTIVATE

    - To activate call forwarding

- enumerator DEACTIVATE

    - To deactivate call forwarding

- enumerator REGISTER

    - To register for call forwarding

- enumerator ERASE

    - To erase the previous registration

- enum ForwardReason

    - Defines reasons for call forwarding.

*Values:*

- enumerator UNCONDITIONAL

    - Unconditional call forwarding

- enumerator BUSY

    - Forward when the device is busy on another call

- enumerator NOREPLY

    - Forward when there is no reply

- enumerator NOT\_REACHABLE

    - Forward when the device is unreachable

- enumerator NOT\_LOGGED\_IN

    - Forward when the device is not logged in

- enum ServiceClassType

    - Defines service class for telephony

*Values:*

- enumerator NONE

    - Service class not provided

- enumerator VOICE

    - Service class voice

- enum FailureCause

    - Represents the cause for supplementary services failure.

*Values:*

- enumerator UNAVAILABLE

    - 

- enumerator OFFLINE

    - 

- enumerator CDMA\_LOCK

    - 

- enumerator NO\_SRV

    - 

- enumerator FADE

    - 

- enumerator INTERCEPT

    - 

- enumerator REORDER

    - 

- enumerator REL\_NORMAL

    - 

- enumerator REL\_SO\_REJ

    - 

- enumerator INCOM\_CALL

    - 

- enumerator ALERT\_STOP

    - 

- enumerator CLIENT\_END

    - 

- enumerator ACTIVATION

    - 

- enumerator MC\_ABORT

    - 

- enumerator MAX\_ACCESS\_PROBE

    - 

- enumerator PSIST\_N

    - 

- enumerator UIM\_NOT\_PRESENT

    - 

- enumerator ACC\_IN\_PROG

    - 

- enumerator ACC\_FAIL

    - 

- enumerator RETRY\_ORDER

    - 

- enumerator CCS\_NOT\_SUPPORTED\_BY\_BS

    - 

- enumerator NO\_RESPONSE\_FROM\_BS

    - 

- enumerator REJECTED\_BY\_BS

    - 

- enumerator INCOMPATIBLE

    - 

- enumerator ACCESS\_BLOCK

    - 

- enumerator ALREADY\_IN\_TC

    - 

- enumerator EMERGENCY\_FLASHED

    - 

- enumerator USER\_CALL\_ORIG\_DURING\_GPS

    - 

- enumerator USER\_CALL\_ORIG\_DURING\_SMS

    - 

- enumerator USER\_CALL\_ORIG\_DURING\_DATA

    - 

- enumerator REDIR\_OR\_HANDOFF

    - 

- enumerator ACCESS\_BLOCK\_ALL

    - 

- enumerator OTASP\_SPC\_ERR

    - 

- enumerator IS707B\_MAX\_ACC

    - 

- enumerator ACC\_FAIL\_REJ\_ORD

    - 

- enumerator ACC\_FAIL\_RETRY\_ORD

    - 

- enumerator TIMEOUT\_T42

    - 

- enumerator TIMEOUT\_T40

    - 

- enumerator SRV\_INIT\_FAIL

    - 

- enumerator T50\_EXP

    - 

- enumerator T51\_EXP

    - 

- enumerator RL\_ACK\_TIMEOUT

    - 

- enumerator BAD\_FL

    - 

- enumerator TRM\_REQ\_FAIL

    - 

- enumerator TIMEOUT\_T41

    - 

- enumerator INCOM\_REJ

    - 

- enumerator SETUP\_REJ

    - 

- enumerator NETWORK\_END

    - 

- enumerator NO\_FUNDS

    - 

- enumerator NO\_GW\_SRV

    - 

- enumerator NO\_CDMA\_SRV

    - 

- enumerator NO\_FULL\_SRV

    - 

- enumerator MAX\_PS\_CALLS

    - 

- enumerator UNKNOWN\_SUBSCRIBER

    - 

- enumerator ILLEGAL\_SUBSCRIBER

    - 

- enumerator BEARER\_SERVICE\_NOT\_PROVISIONED

    - 

- enumerator TELE\_SERVICE\_NOT\_PROVISIONED

    - 

- enumerator ILLEGAL\_EQUIPMENT

    - 

- enumerator CALL\_BARRED

    - 

- enumerator ILLEGAL\_SS\_OPERATION

    - 

- enumerator SS\_ERROR\_STATUS

    - 

- enumerator SS\_NOT\_AVAILABLE

    - 

- enumerator SS\_SUBSCRIPTION\_VIOLATION

    - 

- enumerator SS\_INCOMPATIBILITY

    - 

- enumerator FACILITY\_NOT\_SUPPORTED

    - 

- enumerator ABSENT\_SUBSCRIBER

    - 

- enumerator SHORT\_TERM\_DENIAL

    - 

- enumerator LONG\_TERM\_DENIAL

    - 

- enumerator SYSTEM\_FAILURE

    - 

- enumerator DATA\_MISSING

    - 

- enumerator UNEXPECTED\_DATA\_VALUE

    - 

- enumerator PWD\_REGISTRATION\_FAILURE

    - 

- enumerator NEGATIVE\_PWD\_CHECK

    - 

- enumerator NUM\_OF\_PWD\_ATTEMPTS\_VIOLATION

    - 

- enumerator POSITION\_METHOD\_FAILURE

    - 

- enumerator UNKNOWN\_ALPHABET

    - 

- enumerator USSD\_BUSY

    - 

- enumerator REJECTED\_BY\_USER

    - 

- enumerator REJECTED\_BY\_NETWORK

    - 

- enumerator DEFLECTION\_TO\_SERVED\_SUBSCRIBER

    - 

- enumerator SPECIAL\_SERVICE\_CODE

    - 

- enumerator INVALID\_DEFLECTED\_TO\_NUMBER

    - 

- enumerator MPTY\_PARTICIPANTS\_EXCEEDED

    - 

- enumerator RESOURCES\_NOT\_AVAILABLE

    - 

- enumerator UNASSIGNED\_NUMBER

    - 

- enumerator NO\_ROUTE\_TO\_DESTINATION

    - 

- enumerator CHANNEL\_UNACCEPTABLE

    - 

- enumerator OPERATOR\_DETERMINED\_BARRING

    - 

- enumerator NORMAL\_CALL\_CLEARING

    - 

- enumerator USER\_BUSY

    - 

- enumerator NO\_USER\_RESPONDING

    - 

- enumerator USER\_ALERTING\_NO\_ANSWER

    - 

- enumerator CALL\_REJECTED

    - 

- enumerator NUMBER\_CHANGED

    - 

- enumerator PREEMPTION

    - 

- enumerator DESTINATION\_OUT\_OF\_ORDER

    - 

- enumerator INVALID\_NUMBER\_FORMAT

    - 

- enumerator FACILITY\_REJECTED

    - 

- enumerator RESP\_TO\_STATUS\_ENQUIRY

    - 

- enumerator NORMAL\_UNSPECIFIED

    - 

- enumerator NO\_CIRCUIT\_OR\_CHANNEL\_AVAILABLE

    - 

- enumerator NETWORK\_OUT\_OF\_ORDER

    - 

- enumerator TEMPORARY\_FAILURE

    - 

- enumerator SWITCHING\_EQUIPMENT\_CONGESTION

    - 

- enumerator ACCESS\_INFORMATION\_DISCARDED

    - 

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

    - 

- enumerator RESOURCES\_UNAVAILABLE\_OR\_UNSPECIFIED

    - 

- enumerator QOS\_UNAVAILABLE

    - 

- enumerator REQUESTED\_FACILITY\_NOT\_SUBSCRIBED

    - 

- enumerator INCOMING\_CALLS\_BARRED\_WITHIN\_CUG

    - 

- enumerator BEARER\_CAPABILITY\_NOT\_AUTH

    - 

- enumerator BEARER\_CAPABILITY\_UNAVAILABLE

    - 

- enumerator SERVICE\_OPTION\_NOT\_AVAILABLE

    - 

- enumerator ACM\_LIMIT\_EXCEEDED

    - 

- enumerator BEARER\_SERVICE\_NOT\_IMPLEMENTED

    - 

- enumerator REQUESTED\_FACILITY\_NOT\_IMPLEMENTED

    - 

- enumerator ONLY\_DIGITAL\_INFORMATION\_BEARER\_AVAILABLE

    - 

- enumerator SERVICE\_OR\_OPTION\_NOT\_IMPLEMENTED

    - 

- enumerator INVALID\_TRANSACTION\_IDENTIFIER

    - 

- enumerator USER\_NOT\_MEMBER\_OF\_CUG

    - 

- enumerator INCOMPATIBLE\_DESTINATION

    - 

- enumerator INVALID\_TRANSIT\_NW\_SELECTION

    - 

- enumerator SEMANTICALLY\_INCORRECT\_MESSAGE

    - 

- enumerator INVALID\_MANDATORY\_INFORMATION

    - 

- enumerator MESSAGE\_TYPE\_NON\_IMPLEMENTED

    - 

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

    - 

- enumerator INFORMATION\_ELEMENT\_NON\_EXISTENT

    - 

- enumerator CONDITONAL\_IE\_ERROR

    - 

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

    - 

- enumerator RECOVERY\_ON\_TIMER\_EXPIRED

    - 

- enumerator PROTOCOL\_ERROR\_UNSPECIFIED

    - 

- enumerator INTERWORKING\_UNSPECIFIED

    - 

- enumerator OUTGOING\_CALLS\_BARRED\_WITHIN\_CUG

    - 

- enumerator NO\_CUG\_SELECTION

    - 

- enumerator UNKNOWN\_CUG\_INDEX

    - 

- enumerator CUG\_INDEX\_INCOMPATIBLE

    - 

- enumerator CUG\_CALL\_FAILURE\_UNSPECIFIED

    - 

- enumerator CLIR\_NOT\_SUBSCRIBED

    - 

- enumerator CCBS\_POSSIBLE

    - 

- enumerator CCBS\_NOT\_POSSIBLE

    - 

- enumerator IMSI\_UNKNOWN\_IN\_HLR

    - 

- enumerator ILLEGAL\_MS

    - 

- enumerator IMSI\_UNKNOWN\_IN\_VLR

    - 

- enumerator IMEI\_NOT\_ACCEPTED

    - 

- enumerator ILLEGAL\_ME

    - 

- enumerator PLMN\_NOT\_ALLOWED

    - 

- enumerator LOCATION\_AREA\_NOT\_ALLOWED

    - 

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

    - 

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

    - 

- enumerator NETWORK\_FAILURE

    - 

- enumerator MAC\_FAILURE

    - 

- enumerator SYNCH\_FAILURE

    - 

- enumerator NETWORK\_CONGESTION

    - 

- enumerator GSM\_AUTHENTICATION\_UNACCEPTABLE

    - 

- enumerator SERVICE\_NOT\_SUBSCRIBED

    - 

- enumerator SERVICE\_TEMPORARILY\_OUT\_OF\_ORDER

    - 

- enumerator CALL\_CANNOT\_BE\_IDENTIFIED

    - 

- enumerator INCORRECT\_SEMANTICS\_IN\_MESSAGE

    - 

- enumerator MANDATORY\_INFORMATION\_INVALID

    - 

- enumerator ACCESS\_STRATUM\_FAILURE

    - 

- enumerator INVALID\_SIM

    - 

- enumerator WRONG\_STATE

    - 

- enumerator ACCESS\_CLASS\_BLOCKED

    - 

- enumerator NO\_RESOURCES

    - 

- enumerator INVALID\_USER\_DATA

    - 

- enumerator TIMER\_T3230\_EXPIRED

    - 

- enumerator NO\_CELL\_AVAILABLE

    - 

- enumerator ABORT\_MSG\_RECEIVED

    - 

- enumerator RADIO\_LINK\_LOST

    - 

- enumerator TIMER\_T303\_EXPIRED

    - 

- enumerator CNM\_MM\_REL\_PENDING

    - 

- enumerator ACCESS\_STRATUM\_REJ\_RR\_REL\_IND

    - 

- enumerator ACCESS\_STRATUM\_REJ\_RR\_RANDOM\_ACCESS\_FAILURE

    - 

- enumerator ACCESS\_STRATUM\_REJ\_RRC\_REL\_IND

    - 

- enumerator ACCESS\_STRATUM\_REJ\_RRC\_CLOSE\_SESSION\_IND

    - 

- enumerator ACCESS\_STRATUM\_REJ\_RRC\_OPEN\_SESSION\_FAILURE

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- enumerator SERVICE\_OPTION\_NOT\_SUPPORTED

    - 

- enumerator ACCESS\_STRATUM\_REJ\_CONN\_EST\_FAILURE\_ACCESS\_BARRED

    - 

- enumerator ACCESS\_STRATUM\_REJ\_CONN\_REL\_NORMAL

    - 

- enumerator ACCESS\_STRATUM\_REJ\_UL\_DATA\_CNF\_FAILURE\_CONN\_REL

    - 

- enumerator BAD\_REQ\_WAIT\_INVITE

    - 

- enumerator BAD\_REQ\_WAIT\_REINVITE

    - 

- enumerator INVALID\_REMOTE\_URI

    - 

- enumerator REMOTE\_UNSUPP\_MEDIA\_TYPE

    - 

- enumerator PEER\_NOT\_REACHABLE

    - 

- enumerator NETWORK\_NO\_RESP\_TIME\_OUT

    - 

- enumerator NETWORK\_NO\_RESP\_HOLD\_FAIL

    - 

- enumerator DATA\_CONNECTION\_LOST

    - 

- enumerator UPGRADE\_DOWNGRADE\_REJ

    - 

- enumerator SIP\_403\_FORBIDDEN

    - 

- enumerator NO\_NETWORK\_RESP

    - 

- enumerator UPGRADE\_DOWNGRADE\_FAILED

    - 

- enumerator UPGRADE\_DOWNGRADE\_CANCELLED

    - 

- enumerator SSAC\_REJECT

    - 

- enumerator THERMAL\_EMERGENCY

    - 

- enumerator FAILURE\_1XCSFB\_SOFT

    - 

- enumerator FAILURE\_1XCSFB\_HARD

    - 

- enumerator CONNECTION\_EST\_FAILURE

    - 

- enumerator CONNECTION\_FAILURE

    - 

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

    - 

- enumerator ESR\_FAILURE

    - 

- enumerator MT\_CSFB\_NO\_RESPONSE\_FROM\_NW

    - 

- enumerator BUSY\_EVERYWHERE

    - 

- enumerator ANSWERED\_ELSEWHERE

    - 

- enumerator RLF\_DURING\_CC\_DISCONNECT

    - 

- enumerator TEMP\_REDIAL\_ALLOWED

    - 

- enumerator PERM\_REDIAL\_NOT\_NEEDED

    - 

- enumerator MERGED\_TO\_CONFERENCE

    - 

- enumerator LOW\_BATTERY

    - 

- enumerator CALL\_DEFLECTED

    - 

- enumerator RTP\_RTCP\_TIMEOUT

    - 

- enumerator RINGING\_RINGBACK\_TIMEOUT

    - 

- enumerator REG\_RESTORATION

    - 

- enumerator CODEC\_ERROR

    - 

- enumerator UNSUPPORTED\_SDP

    - 

- enumerator RTP\_FAILURE

    - 

- enumerator QoS\_FAILURE

    - 

- enumerator MULTIPLE\_CHOICES

    - 

- enumerator MOVED\_PERMANENTLY

    - 

- enumerator MOVED\_TEMPORARILY

    - 

- enumerator USE\_PROXY

    - 

- enumerator ALTERNATE\_SERVICE

    - 

- enumerator ALTERNATE\_EMERGENCY\_CALL

    - 

- enumerator UNAUTHORIZED

    - 

- enumerator PAYMENT\_REQUIRED

    - 

- enumerator METHOD\_NOT\_ALLOWED

    - 

- enumerator NOT\_ACCEPTABLE

    - 

- enumerator PROXY\_AUTHENTICATION\_REQUIRED

    - 

- enumerator GONE

    - 

- enumerator REQUEST\_ENTITY\_TOO\_LARGE

    - 

- enumerator REQUEST\_URI\_TOO\_LARGE

    - 

- enumerator UNSUPPORTED\_URI\_SCHEME

    - 

- enumerator BAD\_EXTENSION

    - 

- enumerator EXTENSION\_REQUIRED

    - 

- enumerator INTERVAL\_TOO\_BRIEF

    - 

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

    - 

- enumerator LOOP\_DETECTED

    - 

- enumerator TOO\_MANY\_HOPS

    - 

- enumerator ADDRESS\_INCOMPLETE

    - 

- enumerator AMBIGUOUS

    - 

- enumerator REQUEST\_TERMINATED

    - 

- enumerator NOT\_ACCEPTABLE\_HERE

    - 

- enumerator REQUEST\_PENDING

    - 

- enumerator UNDECIPHERABLE

    - 

- enumerator SERVER\_INTERNAL\_ERROR

    - 

- enumerator NOT\_IMPLEMENTED

    - 

- enumerator BAD\_GATEWAY

    - 

- enumerator SERVER\_TIME\_OUT

    - 

- enumerator VERSION\_NOT\_SUPPORTED

    - 

- enumerator MESSAGE\_TOO\_LARGE

    - 

- enumerator DOES\_NOT\_EXIST\_ANYWHERE

    - 

- enumerator SESS\_DESCR\_NOT\_ACCEPTABLE

    - 

- enumerator SRVCC\_END\_CALL

    - 

- enumerator INTERNAL\_ERROR

    - 

- enumerator SERVER\_UNAVAILABLE

    - 

- enumerator PRECONDITION\_FAILURE

    - 

- enumerator DRVCC\_IN\_PROG

    - 

- enumerator DRVCC\_END\_CALL

    - 

- enumerator CS\_HARD\_FAILURE

    - 

- enumerator CS\_ACQ\_FAILURE

    - 

- enumerator REJECTED\_ELSEWHERE

    - 

- enumerator CALL\_PULLED

    - 

- enumerator CALL\_PULL\_OUT\_OF\_SYNC

    - 

- enumerator HOLD\_RESUME\_FAILED

    - 

- enumerator HOLD\_RESUME\_CANCELED

    - 

- enumerator REINVITE\_COLLISION

    - 

- enumerator REDIAL\_SECONDARY\_LINE\_CS

    - 

- enumerator REDIAL\_SECONDARY\_LINE\_PS

    - 

- enumerator REDIAL\_SECONDARY\_LINE\_CS\_AUTO

    - 

- enumerator REDIAL\_SECONDARY\_LINE\_PS\_AUTO

    -

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

    - A listener class for receiving supplementary services notifications. The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.

Public Functions

- inline virtual ~ISuppServicesListener()

    - Destroy the [ISuppServicesListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00764) object.

- struct ForwardInfo

    - Represents parameters for forwarding.

Public Members

- [SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel18SuppServicesStatusE) status

    - Status of the supplemetary service

- [ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass

    - Service class

- std::string number = ""

    - Phone number to which the call to be forwarded

- uint8\_t noReplyTimer = 0

    - No reply timer

- struct ForwardReq

    - Represents parameters required for forwarding request.

Public Members

- [ForwardOperation](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel16ForwardOperationE) operation

    - Type of operation for forwarding

- [ForwardReason](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13ForwardReasonE) reason

    - Reason for call forwarding [telux::tel::ForwardReason](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga68eff99293f0fdfb434e0d5e0c45c90d.html#a00029_1ga68eff99293f0fdfb434e0d5e0c45c90d)

- [ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass

    - Service Class for operation [telux::tel::ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00029_1gaa254c1f4f35ead45e9bf54b874867d39)

- std::string number = ""

    - Number to which call has to be forwarded. This parameter is required only for registration purpose only. telux::tel::ForwardOperation::REGISTER

- uint8\_t noReplyTimer = 0

    - Timer for no reply operation. Required only for no reply forward reason. telux::tel::ForwardReason::NOREPLY.

- class ISuppServicesManager

    - [ISuppServicesManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00767) is the interface to provide supplementary services like call forwarding and call waiting.

Public Functions

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

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

- Returns:

    - SERVICE\_AVAILABLE - If [ISuppServicesManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00767) manager is ready for service. SERVICE\_UNAVAILABLE - If [ISuppServicesManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00767) manager is temporarily unavailable. SERVICE\_FAILED - If [ISuppServicesManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00767) manager encountered an irrecoverable failure.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) setCallWaitingPref([SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel18SuppServicesStatusE) suppSvcStatus, [SetSuppSvcPrefCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga1a1310c4e03aeda0d4b2f489ed25186e.html#_CPPv4N5telux3tel22SetSuppSvcPrefCallbackE) callback = nullptr) = 0

    - Enable/disable call waiting on device.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - - **suppSvcStatus** – **[in]** - Call waiting preference [telux::tel::SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga4b3d4bf650c2d356def7e2e27c844e28.html#a00029_1ga4b3d4bf650c2d356def7e2e27c844e28).
- **callback** – **[in]** - Callback function to get the response of setCallWaitingPref

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestCallWaitingPref([GetCallWaitingPrefExCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga7cd264a3de5b2a806062a9884c139ea6.html#_CPPv4N5telux3tel22GetCallWaitingPrefExCbE) callback) = 0

    - This API queries the preference for call waiting.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** - Callback function to get the response of call waiting preference.

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) setForwardingPref([ForwardReq](https://docs.qualcomm.com/doc/80-PF458-2/topic/supplementary_services.html#_CPPv4N5telux3tel10ForwardReqE) forwardReq, [SetSuppSvcPrefCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga1a1310c4e03aeda0d4b2f489ed25186e.html#_CPPv4N5telux3tel22SetSuppSvcPrefCallbackE) callback = nullptr) = 0

    - To set call forwarding preference.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - - **forwardReq** – **[in]** - Parameters for call forwarding operation. [telux::tel::ForwardReq](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00766)
- **callback** – **[in]** - Callback function to get response of setForwardingPref API.

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestForwardingPref([ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass, [ForwardReason](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13ForwardReasonE) reason, [GetForwardingPrefExCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga33c2af40fc08a4c9e7656c9236f4f5dc.html#_CPPv4N5telux3tel21GetForwardingPrefExCbE) callback) = 0

    - This API queries preference for call forwarding supplementary service. If active, returns for which service classes and call forwarding number it is active. There is an option to configure for which service class the request is made, if the option is not configured it assumes that the request is made for all service classes.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - - **serviceClass** – **[in]** - Service class [telux::tel::ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00029_1gaa254c1f4f35ead45e9bf54b874867d39).
- **callback** – **[in]** - Callback function to get the response of request call forwarding preference.

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) setOirPref([ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass, [SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel18SuppServicesStatusE) suppSvcStatus, [SetSuppSvcPrefCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga1a1310c4e03aeda0d4b2f489ed25186e.html#_CPPv4N5telux3tel22SetSuppSvcPrefCallbackE) callback = nullptr) = 0

    - Activate/Deactivate originating identification restriction preference on the device. If the OIR service was activated, the original call number will be restricted to the target when a call is dialed to a subscriber.

On platforms with access control enabled, the caller must have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - - **serviceClass** – **[in]** - Service class [telux::tel::ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00029_1gaa254c1f4f35ead45e9bf54b874867d39).
- **suppSvcStatus** – **[in]** - OIR Status [telux::tel::SuppServicesStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00029_1ga4b3d4bf650c2d356def7e2e27c844e28.html#a00029_1ga4b3d4bf650c2d356def7e2e27c844e28).
- **callback** – **[in]** - Callback function to get the response of setOIRPref

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestOirPref([ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass, [GetOirPrefCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1ga3e1e00f31a09c10fb196f0aec1290540.html#_CPPv4N5telux3tel12GetOirPrefCbE) callback) = 0

    - This API queries the originating identification restriction preference.

On platforms with access control enabled, the caller must have TELUX\_TEL\_SUPP\_SERVICES permissions to invoke this API successfully.

- Parameters:

    - - **serviceClass** – **[in]** - Service class [telux::tel::ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00029_1gaa254c1f4f35ead45e9bf54b874867d39).
- **callback** – **[in]** - Callback function to get the response of requestOIRPref

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[ISuppServicesListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00764.html#_CPPv4N5telux3tel21ISuppServicesListenerE)&gt; listener) = 0

    - Register a listener for supplementary services events.

- Parameters:

    - **listener** – **[in]** Pointer to [ISuppServicesListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00764) object that processes the notification.

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) removeListener(std::weak\_ptr&lt;[ISuppServicesListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00764.html#_CPPv4N5telux3tel21ISuppServicesListenerE)&gt; listener) = 0

    - Remove a previously added listener.

- Parameters:

    - **listener** – **[in]** Pointer to [ISuppServicesListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00764) object that needs to be removed.

- Returns:

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

- inline virtual ~ISuppServicesManager()

    - Destructor for ISupplementaryServicesManager

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestCallWaitingPref([GetCallWaitingPrefCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaf97045cf1eef8b1592ee0f0882955f9d.html#_CPPv4N5telux3tel20GetCallWaitingPrefCbE) callback) = 0

    - This API queries the preference for call waiting.

Deprecated This API is not being supported instead use requestCallWaitingPref( GetCallWaitingPrefExCb) API.

- Parameters:

    - **callback** – **[in]** - Callback function to get the response of requestCallWaitingPref.

- Returns:

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

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestForwardingPref([ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaa254c1f4f35ead45e9bf54b874867d39.html#_CPPv4N5telux3tel12ServiceClassE) serviceClass, [ForwardReason](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13ForwardReasonE) reason, [GetForwardingPrefCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00029_1gaf7525305cbbe00a69ac64f549cfe7489.html#_CPPv4N5telux3tel19GetForwardingPrefCbE) callback) = 0

    - This API queries preference for call forwarding supplementary service. If active, returns for which service classes and call forwarding number it is active. It also returns the provision status of the supplemetary service. There is an option to configure for which service class the request is made, if the option is not configured it assumes that the request is made for all service classes.

Deprecated This API is not being supported instead use requestForwardingPref( ServiceClass serviceClass, ForwardReason reason, GetForwardingPrefExCb callback) API.

- Parameters:

    - - **serviceClass** – **[in]** - Service class [telux::tel::ServiceClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00029_1gaa254c1f4f35ead45e9bf54b874867d39).
- **callback** – **[in]** - Callback function to get the response of request call forwarding preference.

- Returns:

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

Last Published: Apr 14, 2026

[Previous Topic
telux::tel::IRemoteSimManager](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/remote_sim.md) [Next Topic
Thermal](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/thermal.md)