1 MTK 平台 Modem架构

这一小节介绍mtk平台modem(BP)架构
AP:Application Processor,即应用芯片
BP:Baseband Processor,即基带芯片
FCC(美国联邦通信委员会)认证要求将AP和BP分开,因为射频控制相关的功能(信号调制、编码、射频位移等)都是高度的时间相关的,最好能将这些函数放在一个CPU核上运行,并在这个CPU核上运行一个实时的操作系统,这样AP核上操作系统和驱动的bug就不会导致设备发送灾难性的数据到移动网络中;并且一旦BP被设计和认证好,不管你采用的操作系统和应用软件怎么变化,它都可以正确的执行通讯功能,手机的设计者也可以更加自由的设计用户界面和应用软件。
BP主要的作用是发送和接受各种数据,即和通信息息相关,BP中的DSP实现了协议的算法,对数据进行编解码,BP中的CPU则负责协调控制与基站和AP的通信。

下图是mtk平台modem架构图,采用AT命令和AP进行通信
2024-03-20T08:55:18.png
小结:智能机的处理器:分为AP和BP。
AP:Application Processor,即应用处理器,可以把AP看作计算机,AP上运行了操作系统和应用软件,我们平时说的某某手机双核就是指AP。
BP:Baseband Processor,即基带处理器,可以把BP看作计算机的无线MODEM,这个无线modem通过AT接口(相当于计算机和调制解调器之间的接口,但各厂家都有扩展命令)提供通话、短消息、上网、UIM卡等功能
智能机与基站交互过程基于信令。
信令:在网络中传输着各种信号,其中一部分是我们需要的(例如打电话的语音,上网的数据包等等),而另外一部分是我们不需要的(只能说不是直接需要)它用来专门控制电路的,这一类型的信号我们就称之为信令。通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。这些信息在[计算机网络](https://link.jianshu.com?t=http://baike.baidu.com/view/25482.htm" \t "/opt/tiger/box/wps/1154419/wps-root/x/_blank)中叫做协议控制信息,而在[电信网](https://link.jianshu.com?t=http://baike.baidu.com/view/3773.htm" \t "/opt/tiger/box/wps/1154419/wps-root/x/_blank)中叫做信令(Signal)。(百度百科)简单的理解:Modem与基站的交互过程就是基于信令。

2 MTK平台常见工具使用及case

2.1 何如使用MTKLogger工具

MTKLogger 是 MediaTek 开发的一个 target 端 Logging 工具,它由几个 daemon 以及一个 UI Application 构成。其中 daemon 负责不断的将 Log Buffer 里面的新 Log 复制到 sdcard 上面,而 UI Application 则可以控制 Daemon 的打开和关闭,占用 sdcard 空间的大小,某一种 Log 的抓取和关闭等等。
MTKLogger 是一个在移动测试当中应用非常广泛的工具,它不需要连接 PC 即可抓取各种 Log,包括 android log,kernel log,bluetooth log, network log 以及 modem log。
MTKLogger
在 eng 版本上面,Laucher 桌面有一个 MTKLogger 的 应用图标,点击就可以进入 MTKLogger 应用,如下:
2024-03-20T08:56:31.png
但是这个图标在 user 版本上是不会出现的,所以在 user 版本上面需要从工模里面来打开 MTKLogger,进入工模的默认方法实在拨号界面输入 ##3646633##,具体方式需要根据工模的客制化入口来进入。进入工模之后在 Log and Debugging 页面就可以找到 MTKLogger 了。如下所示:
2024-03-20T08:56:58.png
主界面
进入 MTKLogger 之后就可以看到如下的主界面,上面显示了如下信息:

  1. 运行时间。从打开 MTKLogger 开始录制 Log 开始到目前一共录制了多长时间。
  2. 各个 Log 的录制状态,如下所示表示 Mobilelog/ModemLog/NetworkLog 都处于录制状态,如果某种 log 没有录制则会显示为灰色。
  3. storage的使用状态。显示了storage的使用空间和剩余空间。
  4. 快捷按钮。从左到右依次为 TagLog 按钮,启动/停止按钮,清除 Log 按钮。
  5. 详细配置按钮,点击按钮可以进入详细配置页面。

2024-03-20T08:57:52.png
MTKLogger 配置
详细配置的页面如下:

  • 在 Gerneal Settings 部分提供了几种 Log Tool 的快捷开关。而左侧的几个标签按钮可以点击进入更详细的设置。
  • 在 Advanced Settings 部分可以打开 TagLog,切换 Log Storage 在 Phone 内部 storage 或者是外部 SD Card。

2024-03-20T09:01:07.png
点击左侧各种 Log Tool 的标签按钮之后就可以进入下一级详细配置,几种 Log Tool 的详细配置界面分别如下。
Mobile Log 配置界面
2024-03-20T09:02:46.png
Modem Log 配置界面
2024-03-20T09:06:59.png
Network Log 配置界面
2024-03-20T09:07:17.png
注意事项
由于 Log Tool 会设置一个占用存储的上限,当录制 Log 占用空间达到设置的上限时则会删除旧的 Log 来为新的 Log 提供空间。所以录制的 Log 总会是最新的。
因此,如果想录制更长时间的 Log 就需要在可能的情况下加大 “Limit Log Size (MB)”的设置。

2.2 如何使用ELT工具

ELT 是 MediaTek 平台用来debug modem侧日志的工具
ELT 提供了不同类型的窗口来显示各种数据。本章介绍了窗口和
如何使用它们。
Trace and Primitive Log Window
Trace and Primitive Log 窗口用于显示traces and primitive messages,它包含两个面板。
顶部面板称为“Log Item View”,显示捕获的traces and primitive
下面的面板是“Detail View”,显示traces and primitive的详细信息
2024-03-20T09:08:50.png

Trace and Primitive日志窗口有不同的几个标准。在“view”菜单:
有几个默认选项
 PS Integrated
该窗口按顺序显示所有Trace and Primitive日志。
2024-03-20T09:09:15.png

 PS Modules
为窗口指定一个源模块。只有这个模块生成或者交换的Trace and Primitive才显示出来。窗口可以通过菜单“View -> PS Modules”进行设置。
2024-03-20T09:10:26.png
 PS Trace Peer
该窗口显示 trace message中的 L3/L4 OTA消息
 PS Trace Peer without Sys Info
该窗口显示 trace message中的L3/L4 OTA 消息并过滤掉小区广播的系统信息。
 Windows of Find Result
每个窗口都显示使用find选项的搜索结果。(ctrl+f)

右键的使用:
在“Log Item View”中右键单击鼠标提供了几个有用的功能,以方便分析日志。
2024-03-20T09:13:49.png

ELT上怎么设置wireshark
ELT tool不能显示NAS详细的消息,这是因为wireshark没有正确配置好
如下正确配置wireshark:
首先安装好wireshark,在elt上选择Config->Set codec path,把自己安装好的wiresharke路径填上去,点ok
2024-03-20T09:14:44.png

2.3 如何给mtk提case

当我们遇到需要求助MTK平台的问题,就需要给mtk提交eservice,让mtk平台分析解决问题
https://eservice.mediatek.com/eservice-portal/issue_manager
登录上面这个网页,点击右上角Create Issue
2024-03-20T09:15:14.png
按照mtk要求填入对应信息,主要有三个部分:
main:这一部分填入项目信息,问题大概描述
bug related:填入bug单的初步分析,需要求助mtk的问题点
Customer Information:填自己的电话和邮箱,方便mtk人员找你沟通交流
提交了eservice后要上传log或者视频信息方便mtk定位问题。
log的size小于100mb,直接使用eservice的附件上传
log的size大于100mb,使用file exchange上传:
https://transfer.mediatek.com

2.4 合入MTK patch

patch申请:
2024-03-20T09:16:00.png
在eservice.mediatek.com网站中,Patch Management->Patch ID页面,输入Patch ID和Platform可以查询到下面显示的patch,Active栏打钩的说明该patch已经合入到该平台了,无需再次申请

申请patch需要提供的信息:
MTK的patch是需要逐笔合入的,在申请时需要提供当前基线信息。如下基线信息,当前未合入patch,所以后面需要申请的是P1 patch,在合入了P1 patch之后Modem Version会变成MOLY.LR12A.R3.MP.V109.P1,这些信息可以在log中的version_info.txt文件找到。
Android Version: alps-mp-q0.mp1-V9.56
Modem Version: MOLY.LR12A.R3.MP.V109 2020/07/12 22:03
Project:TK_MD_L4(LWCTG_6177M_8768T)

临时patch和正式patch的区别:
mtk提供的patch一般分为temp patch和official patch,temp patch一般用于临时方案验证,当临时方案验证通过后,会提供正式patch,以下是P1 patch的下载地址。
MOLY00534721_ALPS05184135(For_LENOVO_M8_Q0MP1_TK_MD_L4_MOLY.LR12A.R3.MP.V109.P1).tar.gz,MOLY00534721_ALPS05184135(For_LENOVO_M8_Q0MP1_TK_MD_L4_MOLY.LR12A.R3.MP.V109.P1).md5 released. (Download ID: REQ30005962762)
https://transfer.mediatek.com/Detail/Go/REQ30005962762

patch包含的内容:
目录结构:
1.apps
一般只修改了apps\mtk_rel\GEN93_USER\libs\arm\libverno.so和pps\mtk_rel\GEN93_USER\libs\arm64\libverno.so库文件和module/verno/init.mdapps_verno.rc文件中的版本号,可直接覆盖到modem代码中
2.mcu
make文件夹,修改了Project.mak文件和客制化选项,Project.mak文件是编译modem时用到的脚本文件,定义了使用的射频文件夹和配置的功能开关等,patch修改的一般主要是客制化选项。
make_rel文件夹,修改了一些运行库文件,在后面合入patch时需要注意删除mcu/mtk_rel目录下的旧文件
3.Build_SOP.txt
MTK提供了patch合入的方法以及注意事项,在合入patch时可以参考
4.PatchList.xls
合入patch的一些依赖项的说明,如P2 patch必须在合入P1 patch之后才能合入

patch合入:

  1. 合入之前将代码更新到最新,解压patch,将patch直接覆盖到modem代码之中,如下图,将apps文件夹覆盖到左侧modem代码中,mcu文件夹需要逐个文件逐项合入。

2024-03-20T09:17:47.png

  1. 将patch覆盖到modem代码之后,beyond compare工具中patch侧的文件颜色应该全部为灰色(如右侧,灰色代表当前文件没有差异),而modem代码侧的mcu/makee_rel目录下会有多余的旧版本文件(如左侧,紫色代表相较另一侧多的文件),需要删除modem代码中mcu/mtk_rel///dhl/database和mcu/mtk_rel///dsp_rel///final_bin中的多余文件。

2024-03-20T09:18:11.png

代码合入之前编译个版本出来验证通讯基本功能,保证无问题后才能合入

小结:本章主要介绍mtk项目最基础的技能:log工具的使用,modem log分析工具的简单用法与介绍。如何快速有效的求助mtk平台也是保证项目正常交付的重要手段,通讯这一块有很多问题都需要求助mtk,提e-service也就成了做通讯模块必须掌握的技能。mtk平台给我们的解决方案大多通过patch实现,如何申请patch和合入patch也是我们日常项目必须掌握的技能。

3 MTK平台常用配置介绍

3.1 IMS常见配置

3.1.1 evs

[EVS:(Enhance Voice Services) Codec 增强语音服务编码](https://blog.csdn.net/shij19/article/details/52946592?ops_request_misc=%7B%22request%5Fid%22%3A%22171072431316800222811398%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&request_id=171072431316800222811398&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-52946592-null-null.142^v99^pc_search_result_base1&utm_term=volte%E4%B8%ADevs" \t "https://so.csdn.net/so/_blank)
配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"
1).Example for enabling EVS as follows, rebuild software to work:

     Function : imc_nvram_customization()
       case xx: /* Operator_name */
         nvram_ims_profile_ptr->ua_config.evs_support = 1; // enable EVS
         nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17; // EVS
         nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2; // AMR WB
         nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1; // AMR NB

https://online.mediatek.com/apps/faq/detail?faqid=FAQ22939&list=Modem

3.1.2 sms

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

     Function : imc_nvram_customization()
       case xx: /* Operator_name */
     nvram_ims_profile_ptr->imc_config.sms_support           = 1;//1支持sms over ip
     nvram_ims_profile_ptr->ua_config.sms_network_types      = 0x03;//lte+vowifi

6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_sdm_utility.c

sdm_cust_sms_over_ip_allowed_tbl[]     Define which MCC/MNC doesn’t support SMS over IP
sms_over_wifi_allowed_tbl[]         Define which MCC/MNC doesn’t support SMS over WIFI
sdm_cust_prefer_sms_over_sgs_to_ims_tbl[]      Define which MCC/MNC more preferred SMS over CS than SMS over IMS

https://online.mediatek.com/apps/faq/detail?faqid=FAQ25316&list=Modem

3.1.3 VoLTE SIP Header cellular-network-info

CNI是手机最后一次注册的小区信息,一般存在于vowifi注册信令里
配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

nvram_ims_profile_ptr->ua_config.add_cell_info_age_to_cni       = 1;

https://online.mediatek.com/apps/faq/detail?faqid=FAQ25670&list=Modem

3.1.4 voice domain

[FAQ29984] How to customized UE usage setting and voice domain preference
[Solution]

1 For smartphone platform please refer to below FAQ:
[FAQ27077] Operator requirements:Configure UE usage setting based on mccmnc

2 For thin modem,the demo customized code is the below highlight code.you should set CFUN=0 and CFUN=1,

then the new config will take effect when sim card is ready.

typedef enum
{
    L4_CS_VOICE_ONLY = 1,
    L4_CS_VOICE_PREFERRED_IMS_PS_VOICE_AS_SECONDARY,        /* CS voice preferred, IMS PS Voice as secondary */
    L4_IMS_PS_VOICE_PREFERRED_CS_VOICE_AS_SECONDARY,        /* IMS PS voice preferred, CS Voice as secondary */
    L4_IMS_PS_VOICE_ONLY
} l4_voice_domain_preference_enum; 
typedef enum
{
    VOICE_CENTRIC = 0,
    DATA_CENTRIC
} ue_usage_setting_enum

function: mcu\custom\service\sbp\sbp_nvram_rac_config.c\nvram_custom_config_lte_pref
BASE_67XX/mcu/common/modem/sbp/sbp_nvram_rac_config.c
Demo Code:

+if(sbp_id == SBP_ID_XXX)
+{
+    if(kal_mem_cmp(sbp_tag.mcc, "xxx", 3) == 0 && kal_mem_cmp(sbp_tag.mnc, "xx", 3) == 0)  
+    {
+          if(pLte_pref->ue_usage_setting != DATA_CENTRIC)
+         {
+             pLte_pref->ue_usage_setting = DATA_CENTRIC;
+             is_need_write_nv = KAL_TRUE;
+          }
+
+          if(pLte_pref->voice_domain_preference!= L4_IMS_PS_VOICE_ONLY)
+          {
+              pLte_pref->voice_domain_preference= L4_IMS_PS_VOICE_ONLY;
+              is_need_write_nv = KAL_TRUE;
+           }
+}

BASE_67XX/mcu/pcore/interface/modem/general/ps_public_struct.h

sbp_reconfig_custom_param_struct
typedef struct
{
    // if is_in_dynamic_sbp = TRUE, sbp_id is SIM SBP ID, else it is legacy SBP ID
    kal_uint32              sbp_id;
    kal_uint32              sbp_sub_id;
    kal_bool                is_in_dynamic_sbp;
    protocol_id_enum        ps_id;
    kal_uint8                       mcc[MAX_MCC_STR_LEN];
    kal_uint8                       mnc[MAX_MNC_STR_LEN];
    kal_uint8                       iccid[21];
    kal_uint8 trans_id;  // trans_id correspondign to SIM READY IND
} sbp_reconfig_custom_param_struct;

3.1.5 飞行模式阻止vowifi注册

配置路径:"mcu/pcore/custom/modem/common/ps/custom_iwlan_config.c"
cfg->wans_cfg.loc_cfg.wans_ims_wlan_block_in_ap_mode_when_home_enable = KAL_TRUE;//TRUE is block vowifi in airmode

3.1.6 会议订阅方式

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"
0 : out-of-dialog
1 : in-dialog
MTK default value: 0

nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server         = 1; //in-dialog

https://online.mediatek.com/apps/faq/detail?faqid=FAQ26892&list=Modem

3.1.7 是否支持srvcc

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"
b0: SRVCC

b1: aSRVCC

b2: midSRVCC

b3: bSRVCC

nvram_ims_profile_ptr->ua_config.srvcc_feature_enable               = 0x000F; // enable SRVCC, aSRVCC, bSRVCC and mid-sRVCC

https://online.mediatek.com/apps/faq/detail?faqid=FAQ28180&list=Modem

3.1.8 USSI

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

nvram_ims_profile_ptr->imc_config.ussd_support                      = 1;

https://online.mediatek.com/apps/faq/detail?faqid=FAQ25094&list=Modem

3.1.9 ims定时器

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"
ringing定时器是ue做主叫时,对端响铃无响应时90s自动挂断电话。ringback定时器时ue做被叫时90s无响应自动挂断电话。默认值为0.

nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;
nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;

T1: RTT Estimate, RTT估算值, 发出请求到接收到对端响应的往返时间, mtk中默认是2000ms
T2: 非INVITE请求和INVITE应答的最大传输间隔, mtk中默认是16s
T4: 消息在网络中存活的最大时间, mtk中默认是17s

nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer                    = 2000; 
nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer                    = 16000;
nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer                    = 17000;

其他定时器:

    ua->UA_reg_a_timer = 0;
    ua->UA_reg_b_timer = 0;
    ua->UA_reg_c_timer = 180000;
    ua->UA_reg_d_timer = 128000;
    ua->UA_reg_e_timer = 0;
    ua->UA_reg_f_timer = 0;
    ua->UA_reg_g_timer = 0;
    ua->UA_reg_h_timer = 0;
    ua->UA_reg_i_timer = 0;
    ua->UA_reg_j_timer = 0;
    ua->UA_reg_k_timer = 0;

具体定义可以在rfc3261中查找协议
2024-03-20T09:32:11.png

3.1.10 MTU

MTU指的是在计算机网络中可以一次性传输的最大数据长度。超过MTU大小的数据需要被分割成多个分组进行传输。
Volte MTU配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"
MTK默认值为1300

nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1500;

Vowifi MTU配置路径:"mcu/pcore/custom/modem/common/ps/custom_wo_config.c"
MTK默认值为1300

p_cfg->mtu = 1300;

3.1.11 Ims ip type优先级

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

nvram_ims_profile_ptr->imc_config.ims_v4v6_preference               = 2;       
0//v4_only
1//v6_only
2//v4_prefer
3//v6_prefer

默认值3

3.1.12 漫游中block vowifi

配置路径:"mcu/pcore/custom/modem/common/ps/custom_iwlan_config.c"
默认值false

cfg->wans_cfg.wans_ims_wlan_roaming_barring_enable = KAL_TRUE //block vowifi in roaming

3.1.13 Sip url or tel url

配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

ua->always_use_sip_uri_for_mo_call = 1; //默认采用sip url

[DESCRIPTION]
How to set SIP URI or Tel URI when Make VoLTE call
[SOLUTION]
UE just can decide to use SIP URI or Tel URI in MO call, it can't decide when MT call because it is from other phone;
Method:
1.You need first check IMS->call->always_use_sip_uri_for_mo_call in EM,
if =1, UE always use SIP URI when make MO VoLTE call;
esle =0;
1)Directly enter number in dialer interface or save number in new contact, it is TEL URI

2)Create new contact->Phone contact->Enter SIP URI in IMS field, it is SIP URI;
eg:12345@ims.mnc001.mcc001.3gppnetwork.org

  1. And you can set this parameter(always_use_sip_uri_for_mo_call) in EM;

