被叫終端,界面滑動多次才成功接聽分析

MT Call 界面滑动多次才成功接听分析

场景:

双卡(联通+电信)在位,外线来电,测试机前三次滑动接听无法接通,第四次滑动才接通。第二次出现此现象时,滑动接听一次,接听按钮返回中间,等待了一段时间才跳转至通话界面 。

问题:

为什么前三次接听不了,直到第四次才成功?

为什么滑动接听一次,按钮等待一段时间才跳转到通话界面?

分析:

从AP(应用处理器,运行Android系统)和BP(基带处理器,运行AMSS操作系统)来看,通信模块的架构描述为:

被叫终端,界面滑动多次才成功接听分析

左侧Telephony和Qcril属于AP侧模块,右侧CM模块、NAS层的MM、CNM、MN模块,层三的RRC和RR都属于BP侧模块。

QMI是AP与BP之间的基于共享内存的跨处理器通信处理模块,双工模式,C/S结构设计。

UE被叫信令流程:

1. 核心网侧的NAS实体给UE发Paging 信令,告诉UE有人找你

2. UE回复Paing Response 给核心网侧的NAS实体

3. 核心网下发CC/Setup和UE回复CC/Call Confirmed给网络,为建立连接预留资源

4. UE侧振铃,回送CC/Alerting给网络

5. UE摘机的话,回送一条CC/Connect信令给网络,网络确认此连接,下发一条CC/Connect Acknowledge 给UE

6. UE挂机发送CC/Dissconnect

7. 网络下发CC/Release拆除连接,释放资源。UE确认拆除,回送CC/Release Complete

UE被叫,协议栈模块MMCNM 、MNCM之间的交互

1. 来电以及接听(CM_MT_CALL_IND、CM_MT_CALL_RES)

被叫终端,界面滑动多次才成功接听分析

2. 对方挂断电话(CM_MT_DISC_IND)

被叫终端,界面滑动多次才成功接听分析

3. 己方挂断电话(CM_MO_END_X_CALL_REQ)

被叫终端,界面滑动多次才成功接听分析

流程相关LOG检查

1. UI滑动一次,就是发一个RIL_REQUEST_ANSWER请求给Qcril,qcril将此请求通过QMI message发给modem侧的CM模块

被叫终端,界面滑动多次才成功接听分析

2. QMI message(Request/Response) received in QCSI Framework对比qcril 和qmi的时间戳,看到13min50s的这次请求很快完成,没有延迟。且从Indication看出,call state马上变为会话(CALL_STATE_CONVERSATION)状态。到这里,说明qcril、qmi都没有问题,下面要check CM以及NAS层相关的模块

被叫终端,界面滑动多次才成功接听分析

3. CM 层log,看何时发生何种call event,voice call的event 在cm.h 的cm_call_event_e

枚举体中定义

被叫终端,界面滑动多次才成功接听分析

4. NAS 层的CC 信令

被叫终端,界面滑动多次才成功接听分析

以上CM事件以及CC信令分析,可以确认是网络响应CC/Connect 信令延迟导致的滑动接听后延迟的问题。前三次滑动接听不了,第四次才成功,本质上是一样的,分析过程略。我们只看看CM事件和CC信令是否有延迟的情况。如下截图:

被叫终端,界面滑动多次才成功接听分析

被叫终端,界面滑动多次才成功接听分析

结论就是,

1. UI界面滑动接听电话,在UE modem发送CC/Connect信令给网络,且网络要对这条信令进行确认,即回复CC/Connect Acknowledge

2. 如果网络侧CC/Connect Acknowledge确认信令延迟发送到UE的时间较长(>1s),直观地反映在UI界面就是滑不动,给人的感觉就是滑动接听不成功。

原创文章,未经作者允许,拒绝商业用途的转载、复制、编辑!!


分享到:


相關文章: