[Feature][T8TSK-212][Modem]Update MTK modem version to MOBILETEK35_IVT_T800_MOLY.NR15.R3.MD700.MP.V75.P6
Only Configure:No
Affected branch:T800_MD
Affected module:Modem
Is it affected on both ZXIC and MTK:only MTK
Self-test:Yes
Doc Update:No
Change-Id: Id19a67bd78c05e3f07b27b5943045cc78cb5c24d
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.c b/mcu/custom/protocol/common/ps/custom_ssds.c
index 1f265b4..62b9fa4 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds.c
@@ -210,7 +210,6 @@
break;
case 1:/* CMCC */
case 2:/* CU */
- case 3:/* Orange */
case 102:/* Smartone */
case 112:/* Telcel */
case 125:/*DTAC-Thailand*/
@@ -243,10 +242,11 @@
case 385: /* BH Mobile */
case 397:/* Mectel-Myanmar */
case 410: /* Mtel-Bosnia and Herzegovina*/
- *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
- is_changed = KAL_TRUE;
- break;
+ case 415: /*my.t-Mauritius*/
case 420: /* Saudi Arabia -Redbull*/
+ case 430: /* Airtel- Nigeria */
+ case 436: /* Flow - Barbados*/
+ case 439: /* Airtel - Tanzania */
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
is_changed = KAL_TRUE;
break;
@@ -254,6 +254,14 @@
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_IMS;
is_changed = KAL_TRUE;
break;
+ case 3: /* Orange */
+ if(0 == strcmp(params_info->mcc, "226")) /* Orange-Romania supports USSI */
+ {
+ break;
+ }
+ *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+ is_changed = KAL_TRUE;
+ break;
case 5: /* TMOEU/DTAG Greece/Netherlands/Hungary/Slovakia */
if((0 == strcmp(params_info->mcc, "202")) || (0 == strcmp(params_info->mcc, "204")) ||
(0 == strcmp(params_info->mcc, "216")) || (0 == strcmp(params_info->mcc, "231")) ||
@@ -310,7 +318,6 @@
break;
case 9:/* CT */
case 304:/* CTMO: only support CF and CW --aomen*/
- case 430: /* Airtel- Nigeria */
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_NOT_SUPPORT;
is_changed = KAL_TRUE;
break;
@@ -407,6 +414,100 @@
return req_ussd_path_type;
}
+void _custom_ssds_get_stk_ussd_req_path_default_config_by_op(custom_ssds_params_info_struct *params_info,
+ custom_ssds_ussd_path_type *req_stk_ussd_path_type)
+{
+ kal_bool is_changed = KAL_FALSE;
+
+ switch (params_info->op_id)
+ {
+ case 0: /* Default values */
+ break;
+ case 127: /*MEGAFON -RUSSIA */
+ *req_stk_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+ is_changed = KAL_TRUE;
+ break;
+ default:
+ break;
+ }
+ if(is_changed == KAL_TRUE)
+ {
+ kal_prompt_trace(MOD_SSDS+params_info->sim_id, "[Default Config by OP]stk_ussd path:%d, opid:%d",*req_stk_ussd_path_type, params_info->op_id);
+ }
+ return;
+}
+
+void _custom_ssds_get_stk_ussd_req_path_from_config_file(custom_ssds_params_info_struct *params_info,
+ custom_ssds_config_type cfg_type,
+ custom_ssds_ussd_path_type *req_stk_ussd_path_type)
+{
+ nvram_ef_ssds_common_config_profile_struct *nvram_ptr = NULL;
+ custom_ssds_config_context_struct *context_root;
+ sim_interface_enum sim_id = params_info->sim_id;
+ kal_bool is_changed = KAL_FALSE;
+
+ context_root = _custom_ssds_get_context_by_simid(sim_id, cfg_type);
+
+ if (!context_root)
+ {
+ return;
+ }
+
+ nvram_ptr = &(context_root->common_config_record);
+
+ switch(nvram_ptr->stk_ussd_path)
+ {
+ case CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_IMS_IF_IMS_REGISTERED:
+ _custom_ssds_ussd_req_path_ims_select_rule(params_info, req_stk_ussd_path_type);
+ is_changed = KAL_TRUE;
+ break;
+ case CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_CS:
+ *req_stk_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+ is_changed = KAL_TRUE;
+ break;
+
+ case CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_IMS:
+ *req_stk_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_IMS;
+ is_changed = KAL_TRUE;
+ break;
+
+ case CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_NOT_SUPPORT:
+ *req_stk_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_NOT_SUPPORT;
+ is_changed = KAL_TRUE;
+ break;
+ default:
+ break;
+ }
+ if(is_changed == KAL_TRUE)
+ {
+ kal_prompt_trace(MOD_SSDS+sim_id, "[Config file]cfg_type:%d,cfg_stk_ussd_path:%d,atcmd_stk_ussd_path_type:%d",
+ cfg_type, nvram_ptr->stk_ussd_path, *req_stk_ussd_path_type);
+ }
+
+ return;
+}
+
+custom_ssds_ussd_path_type custom_ssds_get_stk_ussd_req_path_variable ( custom_ssds_params_info_struct *params_info)
+{
+ custom_ssds_ussd_path_type req_stk_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_INVALID;
+
+ /* Default configuration is same as USSD */
+
+ /* Priority 4 :mcf ota config */
+ _custom_ssds_get_stk_ussd_req_path_from_config_file(params_info, CUSTOM_SSDS_CFG_TYPE_MCF_OTA, &req_stk_ussd_path_type);
+
+ /* Priority 3 :default OP config */
+ _custom_ssds_get_stk_ussd_req_path_default_config_by_op(params_info, &req_stk_ussd_path_type);
+
+ /* Priority 2 :mcf ota by op config */
+ _custom_ssds_get_stk_ussd_req_path_from_config_file(params_info, CUSTOM_SSDS_CFG_TYPE_MCF_OTA_BY_OP, &req_stk_ussd_path_type);
+
+ /* Priority 1 :nvram file- By ELT(Nvram editor) or Meta Tool */
+ _custom_ssds_get_stk_ussd_req_path_from_config_file(params_info, CUSTOM_SSDS_CFG_TYPE_NVRAM, &req_stk_ussd_path_type);
+
+ return req_stk_ussd_path_type;
+}
+
#endif
@@ -510,76 +611,161 @@
#endif
#if 1
-void _custom_ssds_need_sync_cw_in_234g_variable_default(module_type module,kal_bool *need_sync)
-{
- *need_sync = KAL_FALSE;
+void custom_ssds_get_config_value_match(custom_ssds_params_info_struct *params_info,
+ custom_ssds_cw_sync_type *need_sync,
+ kal_uint8 cfg_value_id)
+{
+ if(cfg_value_id == NVRAM_SSDS_NEED_SYNC_CW_IN_234G)
+ {
+ if(*need_sync == SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME)
+{
+ if(params_info->is_ims_registered == KAL_TRUE)
+ *need_sync = SSDS_CW_SYNC_TYPE_NON_REAL_TIME;
+ else
+ *need_sync = SSDS_CW_SYNC_TYPE_REAL_TIME;
+ }
+ }
return;
}
-
-void _custom_ssds_need_sync_cw_in_234g_variable(module_type module,kal_bool *need_sync,kal_uint32 op_id,kal_char *mccmnc)
+void _custom_ssds_need_sync_cw_in_234g_variable_default(custom_ssds_params_info_struct *params_info,custom_ssds_cw_sync_type *need_sync)
{
+ *need_sync = SSDS_CW_SYNC_TYPE_NONE;
+ return;
+}
+
+void _custom_ssds_need_sync_cw_in_234g_variable(custom_ssds_params_info_struct *params_info,custom_ssds_cw_sync_type *need_sync)
+{
+ kal_bool is_changed = KAL_FALSE;
/* currently only for VHA which has such characters:CW always on in 4G and */
/* CW controlled by NW in non-4G and the CW not synced in 4G and non-4G NW */
/* So need UE to sync CW setting in 4G and non-4G by itself */
- switch(op_id)
+ switch(params_info->op_id)
{
- case 3:
- case 108:
- case 153:
- *need_sync = KAL_TRUE;
+ case 3: /* Orange */
+ case 108: /* TWN-TAIWAN */
+ case 201: /* KPN-Netherlands */
+ *need_sync = SSDS_CW_SYNC_TYPE_REAL_TIME;
+ is_changed = KAL_TRUE;
break;
+ case 120: /* CLARO */
+ {
+ if(0 == strcmp(params_info->mcc, "724")) /*Brazil */
+ {
+ *need_sync = SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ }
+ break;
+ }
+ case 153: /* VHA-AUS */
+ *need_sync = SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ break;
+ case 227: /* WIND */
+ {
+ if(0 == strcmp(params_info->mcc, "222")) /* Wind-Italy */
+ {
+ *need_sync = SSDS_CW_SYNC_TYPE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ }
+ break;
+ }
+ case 235: /* VIP */
+ {
+ if(0 == strcmp(params_info->mcc, "220")) /* Serbia */
+ {
+ *need_sync = SSDS_CW_SYNC_TYPE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ }
+ break;
+ }
+ case 155: /* Digi */
+ {
+ if(0 == strcmp(params_info->mcc, "502"))
+ {
+ if(0 == strcmp(params_info->mnc, "16")) /* Malaysia */
+ {
+ *need_sync = SSDS_CW_SYNC_TYPE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ }
+ }
+ break;
+ }
+ case 6: /* Vodafone */
+ {
+ if(0 == strcmp(params_info->mcc, "530")) /* Vodafone - New Zealand*/
+ {
+ if(0 == strcmp(params_info->mnc, "01"))
+ {
+ *need_sync = SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ }
+ }
+ break;
+ }
+ case 121:/* BELL-CANADA */
+ {
+ *need_sync = SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME;
+ is_changed = KAL_TRUE;
+ break;
+ }
default:
break;
}
-
+ if(is_changed == KAL_TRUE)
+ {
+ custom_ssds_get_config_value_match(params_info,&(*need_sync),NVRAM_SSDS_NEED_SYNC_CW_IN_234G);
+ kal_prompt_trace(MOD_SSDS+params_info->sim_id, "[Default Config by OP]CW sync:%d, opid:%d",*need_sync, params_info->op_id);
+ }
return;
}
-void _custom_ssds_need_sync_cw_in_234g_nvram_variable(module_type module,kal_bool *need_sync,
+
+void _custom_ssds_need_sync_cw_in_234g_nvram_variable(custom_ssds_params_info_struct *params_info,custom_ssds_cw_sync_type *need_sync,
custom_ssds_config_type cfg_type)
{
- sim_interface_enum sim_id;
-
- sim_id = l4c_gemini_get_actual_sim_id((sim_interface_enum)(module - MOD_SSDS));
+ sim_interface_enum sim_id = params_info->sim_id;
- if (KAL_TRUE == (custom_ssds_config_get_common_config(NVRAM_SSDS_NEED_SYNC_CW_IN_234G, sim_id,(void*)need_sync,cfg_type)))
+ if (KAL_TRUE == (custom_ssds_config_get_common_config(NVRAM_SSDS_NEED_SYNC_CW_IN_234G, sim_id,&(*need_sync),cfg_type)))
{
- kal_prompt_trace(module, "Use NVRAM: if send sync cw in 234g");
- kal_prompt_trace(module,"need_sync is:%d ", *need_sync);//for debug
+ custom_ssds_get_config_value_match(params_info,&(*need_sync),NVRAM_SSDS_NEED_SYNC_CW_IN_234G);
+ kal_prompt_trace(MOD_SSDS, "Use NVRAM: if send sync cw in 234g");
+ kal_prompt_trace(MOD_SSDS,"need_sync is:%d ", *need_sync);//for debug
}
return;
}
-void _custom_ssds_get_need_sync_cw_in_234g_from_common_file(module_type module,kal_bool *need_sync,
+void _custom_ssds_get_need_sync_cw_in_234g_from_common_file(custom_ssds_params_info_struct *params_info,custom_ssds_cw_sync_type *need_sync,
custom_ssds_config_type cfg_type)
{
- sim_interface_enum sim_id;
- sim_id = l4c_gemini_get_actual_sim_id((sim_interface_enum)(module - MOD_SSDS));
- custom_ssds_config_get_need_sync_cw_in_234g_from_common_file(sim_id,need_sync,cfg_type);
+ custom_ssds_config_get_need_sync_cw_in_234g_from_common_file(params_info,&(*need_sync),cfg_type);
+ if(INVALID_VALUE != *need_sync) // Invalid value
+ {
+ custom_ssds_get_config_value_match(params_info,&(*need_sync),NVRAM_SSDS_NEED_SYNC_CW_IN_234G);
+ kal_prompt_trace(MOD_SSDS+params_info->sim_id, "[Config file]cfg_type:%d,need_sync_cw_in_234g is 0x%x in common config file",cfg_type,*need_sync);
+ }
}
-
-void custom_ssds_need_sync_cw_in_234g_variable(module_type module,kal_bool *need_sync,kal_uint32 op_id,kal_char *mccmnc)
+void custom_ssds_need_sync_cw_in_234g_variable(custom_ssds_params_info_struct *params_info,custom_ssds_cw_sync_type *need_sync)
{
/* Priority 5 :default config */
- _custom_ssds_need_sync_cw_in_234g_variable_default(module,need_sync);
+ _custom_ssds_need_sync_cw_in_234g_variable_default(params_info,&(*need_sync));
/* Priority 4 :mcf ota config */
- _custom_ssds_need_sync_cw_in_234g_nvram_variable(module,need_sync,CUSTOM_SSDS_CFG_TYPE_MCF_OTA);
- _custom_ssds_get_need_sync_cw_in_234g_from_common_file(module,need_sync,CUSTOM_SSDS_CFG_TYPE_MCF_OTA);
+ _custom_ssds_need_sync_cw_in_234g_nvram_variable(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_MCF_OTA);
+ _custom_ssds_get_need_sync_cw_in_234g_from_common_file(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_MCF_OTA);
/* Priority 3 :default OP config */
- _custom_ssds_need_sync_cw_in_234g_variable(module,need_sync,op_id,mccmnc);
+ _custom_ssds_need_sync_cw_in_234g_variable(params_info,&(*need_sync));
/* Priority 2 :mcf ota by op config */
- _custom_ssds_need_sync_cw_in_234g_nvram_variable(module,need_sync,CUSTOM_SSDS_CFG_TYPE_MCF_OTA_BY_OP);
- _custom_ssds_get_need_sync_cw_in_234g_from_common_file(module,need_sync,CUSTOM_SSDS_CFG_TYPE_MCF_OTA_BY_OP);
+ _custom_ssds_need_sync_cw_in_234g_nvram_variable(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_MCF_OTA_BY_OP);
+ _custom_ssds_get_need_sync_cw_in_234g_from_common_file(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_MCF_OTA_BY_OP);
/* Priority 1 :nvram file- By ELT(Nvram editor) or Meta Tool */
- _custom_ssds_need_sync_cw_in_234g_nvram_variable(module,need_sync,CUSTOM_SSDS_CFG_TYPE_NVRAM);
- _custom_ssds_get_need_sync_cw_in_234g_from_common_file(module,need_sync,CUSTOM_SSDS_CFG_TYPE_NVRAM);
+ _custom_ssds_need_sync_cw_in_234g_nvram_variable(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_NVRAM);
+ _custom_ssds_get_need_sync_cw_in_234g_from_common_file(params_info,&(*need_sync),CUSTOM_SSDS_CFG_TYPE_NVRAM);
return;
}
@@ -682,6 +868,7 @@
kal_bool need_check_roaming_data_off_cs_only = KAL_FALSE;
kal_bool need_check_roaming_ims = KAL_FALSE;
kal_bool need_check_roaming = KAL_FALSE;
+
#if 0
/* under construction !*/
/* under construction !*/
@@ -942,11 +1129,6 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
switch(params_info->atcmd_type)
{
- //IMS registered: CW TB solution
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
- atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
- break;
case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
break;
@@ -2097,6 +2279,24 @@
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
}
+ /* special network config */
+ if(0 == strcmp(params_info->mcc, "635"))
+ {
+ /* KTRN Rwanda*/
+ need_check_roaming_data_off = KAL_FALSE;
+ atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_ONLY:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ }
break;
}
case 115: /* SKT */
@@ -2176,7 +2376,7 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
break;
default:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
}
@@ -2232,6 +2432,10 @@
case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
default:
break;
}
@@ -3008,8 +3212,7 @@
if (params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING)
{/* CW service*/
- if(params_info->is_ims_registered && params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC
- && params_info->rf_status == CUSTOM_SSDS_RF_OFF)
+ if(params_info->is_ims_registered)
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
}
@@ -3119,6 +3322,19 @@
break;
}
}
+ else if(0 == strcmp(params_info->mcc, "222"))
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
break;
}
case 156: /* TELENOR */
@@ -3347,10 +3563,6 @@
case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
break;
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
- break;
default:
break;
}
@@ -4175,6 +4387,20 @@
break;
}
}
+ else if(0 == strcmp(params_info->mcc, "708")) /* Tigo-Honduras*/
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ need_check_roaming_data_off = KAL_FALSE;
+
+ }
break;
}
case 221:/* TPG-Singapore */
@@ -4706,16 +4932,10 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
switch(params_info->atcmd_type)
{
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
- break;
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
- break;
+ break;
default:
break;
}
@@ -5543,6 +5763,20 @@
}
break;
}
+ case 438: /* Ooredoo - Algeria */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 1001: /* Ericsson-IODT */
{
/* default config */
@@ -5639,6 +5873,33 @@
need_check_roaming_data_off = KAL_FALSE;
break;
}
+ case 394: /* Telecom Andorra */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+ /*Special case: Support XCAP when LTE attached */
+ if(KAL_FALSE == params_info->lte_attached)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ /* Support XCAP when LTE attached, else terminal based */
+ if (KAL_FALSE == params_info->lte_attached)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 396: /* Thumb cellular -US */
{
switch(params_info->atcmd_type)
@@ -5657,6 +5918,40 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 400: /* Nova Iceland */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 401: /* Ooredo-Maldives */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 408: /* Bitel -Peru */
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
@@ -5683,6 +5978,20 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 415:/*my.t-Mauritius*/
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 417: /* ATLAS TELECOM - UAE */
{
switch(params_info->atcmd_type)
@@ -5740,6 +6049,27 @@
}
break;
}
+ case 423: /* Siminn/Iceland */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ if(params_info->roaming_status != CUSTOM_SSDS_ROAMING_TYPE_NO)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
case 424: /* Vodafone/Iceland */
{
switch(params_info->atcmd_type)
@@ -5762,6 +6092,53 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
}
+ case 428: /* MCOM - Nigeria */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ break;
+ default:
+ break;
+ }
+ need_check_roaming_data_off = KAL_FALSE;
+ if(atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_PREFER ||
+ atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_ONLY)
+ {
+ if(KAL_TRUE != params_info->is_mobile_data_setting_enabled)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ return atcmd_path_type;
+ }
+ }
+ break;
+ }
+ case 429: /* Ethio/Telecom */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ if(atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_PREFER ||
+ atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_ONLY)
+ {
+ if(KAL_TRUE != params_info->is_mobile_data_setting_enabled)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ return atcmd_path_type;
+ }
+ }
+ break;
+ }
case 430: /* Airtel - Nigeria*/
{
switch(params_info->atcmd_type)
@@ -5803,6 +6180,87 @@
}
break;
}
+ case 432: /* Azercell - Azerbaijan */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 435: /* Airtel - Zambia */
+ {
+ need_check_roaming_data_off_cs_only = KAL_TRUE;
+ break;
+ }
+
+ case 436: /* Flow - Barbados*/
+ {
+ if(params_info->roaming_status != CUSTOM_SSDS_ROAMING_TYPE_NO)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
+
+ case 437:
+ {
+ /*Special case: Support XCAP when LTE attached */
+ if(KAL_TRUE == params_info->lte_attached)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+ }
+ else
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
+ case 439: /* Airtel - Tanzania */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ need_check_roaming = KAL_TRUE;
+ break;
+ }
+ case 442: /* Liberty- Puerto Rico*/
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIP:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIP:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ need_check_roaming = KAL_TRUE;
+ break;
+ }
+ case 443: /* Cubic Telecom*/
+ {
+ if(0 == strcmp(params_info->mccmnc, "29506") || 0 == strcmp(params_info->mccmnc, "72446"))
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
case 1002: /* Nokia IODT */
{
/* default config */
@@ -6663,6 +7121,15 @@
}
break;
}
+ case 442:/* Liberty-Puerto Rico */
+ {
+ /* Requires that when UE receives 404, 500, 502, 503 or 504 Error response from NW, it needs to CSFB */
+ if (404 == params_info->rsp_id || 500 == params_info->rsp_id || 502 == params_info->rsp_id || 503 == params_info->rsp_id || 504 == params_info->rsp_id)
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_ONCE;
+ }
+ break;
+ }
default:
break;
}
@@ -6978,6 +7445,12 @@
is_rat_mode_change_allowed = KAL_TRUE;
}
break;
+ case 158: /* Zain */
+ if(0 == strcmp(params_info->mcc, "420")) /*SA*/
+ {
+ is_rat_mode_change_allowed = KAL_TRUE;
+ }
+ break;
default:
break;
}