# 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

- using SetSuppSvcPrefCallback = std::function&lt;void(telux::common::ErrorCode error, FailureCause 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

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors telux::tel::FailureCause.

- using GetCallWaitingPrefExCb = std::function&lt;void(SuppServicesStatus suppSvcStatus, FailureCause failureCause, telux::common::ErrorCode 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

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors telux::tel::FailureCause.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not telux::common::ErrorCode

- using GetForwardingPrefExCb = std::function&lt;void(std::vector&lt;ForwardInfo&gt; forwardInfoList, FailureCause failureCause, telux::common::ErrorCode 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. 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

- using GetOirPrefCb = std::function&lt;void(SuppServicesStatus suppSvcStatus, SuppSvcProvisionStatus provisionStatus, FailureCause failureCause, telux::common::ErrorCode 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

- Param provisionStatus:

    - **[in]** - Provision status telux::tel::SuppSvcProvisionStatus.

- 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

- using GetCallWaitingPrefCb = std::function&lt;void(SuppServicesStatus suppSvcStatus, SuppSvcProvisionStatus provisionStatus, FailureCause failureCause, telux::common::ErrorCode 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

- Param provisionStatus:

    - **[in]** - Provision status telux::tel::SuppSvcProvisionStatus.

- Param failureCause:

    - **[in]** - Failure cause populated only in case of errors telux::tel::FailureCause.

- Param error:

    - **[in]** - Return code which indicates whether the operation succeeded or not telux::common::ErrorCode

- using GetForwardingPrefCb = std::function&lt;void(std::vector&lt;ForwardInfo&gt; forwardInfoList, SuppSvcProvisionStatus provisionStatus, FailureCause failureCause, telux::common::ErrorCode 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. Multiple info are received when different service class are forwarded to different numbers.

- Param provisionStatus:

    - **[in]** - Provision status telux::tel::SuppSvcProvisionStatus.

- 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

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::common::IServiceStatusListener

    - 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 object.

- struct ForwardInfo

    - Represents parameters for forwarding.

Public Members

- SuppServicesStatus status

    - Status of the supplemetary service

- ServiceClass 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 operation

    - Type of operation for forwarding

- ForwardReason reason

    - Reason for call forwarding telux::tel::ForwardReason

- ServiceClass serviceClass

    - Service Class for operation telux::tel::ServiceClass

- 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 is the interface to provide supplementary services like call forwarding and call waiting.

Public Functions

- virtual telux::common::ServiceStatus getServiceStatus() = 0

    - This status indicates whether the ISuppServicesManager object is in a usable state.

- Returns:

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

- virtual telux::common::Status setCallWaitingPref(SuppServicesStatus suppSvcStatus, SetSuppSvcPrefCallback 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.
- **callback** – **[in]** - Callback function to get the response of setCallWaitingPref

- Returns:

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

- virtual telux::common::Status requestCallWaitingPref(GetCallWaitingPrefExCb 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::common::Status setForwardingPref(ForwardReq forwardReq, SetSuppSvcPrefCallback 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
- **callback** – **[in]** - Callback function to get response of setForwardingPref API.

- Returns:

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

- virtual telux::common::Status requestForwardingPref(ServiceClass serviceClass, ForwardReason reason, GetForwardingPrefExCb 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.
- **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::common::Status setOirPref(ServiceClass serviceClass, SuppServicesStatus suppSvcStatus, SetSuppSvcPrefCallback 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.
- **suppSvcStatus** – **[in]** - OIR Status telux::tel::SuppServicesStatus.
- **callback** – **[in]** - Callback function to get the response of setOIRPref

- Returns:

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

- virtual telux::common::Status requestOirPref(ServiceClass serviceClass, GetOirPrefCb 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.
- **callback** – **[in]** - Callback function to get the response of requestOIRPref

- Returns:

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

- virtual telux::common::Status registerListener(std::weak\_ptr&lt;ISuppServicesListener&gt; listener) = 0

    - Register a listener for supplementary services events.

- Parameters:

    - **listener** – **[in]** Pointer to ISuppServicesListener object that processes the notification.

- Returns:

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

- virtual telux::common::Status removeListener(std::weak\_ptr&lt;ISuppServicesListener&gt; listener) = 0

    - Remove a previously added listener.

- Parameters:

    - **listener** – **[in]** Pointer to ISuppServicesListener 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::common::Status requestCallWaitingPref(GetCallWaitingPrefCb 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::common::Status requestForwardingPref(ServiceClass serviceClass, ForwardReason reason, GetForwardingPrefCb 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.
- **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 Next Topic

Thermal