关于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. jquery验证表单是否满足正则表达式是否通过验证例子

    //验证通用函数 a表示元素对象,b表示正则表达式,c存bool值 function testyz(a,b,c){ c=false; $(a).on("blur",function ...

  2. php强制下载文件并显示原始文件名

    原来一直没有接触过,这几天一直在玩儿文件上传下载的东西.今天又遇到一个坑. 描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的.那么如果上 ...

  3. Java代理模式汇总

    简介 代理模式即Proxy Pattern,23种java常用设计模式之一.其定义为:对其他对象提供一种代理以控制对这个对象的访问. UML类图 静态代理 目标接口 public interface ...

  4. JavaScript忍者秘籍——驯服线程和定时器

    1.定时器和线程 - 设置和清除定时器 JavaScript提供了两种方式,用于创建定时器以及两个相应的清除方法.这些方法都是window对象上的方法. 方法 格式 描述 setTimeout   i ...

  5. mac上设置sudo不要密码

    觉得每次sudo都需要设置密码太过麻烦,于是折腾了一番,谁知走了一番弯路记录下来. 以下是网上找到的步骤 chmod u+w /etc/sudoers  给当前用户增加写权限 vi /etc/sudo ...

  6. Introduction to Programming Contests (stanford)

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

  7. MYSQL 主从复制(NIOT)

    一.主数据库操作设置(A) 1.修改配置文件,vim /etc/my.cnf,然后重启mysqld,/etc/init.d/mysqld restart [mysqld]<要在mysqld中括号 ...

  8. 【Python之路】第十篇--HTML

    HTML 是什么? htyper text markup language  即超文本标记语言 超文本: 就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 标记语言: 标记(标签)构成的语 ...

  9. win10 Incredibuild 兼容

    电脑换了win10,所有的软件都需要重新安装. win10的体验还是很不错的.但是也有一堆的问题.原来的vs2010今天无法再使用分布式编译IncrediBuild. 现象是,虽然可以连上分布式编译的 ...

  10. C#变量修饰符

    访问修饰符 关键字包括:internal,public,protected和private,用于设置变量的访问级别.  public  变量可以做为它所属的类型的一个字段,可以在任何地方访问它.  i ...