3.1.14 Vowifi加密算法等配置

配置路径:"mcu/pcore/custom/modem/common/ps/custom_wo_config.c"
Vowifi加密鉴权算法,epdg地址配置等

                kal_snprintf((kal_char *)p_cfg->epdg_fqdn, sizeof(p_cfg->epdg_fqdn), "%s",
                             "epdg.ims.mnc010.mcc716.pub.3gppnetwork.org");
                p_cfg->ike_rekey_timer = 87000;
                p_cfg->esp_rekey_timer = 87000;
                p_cfg->rekey_margin = 600;
                p_cfg->dpd_timer = 10;
                p_cfg->fastreauth = 1;
                p_cfg->cust_pcscf_4 = 16389;
                p_cfg->cust_pcscf_6 = 16390;
                p_cfg->cust_imei_cp = 16385;
                p_cfg->retrans_tries = 3;
                p_cfg->retrans_base = 2;
                p_cfg->mtu = 1500;
                p_cfg->cert_used = 0;
                p_cfg->IDi = IDI_RFC822_ADDR_MAC;
                p_cfg->keep_timer = 180;
                p_cfg->oos = 30;

3.2 补充服务

3.2.1 补充服务通用配置

UT xcap配置,当需求表上UT配置项不是协议默认值时要配置以下配置项
https://online.mediatek.com/apps/quickstart/QS00136#QSS01394
CustomUtConfig.cpp (\apps\module\utinterface\custom\src)

	SET_STR("41501",IDX_STR_NAF_HOST, "xcap.ims.mnc001.mcc415.3gppnetwork.org");      
	SET_STR("41501",IDX_STR_BSF_HOST,"bsf.ims.mnc001.mcc415.3gppnetwork.org");	SET_STR("41603",IDX_STR_GBA_TYPE, "GBA_ME");
    SET_INT("21603", IDX_INT_XCAP_PORT, 8090);
    SET_INT("21603", IDX_INT_GBA_PORT, 8080);  

