bigbaicai

芯方式是以半导体人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的半导体人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

mt6735[Call] Call fail时retry机制介绍

0
阅读(1379)

mt6735[Call] Call fail时retry机制介绍

[DESCRIPTION]

当Call拨打时,若遇到失败,Modem会视情形进行retry。详细过程是怎样的呢?


[SOLUTION]

详细过程如下:


1 拨打Common Call: ATDxxxxx;


1.1 Call建立失败: MOD_CSM->MOD_L4C: MSG_ID_L4CCSM_CC_CALL_SETUP_CNF


1.2 根据失败cause判断是否要retry:
l4ccsm_cc_call_setup_cnf_hdlr()
-> l4ccsm_cc_call_setup_cnf_aux_hdlr()
-> l4c_need_retry(cause) //这里的retry条件为mtk自定义,可根据需要修改。


1.3若需要retry,则启动timer,以CM_RETRY_TIMER为周期、MAX_CM_RETRY_COUNT为
上限进行retry建立call。


1.4 CM_RETRY_TIMER的值不能超过255,否则无效。


2 拨打ECC Call: ATDExxxxx;


2.1 ECC Call建立失败: MOD_CSM->MOD_L4C:
MSG_ID_L4CCSM_CC_EMERGENCY_CALL_SETUP_CNF


2.2根据失败cause判断是否要更换RAT(切换2/3 G) 来retry:
l4ccsm_cc_call_setup_cnf_hdlr()
-> l4ccsm_cc_call_setup_cnf_aux_hdlr()
-> l4c_need_retry_other_rat(cause)


2.3需要切换RAT来继续ECC retry对应的option是 ECC_RETRY_ENHANCEMENT, 需要申
请flavor build 打开此宏。


2.4 若需要retry other RAT,则dereg 当前RAT,切换到另一个RAT,再拨打电话。


2.4.1 切换到另一个RAT之后只会retry一次,不会以MAX_CM_RETRY_COUNT为retry次



2.4.2 若拨通,则挂断后再切回原来的RAT。


2.4.3若仍然失败,则切回原来的RAT。


2.5 若不需要retry other RAT,则其余flow同1.3 。