android ims作用,Android IMS 通话应用设计

本文详细介绍了Android P中IMS(IP多媒体子系统)通话的实现原理,涉及IMS服务结构、组件交互、拨号流程与状态变更。文章通过与CS(电路交换)通话的对比,阐述了IMS在phone、ril、telecom进程中的独特处理,包括IMS Service的角色、ImsManager的使用以及视频通话的支持情况。
摘要由CSDN通过智能技术生成

以下内容基于Android P code。

Android电话模块是一个典型的分层结构设计,如下:

bdb0171f1540

分层结构

IMS在CS通话的基础上增加了telephony/ims net/ims vendor/ims 和ims相关的media模块。

其中:

telephony/ims:主要包括了对外接口ImsPhone,通话管理中心ImsPhoneCallTracker,某一路通话ImsPhoneCall,某一路通话连接ImsPhoneConnection。需要实现的提供IMS相关服务的ImsService。

net/ims:主要包括提供了IMS services API的ImsManager,以及ImsManager创建的负责处理 IMS语音和视频通话连接的ImsCall。

vendor/ims:主要包括了ImsService的实现类,提供ims相关的服务。负责和modem和media打交道,这一模块由各个芯片厂商定制,所以各个芯片厂商的实现方式都不同。但都有一个实现 ImsService的类。

IMS的服务类,telephony通过ImsResolver来和绑定它。它的实现类必需在AndroidManifest中对它进行注册以便fw检测到它。

其主要结构如下:

bdb0171f1540

ims service 结构

主要包括 ImsService、ImsManager、MmTelFeatureConnection、ImsCallSession。其中:

ImsService:ims的Service,实现了所有的ImsFeature(MmTelFeature和RcsFeature)和ims协议行为。通过ImsResolver绑定。由ImsServiceController来负责管理其生命周期及这个service所支持的ImsFeatures。其主要操作可以通过IImsServiceController来调用。

ImsManager:单例类。提供了与IMS services交互的API,如创建ims call。这个类是所有ims相关操作的起点。

MmTelFeatureConnection:IImsServiceController binder的容器类。

ImsCallSession:负责ImsCall的发起和终止,以及两个ims端点间的媒体交换。它和ImsService直接交互。

其service的绑定过程如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android IMS(IP Multimedia Subsystem)通话流程涉及多个组件和协议之间的交互。下面是一个简要的Android IMS通话流程: 1. 注册:设备启动时,IMS客户端将向IMS网络注册。这包括与P-CSCF(Proxy Call Session Control Function)进行SIP注册,然后与S-CSCF(Serving Call Session Control Function)进行认证和注册。 2. 呼叫建立:当用户拨打电话时,IMS客户端将向S-CSCF发起呼叫请求。S-CSCF将执行鉴权和授权,并将呼叫请求转发给相应的应用服务器(AS)。 3. 呼叫路由:AS根据呼叫请求中的信息,确定呼叫目标的位置,并将呼叫路由到目标用户所在的S-CSCF。 4. 呼叫传输:S-CSCF将呼叫请求转发给目标用户所在的P-CSCF。P-CSCF将负责与目标用户设备建立会话并传输呼叫请求。 5. 呼叫控制:目标用户设备接收到呼叫请求后,IMS客户端将对呼叫进行控制,包括呼叫接听、挂断等操作。 6. 媒体传输:一旦呼叫建立成功,媒体流将通过IMS网络进行传输。这可能涉及到RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)。 7. 呼叫结束:当通话结束时,IMS客户端将向S-CSCF发送呼叫释放请求,S-CSCF将释放与呼叫相关的资源,并通知AS。 这只是Android IMS通话流程的简要描述,实际流程可能会因网络配置和运营商要求而有所不同。IMS通话流程涉及的协议包括SIP(Session Initiation Protocol)、SDP(Session Description Protocol)、RTP等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值