配置路径:"mcu/pcore/custom/modem/common/ps/custom_iwlan_config.c"

//漫游下不支持xcap走vowifi
cfg->wans_cfg.wans_xcap_roaming_barring_enable       = KAL_TRUE;
//block vowifi下xcap
cfg->wans_cfg.wans_xcap_wlan_only_barring_enable      = KAL_TRUE;

3.2.2 call waiting

呼叫等待需要运营商支持并开通,一般卡都支持此项功能并且运营商默认开通,一般手机在call setting里面会有一项打开或关闭此项功能的选项,用户可以自由选择。
如用户设置了呼叫等待,则可实现在通话时,若有第三方呼入,会有提示音和提示画面,此时可以选择接听,拒绝或是忽略该呼叫。
如果选择接听第三方来电,则原通话将会被保持而不会被挂断,当然也可以选择接听并挂断原通话。如果拒绝,则会挂断第三方通话,原通话不受影响。

配置路径:"mcu/pcore/custom/modem/common/ps/custom_ssds.c"
_custom_ssds_get_cw_path_variable
2024-03-20T09:38:30.png
2024-03-20T09:40:15.png
https://online.mediatek.com/apps/quickstart/QS00136#QSS01387

3.2.3 呼叫转接ECT

常用的功能叫通话转接,用于将接通后的通话转给第三方接听处理
配置路径:"mcu/pcore/custom/modem/common/ps/custom_imc_config.c"

