# 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 slotId, ImsServiceConfig config, telux::common::ErrorCode 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.

- Param error:

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

- using ImsSipUserAgentConfigCb = std::function&lt;void(SlotId slotId, std::string sipUserAgent, telux::common::ErrorCode 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.

- using ImsVonrStatusCb = std::function&lt;void(SlotId slotId, bool isEnable, telux::common::ErrorCode 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.

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 configValidityMask

    - Indicates the configurations type.
    Copy to clipboard

 Bit set to 1 denotes the config is valid. Example: configValidityMask = 0x01 denotes ImsServiceConfig::voImsEnabled 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::common::ServiceStatus getServiceStatus() = 0

    - This status indicates whether the IImsSettingsManager 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::common::Status requestServiceConfig(SlotId slotId, ImsServiceConfigCb 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::common::Status requestSipUserAgent(SlotId slotId, ImsSipUserAgentConfigCb 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::common::Status setSipUserAgent(SlotId slotId, std::string userAgent, common::ResponseCallback 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::common::Status setServiceConfig(SlotId slotId, ImsServiceConfig config, common::ResponseCallback 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.
- **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::common::Status toggleVonr(SlotId slotId, bool isEnable, common::ResponseCallback 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 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::common::Status requestVonrStatus(SlotId slotId, ImsVonrStatusCb 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::common::Status registerListener(std::weak\_ptr&lt;IImsSettingsListener&gt; listener) = 0

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

- Parameters:

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

- Returns:

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

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

    - Deregister the previously added listener.

- Parameters:

    - **listener** – **[in]** Pointer to IImsSettingsListener object that needs to be deregistered.

- Returns:

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

- inline virtual ~IImsSettingsManager()

    -

- class IImsSettingsListener : public telux::common::ISDKListener

    - 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 slotId, ImsServiceConfig 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.

- inline virtual void onImsSipUserAgentChange(SlotId 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::common::ServiceStatus status)

    - This function is called when IImsSettingsManager service status changes.

- Parameters:

    - **status** – **[in]** - telux::common::ServiceStatus

- inline virtual ~IImsSettingsListener()

    - Destructor of IImsSettingsListener

Last Published: May 20, 2026

Previous Topic
 
telux::tel::ICellBroadcastListener Next Topic

Multi-SIM