# 通话管理 - [简介](#section117mcpsimp) - [目录](#section128mcpsimp) - [约束](#section131mcpsimp) - [接口说明](#section136mcpsimp) - [使用说明](#section163mcpsimp) - [拨打电话接口调用流程及示例代码](#section113291522113518) - [获取VoLTE高清通话服务是否启用](#section113291522113520) - [相关仓](#section227mcpsimp) ## 简介 通话管理模块主要管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,负责申请通话所需要的音视频资源,并处理多路通话时产生的各种冲突。通话管理主要分为UI交互、服务管理、系统通话管理、通话音频管理、通话视频管理和蓝牙通话管理六大模块,各模块简介如下: 1. UI交互模块:负责和通话UI交互,如UI调用接口拨号,上报来电等状态给UI。 2. 服务管理模块:负责启动和初始化系统通话管理服务。 3. 系统通话管理模块:负责处理通话下行操作(如拨号、接听、挂断等)和上行状态(来电状态、呼叫等待状态等)的处理,并解决通话过程中产生的冲突。 4. 通话音频管理模块:负责通话时需要的音频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行音频相关的操作。 5. 通话视频管理模块:负责通话时需要的视频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行视频相关的操作。 6. 蓝牙通话管理模块:负责通话时需要的蓝牙资源的申请和释放,并处理蓝牙设备发起的通话操作,如接听和挂断等。 其主要的结构及流程如下图所示: **图 1** 通话管理模块架构图  ## 目录 ``` /base/telephony/call_manager ├─ figures # Readme资源文件 ├─ frameworks # 框架层目录 │ ├─ js # js相关代码 │ └─ native # native相关代码 ├─ interfaces # 接口目录 │ ├─ innerkits # 部件间的内部接口 │ └─ kits # 对应用提供的接口(例如JS接口) ├─ sa_profile # 启动配置文件 ├─ services # 服务内部代码 │ ├─ audio # 音频管理相关代码 │ ├─ bluetooth # 蓝牙通话相关代码 │ ├─ call # 通话业务相关代码 │ ├─ call_manager_service # 进程服务管理相关代码 │ ├─ call_report # 通话状态等信息上报相关代码 │ ├─ call_setting # 通话设置相关代码 │ ├─ telephony_interaction # 电话核心服务交互相关代码 │ └─ video # 视频管理相关代码 ├─ test # 测试相关代码 │ ├─ fuzztest # 模糊测试相关代码 │ ├─ mock # 模拟测试相关代码 │ └─ unittest # 单元测试相关代码 └─ utils # 通用工具代码目录 ``` ## 约束 - 开发语言:JavaScript。 - 软件上,需要与以下子系统和服务配合使用:安全子系统,多媒体子系统,软总线基础通信子系统\(蓝牙模块\),Telephony核心服务(core\_service),蜂窝通话服务(cellular\_call)。 - 硬件上,需要搭载的设备支持以下硬件:扬声器或听筒、麦克风。 ## 接口说明 **表 1** 通话管理对外提供的接口
function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean>): void; |
||