nvram_ims_profile_ptr->ua_config.ect_enable = 1;
nvram_ims_profile_ptr->ua_config.ect_refer_in_new_dialog     = 1;//Conference Call dialog Type is Out of-dialog
Mtk默认值:ect_enable = 0
            ect_refer_in_new_dialog = 0 // in of-dialog

https://online.mediatek.com/apps/faq/detail?faqid=FAQ27587&list=Modem

3.2.4 CNAP

CNAP是一种补充服务,这种服务提供一种在所有来电呼叫建立时间被叫方指示主叫方的名字信息的能力。
主叫方没有采取任何行动,启动或是以任何形式提供主叫姓名显示方式,然而,主叫方向被叫方发送主叫名称时,可能会受到主叫方订阅的其他的服务的影响。比如,如果主叫方订购了CLIR业务,主叫方的名字就不能够在被叫方显示,将会显示private number 或是unknown number。

配置路径:"mcu/pcore/custom/modem/common/ps/custom_l4_utility.c"

custom_check_cnap_allowed_for_plmn  //please add the allowed PLMN in function as follows
if((kal_mem_cmp(camped_plmn,"45201",5)  == 0)|| (kal_mem_cmp(camped_plmn,"45204",5) == 0)||(kal_mem_cmp(camped_plmn,"42403",5) == 0))
    {
    return KAL_TRUE;
    }
    return KAL_FALSE;

