# NTN Manager

**Detailed Description**

This section contains APIs configure and use the NTN network to send non-IP data.

- *group* Telematics\_satcom

    - Typedefs

- using TransactionId = uint64\_t

    - Every sent data packet has a unique Transaction identifier. telux::satcom::sendData API will return a transaction identifier which can be used to map to acknowledgement received in telux::satcom::onDataAck

Enums

- enum NtnState

    - Defines the supported NTN states.

*Values:*

- enumerator DISABLED

    - NTN is disabled

- enumerator OUT\_OF\_SERVICE

    - NTN is enabled but device is not registered with the NTN service provider

- enumerator IN\_SERVICE

    - Normal operation, device is registered with a NTN service provider and is online

- enum SignalStrength

    - *Values:*

- enumerator NONE

    - 

- enumerator POOR

    - 

- enumerator MODERATE

    - 

- enumerator GOOD

    - 

- enumerator GREAT

    -

- enum LocationFixRequestReason

    - Provides the reason for location fix request.

*Values:*

- enumerator UNKOWN

    - 

- enumerator NORMAL

    - 

- enumerator VALIDITY\_TIMER\_EXPIRED

    - A routine request for a location fix. If a valid location fix is available in the cache, it can be provided to fulfill this request.

- enum LocationStatus

    - Specifies the status of a location fix request.

*Values:*

- enumerator INVALID

    - 

- enumerator SUCCESS

    - The location fix fetch was successful.

- enumerator INVALID\_ARG

    - The location fix fetch failed due to invalid location request.

- enumerator INTERNAL\_ERR

    - The location fix fetch cannot be started due to an internal error

- enumerator NOT\_SUPPORTED

    - The location fix cannot be provided due to missing external GNSS support or other reasons.

- enumerator RETRY

    - The location fix request should be retried after a given hysteresis time.

- enumerator FAILED

    - The location fix fetch was started but failed.

- struct NtnCapabilities

    - Capabilities of the underlying NTN network. Client can call telux::satcom::getNtnCapabilities to get the NTN network capabilities. The NTN network capabilities might change over time and client shall implement the onCapabilitiesChange listener in order to get the latest capabilities.

Public Members

- int64\_t maxDataSize

    - Maximum size of the data that can be sent in bytes

- struct SystemSelectionSpecifier

    - System selection information

Public Members

- std::string mcc

    - Mobile country code

- std::string mnc

    - Mobile network code

- std::vector&lt;uint64\_t&gt; ntnBands

    - List of RF bands

- std::vector&lt;uint64\_t&gt; ntnEarfcns

    - List of E-UTRAN absolute radio frequency channels

- struct VelocityInfo

    - Velocity parameters

Public Members

- bool isEnuValueValid

    - Indicates if the ENU velocity values are valid

- float enuVel[MAX\_DIMENSIONS]

    - Velocity in the Easting, Northing, and Upward directions

- bool isEnuUncerValid

    - Indicates if the uncertainty in the ENU values is valid

- float enuUncer[MAX\_DIMENSIONS]

    - Uncertainty in ENU values

- struct LocationFix

    - Location fix parameters

Public Members

- float lat

    - Latitude coordinate in degrees

- float lon

    - Longitude coordinate in degrees

- float alt

    - Altitude above sea level

- uint32\_t uncerCircular

    - Radius of the horizontal uncertainty circle in meters

- [VelocityInfo](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00587.html#_CPPv4N5telux6satcom12VelocityInfoE) velInfo

    - Velocity parameters

- bool isHeadingValid

    - Indicates if the heading value is valid

- uint32\_t heading

    - Heading or direction in degrees

- bool isHeadingUncerValid

    - Indicates if the heading uncertainty value is valid

- uint32\_t headingUncer

    - Uncertainty in the heading value in degrees

- bool isConfidenceValid

    - Indicates if the confidence value is valid

- uint32\_t confidence

    - Horizontal uncertainty confidence value

- class INtnManager

    - NtnManager is a primary interface for configuring NTN network and sending non-IP data.

Public Functions

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

    - Checks the status of NtnManager and returns the result.

Note

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

- Returns:

    - SERVICE\_AVAILABLE If NtnManager object is ready for service. SERVICE\_UNAVAILABLE If NtnManager object is temporarily unavailable due to a crash in an underlying service. SERVICE\_FAILED - If NtnManager object encountered an irrecoverable failure.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) isNtnSupported(bool &isSupported) = 0

    - Checks if NTN mode is supported on this device.

