# IMS settings

**Detailed Description**

This section contains APIs related to IMS Configuration.

- *group* Telematics\_ims\_settings

    - Typedefs

- using ImsServiceConfigValidity = std::bitset&lt;32&gt;

    - 32 bit mask that denotes which of the IMS settings configuration parameters defined in ImsServiceConfigType enum are configured currently. For example, if the client selects the VOIMS configuration, 1st bit position is set.

- using ImsServiceConfigCb = std::function&lt;void([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, ImsServiceConfig config, [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 in the response to requestServiceConfig API.

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

- Param slotId:

    - **[in]** Slot for which the IMS service configuration is intended.

- Param config:

    - **[in]** Indicates which configuration is valid and whether the configuration is enabled or disabled. [ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00710).

- 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 ImsSipUserAgentConfigCb = std::function&lt;void([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, std::string sipUserAgent, [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 in the response to requestSipUserAgent API.

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

- Param slotId:

    - **[in]** Slot for which the IMS service configuration is intended.

- Param sipUserAgent:

    - **[in]** Indicates the configured Sip UserAgent.

- 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 ImsVonrStatusCb = std::function&lt;void([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, bool isEnable, [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 in the response to requestVonrStatus API.

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

Note

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

- Param slotId:

    - **[in]** Logical slot for which the status of the IMS voice over NR service is requested.

- Param isEnable:

    - **[in]** Indicates the IMS voice over NR service is enabled or disabled.

- 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 ImsServiceConfigType

    - Defines the IMS service configuration parameters

*Values:*

- enumerator IMSSETTINGS\_VOIMS

    - Voice calling support on LTE

- enumerator IMSSETTINGS\_IMS\_SERVICE

    - IMS Normal Registration configuration

- enumerator IMSSETTINGS\_SMS

    - SMS support on IMS

- enumerator IMSSETTINGS\_RTT

    - RTT support on IMS

- struct ImsServiceConfig

    - Defines the selected IMS service configuration parameters and their corresponding value

Public Members

- [ImsServiceConfigValidity](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00039_1gaf6587aa427e1594ff777aed2f684a280.html#_CPPv4N5telux3tel24ImsServiceConfigValidityE) configValidityMask

    - Indicates the configurations type. Bit set to 1 denotes the config is valid. Example: configValidityMask = 0x01 denotes [ImsServiceConfig::voImsEnabled](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00710_1aa309d1176cab42e56fbba81a5e852e46) has a valid value

- bool voImsEnabled

    - Enable/Disable VOIMS service

- bool imsServiceEnabled

    - Enable/Disable IMS service

- bool smsEnabled

    - Enable/Disable SMS service

- bool rttEnabled

    - Enable/Disable RTT service

- class IImsSettingsManager

    - ImsSettingsManager allows IMS settings. For example enabling or disabling IMS service, VOIMS service.

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 [IImsSettingsManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00711) object is in a usable state.

- Returns:

    - SERVICE\_AVAILABLE - If IMS settings manager is ready for service. SERVICE\_UNAVAILABLE - If IMS settings manager is temporarily unavailable. SERVICE\_FAILED - If IMS settings 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) requestServiceConfig([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, [ImsServiceConfigCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00039_1ga7f7120a87a13ae69eded34ea50794ddb.html#_CPPv4N5telux3tel18ImsServiceConfigCbE) callback) = 0

    - Request the IMS service configurations

- Parameters:

    - - **slotId** – **[in]** Slot for which the IMS service configurations is requested.
- **callback** – **[in]** Callback function to get the response of request IMS service configurations.

- Returns:

    - Status of requestServiceConfig 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) requestSipUserAgent([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, [ImsSipUserAgentConfigCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00039_1gac6b6b1961cacae50b654f5389a4139c8.html#_CPPv4N5telux3tel23ImsSipUserAgentConfigCbE) callback) = 0

    - Request the IMS SIP User Agent configuration

Note

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

- Parameters:

    - - **slotId** – **[in]** Slot for which the IMS SIP User Agent configuration is requested.
- **callback** – **[in]** Callback function to get the response of request IMS SIP User Agent configurations.

- Returns:

    - Status of requestSipUserAgent 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) setSipUserAgent([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, std::string userAgent, [common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Set the IMS SIP user agent

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_IMS\_SETTINGS 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:

    - - **slotId** – **[in]** Slot for which the IMS SIP User Agent configuration is intended.
- **userAgent** – **[in]** Configure User Agent Client(UAC) orignating the request.
- **callback** – **[in]** Callback function to get the response of set IMS SIP User Agent configuration request.

- Returns:

    - Status of setSipUserAgent 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) setServiceConfig([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, [ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00710.html#_CPPv4N5telux3tel16ImsServiceConfigE) config, [common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - To configure the IMS service configurations. Also specifiy whether configuration needs to be enabled or disabled.

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

- Parameters:

    - - **slotId** – **[in]** Slot for which the IMS service configuration is intended.
- **config** – **[in]** Indicates which configuration are configured currently and whether the config is enabled or disabled. [ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00710).
- **callback** – **[in]** Callback function to get the response of set IMS service configuration request.

- Returns:

    - Status of setServiceConfig 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) toggleVonr([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, bool isEnable, [common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Enable or disable IMS voice over NR service. If voice over NR is disabled, then the UE will fallback to use voice over LTE if the network supports it. For voice over NR/LTE, ensure that voImsEnabled in [telux::tel::ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00710) is turned on.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_IMS\_SETTINGS 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:

    - - **slotId** – **[in]** Logical slot for toggling IMS voice over NR service.
- **isEnable** – **[in]** Indicates whether the IMS voice over NR service is enabled or disabled. If voice over NR is disabled, then IMS voice over LTE is enabled
- **callback** – **[in]** Callback function to get the response for toggling IMS voice over NR service.

- Returns:

    - Status of toggleVonr 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) requestVonrStatus([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, [ImsVonrStatusCb](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00039_1ga808cf7f35d273db52e5d7fadbbf32dbc.html#_CPPv4N5telux3tel15ImsVonrStatusCbE) callback) = 0

    - Request the status of the IMS voice over NR service.

On platforms with Access control enabled, Caller needs to have TELUX\_TEL\_IMS\_SETTINGS 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:

    - - **slotId** – **[in]** Logical slot for which the IMS voice over NR service is requested.
- **callback** – **[in]** Callback function to get the response of request IMS voice over NR service.

- Returns:

    - Status of requestVonrStatus 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;[IImsSettingsListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00712.html#_CPPv4N5telux3tel20IImsSettingsListenerE)&gt; listener) = 0

    - Register a listener for specific events in the IMS settings subsystem.

- Parameters:

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

- Returns:

    - Status of registerListener 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) deregisterListener(std::weak\_ptr&lt;[IImsSettingsListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00712.html#_CPPv4N5telux3tel20IImsSettingsListenerE)&gt; listener) = 0

    - Deregister the previously added listener.

- Parameters:

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

- Returns:

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

- inline virtual ~IImsSettingsManager()

    -

- class IImsSettingsListener : 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)::[ISDKListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00046.html#_CPPv4N5telux6common12ISDKListenerE)

    - Listener class for getting IMS service configuration change notifications. The listener method can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe.

Public Functions

- inline virtual void onImsServiceConfigsChange([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, [ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00710.html#_CPPv4N5telux3tel16ImsServiceConfigE) config)

    - This function is called whenever any IMS service configuration is changed.

- Parameters:

    - - **slotId** – **[in]** SIM corresponding to slot identifier for which the IMS service configuration has changed.
- **config** – **[in]** Indicates which configuration is valid and whether the config is enabled or disabled. [ImsServiceConfig](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00710).

- inline virtual void onImsSipUserAgentChange([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, std::string sipUserAgent)

    - This function is called whenever any IMS SIP user agent is changed.

Note

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

- Parameters:

    - - **slotId** – **[in]** SIM corresponding to slot identifier for which the IMS SIP user agent is changed.
- **sipUserAgent** – **[in]** Indicates the configured SIP User Agent.

- inline virtual void onServiceStatusChange([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) status)

    - This function is called when [IImsSettingsManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00711) service status changes.

- Parameters:

    - **status** – **[in]** - [telux::common::ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00023_1ga7063b4a1071b6581022e30b730684e4d.html#a00023_1ga7063b4a1071b6581022e30b730684e4d)

- inline virtual ~IImsSettingsListener()

    - Destructor of [IImsSettingsListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00712)

Last Published: Apr 14, 2026

[Previous Topic
telux::tel::ICellBroadcastListener](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/cell_broadcast.md) [Next Topic
Multi-SIM](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/multi_sim.md)