Note:此处45201、45204、43403是PLMN

https://online.mediatek.com/apps/faq/detail?faqid=FAQ27839&list=Modem

3.2.5 呼叫转移

呼叫转移(Call Forwarding)业务的作用是将来电转移到其它电话号码上。
配置路径:"mcu/pcore/custom/modem/common/ps/custom_ssds.c"
_custom_ssds_get_cf_path_variable
具体方法参照3.2.2 call waiting,配置方法相识,不再赘述

3.2.6 呼叫限制

客户可以灵活地控制手机的服务权限,防止被人误打、盗打电话,特别是国际长途电话,以避免不必要的经济损失。
呼叫限制是指您可按一定条件设定密码,限制电话打入及手机打出的业务。
客户可随意设置或取消手机的各种呼叫限制
配置路径:"mcu/pcore/custom/modem/common/ps/custom_ssds.c"
_custom_ssds_get_cb_path_variable
具体方法参照3.2.2 call waiting,配置方法相识,不再赘述

3.2.7 号码隐藏

如果主叫方订购了CLIR业务,主叫方的名字就不能够在被叫方显示,将会显示private number 或是unknown number。
配置路径:"mcu/pcore/custom/modem/common/ps/custom_ssds.c"
_custom_ssds_get_clir_path_variable
具体方法参照3.2.2 call waiting,配置方法相识,不再赘述

3.3 紧急呼叫

3.3.1 紧急呼叫配置参数说明

2024-03-20T09:42:24.png
2024-03-20T09:42:36.png

3.3.2 紧急号码客制化

在ecc_list.xml客制化紧急号码,同时也要check eccdata.txt里的号码。
vendor/mediatek/proprietary/external/EccList/ecc_list.xml
packages/services/Telephony/ecc/input/eccdata.txt

举例:
(1)客制化特定国家的紧急号码
修改vendor/mediatek/proprietary/external/EccList/ecc_list.xml,加入对应国家MCC的紧急号码,MNC栏位必须为”FFF”或者“FF”
**例如: <EccEntry Ecc="888" Category="0" Condition="1" **Plmn="440 FFF"/>
(2)客制化特定运营商的紧急号码
修改vendor/mediatek/proprietary/external/EccList/ecc_list.xml,加入特定运营商MCC/MNC的紧急号码,
例如: <EccEntry Ecc="888" Category="0" Condition="1" Plmn="440 01"/>
(3)客制化假紧急号码
修改vendor/mediatek/proprietary/external/EccList/ecc_list.xml,加入condition为2的紧急号码,
例如: <EccEntry Ecc="888" Category="0" Condition="2" Plmn="440 01"/>
(4)客制化无卡紧急号码(有卡不是紧急号码)
修改vendor/mediatek/proprietary/external/EccList/ecc_list.xml,加入condition为0的紧急号码,
例如: <EccEntry Ecc="888" Category="0" Condition="0" Plmn="440 01"/>

3.2.3 紧急呼叫域选相关配置

如果某市场支持ims,默认优先支持ecc over ims。当有需求ecc需要csfb或者vowifi不支持ecc就需要配上以下配置项。
配置路径:”mcu\common\modem\sbp\sbp_nvram_vdm_config.c”
//Disable Emergency call over IMS
nvram_vdm_ads_profile_ptr->profile_emerg.general_setting_emerg.allow_ims = 0;
//Disable Emergency call over WFC
nvram_vdm_ads_profile_ptr->profile_emerg.general_setting_emerg.allow_wfc = 0;

3.4基础通信相关

3.4.1 漫游

应用场景:当22249的需要注册在22201网络,并且把22201的网络当作本卡的hplmn。成功注册22201网络时,注册状态是非漫游网络。
配置路径:”mcu/pcore/custom/modem/common/ps/custom_l4_utility.c”

函数 custom_is_home_plmn 669行加上这段代码

    if (kal_mem_cmp(mcc_mnc,"22249",5) == 0)
    {
       if (kal_mem_cmp(plmn,"22201",5) == 0)
       {
           custom_is_on_hplmn = KAL_TRUE;
       }
    }

3.4.2 crs协议特性定制

根据FAQ23478,modem\mcu\common\modem\sbp\sbp_nvram_errc_config.c中针对VDF(sbp_id==6)下添加配置

pEutra_cap_csfb->phylayer_param_v1130.crs_interf_handl_r11=0x01;
你需要把这几个都添加。
pEutra_cap_csfb->phylayer_param_v1130.ss_CCH_interf_Handl_r11=0x01;
pEutra_cap_csfb->phylayer_param_v1130.crs_interf_handl_r11=0x01;
pEutra_cap_csfb->fdd_add_ue_eutra_cap_r11.ss_CCH_interf_Handl_r11=0x01;
pEutra_cap_csfb->tdd_add_ue_eutra_cap_r11.ss_CCH_interf_Handl_r11=0x01;
同时在
在sbp_nvram_config.c, nvram_custom_config_sbp() 下
else if (sbp_id == 6) //For VDF
{
    sbp_set_md_feature(SBP_LTE_FEICIC, KAL_TRUE, (nvram_ef_sbp_modem_config_struct*)&sbp_feature_buf); /* Enable FEICIC */

}

4 Modem常见业务流程及log分析

4.1 ims注册

1.IMS register flow chart
2024-03-20T09:44:27.png
步骤 1:当 IMS 和 SIM 接入准备就绪时。 满足条件后,IMC 将触发 IMS 向IMCB发起注册。
步骤2、3:IMCB请求IMSA/IMSM获取IMS PDN和P-CSCF,然后触发VoLTE REG做IMS注册
步骤4:带有AUTH结果的SIP消息并向P-CSCF发起注册。
步骤 5:VoLTE REG 请求 IMSA/IMSM 从 SIM 收集 AUTH 计算结果
步骤 6:将注册状态传递给 IMC
步骤 7:URC 向Framework 指示 IMS 注册状态。 