Note

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

- Parameters:

    - **isSupported** – **[out]** True, if NTN mode is supported, false in all other cases

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) enableNtn(bool enable, bool isEmergency, const std::string &iccid) = 0

    - Enable or disable NTN mode. Enabling NTN will result into modem disabling the TN (terrestrial network). Disabling NTN will result into modem enabling the TN.

On platforms with Access control enabled, Caller needs to have TELUX\_NTN\_CONFIG permission to invoke this API successfully.

Note

If isEmergency is set to true, the NTN network can be used for both emergency and non-emergency purposes. If isEmergency is set to false, the NTN can only be used for non-emergency purposes. Whether a data packet being sent is emergency or non-emergency can be specified while calling the telux::satcom::sendData API.

Note

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

- Parameters:

    - - **enable** – **[in]** Enable/Disable NTN mode.
- **isEmergency** – **[in]** True, if this NTN connection can be used for emergency purposes.
- **iccid** – **[in]** Integrated Circuit Card Identification (ICCID) of the SIM to be used for NTN. [telux::tel::ISubscription::getIccId](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00768_1aa14a71358f2f846e9394e7ef6f8873c1) can be used to get the ICCID of the SIM to be used for NTN.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) sendData(uint8\_t \*data, uint32\_t size, bool isEmergency, [TransactionId](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00589.html#_CPPv4N5telux6satcom11INtnManager8sendDataEP7uint8_t8uint32_tbR13TransactionId) &TransactionId) = 0

    - Send non-IP data over NTN network.

On platforms with Access control enabled, Caller needs to have TELUX\_NTN\_DATA permission to invoke this API successfully.

Note

This API should only be called when the NTN state is IN\_SERVICE. Refer to [getNtnState()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1aee169bb82911bf33ff79a9b73f23d23d) API to get the NTN state.

The maximum size of the data packet must be less than maxDataSize returned by the telux::satcom::getNtnCapabilities or telux::satcom::onCapabilitiesChange.

This function does not guarantee the delivery of the packet. Refer to telux::satcom::onDataAck listener to get the delivery status (L2 ack/timeout) of the packet. The transaction Id returned can be used to map messages to their respective acknowledgements.

Note

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

- Parameters:

    - - **data** – **[in]** Data to be sent over the NTN network.
- **size** – **[in]** Number of bytes to be sent.
- **isEmergency** – **[in]** indicate if this is emergency data. This parameter can be set to true only if telux::satcom::enableNtn is called with isEmergency set to true.
- **TransactionId** – **[out]** The message ID of the data packet.

- Returns:

    - telux::common::Status::SUCCESS if the modem accepts the data packet to send over the NTN network or appropriate status otherwise.

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

    - Abort all the data packets waiting in the queue for transmission. This API has no effect on already transmitted packets. All the aborted packets will have corresponding  called with appropriate error.

On platforms with Access control enabled, Caller needs to have TELUX\_NTN\_DATA 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.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) getNtnCapabilities([NtnCapabilities](https://docs.qualcomm.com/doc/80-PF458-10/topic/ntn_manager.html#_CPPv4N5telux6satcom15NtnCapabilitiesE) &capabilities) = 0

    - Get the capabilties of NTN network.

Note

that the capabilities returned by this API might change over the period of time. The client shall implement telux::satcom::onCapabilitiesChange to receive the updated capabilities.

Note

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

- Parameters:

    - **capabilities** – **[out]** Capabilities of the NTN network.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) getSignalStrength([SignalStrength](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom14SignalStrengthE) &signalStrength) = 0

    - Get the signal strength of the NTN network.

Note

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

- Parameters:

    - **SignalStrength** – **[out]** Signal strength of the NTN network.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) updateSystemSelectionSpecifiers(std::vector&lt;[SystemSelectionSpecifier](https://docs.qualcomm.com/doc/80-PF458-10/topic/ntn_manager.html#_CPPv4N5telux6satcom24SystemSelectionSpecifierE)&gt; &params) = 0

    - Update the system selection specifiers (SFL list) that modem uses to scan for NTN network. Modem will prioritize the SFL list provided by this API to expedite acquisition of service If the modem fails to acquire service using SFL, modem will perform band scan. This API shall be called only before calling [enableNtn](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1a8fd5fc6b7ecb4da15b87b8018cb0f7c0), otherwise it will not have any effect.

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

    - **params** – **[in]** SFL list.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [NtnState](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom8NtnStateE) getNtnState() = 0

    - Returns current NTN state. For further details on NTN states, refer to

Note

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

- Returns:

    - Current NTN state.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) enableCellularScan(bool enable) = 0

    - Enable/disable background cellular scanning. If the background cellular scanning is enabled, the modem will scan for the availability of TN networks while in the NTN mode. The modem will run this scan periodically and the result will be communicated by telux::satcom::INtnManager::onCellularCoverageAvailable. The modem will not perform the NTN to TN switch on its own. It is up to the client to decide whether to switch to TN mode or not based on the result of the scan.

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

    - **enable** – **[in]** True, to enable cellular scan.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) setLocationFix(const [LocationFix](https://docs.qualcomm.com/doc/80-PF458-10/topic/struct_a00588.html#_CPPv4N5telux6satcom11LocationFixE) &params) = 0

    - Updates the location information from the external GNSS receiver. This needs to be called before enabling NTN.

On platforms with Access control enabled, Caller needs to have TELUX\_NTN\_CONFIG permission to invoke this API successfully.

Note

Ensure that external GNSS receiver is turned off after updating the location information and before enabling NTN in order to have reliable GNSS and NTN operations. This is only applicable if there is interference expected between the GNSS and NTN bands.

Note

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

- Parameters:

    - **params** – **[in]** location fix parameters.

- Returns:

    - Error code which indicates whether operation succeeded or not.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) locationFixResponse([LocationStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom14LocationStatusE) status, uint64\_t waitTime) = 0

    - Provides the response when the modem makes a request via [telux::satcom::INtnListener::onLocationFixRequest](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00584_1a9711c22d675cba2e92a85f5d47f8ca64), for a location fix from the External GNSS receiver.

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

    - - **status** – **[in]** The response status to the fetch request.
- **waitTime** – **[in]** The time in milli seconds after which the modem should re-request the location fix using [telux::satcom::INtnListener::onLocationFixRequest](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00584_1a9711c22d675cba2e92a85f5d47f8ca64). This is applicable for LocationStatus::RETRY if the location fix cannot be fetched from the external GNSS receiver and the location fix request needs to be re-triggered.

- Returns:

    - Error code which indicates whether operation succeeded or not.

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

    - Register with NtnManager as listener for receiving service status, NTN state changes and data availability notifications.

Note

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

- Parameters:

    - **listener** – **[in]** Receives the notifications

- Returns:

    - telux::common::Status::SUCCESS if the listener is registered, an appropriate status otherwise.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[INtnListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00584.html#_CPPv4N5telux6satcom12INtnListenerE)&gt; listener) = 0

    - Deregisters a listener registered previously with [telux::satcom::INtnManager::registerListener()](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1a28e3a8504661bc24aacff5f712555166).

Note

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

- Parameters:

    - **listener** – **[in]** listener to be deregistered

- Returns:

    - telux::common::Status::SUCCESS if the listener is registered, an appropriate status otherwise.

- inline virtual ~INtnManager()

    - Destructor for [INtnManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589)

- class INtnListener : public [telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ISDKListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00046.html#_CPPv4N5telux6common12ISDKListenerE)

    - Interface for NTN listener that allows client to be notified of asynchronous events. Receives a notification whenever service status, NTN state, NTN capabilities or signal strength is changed or data is received from NTN network.

It is recommended that the client should not perform any blocking operation from within the methods in this class. The implementation of the methods should be thread safe.

Public Functions

- inline virtual void onNtnStateChange([NtnState](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom8NtnStateE) newState)

    - This function is called when NTN state changes.

Note

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

- Parameters:

    - **state** – **[in]** State of the NTN network

- inline virtual void onCapabilitiesChange([NtnCapabilities](https://docs.qualcomm.com/doc/80-PF458-10/topic/ntn_manager.html#_CPPv4N5telux6satcom15NtnCapabilitiesE) capabilities)

    - This function is called when the capabilities of the NTN network change.

Note

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

- Parameters:

    - **capabilities** – **[in]** The updated capabilities of the NTN network.

- inline virtual void onSignalStrengthChange([SignalStrength](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom14SignalStrengthE) signalStrength)

    - This function is called when signal strength of the NTN network changes.

Note

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

- Parameters:

    - **signalStrength** – **[in]** The signal strength of the NTN network.

- inline virtual void onServiceStatusChange([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common13ServiceStatusE) status)

    - This function is called when service status changes. Service status will change when the modem services are not available for any operations.

Note

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

- Parameters:

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

- inline virtual void onDataAck([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) err, [TransactionId](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00041_1gaa5aa2043978d9f02e2038d2e51c5a854.html#_CPPv4N5telux6satcom13TransactionIdE) id)

    - This function is called when the modem receives the acknowledgement for a sent data packet.

Note

that the acknowledgement refers to L2 ack from the vendor eNodeB (eNB) in the NTN network and not an end-to-end ack.

Note

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

- Parameters:

    - - **err** – **[in]** telux::common::ErrorCode::SUCCESS if acknowledgement was received or error otherwise.
- **id** – **[in]** Transaction id of the sent data packet

- inline virtual void onIncomingData(std::unique\_ptr&lt;uint8\_t[]&gt; data, uint32\_t size)

    - This function is called when the modem receives a data packet over NTN network.

Note

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

- Parameters:

    - - **data** – **[in]** Data packet received over NTN network. The implementation of this function is responsible to manage the lifetime of the buffer.
- **size** – **[in]** Size of the buffer.

- inline virtual void onCellularCoverageAvailable(bool isCellularCoverageAvailable)

    - This function is called when the modem scans for the cellular coverage and has a result available. This API only indicates if ANY cellular coverage is available. It does not specify whether this cell would provide full service vs limited service only.

Cellular coverage is enabled by calling [telux::satcom::INtnManager::enableCellularScan](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1adf3f166e4e22920c02e83e8811ac0ad1).

Note

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

- Parameters:

    - **isCellularCoverageAvailable** – **[in]** Flag indicating availability of cellular coverage.

- inline virtual void onLocationFixRequest([LocationFixRequestReason](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcom24LocationFixRequestReasonE) reqReason)

    - Invoked when the modem requires a new location fix in order to acquire NTN service. The modem might periodically make these requests since each location fix provided by the client expires after a certain validity period. When this API is invoked, the client shall ensure that GNSS is turned on and location information is fetched. Use [telux::satcom::INtnManager::locationFixResponse](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1abaa3088e2db72744d407c7a051c83a6a) to update the response for the location fix request. Once the location information is completely fetched the location fix shall be updated by calling [telux::satcom::INtnManager::setLocationFix](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589_1a33247b555097bde354fea375ae598043).

Note

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

- Parameters:

    - **reqReason** – **[in]** Provides the reason for expiration.

- inline virtual void onNtnBandUpdate(uint32\_t bandValue)

    - This function is invoked when the frequency at which NTN is operating is updated. The client can use this band information to switch external GNSS on/off during NTN operation, if there is interference when both bands coexist.

Note

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

- Parameters:

    - **bandValue** – **[in]** The current NTN band value.

- inline virtual ~INtnListener()

    - Destructor for [INtnListener](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00584)

- class SatcomFactory

    - Public Functions

- virtual std::shared\_ptr&lt;[telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[satcom](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6satcomE)::[INtnManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00589.html#_CPPv4N5telux6satcom11INtnManagerE)&gt; getNtnManager([telux](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#_CPPv4N5telux6commonE)::[InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1ab92f90010203f914a62cec6bd7af0a1a.html#_CPPv4N5telux6common14InitResponseCbE) clientCallback) = 0

    - Get NtnManager

- Parameters:

    - **clientCallback** – **[in]** Optional callback to get the initialization status of NtnManager [telux::common::InitResponseCb](https://docs.qualcomm.com/doc/80-PF458-10/topic/typedef_a00236_1ab92f90010203f914a62cec6bd7af0a1a.html#a00236_1ab92f90010203f914a62cec6bd7af0a1a)

- Returns:

    - instance of [INtnManager](https://docs.qualcomm.com/doc/80-PF458-10/topic/common.html#a00589)

Public Static Functions

- static [SatcomFactory](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00590.html#_CPPv4N5telux6satcom13SatcomFactoryE) &getInstance()

    - Get Satcom Factory instance.

Private Functions

- SatcomFactory(const [SatcomFactory](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00590.html#_CPPv4N5telux6satcom13SatcomFactory13SatcomFactoryERK13SatcomFactory)&) = delete

    - 

- [SatcomFactory](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00590.html#_CPPv4N5telux6satcom13SatcomFactoryE) &operator=(const [SatcomFactory](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00590.html#_CPPv4N5telux6satcom13SatcomFactoryE)&) = delete

    -

Last Published: Mar 31, 2026

[Previous Topic
Satcom](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/satcom.md) [Next Topic
Full Telematics SDK API](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/inc_root.md)