1e41f4b71Sopenharmony_ci# Telephony Overview<a name="EN-US_TOPIC_0000001164469232"></a>
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## Introduction<a name="section184mcpsimp"></a>
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciThis document provides development guidelines related to the telephony subsystem, including modem vendor library integration, initialization, service request responding, and modem event reporting. It is intended as a reference for developers of different modem chips, helping them efficiently develop telephony service-related functions.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Basic Concepts<a name="section187mcpsimp"></a>
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci-   Telephony Service: core service layer of the telephony subsystem. Its main functions are as follows:
10e41f4b71Sopenharmony_ci    -   Initializes the RIL Manager module, SIM card module, and network search modules.
11e41f4b71Sopenharmony_ci    -   Provides access to the RIL Adapter service, and implements communication with RIL Adapter by registering the callback service.
12e41f4b71Sopenharmony_ci    -   Implements communication between modules, such as the call module and SMS module, by subscribing to callbacks.
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci-   RIL Adapter: RIL adaptation layer of the Telephony subsystem. This layer provides functions such as vendor library loading and service API implementation. It shields the differences of modems supplied by different vendors to provide a unified API for the telephony service layer. It communicates with the telephony service layer by registering the Hardware Driver Foundation \(HDF\) service.
15e41f4b71Sopenharmony_ci-   HDF: Hardware Driver Foundation, which allows for unified access from peripheral devices and provides a framework for driver development and management.
16e41f4b71Sopenharmony_ci-   hdc\_std: OpenHarmony Device Connector, a command line tool provided by OpenHarmony for developers to debug device connectivity.
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci## Working Principles<a name="section194mcpsimp"></a>
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci**Figure  1**  RIL Adapter architecture<a name="fig196mcpsimp"></a>  
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci![](figures/en-us_image_0000001210683929.png)
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ciAs shown in the preceding figure, RIL Adapter is logically divided into three layers:  **hril\_hdf**,  **hril**, and  **vendorlib**.
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci-   **hril\_hdf**: unique entry of RIL Adapter. The main function of this layer is to load modem vendor library files. Wherein,  **modem\_adapter**  enables a single firmware to adapt to different modems.
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci    Specifically,  **hril\_hdf**  obtains the modem type from the kernel and then loads the target modem vendor library based on the modem type.
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci-   **hril**: OpenHarmony Radio Interface Layer, which provides APIs for communication between the  **vendorlib**  and various Telephony Service modules, including the SIM card, network search, cellular call, cellular data, and SMS/MMS modules.
32e41f4b71Sopenharmony_ci-   **vendorlib**: Modem vendor library file. Different modem vendor libraries are developed based on standard APIs or service request IDs provided by RIL Adapter. \(**vendorlib**  is provided by modem vendors.\)
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ciAfter  **hril\_hdf**  is executed,  **vendorlib**  is dynamically loaded so that it can obtain the pointers to the response processing and event reporting functions from  **hril\_hdf**. After this process is complete,  **hril\_hdf**  can communicate with a modem through  **vendorlib**.
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci## Constraints<a name="section205mcpsimp"></a>
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci**Specifications**
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ciAt least one modem must be supported by a device vendor. If no modem is supported,  **vendorlib**  APIs do not need to be implemented.
41e41f4b71Sopenharmony_ci
42