2.VoLTE register、ViLTE register以及WFC register 在流程上是一样的, 先介绍相同点,然后介绍不同点;

Same in IMS register

  1. IMS注册流程;

2024-03-20T09:44:54.png
2. 如何检查ims注册过程的SIP信令
1)打开main log并搜索关键字“siptx-io”
正常流程如下:
2024-03-20T09:45:13.png
2)打开net log,搜索关键字“SIP”
2024-03-20T09:45:32.png

Difference in IMS register
ViLTE register 与VoLTE register区别:
ViLTE register在contact header中增加了Video parameter;

WFC register 与VoLTE register区别:
WFC have Two level ipsec :IMS AKA + ePDG
Reg-id in contact header:WFC:2;VoLTE:1
P-Access-Network-Info header:WFC:WIFI AP’s MAC;VoLTE: 3GPP Cell ID
2024-03-20T09:46:04.png

4.2 通话流程

4.2.1 ims call

MO Call
2024-03-20T09:46:23.png
Step 1 : ATD to trigger MO call attempt
Step 2 : VDM select ADS to IMS
Step 3 : Trigger VoLTE UA to setup MO call
Step 4: SIP messages to P-CSCF for MO call setup and negotiation
Step 5 : Confirm dedicated bearer to match with QoS condition for this call attempt in VoLTE case
Step 6 : Update Media parameters for data path. In VoWiFi, also to signal WFCA to handle RTP on WiFi
Step 7 : Pass call status to IMC, and activate the media flow
Step 8 : URC to Indicate the call status to Framework

1)Flow:
1.1)MO UE sends INVITE message to start IMS call.
1.2)MO UE reveives 100 Trying from network.
1.3)MO UE receives 183 Session Progress.
1.4)MO UE sends PRACK to indicate having received 183.
1.5)MO UE receives 200 OK(PRACK).
1.6)MO UE sends UPDATE to handle precondition process.
1.7)MO UE receives 200 OK(UPDATE).
1.8)MO UE receives 180 Ringing from network.
1.9)MO UE sends PRACK to indicate having received 180.
1.10)MO UE receives 200 OK(PRACK).
1.11)MO UE receives 200 OK(INVITE) which means MT UE has answered the call.
1.12)MO UE sends ACK.
1.13)MO UE sends Bye to end call.
1.14)MO UE receives 200 OK(Bye).
2024-03-20T09:46:48.png
2) Precondition/no Precondition procedure
You can find step 1.3-1.7 in 1)MO call flow when call with precondition.
2024-03-20T09:47:04.png

4.2.2 3g call

3G MO Call Normal Flow
2024-03-20T09:47:25.png
Step 1: CM service request

  • Search ‘RATCM_RRCE_CONN_EST_REQ’ and “CM_SERVICE_REQUEST” after the call is started. If key words are not found:
  • Follow up: Try to find MMCC_EST_REJ

2024-03-20T09:47:44.png
失败原因:这些情况大部分是由于UE信号覆盖不好和PLMN丢失造成的
下一步操作:使用同样测试方法测试 ref-phone 并比较测试结果。 如果 DUT 中注册失败的次数大于 ref-phone 中注册失败的次数,请向 MTK 提交 e-service。

Step 2: RRC connection setup
NAS发出CM服务请求后,RRC连接(AS)应该就建立成功了。 正常情况下,可以找到以下三个AS消息:
2024-03-20T09:48:01.png
原因:可能是由信号覆盖不良或 NW 问题引起的
下一步行动:
1.检查 DUT 的 RF/CAL/ANT
2.更换测试机再进行复测
3.测试参考手机; 如果ref-phone没问题,但DUT失败,如果测试结果提交给MTK

Step 3: MM connection setup

  • Search “MM new State: MM_CONN_ACTIVE” in the integration window

2024-03-20T09:48:34.png
原因:可能是安全模式程序失败、认证失败或信号不好导致
下一步操作:使用同样的测试方法测试 ref-phone 并比较测试结果。 如果ref-phone测试结果正常,请提交e-service给MTK。

Step 4: RB setup for the call

  • Find following two AS messages in a normal case: “Radio bearer setup” and “Radio bearer Setup Complete”

2024-03-20T09:48:54.png
原因:这可能是由信号不好、网络问题或无效配置引起的
下一步操作:使用同样的测试方法测试 ref-phone 并比较测试结果。 如果ref-phone测试结果正常,请提交e-service给MTK。

4.2.3 2g call

2G MO Call Normal Flow
2024-03-20T09:49:23.png

Step 1: CM service request
Step 2: RA and immediate assignment
Step 3: MM connection setup
Step 4: RR assignment for MOC
Step 1: CM service request

  • Search “CM_SERVICE_REQUEST” after the call is started

2024-03-20T09:49:38.png
通常这一步失败是由于信号覆盖不好和PLMN丢失导致,modem执行小区搜索过程但不发送“CM_SERVICE_REQUEST”
下一步动作:使用同样的测试方法对参考手机进行比对测试。 如果ref-phone测试结果正常,请提交e-service给MTK

Step 2: RA and immediate assignment

  • Search ‘MSG_ID_RATCM_GAS_CONN_EST_CNF’ with result = “AS_CONN_EST_SUCC ” following the ‘RR_IMMEDIATE_ASSIGNMNET’ in the integration window

2024-03-20T09:49:58.png
如果找到上述原语,则随机访问成功
如果没有找到以上log:使用同样测试方法在参考手机上进行比较测试。 如果 DUT 中注册失败的次数大于 ref-phone 中注册失败的次数,请向 MTK 提交 e-service。

Step 3: MM connection setup

  • Search ‘MM_CONN_ACTIVE’ in the integration window

2024-03-20T09:50:18.png

如果找到上述原语,则MM连接建立成功; 如果收到‘CC_CALL_PROCEEDING’,网络已向远程电话发送寻呼
如果失败,下一步行动:使用同样测试方法在参考手机上进行比较测试。 如果 DUT 中注册失败的次数大于 ref-phone 中注册失败的次数,请向 MTK 提交 e-service。

Step 4: RR assignment for MOC

  • Search ‘RR_ASSIGNMENT_COMPLETE’ in the trace peer

