#星光计划2.0#鸿蒙电话服务子系统功能划分介绍 原创

鸿蒙开发
发布于 2021-12-21 19:31
浏览
3收藏

本文正在参与51CTO HarmonyOS技术社区创作者激励计划-星光计划2.0
1 背景介绍
手机电话相关功能是手机之所以被称为手机的基本功能,智能手机会有两个处理器一个应用处理器AP,一个通信处理器CP,也可以叫基带处理器BP,modem模块等,其中AP和BP都会有一个主处理器和DSP。其中AP上跑智能手机操作系统比如android,ios,运行应用程序界面等,BP上跑一个嵌入式实时操作系统,比如高通平台的rex,MTK平台的nucleus,运行通信协议。在功能手机时代,手机只有一个BP处理器,上篇既要跑图形界面,又要跑基带功能。
智能手机的AP和BP的结合方式,最早是采用两个单独芯片,两个芯片之间通过串口或usb通信,后来随着处理器技术的进步,普遍采用单芯片多核结构,两个核之前通过共享内存来通信,典型的结构如高通平台如下,软件层面叫做RIL层。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
2 openharmony的电话服务子系统总体介绍
openharmony在2.0版上首次增加了电话服务子系统,
主要包括如下模块:
核心服务模块:主要功能是初始化RIL管理、SIM卡和搜网模块。
通话管理模块:主要功能是管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,申请通话所需要的音视频资源,处理多路通话时产生的各种冲突。
蜂窝通话模块:主要功能是实现基于运营商网络的基础通话。
短彩信模块:主要功能是短信收发和彩信编解码。
状态注册模块:主要功能是提供电话服务子系统各种消息事件的订阅以及取消订阅的API。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
2.0版本和3.0版本包括6个子模块,,最新版增加到了8个子模块,如下:
base/telephony/
├── core_service # 核心服务
├── call_manager # 通话管理
├── cellular_call # 蜂窝通话
├── sms_mms # 短彩信
└── RIL Adapter # RIL适配层
└── telephony_cellular_data # 蜂窝数据
└── telephony_data_storage # SIM卡/短彩信等模块持久化数据存储
└── state_registry # 状态注册
各个模块主要作用如下:
核心服务模块:主要功能是初始化RIL管理、SIM卡和搜网模块。
通话管理模块:主要功能是管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,申请通话所需要的音视频资源,处理多路通话时产生的各种冲突。
蜂窝通话模块:主要功能是实现基于运营商网络的基础通话。
短彩信模块:主要功能是短信收发和彩信编解码。
状态注册模块:主要功能是提供电话服务子系统各种消息事件的订阅以及取消订阅的API。
3 核心服务模块
核心服务模块主要功能是初始化SIM卡服务、搜网服务和RIL管理,以及获取RIL Adapter服务。
通过注册回调服务,实现与RIL Adapter进行通信;通过发布订阅,来实现与各功能模块的通信。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
4 通话管理模块
通话管理模块主要管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,负责申请通话所需要的音视频资源,并处理多路通话时产生的各种冲突。通话管理主要分为UI交互、服务管理、系统通话管理、通话音频管理、通话视频管理和蓝牙通话管理六大模块,各模块简介如下:
UI交互模块:负责和通话UI交互,如UI调用接口拨号,上报来电等状态给UI。
服务管理模块:负责启动和初始化系统通话管理服务。
系统通话管理模块:负责处理通话下行操作(如拨号、接听、挂断等)和上行状态(来电状态、呼叫等待状态等)的处理,并解决通话过程中产生的冲突。
通话音频管理模块:负责通话时需要的音频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行音频相关的操作。
通话视频管理模块:负责通话时需要的视频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行视频相关的操作。
蓝牙通话管理模块:负责通话时需要的蓝牙资源的申请和释放,并处理蓝牙设备发起的通话操作,如接听和挂断等。
其主要的结构及流程如下图所示:
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
5 蜂窝通话模块
蜂窝通话支持基于运营商网络的基础通话实现,包含基于2G/3G的CS(Circuit Switch,电路交换)通话和基于4G/5G的IMS(IP Multimedia Subsystem,IP多媒体子系统)通话,包含VoLTE/ VoWIFI/ VoNR语音、视频、会议,支持CS和IMS通话之间的域选控制和切换,支持紧急通话。支持主流modem芯片平台。
其主要的结构及流程如下图所示:
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
蜂窝通话模块由蜂窝通话管理层、蜂窝通话业务处理层、蜂窝通话连接层三大部分组成,其中:
蜂窝通话管理层(CellularCallService):由CellularCallRegister(提供通话信息变化订阅功能)、CellularCallProxy(提供蜂窝通话对外接口实现的代理)、CellularCallHandler(处理RIL Adapter上报的消息)组成。
蜂窝通话业务层(CellularCallStub):由CSControl(处理CS通话)&IMSControl(处理IMS通话)、CellularCallConfig(配置业务)、CellularCallSupplement(补充业务)组成。
蜂窝通话连接层(Connection):由BaseConnection(会话连接)、ConfigRequest(配置业务命令请求)、SupplementRequest(补充业务命令请求)组成。
6 短彩信模块
短彩信模块为移动数据用户提供短信收发和彩信编解码功能,主要功能有GSM/CDMA短信收发、短信PDU(Protocol data unit,协议数据单元)编解码、Wap Push接收处理 、小区广播接收、彩信通知、 彩信编解码和SIM卡短信记录增删改查等。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
短彩信模块由接口管理类、短信发送管理类、短信接收管理类,和彩信编解码工具类组成。其中:
接口管理类:SmsInterfaceManager 负责对外提供短信发送、SIM卡短信记录操作和配置相关接口,负责创建SmsSendManager 和SmsReceiveManager 对象。
短信发送管理类: SmsSendManager 负责监听 IMS网络状态;创建GSM(GsmSmsSender) 和CDMA(CdmaSmsSender) 的短信发送器对象,并根据网络制式调度对应发送对象发送短信功能。
短信接收管理类: SmsReceiveManager 负责短信接收,监听来自RIL层的新短信信息;创建GSM(GsmSmsReceiveHandler) 和CDMA(CdmaSmsReceiveHandler) 对象;创建SmsWapPushHandler 和SmsCellBroadcastHandler 对象。
彩信编解码类:负责彩信PDU的编解码处理。
7 RIL Adapter模块
RIL Adapter模块主要包括厂商库加载,业务接口实现以及事件调度管理。主要用于屏蔽不同modem厂商硬件差异,为上层提供统一的接口,通过注册HDF服务与上层接口通讯。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
8 蜂窝数据模块
蜂窝数据模块作为电话子系统可裁剪部件,依赖于core_service核心服务、ril_adapter。 具有蜂窝数据激活、蜂窝数据异常检测与恢复、蜂窝数据状态管理、蜂窝数据开关管理、蜂窝数据漫游管理、APN管理、网络管理交互等功能。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
9 数据库及持久化模块
数据库及持久化模块负责电话服务子系统中的SIM卡/短彩信等模块持久化数据存储,提供DataAbility访问接口。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区
10 状态注册管理模块
状态注册主要负责提供电话服务子系统各种消息事件的订阅以及取消订阅的API。事件类型包括网络状态变化、信号强度变化、小区信息变化、蜂窝数据连接状态变化、通话状态变化等等。
#星光计划2.0#鸿蒙电话服务子系统功能划分介绍-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
5
收藏 3
回复
举报
回复
    相关推荐