关于MTK平台CC相关的Log查询

在外场问题中,经常会出现通话相关的故障。这里简单总结一下通话相关log的分析点:

主叫方:主叫方,是指主动发起通话的一方。

  1. 初步定位问题,

用户发起通话时,AP端的拨号指令最终会通过AT到达modem,所以可以通过查看radio_log中相关的拨号AT指令来判断问题出现在AP还是BP。

11-04 11:06:06.397   484   487 D AT      : AT> ATD13711349140;

11-04 11:06:06.397   484   487 D AT      : ATD13711349140;

如果出现问题的时间点没有对应的ATD指令,可以推断AP端没有向Modem发送拨号指令,基本可以断定是AP的问题;如果ATD已经下发,可以将问题归属到modem端。

  • AP端,

定位AP端的问题主要根据main_log来跟踪代码的执行流程。

在MTK Androd平台上大致的执行流程如下:

OutgoingCallBroadcast.java

PhoneGlobals.getInstance().callController.placeCall(intent);

CallController.java

CallStatusCode status = placeCallInternal(intent);

PhoneUtils.placeCall (***);

PhoneUtils.java

Connection = app.mCM.dial(phone, numberToDial);

CallManager.java

Result = basePhone.dial(dialString);

GsmPhone.java

Return mCT.dial(newDialString, uusInfo);

cm.dial(*****,  obtainCompleteMessage(EVENT_DIAL_CALL_RESULT));

此后,AP端通过RIL.java将拨号发送至libril,最终到达modem。

  • Modem端,

Modem这边的问题主要通过modem log来排查:

图表 A  MT端正常Modem log示例

PS:可以通过AT+ECPI来查看当前的CC的状态。其中,各字段的值可以参考MTK  AT文档。

被叫方:

1、  粗步定位:

Modem接收到寻呼消息时,会通过检测TMSI来判断是否是对于自身的寻呼。如果是,对其进行响应,并向AP上报RING。

11-04 10:54:09.154   482   497 D AT      :

11-04 10:54:09.154   482   497 D AT      : RING

11-04 10:54:09.154   482   497 D AT      : AT< RING

11-04 10:54:09.154   482   497 D AT      : RIL_URC_READER:RING

11-04 10:54:09.154   482   497 D AT      : RIL_URC_READER Enter processLine

11-04 10:54:09.154   482   497 D RIL     : Nw URC:RING

11-04 10:54:09.154   482   497 D RIL     : receiving RING!!!!!!

11-04 10:54:09.154   482   497 D RIL     : receiving first RING!!!!!!

  • AP端,

RIL.java中接收到下层上报的RING信息之后,会通知CallTracker.java。此中,会将来电信息通知到在其中注册的Handler。

一般而言,这期间一般没有什么问题。

  • Modem端,

正常MT端的modem log如下:

图表 B  MO端正常Modem log示例

通常的问题有如下:

l  没有接收到Paging消息:

[NW->MS] RRC__PAGING_TYPE1

[3G SMART PAGING] Smart Paging Enable = 1,Level2 Enable = 0,Learning CN Domain = 2,SmartPaging_Available = 0,is_Risk_RNC = 1

PGD_TMSI: 4B 54 B 1E

Paging record 2 is for this UE.

CN Paging: CS_DOMAIN, TMSI_TYPE, RRC_PagingCause_terminatingConversationalCall

RRCE: Starts the timer RRCE_PendingPagingTmr_TIMER_ID for 3 seconds and 0 milliseconds

MSG_ID_RATCM_RRCE_PAGE_IND

MSG_ID_MM_RATCM_PAGE_IND

MS is paged with TMSI_TYPE

[MS->NW] MM__PAGING_RESPONSE

以上是UE对Paging的正常响应,可以通过参看MM__PAGING_RESPONSE消息来检测UE是否对问题时间点的寻呼进行响应。

PS: TMSI是MT与网络交互的过程中,网络给MT发送的一个临时的识别码。modem log中可以查看到:

[RRM]  TMSI value 4b54b1e