2024-03-20T09:50:35.png

如果找到上述原语,则TCH建立成功
如果失败下一步:如果无法搜索到‘RR_ASSIGNMENT_COMPLETE,请使用同样的方法在参考手机上进行比对测试。 如果 DUT 中注册失败的次数大于 ref-phone 中注册失败的次数,请向 MTK 提交 e-service。

4.2.2 4g csfb call

4G CSFB MO Call Normal Flow
2024-03-20T09:50:55.png
Step 1: Check register result

  • Find the latest Attach or TAU Result in PS Trace Peer window, and make sure that the attach result is COMBINED_ATTACHED

2024-03-20T09:51:11.png
如果这一步失败:检查最后一次4g的注册流程或者TAU流程

Step 2: MM sends the CSFB request to EMM

  • Find the ” MM_EMM_CSFB_REQ” in the integration window

2024-03-20T09:51:29.png
下一步行动:如果找不到,请提交e-service给 MTK

Step 3: RRC connection setup

  • Find “[MS->NW] ERRC_RRCConnectionRequest” in the integration window
  • RRC connection setup will fail if “[NW->MS] ERRC_RRCConnectionSetup” does not exist

2024-03-20T09:51:48.png
下一步行动:
1.检查 DUT 的 RF/CAL/ANT
2.更换测试手机进行复测
3.测试参考手机; 如果ref-phone的测试结果没问题,但DUT失败,则向MTK提交e-service

Step 4: EMM send Extended_service_request

  • Find the ” EMM_Extended_Service_Request” in the trace peer window

2024-03-20T09:52:26.png
Step 5: NW configures UE redirect/handover to 2G or 3G

  • Find the “redirectInfo:1” in the trace peer window

2024-03-20T09:52:45.png

下一步:重定向和切换由 NW 决定。
如果 DUT 调用失败次数大于 ref-phone 调用失败次数,请提交 e-service 给 MTK
后面的通话流程与2G/3G通话流程相同

4.3 modem常见业务log分析

4.3.1 查看ims信令

大多数与ims相关的业务都需要查看sip信令,mtk平台有两个方式可以查看sip信令。

  1. 采用mtk工具elt,在OTA message窗口或者单独的sip窗口查看完整的sip信令。如果账号没有sip查看权限,可以通过System Trace窗口按Ctrl+F后过滤搜索esip关键字--此方法只能看到sip的信令标题,不能看到消息体里具体的内容
  2. 当mtk账号没有sip权限时可以用Wireshark查看,具体方法如下:netlog 中的pcap log用Wireshark打开,编辑-->首选项-->Protocols -->ESP 四个选项都勾上点确认

2024-03-20T09:53:02.png
在窗口过滤sip就可以查看完整sip消息

4.3.2 确认ims注册问题

搜索关键字EIMSCFG,上层ims能力是否ok
[ATCI_AT_I_1 s33]AT+EIMSCFG=1,0,0,0,1,1
=> Decode:Integrated IMS related capability and functionality +EIMSCFG
: 1(Voice over LTE enable)
: 0(Disable)
: 0(Disable)
: 0(Disable)
<ims_sms> : 1(Enable)
: 1(Enable)

搜索关键字d2rm_parse_request_apn,查看ims相关apn是否ready
2024-03-20T09:53:21.png

搜索关键字Normal REG condition check result,查看ims注册条件是否ok
2024-03-20T09:53:39.png

搜索关键字EWFC,查看vowifi的首选项

搜索关键字ESIP,查看ims注册消息是否发起

搜索关键字ims_roaming_mode,查看是否支持ims漫游

搜索关键字Service status,查看网络注册状态

搜索关键字MSG_ID_DHL_IMC_EM_DUMP_NVRAM_IND,查看当前op_id加载nv值

4.3.3 补充服务

搜索关键字ATP_SSDS_SS_ATCMD,查看补充服务类型,是否成功
2024-03-20T09:54:01.png
搜索关键字ss_req_path_type,查看补充服务采用的是ps还是cs,还是本地控。

搜索关键字domain Decision Done,查看当前卡采用的是哪个op_id的配置,哪个mccmnc,还有域选

5 案例分享

6 Emergency Call via CSFB

BEEONE-3127
[Telecom][FR check][Spain][Digi] Implement IMS for Digi(214 22)--Emergency Call via CSFB
【DEFECT DESCRIPTION】
Emergency Call via CSFB, not over IMS.
【REPRODUCING PROCEDURES】

  1. insert SIM 21422
  2. register VoLTE, then dial ECC.
    log:21422ECC.zip
    【EXPECTED BEHAVIOUR】
    ECC via CSFB
    【ASSOCIATE SPECIFICATION】

紧急呼叫的域选默认是ps prefer,cs sencond。此单要求Emergency call走csfb,这时就需要把以下配置项配上禁用volte和wfc上的紧急呼叫
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/common/modem/sbp/sbp_nvram_vdm_config.c

case 155: /* Digi */
1536行添加以下代码
             if(strcmp((char*)param_ptr->mcc, "214") == 0)
                {
                // Disallow IMS emergency call
                nvram_vdm_ads_profile_ptr->profile_emerg.general_setting_emerg.allow_ims = 0;
                // Disallow WFC emergency call
                nvram_vdm_ads_profile_ptr->profile_emerg.general_setting_emerg.allow_wfc = 0;
                }

7 Support EVS codecs

BEEONE-3166
[Telecom][FR check][A1MK][VDMK]IMS implementation for A1 Macedonia--Support EVS codecs
【DEFECT DESCRIPTION】
DUT should be support EVS codecs
【REPRODUCING PROCEDURES】

  1. insert SIM 29403
  2. register the VoLTE, dail call during force EVS--NOK

问题单需要支持evs,编解码支持AMR WB,AMR NB,配置以下配置项解决问题
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_imc_config.c

