# Functional Overview

![../_images/sdk_overview.png](data:image/png;base64,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)

**SDK-Overview**

## Overview

The Telematics library runs in the user space of the Linux system. It interacts with Telephony services and other sub-systems to provide various services like phone calls, SMS etc. These services are exposed by the SDK through fixed public APIs that are available on all Telematics platforms that support SDK. The Telematics APIs are grouped into the following functional modules:

- **Telephony**
    - Telephony sub-system consists of APIs for functions related to Phone, Call, SMS and Signal Strength, Network Selection and Serving System Management.

- [SIM Card Services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#sim-card-services)
    - SIM Card services sub-system consists of APIs to perform SIM card operations such as Send APDU messages to SIM card applications, SIM Access Profile(SAP) operations etc.

- [Location Services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#location-services)
    - Location Services sub-system consists of APIs to receive location details such as GNSS Positions, Satellite Vehicle information, Jammer Data signals, nmea and measurements information. The location manager sub-system also consists of APIs to get location system info, request energy consumed, get year of hardware information, get terrestrial position information and cancel terrestrial position information. LocationConfigurator allows general engine configurations (example: TUNC, PACE etc),configuration of specific engines like SPE (example: minSVElevation, minGPSWeek etc) or DRE, deletion of warm and cold aiding data, NMEA configuration and support for XTRA feature.

- **Connection Management**
    - Connection Management sub-system consists of APIs for establishing Cellular WAN/ Backhaul connection sessions and for Connection Profile Management etc.

- [Audio Management](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#audio)
    - Audio Management sub-system consists of APIs for Audio management such as setting up audio streams, switching devices on streams, apply volume/mute etc

- [Thermal Management](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#thermal-management)
    - Thermal Management sub-system consists of APIs to get list of thermal zones, cooling devices and binding information. The sub-system also provides notifications about certain thermal related events such as when trip event occur for any thermal zone or cooling device changes its level.

- [Thermal Shutdown Mangement](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#thermal-shutdown-management)
    - Thermal shutdown management sub-system consists of APIs to get/set the thermal auto-shutdown mode and listen to its updates.

- [TCU Activity Management](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#tcu-activity-management)
    - TCU Activity Management sub-system consists of APIs to get TCU-activity state updates, set the TCU-activity state, etc.

- [Remote SIM Services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#remote-sim)
    - Remote SIM sub-system consists of APIs that allow a device that does not have a SIM physically connected to it to access a SIM remotely (e.g. over BT, Ethernet, etc.) and perform card operations on that SIM, such as requesting reset, transmitting APDU messages, etc.

- [Modem Config Services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#modem-config-management)
    - Modem Config sub-system consists of APIs that allow to request modem config files, load/delete a modem config file from modem’s storage, activate/deactivate a modem config file, get/set auto selection mode for config files.

- [Data Network Management](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#id1)
    - Data Network Management sub-system consists of APIs to setup VLAN, static NAT, Firewall, Socks, etc.

- [Sensor services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#sensors)
    - The sensor sub-system provides API to configure and acquire data from underlying hardware sensors like accelerometers, gyroscopes among others.

- [Platform services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#platform)
    - The platform sub-system provides APIs to configure and control platform functionalities, like starting an EFS backup, control filesystem for ECALL and OTA operations.
This sub-system also provides notifications about certain system related events, for instance filesystem events such as EFS restore and backup events.

- [Debug Logger](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#debug-logger)
    - Logger consists of API that can be utilized to log messages from SDK Applications.

- [WLAN Management](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#wlan-management)
    - The WLAN management subsystem consists of APIs to configure, enable, and set access point and station configurations.

- [Diagnostics Services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#diagnostic-services)
    - The Diagnostics services subsystem consists of APIs to configure, start and stop diagnostic logging.

- [Satcom services](https://docs.qualcomm.com/doc/80-PF458-10/topic/overview.html#satcom-services)
    - The Satcom services subsystem includes APIs to configure, start, stop, and transmit non-IP data over the Non-Terrestrial Network.

Telematics SDK classes can be broadly divided into the following types:
- Factory – Factory classes are central classes such as PhoneFactory which can be used to create Manager classes corresponding to their sub-systems such as PhoneManager.
- Manager – Manager classes such as PhoneManager to manage multiple Phone instances, CardManager to manage multiple SIM Card instances etc.
- Observer/Listener – Listener for unsolicited responses.
- Command Callback – Single-shot response callback for asynchronous API requests.
- Logger – APIs to log messages, control the log levels.

## Features

Telematics SDK provides APIs for the following features:

### Call Management

CallManager, Phone and PhoneManager APIs of Telematics SDK provides call related control operations such as

- Initiate a voice call
- Answer the incoming call
- Hold the call
- Hangup waiting, held or active call

CallManager and PhoneManager also provides additional functionality such as

- Allowing conference, and switch between waiting or holding call and active call
- Emergency Call (dial 112)
- Third Party Service (TPS) Emergency Call (dial custom number)
- Notifications about call state change

### SMS

SMS Manager APIs of Telematics SDK provides SMS related functionality such as

- Sends and receives SMS messages of type GSM7, GSM8 and UCS2

### SIM Card Services

The SIM Card operations are performed by CardManager and SapCardManager.

CardManager APIs of Telematics SDK perform operations on UICC card such as

- Open or close logical/basic channel to ICC card
- Transmit Application Protocol Data Unit (APDU) to the ICC Card over logical/basic channel
- Receive response APDU from the ICC Card with the status
- Notify about ICC card information change

SapCardManager APIs provides SIM Access Profile(SAP) related functionality such as

- Open or close SIM Access Profile(SAP) connection
- Transmit Application Protocol Data Unit (APDU) over SAP connection
- Receive response APDU over SAP connection
- Perform SAP operations such as Answer to Reset(ATR), SIM Power off, SIM Power On, SIM Reset and fetch Card Reader status.

### Phone Information

Phone APIs of Telematics SDK provides phone related information such as

- Get Service state of phone i.e. EMERGENCY\_ONLY, IN\_SERVICE and OUT\_OF\_SERVICE
- Get Radio state of device i.e RADIO\_STATE\_OFF, RADIO\_STATE\_ON and RADIO\_STATE\_UNAVAILABLE
- Retrieve the signal strength corresponding to the technology supported by SIM
- Device Identity
- Set or Request Operating Mode
- Subscription Information

### Location Services

Location Services APIs of Telematics SDK provide the mechanism to register listener and to receive location updates, satellite vehicle information, jammer signals, nmea and measurement updates. The location manager sub-system also consists of APIs to get location system info, request energy consumed, get year of hardware information, get terrestrial position information and cancel terrestrial position information.
Following parameters are configurable through the APIs.

- Minimum time interval between two consecutive location reports.
- Minimum distance travelled after which the period between two consecutive location reports depends on the interval specified.

LocationConfigurator allows general engine configurations (example: TUNC, PACE etc),configuration of specific engines like SPE (example: minSVElevation, minGPSWeek etc) or DRE, deletion of warm and cold aiding data, NMEA configuration and support for XTRA feature.

### Data Services

Data Services APIs in the Telematics SDK used for cellular connectivity, modem profile management, filters management, and networking.

Data Connection Manager APIs provide functionality such as

- start / stop data call
- listen for data call state changes

Data Profile Manager APIs provide functionality such as

- List available profiles in the modem
- Create / modify / delete / modify modem profiles
- Query for the selected profile

Data Serving System Manager APIs provide functionality such as

- Get dedicated radio bearer status
- Request Modem Service Status
- Request Modem Roaming Status

Data Filter Manager APIs provide functionality such as

- get / set data filter mode per data call
- get / set data filter mode for all data call in up state
- add / remove data filter per data call
- add / remove data filter for all data call in up state

Data VLAN Manager APIs provide functionality such as

- Create / remove VLAN
- Query VLAN info
- Bind / unbind VLAN to PDN
- Query current VLAN to PDN mapping

Data Static LAN Manager APIs provide functionality such as

- Add / remove static LAN entry
- Request current static NAT entries

Data Firewall Manager APIs provide functionality such as

- Add / remove DMZ entry
- Query current DMZ entries
- Set Firewall configuration to enable / disable Firewall
- Query current status of Firewall
- Add / remove Firewall entry
- Query Firewall entry rules

Data Socks Manager APIs provide functionality such as

- Enable/Disable Socks feature

Data L2TP Manager APIs provides functionality such as

- Set L2TP configuration to enable/disable L2TP, TCP Mss and MTU size
- Add / remove L2TP tunnel
- Query active L2TP configuration

Data Software Bridge Manager provides interface to enable packet acceleration for non-standard WLAN and Ethernet physical interfaces.
It facilitates to configure a software bridge between the interface and Hardware accelerator.
Its APIs provide functionality such as

- Add / remove a software bridge
- Query the software bridges configured in the system
- Enable / Disable the software bridge management

Data Serving System Manager provides the interface to access network and modem low level services. The API includes method for:

- Request Modem Service Status
- Request Modem Roaming Status
- Register to get notifications when Service Status and Roaming status Change

Data client Manager APIs provide functionality such as
- fetch device data usage
Configurations relevant to device data usage monitoring are available in data related configuration files - /etc/data/mobileap\_cfg.xml and /etc/data/ipa/IPACM\_cfg.xml

### Network Selection and Serving System Management

Network Selection and Service System Management APIs in the Telematics SDK used for configuring the networks and preferences

Network Selection Manager APIs provide functionality such as

- request or set network selection mode (Manual or Automatic)
- scan for available networks
- request or set preferred networks list

Serving System Manager APIs provide functionality such as

- request and set service domain preference and radio access technology mode preference for searching and registering (CS/PS domain, RAT and operation mode)

### C-V2X

The C-V2X sub-system contains APIs that support Cellular-V2X operation.

Cellular-V2X APIs in the Telematics SDK include Cv2xRadioManager and Cv2xRadio interfaces.

Cv2xRadioManager provides an interface to a C-V2X capable modem. The API includes methods for

- Enabling C-V2X mode
- Disabling C-V2X mode
- Querying the status of C-V2X
- Updating the C-V2X configuration via a config XML file

Cv2xRadio abstracts a C-V2X radio channel. The API includes methods for

- Obtaining the current capabilities of the radio
- Listen for radio state changes
- Creating and Closing an RX subscription
- Creating and Closing a TX event-driven flow
- Creating and Closing  a TX semi-persistent-scheduling (SPS) flow
- Updating TX SPS flow parameters
- Update Source L2 Info

### Audio

The Audio subSystem contains of APIs that support Audio operation.

Audio APIs in the Telematics SDK include AudioManager, AudioStream, AudioVoiceStream, AudioPlayStream, AudioCaptureStream, AudioLoopbackStream, AudioToneGenerator, Transcoder interfaces.

AudioManager provides an interface for creation/deletion of audio stream. The API includes methods for

- Query readiness of subSystem
- Query supported “Device Types”
- Query supported “Stream Types”
- Creating Audio Stream
- Deleting Audio Stream

AudioStream abstracts the properties common to different stream types. The API includes methods for

- Query stream type
- Query routed device
- Set device
- Query volume details
- Set volume
- Query mute details
- Set mute

AudioVoiceStream along with inheriting AudioStream, provides additional APIs to manage voice call session as stated below.

- Start Voice Audio Operation
- Stop Voice Audio Operation
- Play DTMF tone
- Detect DTMF tone

AudioPlayStream along with inheriting AudioStream, provides additional APIs to manage audio play session as stated below.

- Write audio samples
- Write audio samples for compressed audio format
- Stop Audio for compressed audio format
- Play compressed format audio on voice paths

AudioCaptureStream along with inheriting AudioStream, provides additional APIs to manage audio capture session as stated below.

- Read audio samples

AudioLoopbackStream along with inheriting AudioStream, provides additional APIs to manage audio loopback session as stated below.

- Start loopback
- Stop loopback

AudioToneGeneratorStream along with inheriting AudioStream, provides additional APIs to manage audio tone generator session as stated below.

- Play tone
- Stop tone

Transcoder provides APIs to manage audio transcoder which is able to perform below operations.

- Convert one audio format to another

Audio SDK provides details of supported “Device Types” and “Stream Types” in the audio subsystem of Reference Telematics platform.

“Device Type” encapsulates the type of device supported in Reference Telematics platform.
The representation of these devices would be made available via public header file &lt;usr/include/telux/audio/AudioDefines.hpp&gt;.

Example: DEVICE\_TYPE\_XXXX

Internally SDK DeviceTypes are mapped to Audio HAL devices as per &lt;usr/include/system/audio.h&gt;.

In current release it is mapped per below table.

**Current Device Mapping Table:**

| SDK Audio Device Representation | Audio HAL Representation |
| --- | --- |
| DEVICE\_TYPE\_SPEAKER | AUDIO\_DEVICE\_OUT\_SPEAKER |
| DEVICE\_TYPE\_MIC | AUDIO\_DEVICE\_IN\_BACK\_MIC |

However Device Mapping is configurable as stated below. This configurability provides flexibility to map different Audio HAL devices
to SDK representation.

Update tel.conf file with below details before boot of system.

- NUM\_DEVICES – Specifies the number of device types supported
- DEVICE\_TYPE – Specifies the SDK type of each device (in comma separated values)
- DEVICE\_DIR – Specifies the device direction for each device in order above (in comma separated values)
- AHAL\_DEVICE\_TYPE – Specifies the mapped Audio HAL type of each device (in comma separated values)

Example:

Note

The default values provided here are based on QTI’s reference design.

NUM_DEVICES=6
    
    DEVICE_TYPE=1,2,3,257,258,259
    
    DEVICE_DIR=1,1,1,2,2,2
    
    AHAL_DEVICE_TYPE=2,1,4,2147483776,2147483652,2147483664
    Copy to clipboard

For any stream types, maximum device supported would be one. Single stream per multiple devices not supported.
For voice stream Rx Device would decide corresponding Tx Device pair as decided by Audio HAL.

**NOTE FOR SYSTEM INTEGRATORS:**

The mapping of Audio devices to Audio HAL devices is static currently based on QTI’s Reference Telematics platform.
For custom platforms this mapping need to be updated.

“Stream Type” encapsulates the type of stream supported in Reference Telematics Platform.
The representation of these stream types made available via public header file &lt;usr/include/telux/audio/AudioDefines.hpp&gt;.

Example:  VOICE\_CALL, PLAY, CAPTURE, LOOPBACK, TONE\_GENERATOR etc

**Volume Support Table:**

This table captures scenarios where the volume could be modified.

| Stream Type | Stream Direction (RX) | Stream Direction (Tx) |
| --- | --- | --- |
| VOICE\_CALL | Applicable | Not Applicable |
| PLAY | Applicable | Not Applicable |
| CAPTURE | Not Applicable | Applicable |
| LOOPBACK | Not Applicable | Not Applicable |
| TONE\_GENERATOR | Not Applicable | Not Applicable |

In case QTI’s reference design does not support volume for specific stream category, API responds with error.

**Mute Support Table:**

This table captures when stream could be muted and in which direction.

| Stream Type | Stream Direction (RX) | Stream Direction (Tx) |
| --- | --- | --- |
| VOICE\_CALL | Applicable | Applicable |
| PLAY | Applicable | Not Applicable |
| CAPTURE | Not Applicable | Applicable |
| LOOPBACK | Not Applicable | Not Applicable |
| TONE\_GENERATOR | Not Applicable | Not Applicable |

In case QTI’s reference design does not support mute for specific stream category, API responds with error.

Note

If mute operations is performed for  play or capture stream direction(Tx or RX), the stream will get muted irrespective of the direction provided.

### Thermal Management

Thermal Management APIs in the Telematics SDK are used for reading thermal zone, cooling device and binding information.

Thermal Management APIs provide functionality such as

- get thermal zones with thermal zone description, current temperature, trip points and binding info
- get cooling devices with cooling device type, maximum and current cooling level
- get thermal zone by Id
- get cooling device by Id

### Thermal Shutdown Management

Thermal Shutdown Management APIs provide funtionality such as

- Query auto-shutdown mode.
- Set auto-shutdown mode.
- Get notifications on auto-shutdown mode updates.

### TCU Activity Management

TCU-activity Manager APIs in Telematics SDK provides TCU-activity state related operations such as

- Set the activity state of the machines in TCU
- Get notifications about the imminent activity state changes on a machine in TCU
- Set the modem activity state
- Get all machine names
- Query the current TCU-activity state

### Remote SIM

Remote SIM APIs in the Telematics SDK allow a device to use the WWAN capabilities of a SIM on another device.

Remote SIM APIs provide functionality such as

- Sending card events (reset, power up, errors) to the modem
- Sending/receiving APDU messages from/to the modem and remote SIM.
- Receiving operations from the modem (disconnect, power up, reset) to the remote SIM.

### Modem Config Management

Modem Config APIs in the Telematics SDK provides modem config related functionalities such as

- Request modem config files from modem’s storage.
- Load a modem config file to modem’s storage.
- Activate/Deactivate a modem config file from modem’s storage.
- Get Active config info details.
- Get/Set config auto selection mode.
- Delete a modem config file from modem’s storage.
- Ability to get notified whenever a SW config file is activated.

### Sensors

The sensor sub-system provides APIs to

- Configure and acquire continuous stream of data from an underlying sensor
- Create multiple clients for a given sensor, each of which can have their own configuration (sampling rate, batch count) for data acquisition.
- Query and control sensor features available on the hardware or those offerred by the software framework. Availability of sensor features depend on the sensor hardware being used and the capabilities it offers.

In addition to the sensor sub-system APIs, configuration items relevant to the underlying sensors are also available in /etc/sensors.conf on the device filesystem.
This includes the range for the sensors, the limits on sampling frequency and batch count among other parameters.

### Platform

The platform sub-system provides APIs to

- Register and listen to filesystem events such as EFS backup and restore notifications
- Request EFS backup

### Debug Logger

Logging APIs in the Telematics SDK provides logging related functionalities such as

- Runtime configurable logging to console, diag and file.
- Possible LOG\_LEVEL values are NONE, PERF, ERROR, WARNING, INFO, DEBUG.

### WLAN Management

WLAN management APIs in the Telematics SDK provide services related to the following Wi-Fi functionality.

- Enable/disable WLAN.
- Set/request WLAN mode: number of access points and number of stations to be enabled.
- Request current WLAN status.
- Set/request an access points configuration.
- Request access point status
- Set/request a station’s configuration.
- Request station status
- Request list of devices connected to any access point.
- Restart hostapd and wpa\_supplicant daemons

### Satcom Services

Satcom services APIs in the Telematics SDK offer functionalities for configuring the NTN and transmitting non-IP data over it. These include:

- Enabling/disabling NTN.
- Set location fix in case external GNSS is used.
- Updating the system selection specifiers (SFL list) used by the modem to scan for the NTN network.
- Requesting NTN network capabilities.
- Sending/receiving data over NTN.
- Enabling background PLMN scans.

### Diagnostic Services

Two methods are supported to collect logs; file and callback method. In file method, logs are captured
and saved to file. In callback method, log is passed to client provided callback whenever new log is generated.
Logging is also provided per device or peripheral level. With device level logging, logs from all peripherals in
that device is collected. With peripheral logging, logs from client selected perihpherals only are captured.
Diagnostic services APIs in the Telematics SDK provide the following functionality.

- Configure diagnostic servics which include:

> 
> 
> - Set logging level (Device/Peripheral).
>     - Set logging method (File/Callback).
>     - Set logging mode (Streaming, Threshold, or Circular Buffer).
>     - Set mask file for both modem and or EAP.
>     - Set max file size and max number of files generated if file method logging is selected.
- Start/Stop logging.

## Subsystem Restart

Subsystem restart events occur when device operating system or services crashes due to any reason and then reboots
to operational state. This section explains notifications that are sent to application when such an event
occurs, the impact on application, notifications that are sent to application when device recovers to
operating state, and suggested action application should take after recovery.

Examples of Subsystem Restart events:

- External application processor crash
- Modem application processor crash
- Modem processor crash

If application is running on either application processors when it crashes, application is expected to
be restarted to initial state. For other scenarios, details are explained below for each subsystem.

### Data Services

Data services behavior when Subsystem Restart event occur is shown in table below:

![../_images/data_ssr.png](data:image/png;base64,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)

**Data SSR and Recovery**

## Security

### SELinux

SELinux is an access control framework provided by the Linux kernel. It provides a mechanism to restrict/control access to system resources such as file nodes and sockets. SELinux framework expects any process running in userspace to declare all its interactions with the system resources in the form of SELinux policies. On platforms enabled with SELinux, an app that uses an SDK API would also need to declare its usage through SELinux policies to ensure that it has all the required permissions.

Listed below are the SELinux Interfaces which are generic for any API in particular namespace that app needs to declare in its policies.

Note

For the below list, let us consider the application’s security context to be `app_t` (also called domain context).

| Namespace | SELinux interface | Arguments | Usage |
| --- | --- | --- | --- |
| tel | telux\_allow\_tel() | domain context | telux\_allow\_tel(app\_t) |
| data | telux\_allow\_data() | domain context | telux\_allow\_data(app\_t) |
| audio | telux\_allow\_audio() | domain context | telux\_allow\_audio(app\_t) |
| loc | telux\_allow\_loc() | domain context | telux\_allow\_loc(app\_t) |
| thermal | telux\_allow\_thermalmanager() | domain context | telux\_allow\_thermalmanager(app\_t) |
| power | telux\_allow\_power() | domain context | telux\_allow\_power(app\_t) |
| config | telux\_allow\_modemconfig() | domain context | telux\_allow\_modemconfig(app\_t) |
| cv2x | telux\_allow\_v2x() | domain context | telux\_allow\_v2x(app\_t) |
| sensor | telux\_allow\_sensor() | domain context | telux\_allow\_sensor(app\_t) |
| platform | telux\_allow\_platform() | domain context | telux\_allow\_platform(app\_t) |
| satcom | telux\_allow\_satcom() | domain context | telux\_allow\_satcom(app\_t) |

The following example illustrates how an application can incorporate the SELinux interfaces exposed by SDK in its SELinux policies. Below code snippet is part of a Type Enforcement (TE) file of the application which grants required permissions to perform SDK data operations.

policy_module(application, 1.0)
    type app_t;
    
    #Granting SDK data client permissions to the application
    
    telux_allow_data(app_t);
    Copy to clipboard

In addition to the above SELinux interfaces list, below are the SELinux interfaces specific to a usecase. When an app needs to use any API, it should
identify which SELinux interface to be used corresponding to the permission type and add it to the policy file.

To determine which permission type to be used for a API, please refer to the documentation for the API in the API Reference or in the API header file

Note

The system integrator has the option to turn on/off this feature, where APIs related to a particular use case require certain permissions. If this feature is turned off, the use case specific permissions are not required by the caller.

The following example illustrates how to declare permissions for an application that wants to use [`telux::data::IDataConnectionManager::startDataCall()`](https://docs.qualcomm.com/doc/80-PF458-10/topic/class_a00404.html#_CPPv4N5telux4data22IDataConnectionManager13startDataCallERK14DataCallParams18DataCallResponseCb) to setup a cellular data connection.The documentation of this API indicates
that the caller needs to have TELUX\_DATA\_CALL\_OPS permission. The SELinux interface to be used is **telux\_allow\_data\_call\_ops**.

In order for the app to use the API the below code snippet needs to be entered in the Type Enforcement (TE) file of the application.

policy_module(application, 1.0)
    type app_t;
    
    #Allow data call operations
    
    telux_allow_data_call_ops(app_t)
    Copy to clipboard

Last Published: Mar 31, 2026

[Previous Topic
Public API Status](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/introduction.md) [Next Topic
Call Flow Diagrams](https://docs.qualcomm.com/bundle/publicresource/80-PF458-10/topics/call_flow_diagrams.md)