关于MTK平台CC相关的Log查询的更多相关文章

  1. MTK平台 GPU 相关知识

    一.什么是Render script,以及mtk平台GPU support情况 [DESCRIPTION] 1.什么是RenderScript ? 2.RenderScript 干什么? 3.MTK平 ...

  2. MTK平台-抓取蓝牙log

    一.MTKLOG抓取 .在拔号键盘输入暗码 *#*##*#* 进入工模EngineerMode .在 Log and Debugging -> MTKLogger 点击开始 .MTKLog存储路 ...

  3. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率

    1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...

  4. MTK平台系统稳定性分析

    目录 1:简介 2:怎么抓取和分析log 3:怎么确定问题点 简介 系统稳定性目前主要是解决系统死机重启. 分为两部分:Android /kernel Kernel 分析需要的文件和工具: Mtklo ...

  5. Android8.1 MTK平台 SystemUI源码分析之 网络信号栏显示刷新

    SystemUI系列文章 Android8.1 MTK平台 SystemUI源码分析之 Notification流程 Android8.1 MTK平台 SystemUI源码分析之 电池时钟刷新 And ...

  6. 关于MTK平台SIM-ME Lock的配置方案

    针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...

  7. MTK平台Android项目APK预置方案

    项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...

  8. 在MTK平台里,,函数kal_prompt_trace起什么作用???Kal_prompt_trace的参数有表示什么?

    在MTK平台里,,函数kal_prompt_trace起什么作用???Kal_prompt_trace的参数有表示什么?一直弄不明白,但是很多函数的开头就是这个函数,,而且一般有三个参数-- kal_ ...

  9. MTK 平台sensor arch 介绍-hal

    MTK 平台sensor arch 介绍-hal 一:整体框架 二:具体流程简介 AP-HAL: (1)init & control flow 我们以前文的originchannel 的 ac ...

随机推荐

  1. 【Android-UI】包含多个子View时触发父节点的焦点事件

    今天遇到个问题: 在 LinearLayout 中添加了好几个其他视图 View 之后,点击时不能获得焦点,导致绑定的 onClick 事件不能触发. 解决办法: 对 LinearLayout 添加属 ...

  2. 前端tab页实例

    <div class="tabbable"> <ul class="nav nav-tabs padding-16"> <c:fo ...

  3. Chapter 21_1 字符串函数

    接下来开始接触Lua强大的字符串处理能功能——字符串库. 原始的Lua解释器操作字符串的能力很有限,真正强大的能力还是来自字符串库. 它所有的函数都在模块string中.它还为strings设置了一个 ...

  4. Introduction to Programming Contests (stanford)

    http://web.stanford.edu/class/cs9http://web.stanford.edu/class/cs97si/7si/

  5. C# 委托的三种调用示例(同步调用 异步调用 异步回调)

    首先,通过代码定义一个委托和下面三个示例将要调用的方法: 复制代码 代码如下: public delegate int AddHandler(int a,int b);    public class ...

  6. Python基础篇-day5

    本节目录: 1.生成器 1.1 列表推导式方法 1.2 函数法--适用复杂的推导方法2.迭代器3.装饰器 3.1 单一验证方式(调用不传参数) 3.2 单一验证方式(调用传参数) 3.3 多种验证方式 ...

  7. JVM内存模型,垃圾回收算法

    JVM内存模型总体架构图 程序计数器多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源.因此每个线程有要有一个独立的程序计数器,记录下一条要运行的指令.线程 ...

  8. gulp4个基础API

    Gulp.src(globs[, options]) 此接口会匹配工作目录下指定规则的文件并返回提供给下一个插件管道使用.其中globs就是匹配格式,options是一些额外参数. gulp.src( ...

  9. HDU 4990 Reading comprehension

    快速幂 #include<cstdio> #include<cstring> #include<cmath> #include<iostream> #i ...

  10. 《JS权威指南学习总结--8.8.3 不完全函数》

    内容要点: 本节讨论的是一种函数变换技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的实参都是完整实参的一部分,每个拆分开的函数叫做不完全函数(partial function),每次函数调用叫 ...