20996行 else if (strncmp((char *)&mccmnc[0], "294", 3) == 0) {
				#ifdef __EVS_SUPPORT__
				nvram_ims_profile_ptr->ua_config.evs_support                        = 1;  // enable EVS
				nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17; // EVS
				nvram_ims_profile_ptr->ua_config.UA_call_codec_order2               = 2;  // AMR WB
				nvram_ims_profile_ptr->ua_config.UA_call_codec_order3               = 1;  // AMR NB
				#endif /* __EVS_SUPPORT__ */

8 SMS over IP

BEEONE-3121
[Telecom][FR check][A1BG][IMS and LTE bands/NR bands]UE mandatory requirements--SMS over IP
【DEFECT DESCRIPTION】

SMS over SGs--NOK

【REPRODUCING PROCEDURES】

  1. Insert to SIM(28401) and register to VoLTE;

2.Try to send/receive SMS over IP--NOK.
2024-03-21T06:02:19.png

sms over ip需要check以下两处配置项
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_imc_config.c

在以下分支加一段代码 case 188: /* A1 */  
else if (strncmp((char *)&mccmnc[0], "284", 3) == 0) {
            nvram_ims_profile_ptr->imc_config.sms_support                   = 1;
}

以下中的配置要删掉,配置了就是不支持sms over ip

sdm_cust_sms_over_ip_allowed_tbl[]                 Define which MCC/MNC doesn’t support SMS over IP
sms_over_wifi_allowed_tbl[]                              Define which MCC/MNC doesn’t support SMS over WIFI
sdm_cust_prefer_sms_over_sgs_to_ims_tbl[]      Define which MCC/MNC more preferred SMS over CS than SMS over IMS

9 飞模下不能注册vowifi

BEEONE-2960
[UK onsite][FT][OM][3UK][VoWiFi]Sometimes DUT can't register to VoWiFi with airplane mode enabled after reboot
DEFECT DESCRIPTION

[UK onsite][FT][3UK][VoWiFi]Sometimes DUT can't register to VoWiFi with airplane mode enabled after reboot

REPRODUCING PROCEDURES

  1. Insert 23420 3UK sim register to VoWIFI with airplane mode enabled.

  2. Reboot the DUT and wait for 6 mins, it can't register to Vowifi automatically.--NOK

Note:

This issue not occurs steadily but the probability of occurrence is high
At the same time test on Model3, can register to Vowifi automatically after reboot in about 15 seconds.

分析log发现23420的卡漫游在其他网络上,而这个运营商配置了漫游下阻止vowifi注册,把下面配置项改为false即可
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_iwlan_config.c 682行

   case 11: /* H3G */  
                    cfg->wans_cfg.wans_ims_wlan_roaming_barring_enable = KAL_TRUE 改成KAL_FALSE

10 Xcap enable even Volte off

BEEONE-3278
[Telecom][EU OM][FR check][Telekom HU][Xcap]Xcap enable even Volte off
Issue: No XCAP in case of VoLTE SIM in VoLTE OFF or 2G/3G:
If you insert a VoLTE SIM in the device and turn off VoLTE and/or force the device to 2G/3G, Call Forwarding is not handled via Ut-interface (XCAP) but on CS domain after CSFB. This is unacceptable.
Expected behavior: Call Forwarding must be handled via Ut interface in ALL POSSIBLE CASES if VoLTE SIM is inserted in the device!

DEFECT DESCRIPTION
][Telekom HU][Xcap]Xcap enable even Volte off
REPRODUCING PROCEDURES
1.Insert 21630 SIM
2.Reigster into 4G/3G/2G without IMS registered
3.Try to query call forwarding
4. UE will send xcap DNS query in network log --pass
5.UE will not send xcap DNS query when UE register in 3G/2G --Fail

Mtk默认逻辑是注册volte,ut走ps,未注册volte走cs,此单要求关volte都要走ps,可以把这个运营商的补充服务改走ps only。
在custom_ssds.c的函数 _custom_ssds_ps_only_path_variable加上这段代码:

if (0 == (kal_mem_cmp(mccmnc, "21630", 5)))
    {/* Movistar Colombia: support ALL CF Service over XCAP, ALPS06165062 */
        *atcmd_req_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
        return KAL_TRUE;
    }

11 配置漫游网络

BEEONE-2949
[Telecom][EU OM][FR check][LCA1][VIANOVA][ITALY] How to implement VoLTE for 4G (222 49)

此单要求22249卡在22201网络上是非漫游状态,改以下代码,把plmn 22201当作22249的hplmn以解决此问题。
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_l4_utility.c
函数 custom_is_home_plmn 669行加上这段代码

    if (kal_mem_cmp(mcc_mnc,"22249",5) == 0)
    {
       if (kal_mem_cmp(plmn,"22201",5) == 0)
       {
           custom_is_on_hplmn = KAL_TRUE;
       }
    }

12 呼叫等待本地控

BEEONE-2974
[UK onsite][FT][OM][3UK]Call waiting should be terminal based
REPRODUCING PROCEDURES

  1. Insert 23420 3UK sim, and check that call waiting seems not terminal based---NOK

此单要求这个运营商的呼叫等待本地控,修改以下配置解决问题
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_ssds.c 函数_custom_ssds_get_cw_path_variable
在判断条件添加23420判断

966行 	(0 == (kal_mem_cmp(mccmnc, "708002", 6))) || (0 == (kal_mem_cmp(mccmnc, "26802", 5))) || (0 == (kal_mem_cmp(mccmnc, "23420", 5))))

13 Xcap over VoLTE doesn't work

BEEONE-3073
[Telecom][FR check][KENA][ITALY] [TIM MVNO]Xcap over VoLTE doesn't work for 222 07
【DEFECT DESCRIPTION】
Xcap over VoLTE doesn't work, and Xcap APN:should be "xcap.kena.it"
【REPRODUCING PROCEDURES】
BeeOne Xcap over VoLTE--Fail
Log:22207Xcap2.zip
【EXPECTED BEHAVIOUR】
Supplementary Service can work normally
【ASSOCIATE SPECIFICATION】

看log发现此运营商补充服务直接在cs发起,检查配置项发现22207配置了cs only,把此配置项删掉后复测pass
/modem/6765-ZH189_G5832W1258L135782028384041F_EU_OM/mcu/pcore/custom/modem/common/ps/custom_ssds.c
函数 _custom_ssds_cs_only_path_variable

292行 删掉 (0 == (kal_mem_cmp(mccmnc, "22207", 5)))

95~我想带你去海边