README.md
1# Cellular Call<a name="EN-US_TOPIC_0000001105379632"></a>
2
3
4## Introduction<a name="section117mcpsimp"></a>
5
6The cellular call module provides basic call services on carrier networks, including 2G/3G circuit switched \(CS\) calls and 4G/5G IP multimedia subsystem \(IMS\) calls \(including VoLTE/VoWIFI/VoNR voice, video, and conference calls\). It also supports domain selection and handover between CS and IMS calls, as well as emergency calls. This module is compatible with mainstream modem chip platforms.
7
8The following figure shows the architecture of the cellular call module.
9
10**Figure 1** Architecture of the cellular call module<a name="fig970511919486"></a>
11
12
13![](figures/en-us_architecture-of-the-cellular-call-module.png)
14
15The cellular call module consists of three layers:
16
171. Cellular call management layer \(CellularCallService\): consists of CellularCallRegister, CellularCallProxy, and CellularCallHandler. CellularCallRegister provides the function of registering an observer for call information changes; CellularCallProxy functions as a proxy for implementing external APIs of CellularCallService; CellularCallHandler processes callback events reported by the RIL Adapter.
182. Cellular call service layer \(CellularCallStub\): consists of CSControl, IMSControl, CellularCallConfig, and CellularCallSupplement. CSControl implements CS call control; IMSControl implements IMS call control; CellularCallConfig implements call information configuration; CellularCallSupplement implements supplementary services.
193. Cellular call connection layer \(Connection\): consists of BaseConnection, ConfigRequest, and SupplementRequest. BaseConnection implements the call session connection function; ConfigRequest implements configuration requests; SupplementRequest implements supplementary service requests.
20
21## Directory Structure<a name="section127mcpsimp"></a>
22
23```
24/base/telephony/cellular_call # Cellular call module
25├─ figures # Figures of readme files
26├─ interfaces # APIs
27│ └─ innerkits # IMS call service APIs
28├─ sa_profile # SA profile
29├─ services # Service code
30│ ├─ common # Tools
31│ ├─ connection # Connection layer
32│ ├─ control # Control service layer
33│ ├─ ims_service_interaction # IMS call service interaction layer
34│ └─ manager # Management layer
35├─ test # Test code
36│ └─ unittest # Unit test
37└─ vendor # Sample code for IMS call service implementation
38 └─ ims # IMS call service logic
39```
40
41## Constraints<a name="section131mcpsimp"></a>
42
43- Programming language: C++
44- Software constraints: This module must work with the telephony core service \(core\_service\) and Call Manager \(call\_manager\).
45- Hardware constraints: The accommodating device must be equipped with a speaker or earphone, a headset, and a modem and a SIM card capable of independent cellular communication.
46
47>**Note:**
48>APIs for the cellular call service are not exposed externally. They are directly called by the Call Manager.
49
50## Repositories Involved<a name="section204mcpsimp"></a>
51
52[Telephony Subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/telephony.md)
53
54**telephony_cellular_call**
55
56[telephony_core_service](https://gitee.com/openharmony/telephony_core_service/blob/master/README.md)
57
58[telephony_call_manager](https://gitee.com/openharmony/telephony_call_manager/blob/master/README.md)
59