[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_d2_config.c b/mcu/custom/protocol/common/ps/custom_d2_config.c
index fd9d8d6..bcda58a 100755
--- a/mcu/custom/protocol/common/ps/custom_d2_config.c
+++ b/mcu/custom/protocol/common/ps/custom_d2_config.c
@@ -854,13 +854,13 @@
// D2AT
{
- {MOD_D2AT, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF},
+ {MOD_D2AT, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF | D2CM_ATTR_EVENT_AUTH},
#ifdef __GEMINI__
- {MOD_D2AT_2, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF},
+ {MOD_D2AT_2, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF | D2CM_ATTR_EVENT_AUTH},
#if (GEMINI_PLUS >= 3)
- {MOD_D2AT_3, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF},
+ {MOD_D2AT_3, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF | D2CM_ATTR_EVENT_AUTH},
#if (GEMINI_PLUS >= 4)
- {MOD_D2AT_4, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF},
+ {MOD_D2AT_4, ATP_D2AT_SAP, D2CM_ATTR_PDN_AUTH | D2CM_ATTR_ILM_MSG | D2CM_ATTR_AP_NETIF | D2CM_ATTR_EVENT_AUTH},
#endif /* GEMINI_PLUS >= 4 */
#endif /* GEMINI_PLUS >= 3 */
#endif /* __GEMINI__ */
@@ -2453,7 +2453,7 @@
return ATCMD_IPV4_FIRST_MAX;
}
-static void d2pm_fetch_apn_type_hdl (kal_uint32 ps_id, d2cm_get_pdn_profile_ind_struct *ind_ptr, void *arg)
+static void custom_d2_fetch_apn_type_hdl (kal_uint32 ps_id, d2cm_get_pdn_profile_ind_struct *ind_ptr, void *arg)
{
struct
{
@@ -2476,7 +2476,7 @@
return;
}
-void d2pm_fetch_apn_type (kal_uint32 ps_id, kal_uint8 *apn, kal_char *apn_type)
+void custom_d2_fetch_apn_type (kal_uint32 ps_id, kal_uint8 *apn, kal_char *apn_type)
{
d2cm_get_pdn_profile_req_struct req;
@@ -2500,7 +2500,7 @@
// getting the PDN profiles
memset((void*)(&req), 0, sizeof(req));
req.flag |= D2CM_GET_PDN_PROFILE_REQ_FLAG_INCL_APN_IDX;
- if(d2cm_get_pdn_profile(ps_id, D2CM_CUSTOM_MOD_ID_OP, &req, d2pm_fetch_apn_type_hdl, (void*)(&hdl_arg)) == D2CM_API_RES_FAIL)
+ if(d2cm_get_pdn_profile(ps_id, D2CM_CUSTOM_MOD_ID_OP, &req, custom_d2_fetch_apn_type_hdl, (void*)(&hdl_arg)) == D2CM_API_RES_FAIL)
{
DDM_CUST_LOG(MOD_D2CUST + ps_id, "d2pm_is_apn_type_default(): d2cm_get_pdn_profile() error!!\n");
return;
@@ -2799,15 +2799,12 @@
custom_dump_data_retry_info(ps_id, apn_retry_info);
memset((void*)(current_apn_type), 0, sizeof(kal_char)*APN_TYPE_STRING_LEN);
- d2pm_fetch_apn_type(ps_id, apn_retry_info->apn, current_apn_type);
+ custom_d2_fetch_apn_type(ps_id, apn_retry_info->apn, current_apn_type);
DDM_CUST_LOG(MOD_D2CUST + ps_id, "d2pm_is_apn_type_default(): %s \n", current_apn_type);
switch (sbp_id) {
case 129:
{ // KDDI
- d2pm_fetch_apn_type(ps_id, apn_retry_info->apn, current_apn_type);
- DDM_CUST_LOG(MOD_D2CUST + ps_id, "d2pm_is_apn_type_default(): %s \n", current_apn_type);
-
if(apn_retry_info->apn_type & DDM_APN_TYPE_EMERGENCY)
{
apn_retry_info->retrytime_type = RETRY_TYPE_NO_SUGGEST;
@@ -3350,11 +3347,18 @@
apn_retry_info->error_occured = KAL_TRUE;
apn_retry_info->retrytime_type = RETRY_TYPE_NO_RETRY;
apn_retry_info->retry_time = RETRYTIME_NO_RETRY;
- } else if(apn_retry_info->apn_type & DDM_APN_TYPE_IMS) {
+ }
+ else if(apn_retry_info->apn_type & DDM_APN_TYPE_IMS)
+ {
+ if(((err_cause >= RMMI_ERR_INSUFF_RESOURCE) && (err_cause <= RMMI_ERR_REQUEST_REJ_UNSUPPORTED_QCI_VALUE))
+ || ((err_cause > ESM_CAUSE_START) && (err_cause < ESM_CAUSE_END))
+ || ((err_cause > VGSM_CAUSE_START) && (err_cause < VGSM_PROPRIETARY_CAUSE_START)))
+ {
apn_retry_info->error_occured = KAL_TRUE;
apn_retry_info->retrytime_type = RETRY_TYPE_WITH_SUGGEST;
apn_retry_info->retry_time = 5 * 60;
apn_retry_info->end_time = apn_retry_info->retry_time + kal_ticks_to_secs(kal_get_systicks());
+ }
} else {
// RMSC00930810
if(apn_retry_info->retry_count_setted == KAL_FALSE && apn_retry_info->retry_count == 0) {
@@ -3934,6 +3938,15 @@
}
}
+kal_bool custom_d2_set_deact_internet_pdn_sim(kal_uint8 is_default_data, kal_bool mobile_data_on)
+{
+ if(is_default_data == ATCMD_IS_DATA_ALLOWED_INDICATE_THIS_SIM_IS_NOT_DATA_ALLOWED)
+ {
+ kal_prompt_trace(MOD_DDM, "[MOD_DDM DEBUG]is_default_data %d,mobile_data_on %d ",is_default_data,mobile_data_on);
+ return KAL_TRUE;
+ }
+ return KAL_FALSE;
+}
kal_bool custom_d2_keep_internet_pdn(kal_uint32 cid, kal_uint8 ps_id, kal_bool mobile_data_on, kal_bool data_switch_on, rat_enum rat, atcmd_deact_cause_enum deact_cause, nvram_d2_mcf_keep_internet_struct *mcf_keep_internet, kal_uint8 *plmn)
{
kal_uint32 sbp_id = sbp_get_sim_sbp_id(ps_id);
@@ -3979,6 +3992,12 @@
return KAL_FALSE;
}
#endif
+ if(sbp_id == 120){// ALPS07861560 Claro op, only keep internet pdn when LTE
+ if(rat == RAT_LTE)
+ return KAL_TRUE;
+ else
+ return KAL_FALSE;
+ }
return KAL_TRUE;
}
@@ -4165,8 +4184,12 @@
/* under construction !*/
/* under construction !*/
#endif
- if(data_switch_on == KAL_TRUE && rat == RAT_LTE)
+ if(data_switch_on == KAL_TRUE && rat == RAT_LTE) {
+ if(sbp_id == 18) {
+ return (internet_cid[ps_id] == cid) ? KAL_TRUE : KAL_FALSE;
+ }
return KAL_FALSE;
+ }
else if(is_wifi_en(ps_id) == KAL_TRUE && mobile_data_on == KAL_TRUE && rat == RAT_LTE) {
DDM_CUST_LOG(MOD_DDM + ps_id, "WiFi Enable, mobile_data_on, consider to keep internet");
if(sbp_id == 12) {
@@ -4638,6 +4661,7 @@
else
return KAL_FALSE;
case 11: // 3UK
+ case 17: //docomo
return KAL_TRUE;
case 114: // KT
case 145: // AT&T
@@ -4653,7 +4677,7 @@
return KAL_TRUE;
else
return KAL_FALSE;
- } else if(sbp_id == 11) {
+ } else if(sbp_id == 11 || sbp_id == 17) {
return KAL_TRUE;
} else if(sbp_id == 114 || sbp_id == 7 || sbp_id == 145 || sbp_id == 196) {
if((apn_type & DDM_APN_TYPE_IMS) || (apn_type & DDM_APN_TYPE_DEFAULT))
@@ -4666,6 +4690,21 @@
}
}
}
+kal_bool custom_d2_need_to_set_always_on_in_IA(kal_uint32 sbp_id)
+{
+ kal_uint32 default_sbp_id = sbp_query_id();
+ switch(default_sbp_id) {
+ case 17: //docomo
+ return KAL_TRUE;
+ default:
+ if(sbp_id == 17) {
+ return KAL_TRUE;
+ }
+ else {
+ return KAL_FALSE;
+ }
+ }
+}
static kal_bool custom_check_uid_filter(kal_uint32 ps_id, kal_uint32 cid) {
d2cm_get_pdn_profile_ind_struct pdn_profile;
kal_uint32 i;
@@ -5707,7 +5746,8 @@
kal_prompt_trace(MOD_D2CUST + ps_id, "[%d][%s]sbp_id[%d]default_sbp_id[%d] err_cause [%d]",
__LINE__, __FUNCTION__, sbp_id, default_sbp_id, last_error_cause);
- if ((default_sbp_id == 120 || sbp_id == 120) &&
+ // Adding SBP check for DTAG operator
+ if ((default_sbp_id == 120 || sbp_id == 120 || default_sbp_id == 5 || sbp_id == 5) &&
(last_error_cause == ESM_REQUEST_REJECTED_BY_SGW_OR_PDNGW ||
last_error_cause == ESM_SERVICE_OPT_NOT_SUPPORTED))
{
diff --git a/mcu/custom/protocol/common/ps/custom_d2_config.h b/mcu/custom/protocol/common/ps/custom_d2_config.h
index e1b092d..17a689d 100755
--- a/mcu/custom/protocol/common/ps/custom_d2_config.h
+++ b/mcu/custom/protocol/common/ps/custom_d2_config.h
@@ -177,6 +177,7 @@
extern kal_uint32 custom_d2_set_ipfallback_parameter();
extern kal_bool custom_is_retrytime_specify_by_operator(kal_uint32 ps_id, kal_uint8 *apn, kal_uint16 err_cause);
extern void custom_d2_update_ia_apn(kal_uint8 ps_id, kal_uint8 cid, char *apn);
+extern kal_bool custom_d2_set_deact_internet_pdn_sim(kal_uint8 is_default_data, kal_bool mobile_data_on);
extern kal_bool custom_d2_keep_internet_pdn(kal_uint32 cid, kal_uint8 ps_id, kal_bool mobile_data_on, kal_bool data_switch_on, rat_enum rat, atcmd_deact_cause_enum deact_cause, nvram_d2_mcf_keep_internet_struct *mcf_keep_internet, kal_uint8 *plmn);
extern kal_bool custom_d2_signalling_flag(kal_uint8 ps_id, kal_bool apn_type_is_ims, kal_uint32 default_sbp_id, kal_uint32 sbp_id, char *apn, kal_uint8 *plmn, kal_bool is_roaming);
extern kal_bool custom_d2_pcscf_discovery_flag(kal_uint8 ps_id, kal_bool apn_type_is_ims, kal_bool apn_type_is_rcs, kal_uint32 default_sbp_id, kal_uint32 sbp_id, char *apn, kal_uint8 *plmn, kal_bool is_roaming);
@@ -185,6 +186,7 @@
extern kal_bool custom_d2_need_to_fallback(kal_uint32 sbp_id, kal_uint16 err_cause);
pdp_type_enum custom_d2_determine_reactivate_data_call_type(kal_uint32 sbp_id, kal_bool is_roamming, kal_uint16 err_cause, pdp_addr_type_enum pdp_addr_type, kal_uint32 apn_type, kal_uint32 fail_count);
extern void custom_ia_apn(kal_uint8 *apn, kal_uint8 *req_apn, kal_uint8 ps_id);
+extern void custom_d2_fetch_apn_type(kal_uint32 ps_id, kal_uint8 *apn, kal_char *apn_type);
// => D2APN
extern size_t d2apn_sizeof_custom_subscriber_profile_tbl ();
extern d2apn_custom_subscriber_profile_struct* d2apn_search_custom_subscriber_profile_tbl_by_mod (kal_uint8 ps_id, module_type mod_id);
@@ -214,6 +216,7 @@
extern kal_bool custom_d2_need_to_deact_and_act_for_emergency(kal_uint32 sbp_id);
extern kal_bool custom_d2_is_ia_need_fallback(kal_uint32 sbp_id, kal_uint8 ps_id);
extern kal_bool custom_d2_need_to_set_always_on(kal_uint32 sbp_id, ddm_apn_type_enum apn_type);
+extern kal_bool custom_d2_need_to_set_always_on_in_IA(kal_uint32 sbp_id);
extern kal_bool custom_d2_ipv4_mtu_discovery_not_influence(kal_uint32 sbp_id);
extern kal_bool custom_d2_need_to_set_rqos_ind(kal_uint32 sbp_id, ddm_apn_type_enum apn_type, kal_uint8 ps_id);
extern void custom_ddm_register_ddm_deact_dangling_cid(ddm_deact_dangling_cid_ptr func);
diff --git a/mcu/custom/protocol/common/ps/custom_emm_config.c b/mcu/custom/protocol/common/ps/custom_emm_config.c
index 18b4a40..d7c3138 100755
--- a/mcu/custom/protocol/common/ps/custom_emm_config.c
+++ b/mcu/custom/protocol/common/ps/custom_emm_config.c
@@ -635,6 +635,20 @@
const kal_uint16 EMM_CUSTOM_GET_SFR_OP_NUM = sizeof(emm_custom_get_sfr_op_list)/sizeof(kal_char*);
+const kal_char* emm_custom_get_s1_mode_not_disable_op_list[] =
+{
+//TMO US
+"310026", "310160", "310200", "310210", "310220", "310230", "310240", "310250", "310260", "310270", "310310", "310490", "310660", "310800",
+//China mobile
+"46000F", "46002F", "46004F", "46007F", "46008F",
+//CU
+"46001F", "46006F",
+//CT
+"46003F", "46011F"
+};
+
+const kal_uint16 EMM_CUSTOM_GET_S1_MODE_NOT_DISABLE_OP_NUM = sizeof(emm_custom_get_s1_mode_not_disable_op_list)/sizeof(kal_char*);
+
const kal_uint8 CUSTOM_EMM_NOT_DISABLE_S1_TIMES = 1;
const kal_char* emm_5g4_not_delete_stmsi_op_list[] =
diff --git a/mcu/custom/protocol/common/ps/custom_emm_config.h b/mcu/custom/protocol/common/ps/custom_emm_config.h
index 1e6a98c..151f586 100755
--- a/mcu/custom/protocol/common/ps/custom_emm_config.h
+++ b/mcu/custom/protocol/common/ps/custom_emm_config.h
@@ -165,6 +165,8 @@
extern const kal_uint16 EMM_CUSTOM_GET_RAT_MODE_CHANGE_23G_TO_2345G_USE_IMSI_OP_NUM;
extern const kal_char* emm_custom_get_sfr_op_list[];
extern const kal_uint16 EMM_CUSTOM_GET_SFR_OP_NUM;
+extern const kal_char* emm_custom_get_s1_mode_not_disable_op_list[];
+extern const kal_uint16 EMM_CUSTOM_GET_S1_MODE_NOT_DISABLE_OP_NUM;
extern const kal_uint8 CUSTOM_EMM_NOT_DISABLE_S1_TIMES;
extern const kal_char* emm_5g4_not_delete_stmsi_op_list[];
extern const kal_uint8 EMM_5G4_NOT_DELETE_STMSI_OP_NUM;
diff --git a/mcu/custom/protocol/common/ps/custom_imc_config.c b/mcu/custom/protocol/common/ps/custom_imc_config.c
index 57f0fb3..8fa184c 100755
--- a/mcu/custom/protocol/common/ps/custom_imc_config.c
+++ b/mcu/custom/protocol/common/ps/custom_imc_config.c
@@ -269,6 +269,11 @@
*
* removed!
* removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
*
* removed!
* removed!
@@ -1883,6 +1888,10 @@
* removed!
*
* removed!
+ * removed!
+ * removed!
+ * removed!
+ *
* removed!
* removed!
* removed!
@@ -1906,6 +1915,7 @@
* removed!
* removed!
* removed!
+ * removed!
*
* removed!
* removed!
@@ -6276,6 +6286,7 @@
case 119: /* Natcom */
case 127: /* MEGAFON */
case 135: /* MTS */
+ case 136: /* Entel */
case 139: /* Bouygues */
case 140: /* MTN */
case 141: /* CellC */
@@ -6396,6 +6407,8 @@
case 396: /* Thumb Cellular */
case 397: /* MECTEL/Myanmar */
case 399: /* American Samoa/ASTCA */
+ case 400: /* Nova Iceland */
+ case 401: /* Ooredoo/Maldives */
case 403: /* Brunei/Imagine */
case 404: /* Brunei/Progesif */
case 405: /* Brunei/UNN */
@@ -6406,17 +6419,29 @@
case 411: /* Evolve Broadband - US*/
case 412: /*Standing Rock Telecom US*/
case 413: /* Ufone/Pakistan */
- case 416: /* Brisanet/Brazil */
- case 418: /* Emtel/Mauritius */
- case 419: /* Airtel/Uganda */
- case 420: /*Redbull - Saudi Arabia*/
- case 421: /*Yemen Mobile */
+ case 415: /*my.t/Mauritius*/
+ case 416: /* Brisanet/Brazil */
+ case 418: /* Emtel/Mauritius */
+ case 419: /* Airtel/Uganda */
+ case 420: /* Redbull - Saudi Arabia */
+ case 421: /* Yemen Mobile */
+ case 423: /* Siminn/Iceland */
case 424: /* Vodafone/Iceland */
+ case 425: /* Mobiuz/Uzbekistan */
case 426: /* NLC/Pakistan */
+ case 428: /* Mcom/Nigeria */
+ case 429: /* Ethio/Ethiopia */
case 430: /* Airtel/Nigeria */
case 431: /* Unifique Brazil*/
+ case 432: /* Azerbaijan Azercell */
case 434: /* Mobicom Mongolia*/
+ case 435: /* Airtel/Zambia */
+ case 436: /* Flow/Barbodas */
case 437: /* 3/Indonesia */
+ case 438: /* Ooredoo/Algeria */
+ case 439: /* Airtel/Tanzania */
+ case 442: /* Liberty/Puerto Rico */
+ case 443: /* Cubic/All */
case 1002: /* Nokia Finland */
case 1004: /* Huawei IMS */
case 0x6001: /* Sony GTE/Beijing */
@@ -6802,23 +6827,6 @@
}
break;
}
- case 136: /* Entel */
- {
- /* Bolivia */
- if (strncmp((char *)&mccmnc[0], "736", 3) == 0) {
- kal_snprintf((char *)conf_factory_uri, len-1, "sip:4444@entel.bo");
- }
- else if (!with_imsi_info) {
- //dynacmic generate
- if (imsi_mnc_len == 2) {
- kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc0%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[0], mccmnc[1], mccmnc[2]);
- }
- else if (imsi_mnc_len == 3) {
- kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc%c%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[5], mccmnc[0], mccmnc[1], mccmnc[2]);
- }
- }
- break;
- }
case 137: /* Tele2 */
{
if (!with_imsi_info) {
@@ -6880,10 +6888,11 @@
if (!with_imsi_info) {
//dynacmic generate
}
- /* Hungary, Romania, Spain */
+ /* Hungary, Romania, Spain, Italy */
else if ((strncmp((char *)&mccmnc[0], "216", 3) == 0) ||
- (strncmp((char *)&mccmnc[0], "226", 3) == 0) ||
- (strncmp((char *)&mccmnc[0], "214", 3) == 0)) {
+ (strncmp((char *)&mccmnc[0], "226", 3) == 0) ||
+ (strncmp((char *)&mccmnc[0], "214", 3) == 0) ||
+ (strncmp((char *)&mccmnc[0], "222", 3) == 0)) {
if (imsi_mnc_len == 2) {
kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc0%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[0], mccmnc[1], mccmnc[2]);
}
@@ -7808,6 +7817,9 @@
ua->wait_user_end_call_no_rtppkt_emc = 0;
ua->force_downgrade_waiting_final_resp = 0;
ua->mo_invite_to_18x_timer_timeout = 0;
+ ua->max_403_retry_after_timer_count = 2;
+ ua->max_404_retry_after_timer_count = 2;
+ ua->max_normal_retry_after_timer_count = 2;
ua->address_strictly_compare = 0;
ua->wait_audio_rtp_for_crs_timer_timeout = 0;
ua->stop_crs_if_no_video_or_audio = 0;
@@ -7827,8 +7839,10 @@
ua->call_sdp_ans_ack_timeout = 0;
ua->mt_processing_timeout = 0;
ua->support_invalid_audio_pt = 0;
+ kal_snprintf((char *)ua->reg_retry_by_error_response_list, 128-1, "#40300#40411");
ua->norm_sits_trans_timer_in_proceeding = 0;
ua->try_next_pcscf_5626_403 = 0;
+ ua->sms_mo_pidf_usage = 0x00;
ua->block_refer_sending_if_max_num_of_participants = 0;
ua->link_mtu_size = 0;
ua->reject_mt_call_if_other_ps_id_has_active_call = 0;
@@ -7862,6 +7876,7 @@
ua->UA_call_codec_order4 = 0;
ua->send_media_mod_after_active = 0;
ua->register_event_subscribe_support = 1;
+ ua->nr_treg = 0;
ua->disable_conf_sub = 0;
ua->reset_reg_5626_count_in_flight_mode = 0;
ua->send_cancel_tcall_timeout_no_resp = 0;
@@ -7869,7 +7884,15 @@
ua->use_from_uri_if_pai_missing = 0;
ua->set_operator_as_ims_only = 0;
ua->disable_num_validity_check = 0;
-
+ ua->ect_with_both_calls_hold = 0;
+ ua->apply_3g_sunset_call_spec = 1;
+ ua->rm_v_media_c_if_a_inactive = 0;
+ memset((void *)ua->spec_num_of_digits_in_pidf, 0, sizeof(ua->spec_num_of_digits_in_pidf));
+ ua->mt_call_no_prcd_in_sdp = 0;
+ ua->refresh_wait_request = 0;
+ ua->ignore_unsupported_content_type = 0;
+ ua->not_subscribe_when_receive_489 = 0;
+ ua->notify_underegistered_cause_deregistration = 0;
/* nvram_imc_struct */
imc->resource_retain_timer = 3000;
imc->emergency_pdn_retain_timer = 10000;
@@ -7915,6 +7938,7 @@
imc->allow_emergency_dereg = 0;
imc->send_sip_dereg_at_23g = 1;
imc->emergency_call_category_mapping = 0;
+ imc->decode_pau_to_utf8 = 0;
memset((void *)imc->manual_cell_id, 0, 64);
kal_snprintf((char *)imc->pcscf_manual_list, 16-1, "192.168.0.1");
kal_snprintf((char *)imc->default_psismsc, 64-1, "sip:smsc@ims.mnc001.mcc001.3gppnetwork.org");
@@ -8024,6 +8048,8 @@
imc->ims_progress_slow_timer = 2;
imc->emc_dereg_while_volte_off = 0;
imc->max_RFC5626_retry_count_403 = 1;
+ imc->max_RFC5626_retry_count = 3;
+ imc->max_RFC5626_retry_count_404 = 1;
imc->all_pcscf_fail_retry_max_num = 3;
imc->unlock_ims_permanent_reg_receive_tau = 0;
imc->detach_reattach_backoff_timer = 15000;
@@ -8061,6 +8087,7 @@
//IMC_ISIM_NON3GPP_DOMAIN = 1 << 0,
//}imc_isim_invalidation_rules_enum;
imc->allow_call_while_registering = 0;
+ imc->ims_re_reg_after_5G4 = 0;
}
void imc_set_diff_configuration(nvram_ef_ims_profile_record_struct *src, nvram_ef_ims_profile_record_struct *dest) {
@@ -8591,9 +8618,11 @@
if (src_ua->support_invalid_audio_pt != IMS_UNDEF_CONFIG_8) {dest_ua->support_invalid_audio_pt = src_ua->support_invalid_audio_pt;}
if (src_ua->norm_sits_trans_timer_in_proceeding != IMS_UNDEF_CONFIG_32) {dest_ua->norm_sits_trans_timer_in_proceeding = src_ua->norm_sits_trans_timer_in_proceeding;}
if (src_ua->try_next_pcscf_5626_403 != IMS_UNDEF_CONFIG_8) {dest_ua->try_next_pcscf_5626_403 = src_ua->try_next_pcscf_5626_403;}
+ if (src_ua->sms_mo_pidf_usage != IMS_UNDEF_CONFIG_8) {dest_ua->sms_mo_pidf_usage = src_ua->sms_mo_pidf_usage;}
if (src_ua->block_refer_sending_if_max_num_of_participants != IMS_UNDEF_CONFIG_8) {dest_ua->block_refer_sending_if_max_num_of_participants = src_ua->block_refer_sending_if_max_num_of_participants;}
if (src_ua->link_mtu_size != IMS_UNDEF_CONFIG_32) {dest_ua->link_mtu_size = src_ua->link_mtu_size;}
if (src_ua->reject_mt_call_if_other_ps_id_has_active_call != IMS_UNDEF_CONFIG_8) {dest_ua->reject_mt_call_if_other_ps_id_has_active_call = src_ua->reject_mt_call_if_other_ps_id_has_active_call;}
+ if (src_ua->mt_call_no_prcd_in_sdp != IMS_UNDEF_CONFIG_8) {dest_ua->mt_call_no_prcd_in_sdp = src_ua->mt_call_no_prcd_in_sdp;}
if (src_ua->tcp_keepalive_interval != IMS_UNDEF_CONFIG_32) {dest_ua->tcp_keepalive_interval = src_ua->tcp_keepalive_interval;}
if (src_ua->call_invite_no_rsp_ran_prio_req_timer_timeout != IMS_UNDEF_CONFIG_16) {dest_ua->call_invite_no_rsp_ran_prio_req_timer_timeout = src_ua->call_invite_no_rsp_ran_prio_req_timer_timeout;}
if (src_ua->mo_invite_retry_cnt_limit != IMS_UNDEF_CONFIG_16) {dest_ua->mo_invite_retry_cnt_limit = src_ua->mo_invite_retry_cnt_limit;}
@@ -8616,19 +8645,32 @@
if (src_ua->disable_response_source != IMS_UNDEF_CONFIG_8) {dest_ua->disable_response_source = src_ua->disable_response_source;}
if (src_ua->stir_shaken_for_privacy != IMS_UNDEF_CONFIG_8) {dest_ua->stir_shaken_for_privacy = src_ua->stir_shaken_for_privacy;}
if (src_ua->video_add_plus_one != IMS_UNDEF_CONFIG_8) {dest_ua->video_add_plus_one = src_ua->video_add_plus_one;}
+ if (src_ua->max_403_retry_after_timer_count != IMS_UNDEF_CONFIG_32) {dest_ua->max_403_retry_after_timer_count = src_ua->max_403_retry_after_timer_count;}
+ if (src_ua->max_404_retry_after_timer_count != IMS_UNDEF_CONFIG_32) {dest_ua->max_404_retry_after_timer_count = src_ua->max_404_retry_after_timer_count;}
+ if (src_ua->max_normal_retry_after_timer_count != IMS_UNDEF_CONFIG_32) {dest_ua->max_normal_retry_after_timer_count = src_ua->max_normal_retry_after_timer_count;}
+ if (src_ua->reg_retry_by_error_response_list[0] != IMS_UNDEF_CONFIG_8) {kal_mem_cpy(dest_ua->reg_retry_by_error_response_list, src_ua->reg_retry_by_error_response_list, sizeof(src_ua->reg_retry_by_error_response_list));}
if (src_ua->always_add_user_phone_in_conf_refer != IMS_UNDEF_CONFIG_8) {dest_ua->always_add_user_phone_in_conf_refer = src_ua->always_add_user_phone_in_conf_refer;}
if(src_ua->mo_f1_timer_timeout != IMS_UNDEF_CONFIG_32) {dest_ua->mo_f1_timer_timeout = src_ua->mo_f1_timer_timeout;}
if (src_ua->normal_call_csfb_failure_code_table_after_tone[0] != IMS_UNDEF_CONFIG_8) {kal_mem_cpy(dest_ua->normal_call_csfb_failure_code_table_after_tone, src_ua->normal_call_csfb_failure_code_table_after_tone, sizeof(src_ua->normal_call_csfb_failure_code_table_after_tone));}
if (src_ua->UA_call_codec_order4 != IMS_UNDEF_CONFIG_8) {dest_ua->UA_call_codec_order4 = src_ua->UA_call_codec_order4;}
if (src_ua->send_media_mod_after_active != IMS_UNDEF_CONFIG_8) {dest_ua->send_media_mod_after_active = src_ua->send_media_mod_after_active;}
if (src_ua->register_event_subscribe_support != IMS_UNDEF_CONFIG_8) {dest_ua->register_event_subscribe_support = src_ua->register_event_subscribe_support;}
+ if (src_ua->nr_treg != IMS_UNDEF_CONFIG_8) {dest_ua->nr_treg = src_ua->nr_treg;}
if (src_ua->disable_conf_sub != IMS_UNDEF_CONFIG_8) {dest_ua->disable_conf_sub = src_ua->disable_conf_sub;}
if (src_ua->add_pani_in_cancel != IMS_UNDEF_CONFIG_8) {dest_ua->add_pani_in_cancel = src_ua->add_pani_in_cancel;}
if (src_ua->reset_reg_5626_count_in_flight_mode != IMS_UNDEF_CONFIG_8) {dest_ua->reset_reg_5626_count_in_flight_mode = src_ua->reset_reg_5626_count_in_flight_mode;}
+ if (src_ua->rm_v_media_c_if_a_inactive != IMS_UNDEF_CONFIG_8) {dest_ua->rm_v_media_c_if_a_inactive = src_ua->rm_v_media_c_if_a_inactive;}
if (src_ua->send_cancel_tcall_timeout_no_resp != IMS_UNDEF_CONFIG_8) {dest_ua->send_cancel_tcall_timeout_no_resp = src_ua->send_cancel_tcall_timeout_no_resp;}
+ if (src_ua->refresh_wait_request != IMS_UNDEF_CONFIG_8) {dest_ua->refresh_wait_request = src_ua->refresh_wait_request;}
if (src_ua->use_from_uri_if_pai_missing != IMS_UNDEF_CONFIG_8) {dest_ua->use_from_uri_if_pai_missing = src_ua->use_from_uri_if_pai_missing;}
if (src_ua->set_operator_as_ims_only != IMS_UNDEF_CONFIG_8) {dest_ua->set_operator_as_ims_only = src_ua->set_operator_as_ims_only;}
if (src_ua->disable_num_validity_check != IMS_UNDEF_CONFIG_8) {dest_ua->disable_num_validity_check = src_ua->disable_num_validity_check;}
+ if (src_ua->ect_with_both_calls_hold != IMS_UNDEF_CONFIG_8) {dest_ua->ect_with_both_calls_hold = src_ua->ect_with_both_calls_hold;}
+ if (src_ua->apply_3g_sunset_call_spec != IMS_UNDEF_CONFIG_8) {dest_ua->apply_3g_sunset_call_spec = src_ua->apply_3g_sunset_call_spec;}
+ if (src_ua->spec_num_of_digits_in_pidf[0] != IMS_UNDEF_CONFIG_8) {kal_mem_cpy(dest_ua->spec_num_of_digits_in_pidf, src_ua->spec_num_of_digits_in_pidf, sizeof(src_ua->spec_num_of_digits_in_pidf));}
+ if (src_ua->ignore_unsupported_content_type != IMS_UNDEF_CONFIG_8) {dest_ua->ignore_unsupported_content_type = src_ua->ignore_unsupported_content_type;}
+ if (src_ua->not_subscribe_when_receive_489 != IMS_UNDEF_CONFIG_8) {dest_ua->not_subscribe_when_receive_489 = src_ua->not_subscribe_when_receive_489;}
+ if (src_ua->notify_underegistered_cause_deregistration != IMS_UNDEF_CONFIG_8) {dest_ua->notify_underegistered_cause_deregistration = src_ua->notify_underegistered_cause_deregistration;}
/* nvram_imc_struct */
if (src_imc->resource_retain_timer != IMS_UNDEF_CONFIG_32) {dest_imc->resource_retain_timer = src_imc->resource_retain_timer;}
@@ -8766,6 +8808,11 @@
if (src_imc->dereg_when_sim_refresh != IMS_UNDEF_CONFIG_8) {dest_imc->dereg_when_sim_refresh = src_imc->dereg_when_sim_refresh;}
if (src_imc->isim_invalidation_rules != IMS_UNDEF_CONFIG_8) {dest_imc->isim_invalidation_rules = src_imc->isim_invalidation_rules;}
if(src_imc->allow_call_while_registering != IMS_UNDEF_CONFIG_8) {dest_imc->allow_call_while_registering = src_imc->allow_call_while_registering;}
+ if (src_imc->decode_pau_to_utf8 != IMS_UNDEF_CONFIG_8) {dest_imc->decode_pau_to_utf8 = src_imc->decode_pau_to_utf8;}
+ if (src_imc->max_RFC5626_retry_count != IMS_UNDEF_CONFIG_8) {dest_imc->max_RFC5626_retry_count = src_imc->max_RFC5626_retry_count;}
+ if (src_imc->max_RFC5626_retry_count_404 != IMS_UNDEF_CONFIG_8) {dest_imc->max_RFC5626_retry_count_404 = src_imc->max_RFC5626_retry_count_404;}
+ if (src_imc->ims_re_reg_after_5G4 != IMS_UNDEF_CONFIG_8) {dest_imc->ims_re_reg_after_5G4 = src_imc->ims_re_reg_after_5G4;}
+
return;
}
@@ -8823,6 +8870,8 @@
nvram_ims_profile_ptr->imc_config.deactivate_video_when_early_media_off = 1;
nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
nvram_ims_profile_ptr->imc_config.dereg_when_sim_refresh = 1;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 4;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 30; // 30s
/* IMCB, Reg/Stack, UA internal configurations */
nvram_ims_profile_ptr->ua_config.custom_em_ims_event_info = 1;
@@ -8901,6 +8950,10 @@
nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt = 1;
nvram_ims_profile_ptr->ua_config.session_refresher_in_resp = 1;
nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
+ nvram_ims_profile_ptr->ua_config.rm_v_media_c_if_a_inactive = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.refresh_wait_request = 1;
+ nvram_ims_profile_ptr->ua_config.ignore_unsupported_content_type = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.contact_with_username = 0;
@@ -8960,6 +9013,8 @@
nvram_ims_profile_ptr->imc_config.deactivate_video_when_early_media_off = 1;
nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
nvram_ims_profile_ptr->imc_config.dereg_when_sim_refresh = 1;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 4;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 30; // 30s
/* IMCB, Reg/Stack, UA internal configurations */
/* Call */
@@ -9025,6 +9080,10 @@
nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt = 1;
nvram_ims_profile_ptr->ua_config.session_refresher_in_resp = 1;
nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
+ nvram_ims_profile_ptr->ua_config.rm_v_media_c_if_a_inactive = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.refresh_wait_request = 1;
+ nvram_ims_profile_ptr->ua_config.ignore_unsupported_content_type = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.contact_with_username = 0;
@@ -9095,7 +9154,7 @@
nvram_ims_profile_ptr->ua_config.reg_add_content_disposition = 1;
nvram_ims_profile_ptr->ua_config.de_subscribe = 0; // Orange global requirement: MOB_VS_03 and MOB_VS_04
nvram_ims_profile_ptr->ua_config.est_client_tcp_when_send_response = 0;
- nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500; // Orange global requirement
+ nvram_ims_profile_ptr->ua_config.notify_underegistered_cause_deregistration = 1;
/* SMS */
nvram_ims_profile_ptr->ua_config.sms_network_types = 0x00;
@@ -9115,7 +9174,7 @@
nvram_ims_profile_ptr->imc_config.location_info_support = 1; //lbs location info service: on
nvram_ims_profile_ptr->imc_config.sms_support = 1;
nvram_ims_profile_ptr->imc_config.ims_reg_allowed_at_23g = 2; //IMS reg maintained at 23G (MOB_VS_08 & MOB_VS_09)
-
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
/* IMCB, Reg/Stack, UA internal configurations */
@@ -9219,6 +9278,9 @@
/* Romania */
else if (strncmp((char *)&mccmnc[0], "226", 3) == 0) {
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1; // ePDG should use sos APN for EC over WiFi
+ nvram_ims_profile_ptr->imc_config.sms_support = 1;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
/* IMCB, Reg/Stack, UA internal configurations */
/* Call */
nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
@@ -9236,7 +9298,6 @@
nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
nvram_ims_profile_ptr->ua_config.sip_dscp = 0x30;
nvram_ims_profile_ptr->ua_config.audio_dscp = 0x30;
- nvram_ims_profile_ptr->ua_config.use_org_sdp_for_invite_without_sdp = 1;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
@@ -10153,6 +10214,8 @@
nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase = 1;
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
+ nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing = 1;
+ nvram_ims_profile_ptr->ua_config.not_subscribe_when_receive_489 = 1;
}
/* VDF Germany */
else if (strncmp((char *)&mccmnc[0], "262", 3) == 0) {
@@ -10183,6 +10246,7 @@
nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 1;
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
nvram_ims_profile_ptr->ua_config.ect_enable = 0;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.access_network_info_type = 4;
nvram_ims_profile_ptr->ua_config.use_new_pcscf_for_reg = 1; // VOLTE_REG_NEW_PCSCF_FOR_PCO_CHANGE
@@ -10303,9 +10367,8 @@
nvram_ims_profile_ptr->ua_config.play_local_tone_when_no_rtp_pkt_on_remote_hold = 1;
/* Reg */
- nvram_ims_profile_ptr->ua_config.register_expiry = 21600;
+ nvram_ims_profile_ptr->ua_config.register_expiry = 7200;
nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo = 0x30;
-
nvram_ims_profile_ptr->imc_config.disable_isim_application = 1;
nvram_ims_profile_ptr->imc_config.ims_v4v6_preference = 2; //v4_prefer
@@ -10396,6 +10459,8 @@
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.send_refer_to_peer = 1;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
@@ -10684,6 +10749,9 @@
/* IMCB, Reg/Stack, UA internal configurations */
/* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 45; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.reject_no_answer_resp_code = 480; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 180; // <CDR-LTE-1919>
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.oir_privacy_to_header = 1;
nvram_ims_profile_ptr->ua_config.register_cap_whenever = 1;
@@ -10724,6 +10792,11 @@
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x08;
+ nvram_ims_profile_ptr->ua_config.hold_before_add_to_conf = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.sms_mo_pidf_usage = 0x01; // Emergency SMS over 3GPP RAT
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf,
+ "6,6,6", sizeof(nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf) - 1);
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
@@ -10899,6 +10972,11 @@
nvram_ims_profile_ptr->ua_config.video_add_plus_one = 1;
nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
nvram_ims_profile_ptr->ua_config.call_id_with_host_inCall = 1;
+ memset(&nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf[0],0,8);
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf,
+ "6,6,1",
+ sizeof (nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf)-1
+ );
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
@@ -11046,6 +11124,10 @@
nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt = 1;
nvram_ims_profile_ptr->ua_config.session_refresher_in_resp = 1;
nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
+ nvram_ims_profile_ptr->ua_config.rm_v_media_c_if_a_inactive = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.refresh_wait_request = 1;
+ nvram_ims_profile_ptr->ua_config.ignore_unsupported_content_type = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.contact_with_username = 0;
@@ -11421,6 +11503,8 @@
"922", sizeof(nvram_ims_profile_ptr->ua_config.emergency_call_testing_number)-1);
nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.no_additional_invite_after_downgrade = 1;
+ nvram_ims_profile_ptr->ua_config.refresh_wait_request = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.keep_alive_mode = 2;
@@ -11578,6 +11662,7 @@
nvram_ims_profile_ptr->ua_config.sdp_group_rtpmap_fmtp = 1;
nvram_ims_profile_ptr->ua_config.sdp_group_rtpmap_ptime = 0;
nvram_ims_profile_ptr->ua_config.from_header_peer_addr = 1;
+ nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing = 1;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
@@ -11771,6 +11856,9 @@
nvram_ims_profile_ptr->imc_config.resource_retain_timer = 8000;
nvram_ims_profile_ptr->imc_config.pcscf_reselect_flag = 1;
nvram_ims_profile_ptr->imc_config.ignore_media_qci_check = 0xf23; // 111100100011, ignore audio qci in 3GPP HPLMN
+
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.ecc_guard_timer = 0; //
break;
}
case 18: /* RJIL */
@@ -11821,6 +11909,7 @@
nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
nvram_ims_profile_ptr->ua_config.cur_loc_for_emergency_enable = 0;
nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
+ nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 1;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
@@ -11842,12 +11931,15 @@
nvram_ims_profile_ptr->ua_config.call_id_with_host_inReg = 1;
nvram_ims_profile_ptr->ua_config.check_reg_contact = 0;
nvram_ims_profile_ptr->ua_config.wfc_refresh_23g = 1;
+ nvram_ims_profile_ptr->ua_config.use_new_pcscf_for_reg = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.pdn_retry_backoff_enable = 1;
nvram_ims_profile_ptr->imc_config.resource_retain_timer = 12*1000;
+ nvram_ims_profile_ptr->imc_config.default_fallback_support = 2;
nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 4;
nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 300;
memset(&nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list[0],0,32);
strncpy((char *)nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list,
"0,2,6,3,1,4,5,0",
@@ -12092,6 +12184,7 @@
nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0;
nvram_ims_profile_ptr->ua_config.always_add_user_phone_in_conf_refer = 1;
+
/***********************Clone from DoCoMo ********************************/
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code = 603;
@@ -12124,11 +12217,12 @@
nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.norm_sits_trans_timer_in_proceeding = 330;
+ nvram_ims_profile_ptr->ua_config.reg_over_tcp = 1;
/***********************Clone from DoCoMo ********************************/
nvram_ims_profile_ptr->ua_config.emerg_reg_timer = 10;
/* IMC */
nvram_ims_profile_ptr->imc_config.allow_emergency_dereg = 2; // deactivate ECC PDN directly
- nvram_ims_profile_ptr->imc_config.emergency_reg_retain_timer = 300000; //300s
+ nvram_ims_profile_ptr->imc_config.emergency_reg_retain_timer = 3000;// 3s
break;
}
@@ -12386,6 +12480,9 @@
nvram_ims_profile_ptr->imc_config.location_info_support = 1;
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
+ nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1;
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
@@ -12402,13 +12499,23 @@
nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 45;
nvram_ims_profile_ptr->ua_config.set_des_strength_optional = 1;
nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
- nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
nvram_ims_profile_ptr->ua_config.force_srvcc_transfer = 0x02; // force_srvcc_transfer = conference call
nvram_ims_profile_ptr->ua_config.sip_dscp = 0x2E; // Expedited Forwarding
nvram_ims_profile_ptr->ua_config.audio_dscp = 0x2E; // Expedited Forwarding
nvram_ims_profile_ptr->ua_config.omit_err_rsp_for_prack = 0;
nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0;
+ nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x4A; // PIDF_WFC_EMERG_ENABLE, PIDF_VOLTE_EMERG_ENABLE and PIDF_WFC_LOC_NUM_SET_ENABLE
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_send_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = -1;
+#endif /* __EVS_SUPPORT__ */
memset(&nvram_ims_profile_ptr->ua_config.UA_call_conf_amr_wb_mode_set[0],0,20);
strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_conf_amr_wb_mode_set,
@@ -12416,8 +12523,6 @@
sizeof (nvram_ims_profile_ptr->ua_config.UA_call_conf_amr_wb_mode_set)-1
);
-
- nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x4A; // PIDF_WFC_EMERG_ENABLE, PIDF_VOLTE_EMERG_ENABLE and PIDF_WFC_LOC_NUM_SET_ENABLE
memset(&nvram_ims_profile_ptr->ua_config.required_loc_info_num_set[0],0,128);
strncpy ( (char *)nvram_ims_profile_ptr->ua_config.required_loc_info_num_set,
"15,17,18,114,115,119,196,197,116000",
@@ -12582,6 +12687,8 @@
nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.support_early_upgrade = 1;
+ nvram_ims_profile_ptr->ua_config.send_media_mod_after_active = 1;
nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
@@ -12647,6 +12754,8 @@
nvram_ims_profile_ptr->ua_config.sub_def_expires = 259200;
nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1;
+ nvram_ims_profile_ptr->ua_config.evs_mode_switch = 1;
+ nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 8;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
@@ -12790,6 +12899,10 @@
nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.br_begin = 3;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.UA_call_evs_pt = 110;
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 0;
nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
@@ -12819,6 +12932,7 @@
nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0;
nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
nvram_ims_profile_ptr->ua_config.show_octet_align = 0;
+ nvram_ims_profile_ptr->ua_config.not_subscribe_when_receive_489 = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -12886,7 +13000,17 @@
nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 0;
nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
nvram_ims_profile_ptr->ua_config.use_183_for_early_media = 1;
-
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.br_begin = 3;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.UA_call_evs_pt = 110;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = 0;
+ #endif /* __EVS_SUPPORT__ */
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_reg_b_timer = 44000;
nvram_ims_profile_ptr->ua_config.UA_reg_c_timer = 72000;
@@ -12905,6 +13029,7 @@
nvram_ims_profile_ptr->ua_config.via_uri_with_default_port = 1;
nvram_ims_profile_ptr->ua_config.via_without_rport = 1;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.not_subscribe_when_receive_489 = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -12966,6 +13091,10 @@
nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.br_begin = 3;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.UA_call_evs_pt = 110;
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.enable_in_band_tone_in_hold = 0;
nvram_ims_profile_ptr->ua_config.always_fetch_1st_entry_in_hisInfo = 1;
@@ -12990,6 +13119,7 @@
nvram_ims_profile_ptr->ua_config.via_uri_with_default_port = 1;
nvram_ims_profile_ptr->ua_config.via_without_rport = 1;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.not_subscribe_when_receive_489 = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -13098,6 +13228,7 @@
nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi = 1;
nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 0x01;
nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
+ nvram_ims_profile_ptr->ua_config.hold_before_add_to_conf = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
@@ -13184,6 +13315,7 @@
"0,2,3,5,6,1,4,0",
sizeof (nvram_ims_profile_ptr->imc_config.pcscf_visit_policy_list)-1 //set pcscf policy for visit NW
);
+ nvram_ims_profile_ptr->imc_config.ecc_guard_timer = 0;
/* Country specific configurations */
if (with_imsi_info) {
@@ -13224,6 +13356,7 @@
nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
}
/* Guatemala */
@@ -13360,6 +13493,7 @@
nvram_ims_profile_ptr->imc_config.pdn_retry_max_time = 10000;
nvram_ims_profile_ptr->imc_config.pdn_retry_pre_backoff_count = 0;
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
+ nvram_ims_profile_ptr->ua_config.sub_contact_with_sip_instance = 1;
}
/* Brazil */
else if (strncmp((char *)&mccmnc[0], "724", 3) == 0) {
@@ -13406,6 +13540,7 @@
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MSS = 1300;
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
nvram_ims_profile_ptr->ua_config.rereg_in_oos_end = 1;
+ nvram_ims_profile_ptr->ua_config.sub_contact_with_sip_instance = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.ignore_sgn_qci_check = 0x7; // 111
@@ -13503,6 +13638,21 @@
nvram_ims_profile_ptr->ua_config.block_refer_sending_if_max_num_of_participants = 1;
nvram_ims_profile_ptr->ua_config.use_local_conf_participant_list_in_srvcc = 1;
nvram_ims_profile_ptr->ua_config.in_reply_to_support = 0;
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.bw_send_end = 2;
+ nvram_ims_profile_ptr->ua_config.bw_recv_end = 2;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_send_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_begin = 3;
+ nvram_ims_profile_ptr->ua_config.br_send_begin = 3;
+ nvram_ims_profile_ptr->ua_config.br_recv_begin = 3;
+ #endif /* __EVS_SUPPORT__ */
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
@@ -13534,6 +13684,7 @@
nvram_ims_profile_ptr->imc_config.pdn_retry_pre_backoff_count = 0;
/* IMC */
nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
+ nvram_ims_profile_ptr->imc_config.ecc_guard_timer = 0;
}
/* Chile */
else if (strncmp((char *)&mccmnc[0], "730", 3) == 0) {
@@ -13604,6 +13755,7 @@
nvram_ims_profile_ptr->ua_config.geolocation_type = 2;
/* IMCB */
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
/* IMC */
nvram_ims_profile_ptr->imc_config.allow_emergency_dereg = 2;
@@ -13706,6 +13858,7 @@
nvram_ims_profile_ptr->ua_config.hide_vattr_when_port_zero = 1;
nvram_ims_profile_ptr->ua_config.enable_in_band_tone_in_hold = 0;
nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x1111; // Bell v190
+ nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
break;
}
case 122: /* AIS */
@@ -13737,6 +13890,7 @@
nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 10;
nvram_ims_profile_ptr->imc_config.ussd_support = 1;
nvram_ims_profile_ptr->ua_config.support_early_upgrade = 1;
+ nvram_ims_profile_ptr->ua_config.support_video_early_media = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
@@ -13824,6 +13978,7 @@
nvram_ims_profile_ptr->ua_config.need_revise_rtp_dir = 1;
nvram_ims_profile_ptr->ua_config.always_fetch_1st_entry_in_hisInfo = 1;
nvram_ims_profile_ptr->ua_config.curr_loc_dir_none_for_wifi = 1;
+ nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.support_resub = 0;
@@ -14048,7 +14203,7 @@
set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
nvram_ims_profile_ptr->imc_config.allow_emergency_dereg = 2; // KDDI_v1_VoLTE_3_082, deactivate emergency PDN directly
nvram_ims_profile_ptr->imc_config.emergency_reg_retain_timer = 240000; // 4min,DeviceReqs-VoLTE_174_clean.pdf
- nvram_ims_profile_ptr->imc_config.resource_retain_timer = 5000;
+ nvram_ims_profile_ptr->imc_config.resource_retain_timer = 10000;
nvram_ims_profile_ptr->ua_config.UA_call_no_resource_code = 580;
nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code = 603;
nvram_ims_profile_ptr->ua_config.set_rtcp_0 = 1;
@@ -14128,6 +14283,8 @@
nvram_ims_profile_ptr->ua_config.mt_processing_timeout = 80;
nvram_ims_profile_ptr->ua_config.mo_invite_retry_cnt_limit = 5;
nvram_ims_profile_ptr->ua_config.mo_invite_retry_dur_limit = 45;
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.ecc_guard_timer = 0;
break;
}
case 130: /* TIM */
@@ -14211,10 +14368,25 @@
nvram_ims_profile_ptr->ua_config.reuse_transport_methods = 0x000020D0; // ACK, CANCEL, PRACK, BYE, UPDATE
} /* Italy */
else if (strncmp((char *)&mccmnc[0], "222", 3) == 0) {
+ nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1; // ePDG should use sos APN for EC over WiFi
nvram_ims_profile_ptr->ua_config.delay_ecpi2_at_183 = 1;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.register_cap_whenever = 1;
nvram_ims_profile_ptr->ua_config.always_add_user_phone_in_conf_refer = 1;
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0;
+ nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 0x01; // Add CNI to all operations.
+ nvram_ims_profile_ptr->ua_config.add_cell_info_age_to_cni = 1;
+
+ /* Always use generic emergency call service category for Kena Italy IMSI MNC. */
+ if (imsi_mnc_len == 2) {
+ if (strncmp((char *)&mccmnc[3], "07", 2) == 0) {
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 2; // SOS URN only
+ }
+ } else if (imsi_mnc_len == 3) {
+ if (strncmp((char *)&mccmnc[3], "007", 3) == 0) {
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 2; // SOS URN only
+ }
+ }
}
}
break;
@@ -14223,7 +14395,6 @@
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x0083; //operator_code = 131(TrueMove)
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
- nvram_ims_profile_ptr->ua_config.UA_call_precondition = 0; //disable precondition
nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 0x00000384; // UA_call_session_timer = 900
nvram_ims_profile_ptr->imc_config.resource_retain_timer = 10*1000;//resource_retain_timer = 10 000ms (10 seconds)
nvram_ims_profile_ptr->imc_config.ims_v4v6_preference = 2; //v4_prefer
@@ -14247,6 +14418,7 @@
strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set,
"2",
sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set)-1);
+ nvram_ims_profile_ptr->ua_config.support_video_early_media = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
@@ -14584,6 +14756,12 @@
nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x000F;
nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 20;
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ #endif
/* Reg/Stack */
@@ -14907,8 +15085,10 @@
/* Call*/
nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 1800;
set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
- nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
- nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500;
@@ -15150,6 +15330,7 @@
nvram_ims_profile_ptr->imc_config.ussd_support = 1;
nvram_ims_profile_ptr->imc_config.location_info_support = 1;
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
@@ -15458,6 +15639,9 @@
/* IMCB, Reg/Stack, UA internal configurations */
/* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 45; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.reject_no_answer_resp_code = 480; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 180; // <CDR-LTE-1919>
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.oir_privacy_to_header = 1;
nvram_ims_profile_ptr->ua_config.register_cap_whenever = 1;
@@ -15498,6 +15682,11 @@
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x08;
+ nvram_ims_profile_ptr->ua_config.hold_before_add_to_conf = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.sms_mo_pidf_usage = 0x01; // Emergency SMS over 3GPP RAT
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf,
+ "6,6,6", sizeof(nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf) - 1);
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
@@ -15620,6 +15809,7 @@
nvram_ims_profile_ptr->ua_config.wfc_with_plani = 1;
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi = 1;
+ nvram_ims_profile_ptr->ua_config.sub_contact_with_sip_instance = 1;
/* IMCB */
memset(&nvram_ims_profile_ptr->imc_config.pdn_rej_handle[0],0,64);
@@ -16097,6 +16287,7 @@
nvram_ims_profile_ptr->ua_config.add_precondition_in_hold_unhold_sdp= 0;
nvram_ims_profile_ptr->ua_config.query_other_sim_call_state = 1;
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.enable_in_band_tone_in_hold = 0;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
@@ -16504,6 +16695,51 @@
/* IMCB */
}
+ /* Italy */
+ else if(strncmp((char *)&mccmnc[0], "222", 3) == 0){
+ /* reset to default */
+ imc_set_mtk_default_value(nvram_ims_profile_ptr);
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x009B; //operator_code = 155(Digi)
+
+
+ nvram_ims_profile_ptr->imc_config.nw_vops_rule = 0x18; // 11000, IMS reg maintained but initial reg not allowed
+ nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1; // not register for WFC during a CS call
+ nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
+ nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 180;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 180;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
+ nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x000F; // enable SRVCC, aSRVCC, bSRVCC and mid-SRVCC
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.merge_send_bye_delay = 2;
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_send_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
+ #endif /* __EVS_SUPPORT__ */
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
+ nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
+ nvram_ims_profile_ptr->ua_config.not_auto_reg_403 = 1;
+ nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo = 0x33; // disable 3des encryption
+
+ /* IMCB */
+ }
}
break;
@@ -16960,6 +17196,8 @@
nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
+ nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
+
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
@@ -16967,7 +17205,7 @@
nvram_ims_profile_ptr->ua_config.keep_alive_mode = 1; // Keep_Alive_connection
nvram_ims_profile_ptr->ua_config.contact_with_accesstype = 1;
nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
- nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1; // Add country in WFC MESSAGE/REG/INVITE
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 3; // Add country in WFC and VoLTE MESSAGE/REG/INVITE
nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 0x01; // Add CNI to all operations.
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
@@ -16983,6 +17221,8 @@
sizeof (nvram_ims_profile_ptr->imc_config.pdn_rej_handle)-1
);
+ /*IMC*/
+ nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
}
/* Jordan mcc = 416*/
else if(strncmp((char *)&mccmnc[0], "416", 3) == 0){
@@ -17119,6 +17359,8 @@
nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
+ nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
+ nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 900;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
@@ -17276,6 +17518,8 @@
nvram_ims_profile_ptr->ua_config.always_add_user_phone_in_conf_refer = 1;
// nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1; Disabled temporarily due ALPS07861338/MOLY01027524(Network isssue)
nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 18;
+ nvram_ims_profile_ptr->ua_config.ect_enable = 1;
+ nvram_ims_profile_ptr->ua_config.ect_without_target_hold = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
@@ -17614,16 +17858,6 @@
nvram_ims_profile_ptr->ua_config.in_reply_to_support = 0;
nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 900;
- #ifdef __EVS_SUPPORT__
- nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
- nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
- nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
- nvram_ims_profile_ptr->ua_config.evs_support = 1;
- nvram_ims_profile_ptr->ua_config.br_begin = 4;
- nvram_ims_profile_ptr->ua_config.br_end = 4;
- nvram_ims_profile_ptr->ua_config.bw_begin = 0;
- nvram_ims_profile_ptr->ua_config.bw_end = 2;
- #endif
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.contact_with_accesstype = 1;
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
@@ -18376,7 +18610,6 @@
nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500;
nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer = 4000;
nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer = 5000;
- nvram_ims_profile_ptr->ua_config.UA_net_ipsec = 0;
nvram_ims_profile_ptr->ua_config.rel_conf_if_no_participant = 1;
/*IMCB*/
@@ -18400,7 +18633,12 @@
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0;
nvram_ims_profile_ptr->ua_config.add_precondition_in_hold_unhold_sdp= 0;
-
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+#endif
break;
}
@@ -18601,6 +18839,9 @@
/* IMCB, Reg/Stack, UA internal configurations */
/* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 45; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.reject_no_answer_resp_code = 480; // <CDR-LTE-1919>
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 180; // <CDR-LTE-1919>
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.oir_privacy_to_header = 1;
nvram_ims_profile_ptr->ua_config.register_cap_whenever = 1;
@@ -18641,6 +18882,11 @@
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x08;
+ nvram_ims_profile_ptr->ua_config.hold_before_add_to_conf = 1;
+ nvram_ims_profile_ptr->ua_config.mt_call_no_prcd_in_sdp = 1;
+ nvram_ims_profile_ptr->ua_config.sms_mo_pidf_usage = 0x01; // Emergency SMS over 3GPP RAT
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf,
+ "6,6,6", sizeof(nvram_ims_profile_ptr->ua_config.spec_num_of_digits_in_pidf) - 1);
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
@@ -18851,7 +19097,9 @@
nvram_ims_profile_ptr->ua_config.play_local_tone_when_no_rtp_pkt_on_remote_hold = 1;
/* Reg/Stack */
- nvram_ims_profile_ptr->ua_config.not_auto_reg_403 = 1;
+ nvram_ims_profile_ptr->ua_config.not_auto_reg_403 = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.register_expiry = 7200;
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1200;
/* SMS */
nvram_ims_profile_ptr->ua_config.sms_network_types = 0x00;
@@ -18896,6 +19144,8 @@
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 4;
nvram_ims_profile_ptr->ua_config.access_network_info_type = 4;
+ nvram_ims_profile_ptr->ua_config.add_cni_in_wifi = 0x01;
+ nvram_ims_profile_ptr->ua_config.add_cell_info_age_to_cni = 1;
/* IMCB */
break;
@@ -18906,6 +19156,7 @@
nvram_ims_profile_ptr->imc_config.ims_reg_allowed_at_23g = 1;
nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1;
nvram_ims_profile_ptr->imc_config.location_info_support = 1;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 2; // Depend on AUTO_REREG status
nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 2; // SOS URN only
set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
/* Call */
@@ -18915,6 +19166,7 @@
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
nvram_ims_profile_ptr->ua_config.text_feature_tag = 1;
nvram_ims_profile_ptr->ua_config.tty_enable = 1;
+ nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
/* Reg.*/
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
nvram_ims_profile_ptr->ua_config.UA_reg_c_timer = 120000;
@@ -19014,8 +19266,14 @@
nvram_ims_profile_ptr->ua_config.operator_code = 0x00D0; //operator_code = 208 (3@Macao)
/* Reg/Stack */
- nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_Force_Use_UDP = 1;
nvram_ims_profile_ptr->ua_config.UA_net_ipsec = 0;
+ nvram_ims_profile_ptr->ua_config.wfc_with_plani = 1;
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; //Suggested value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; //Suggested value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; //Suggested value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; //Suggested value
/* Call */
nvram_ims_profile_ptr->ua_config.UA_call_precondition = 0;
@@ -19027,6 +19285,14 @@
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 0;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30; //Suggested value
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5; //Suggested value
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; //Suggested value
+
break;
}
@@ -19514,7 +19780,7 @@
nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
/* Reg/Stack */
- nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 2;
/* IMCB */
@@ -19939,6 +20205,8 @@
nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0;
nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90;
nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 18;
+ nvram_ims_profile_ptr->ua_config.ect_enable = 1;
+ nvram_ims_profile_ptr->ua_config.ect_without_target_hold = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.register_expiry = 1800;
@@ -20074,6 +20342,7 @@
nvram_ims_profile_ptr->ua_config.br_end = 4;
nvram_ims_profile_ptr->ua_config.ch_aw_recv = 2;
#endif /* __EVS_SUPPORT__ */
+ nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.register_expiry = 7200;
@@ -20169,6 +20438,7 @@
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
/* IMCB */
+ nvram_ims_profile_ptr->imc_config.ims_video_qci = 255;
memset(&nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list[0],0,32);
strncpy ( (char *)nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list,
"0,2,6,3,1,4,5,0",
@@ -21055,6 +21325,17 @@
nvram_ims_profile_ptr->ua_config.in_reply_to_support = 0;
nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x1111;
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.br_begin = 4;
+ nvram_ims_profile_ptr->ua_config.br_end = 4;
+ nvram_ims_profile_ptr->ua_config.bw_begin = 0;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ #endif
+
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_net_ipsec = 0x01; // IPsec for Normal Registration only
nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1;
@@ -21473,6 +21754,7 @@
nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1; // not register for WFC during a CS call
nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
nvram_ims_profile_ptr->imc_config.location_info_support = 1;
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
/* IMCB, Reg/Stack, UA internal configurations */
@@ -21833,6 +22115,7 @@
nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1; // not register for WFC during a CS call
nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
break;
}
@@ -22383,6 +22666,7 @@
nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1; // ePDG should use sos APN for EC over WiFi
+ nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 1;
/* Call*/
nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
@@ -23277,11 +23561,11 @@
nvram_ims_profile_ptr->imc_config.disable_isim_application = 1;
/* Call */
- nvram_ims_profile_ptr->ua_config.send_refer_to_peer = 1;
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 120;
nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 120;
nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 900;
+ nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_Force_Use_UDP = 1;
@@ -23391,8 +23675,11 @@
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1228;
nvram_ims_profile_ptr->ua_config.authorization_with_algo = 1;
+ nvram_ims_profile_ptr->ua_config.notify_underegistered_cause_deregistration = 1;
/* IMC */
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 4; // update IMS retry status when watchdog timer expires
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 30; // if re-reg does not succeed in 30sec, update IMS retry status as false
/* IMCB */
nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
@@ -24386,9 +24673,9 @@
/* Call */
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
- nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 20;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
- nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x000D; // enable SRVCC/bSRVCC
+ nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x0009; // enable SRVCC/bSRVCC
nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
nvram_ims_profile_ptr->ua_config.set_rtcp_0 = 1;
/* Reg/Stack */
@@ -24545,6 +24832,8 @@
nvram_ims_profile_ptr->imc_config.deactivate_video_when_early_media_off = 1;
nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
nvram_ims_profile_ptr->imc_config.dereg_when_sim_refresh = 1;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_status = 4;
+ nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 30; // 30s
/* IMCB, Reg/Stack, UA internal configurations */
nvram_ims_profile_ptr->ua_config.custom_em_ims_event_info = 1;
@@ -24623,6 +24912,9 @@
nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt = 1;
nvram_ims_profile_ptr->ua_config.session_refresher_in_resp = 1;
nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
+ nvram_ims_profile_ptr->ua_config.rm_v_media_c_if_a_inactive = 1;
+ nvram_ims_profile_ptr->ua_config.refresh_wait_request = 1;
+ nvram_ims_profile_ptr->ua_config.ignore_unsupported_content_type = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.contact_with_username = 0;
@@ -24667,7 +24959,6 @@
nvram_ims_profile_ptr->imc_config.pdn_retry_backoff_enable = 1;
break;
}
-
case 389: /* Unitel/Loas */
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x0185; //operator_code = 385(Unitel/Loas)
@@ -25084,7 +25375,98 @@
nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
break;
}
+ case 400: /* Nova */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x0190; //operator_code = 400(Nova Iceland)
+
+ nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1; // not register for WFC during a CS call
+ nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
+ nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1;
+ nvram_ims_profile_ptr->imc_config.location_info_support = 1; //lbs location info service: on
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /*IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1; // Add country in WFC MESSAGE/REG/INVITE
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
+ nvram_ims_profile_ptr->ua_config.esipcpi_full_reason = 1;
+ nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 8; // PIDF_WFC_EMERG_ENABLE, PIDF_WFC_ENABLE, PIDF_VOLTE_EMERG_ENABLE
+ nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi = 1;
+ nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_send_end = 6;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = -1;
+#endif
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.UA_reg_http_digest = 2; //AKAv2_MD5
+ nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
+ nvram_ims_profile_ptr->ua_config.not_auto_reg_403 = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+
+ break;
+ }
+ case 401: /* Ooredoo/Maldives */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x0191; //operator_code = 401(Ooredoo/Nepal)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call*/
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x000F; // enable SRVCC, aSRVCC, midSRVCC, bSRVCC
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+
+ /* REG */
+ nvram_ims_profile_ptr->imc_config.ims_v4v6_preference = 2;
+ nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500;
+ nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer = 4000;
+ nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer = 5000;
+ nvram_ims_profile_ptr->ua_config.geolocation_type = 2;
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.sms_support = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; //Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; //Suggestion value
+
+ break;
+ }
case 403: /* Brunei/imagine */
{
@@ -25508,6 +25890,35 @@
break;
}
+ case 415: /* my.t/auritius*/
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x019F; //operator_code = 415(Mauritius-my.t )
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /*IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.send_183_when_prcd_none = 0;
+ nvram_ims_profile_ptr->ua_config.srvcc_feature_enable = 0x0007; // enable SRVCC, aSRVCC and mid-SRVCC
+ nvram_ims_profile_ptr->ua_config.force_srvcc_transfer = 0x02; // force_srvcc_transfer = conference call
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1;
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = 0;
+#endif
+
+ /* Reg/Stack */
+
+ /* IMCB */
+
+ break;
+ }
+
case 416: /* Brisanet/Brazil */
{
@@ -25641,7 +26052,48 @@
}
break;
}
+ case 423: /* Siminn */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01A7; //operator_code = 423(Siminn/Iceland)
+
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call*/
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90;
+ nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
+ nvram_ims_profile_ptr->ua_config.force_srvcc_transfer = 0;
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.br_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
+ nvram_ims_profile_ptr->ua_config.br_send_end = 6;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = -1;
+#endif
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.initial_reg_without_pani = 1;
+ nvram_ims_profile_ptr->ua_config.not_auto_reg_403 = 1;
+ nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+
+
+ /* IMCB */
+
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.nw_vops_rule = 0x18; // IMS reg maintained but initial reg not allowed
+ nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1; // not register for WFC during a CS call
+ nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; // delay IMS dereg in 23G until call is released
+ nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
+ break;
+ }
case 424: /* Vodafone/Iceland */
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x01A8; //operator_code = 423(Vodafone/Iceland)
@@ -25689,6 +26141,48 @@
break;
}
+ case 425: /* Mobiuz/Uzbekistan */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01A9; //operator_code = 425(Mobiuz/Uzbekistan)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.UA_call_precondition = 0;
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+#endif
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1; //Suggested value
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; // Suggestion value
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
+ break;
+ }
+
case 426: /* NLC/Pakistan */
{
@@ -25725,6 +26219,90 @@
nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
break;
}
+ case 428: /* Mcom/Nigeria */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x1AC; //operator_code = 428(Mcom/Nigeria)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call*/
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x1111;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+#endif /* __EVS_SUPPORT__ */
+
+ /* REG */
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; //Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; //Suggestion value
+
+ break;
+ }
+ case 429: /* Ethio/Ethiopia */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01AD; //operator_code = 429(Ethio/Ethiopia)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x1111;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; // Suggestion value
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+#endif /* __EVS_SUPPORT__ */
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ break;
+ }
case 430: /* Airtel/Nigeria */
{
@@ -25817,6 +26395,40 @@
break;
}
+ case 432: /* Azerbaijan Azercell */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x1B0; //operator_code = 432 ( Azerbaijan Azercell )
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 60;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 60;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1;
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0;
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0;
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20;
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1;
+
+ /* IMCB/IMC*/
+ nvram_ims_profile_ptr->imc_config.sms_support = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+
+ break;
+ }
case 434: /* Mobicom Mongolia*/
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x1B2; //operator_code = 434 (Mobicom Mongolia)
@@ -25854,6 +26466,87 @@
break;
}
+ case 435: /* Airtel/Zambia */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01B3; //operator_code = 435(Airtel/Zambia)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 35;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; // Suggestion value
+
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+#endif /* __EVS_SUPPORT__ */
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1300;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1;
+
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ break;
+ }
+ case 436: /* Flow/Barbodas */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x1B4; //operator_code = 436(Flow/Barbodas)
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+ /* IMCB, Reg/Stack, UA internal configurations */
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 60;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 60;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; // Suggestion value
+
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.rereg_in_rat_change = 1;
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion values
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1;
+ break;
+ }
case 437: /* 3/Indonesia */
{
@@ -25895,6 +26588,184 @@
break;
}
+ case 438: /* Ooredoo/Algeria */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01B6; //operator_code = 438
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+
+ /* CALL */
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ #endif
+
+ /* REG/STACK */
+
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
+
+ break;
+ }
+
+ case 439: /* Airtel/Tanzania */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01B7; //operator_code = 439 Airtel Tanzania
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+ /* IMCB, Reg/Stack, UA internal configurations */
+
+ /* Call*/
+ nvram_ims_profile_ptr->ua_config.UA_call_precondition = 0;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.set_rtcp_0 = 1;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+
+ #ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2;
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1;
+ #endif /* __EVS_SUPPORT__ */
+
+ /*IMC*/
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+
+ /*Reg/Stack */
+
+ nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500; //500ms;
+ nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer = 4000; //4000ms
+ nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer = 5000; //5000ms
+
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
+
+ break;
+
+ }
+
+ case 442: /* Liberty - Puerto Rico */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01BA; //operator_code = 442 (Liberty)
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+ /*CALL*/
+ set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ memset(&nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set[0],0,16);
+ memset(&nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set[0],0,20);
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set,
+ "0,1,2", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set)-1);
+ strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set,
+ "0,1,2", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set)-1);
+
+ /*REG*/
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion value
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion value
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
+
+ break;
+ }
+
+ case 443: /* Cubic/All */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01BB; //operator_code = 443 Cubic/All
+ /* IMCB, Reg/Stack, UA internal configurations */
+
+ /* Call */
+ nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+ nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x1111;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
+ nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode = 1;
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer = 500; //500ms;
+ nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer = 4000; //4000ms
+ nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer = 5000; //5000ms
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 2; // Add country in VOLTE MESSAGE/REG/INVITE
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1500;
+
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed = 0; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all = 20; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1; // Suggestion value
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion value
+
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.ussd_support = 1;
+ nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg = 1;
+
+ /*IMCB*/
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1;
+
+ break;
+ }
case 1001: /* Ericsson IMS IWLAN */
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x03E9; //operator_code = 1001(Ericsson IMS IWLAN)
diff --git a/mcu/custom/protocol/common/ps/custom_iwlan_config.c b/mcu/custom/protocol/common/ps/custom_iwlan_config.c
index 87a1c11..c84947b 100755
--- a/mcu/custom/protocol/common/ps/custom_iwlan_config.c
+++ b/mcu/custom/protocol/common/ps/custom_iwlan_config.c
@@ -213,6 +213,9 @@
cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
cfg->ipol_ans_cfg.ipol_ims_roaming_rat_reselect_by_dreg_enable = KAL_TRUE;
cfg->ipol_ans_cfg.ipol_ims_roaming_incall_ho_enable = KAL_FALSE;
+
+ /* icap */
+ cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0xF;
break;
case 214: //ES
cfg->mms_ans_cfg.mms_cell_only_barring_enable = KAL_TRUE;
@@ -938,7 +941,7 @@
}
case 17: /* DoCoMo */
{
- cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
break;
}
case 18: /* RJIL */
@@ -1725,6 +1728,12 @@
break;
+ case 222: // Italy
+ cfg->ipol_ans_cfg.ipol_ims_voice_cap_pref_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_23g_wifi_rat_reselect_by_dreg_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
+
case 502: // Malaysia
cfg->ipol_ans_cfg.qos_cfg.qos_rtp_cfg.ipol_wlan_no_rtp_handover_enable = KAL_TRUE;
cfg->comm_ans_cfg.trtl_cfg.wlan_trtl_enable = BITMASK(IPOL_CFG_THROTTLING_ENABLE);
@@ -2780,6 +2789,20 @@
cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
break;
}
+ case 400:/* Nova Iceland */
+ {
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -80;
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -60;
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th = -78;
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th = -60;
+ cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_poor_th = -122;
+ cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_fair_th = -110;
+
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_rat_reselect_by_dreg_enable = KAL_TRUE;
+
+ break;
+ }
case 407: /* Americanet */
{
switch (atoi(sim_mcc)) {
@@ -2838,6 +2861,13 @@
cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
break;
}
+ case 423: /* Siminn/Iceland */
+ {
+ cfg->ipol_ans_cfg.ipol_ims_voice_cap_pref_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_rat_reselect_by_dreg_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
+ }
case 431: /* Unifique */
{
switch (atoi(sim_mcc)) {
@@ -2870,6 +2900,28 @@
}
break;
}
+ case 435: /* Airtel Zambia*/
+ {
+ switch (atoi(sim_mcc)){
+ case 645: /* Zambia */
+ /* Emergency PDN handover */
+ cfg->ecc_ans_cfg.ipol_ecc_ho_enable = KAL_TRUE;
+ break;
+ }
+ break;
+ }
+ case 436: /* FLOW */
+ {
+ switch (atoi(sim_mcc)){
+ case 342: /* Barbados */
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_TRUE;
+ /* WLAN signal strength threshold */
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -79;
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -72;
+ break;
+ }
+ break;
+ }
case 1001: /* Ericsson IMS IWLAN */
{
cfg->ipol_ans_cfg.ipol_ims_md_supporting_rat = 0x40 | 0x7; // NR/LTE/3G/2G
diff --git a/mcu/custom/protocol/common/ps/custom_ltecsr_config.c b/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
index 835ef42..1b57907 100755
--- a/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
+++ b/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
@@ -147,7 +147,7 @@
{
case 1: /* CMCC */
{
- ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12);
ltecsr_profile_ptr->evs_prefer_rate = 4; /*VoLTE_EVS_Codec_Bitrate_13_2 */
ltecsr_profile_ptr->evolte_anbr_enable = KAL_TRUE;
@@ -160,7 +160,7 @@
}
case 388: /* CBN */
{
- ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12);
ltecsr_profile_ptr->evs_prefer_rate = 4; /*VoLTE_EVS_Codec_Bitrate_13_2 */
ltecsr_profile_ptr->evolte_anbr_enable = KAL_TRUE;
@@ -174,7 +174,7 @@
}
case 2:/* CU*/
{
- ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12);
ltecsr_profile_ptr->no_rtp_dropcall = 60000;/*add for no rtp drop call*/
break;
}
@@ -243,7 +243,7 @@
}
case 9: /* CT */
{
- ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1) | (1<<12); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1) | (1<<12);
ltecsr_profile_ptr->silence_dropcall_threshold = 20000; //CT requirment: 20s
ltecsr_profile_ptr->no_rtp_dropcall = 60000;/*add for no rtp drop call*/
@@ -731,6 +731,14 @@
ltecsr_profile_ptr->silence_dropcall_threshold = 10000; // 10 sec
break;
}
+ case 306: /* CUHK */
+ {
+ if (strncmp((char *)(custom_param_ptr->mccmnc), "454", 3) == 0) {
+ /* Hongkong */
+ ltecsr_profile_ptr->silence_dropcall_threshold = 10000;
+ }
+ break;
+ }
case 316: /* Nex-Tech Wireless / USA */
{
ltecsr_profile_ptr->silence_dropcall_threshold = 10000; // 10s
@@ -799,6 +807,12 @@
}
break;
}
+ case 401: /* Maldives -> Ooredoo */
+ {
+ ltecsr_profile_ptr->rtp_expire_timer = 10000; // 10s
+ ltecsr_profile_ptr->rtcp_expire_timer = 10000; // 10s
+ break;
+ }
case 417: /*ATLAS TELECOM UAE*/
{
//LTECSR_FEATURE_RTCP_MAX_INTERVAL_ENABLE
@@ -807,6 +821,17 @@
ltecsr_profile_ptr->rtcp_min_interval = 5000;
break;
}
+ case 431: /* BRAZIL */
+ {
+ /* Unifique */
+ if (strncmp((char *)(custom_param_ptr->mccmnc), "724", 3) == 0) {
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1);
+ ltecsr_profile_ptr->rtp_expire_timer = 20000; // 20s
+ ltecsr_profile_ptr->rtcp_expire_timer = 25000; // 25s
+ ltecsr_profile_ptr->silence_dropcall_threshold = 10000; // 10s
+ }
+ break;
+ }
}
/* Priority 2:[MCF OTA Customization] */
diff --git a/mcu/custom/protocol/common/ps/custom_mm_config.c b/mcu/custom/protocol/common/ps/custom_mm_config.c
index 7a64888..7831a21 100755
--- a/mcu/custom/protocol/common/ps/custom_mm_config.c
+++ b/mcu/custom/protocol/common/ps/custom_mm_config.c
@@ -783,7 +783,7 @@
const kal_uint32 CUSTOM_PLMN_IRAT_TAU_TYPE_NUM = sizeof(CUSTOM_PLMN_IRAT_TAU_TYPE)/sizeof(char *);
-const char *CUSTOM_IRAT_TAU_TYPE_FOR_PENDING_RAU_ON_NON_DATA_SIM[] = {"46001F",INVALID_CUSTOM_PLMN};
+const char *CUSTOM_IRAT_TAU_TYPE_FOR_PENDING_RAU_ON_NON_DATA_SIM[] = {"46001F","63602F",INVALID_CUSTOM_PLMN};
const kal_uint32 CUSTOM_IRAT_TAU_TYPE_FOR_PENDING_RAU_ON_NON_DATA_SIM_NUM = sizeof(CUSTOM_IRAT_TAU_TYPE_FOR_PENDING_RAU_ON_NON_DATA_SIM)/sizeof(char *);
@@ -1413,6 +1413,13 @@
const char *MM_DISABLE_USE_INTERNAL_T3212_PERIOD_SETTING_FOR_CUSTOM_PLMN[] = {"25099F", MM_DISABLE_USE_INTERNAL_T3212_PERIOD_SETTING_FOR_CUSTOM_PLMN_END};
const kal_uint32 MM_DISABLE_USE_INTERNAL_T3212_PERIOD_SETTING_FOR_CUSTOM_PLMN_NUM = sizeof(MM_DISABLE_USE_INTERNAL_T3212_PERIOD_SETTING_FOR_CUSTOM_PLMN)/sizeof(char *);
+/**************************************************************************************************************
+ * MM customization to change NMO1 to NMO2 on non-data SIM for specific PLMN
+ **************************************************************************************************************/
+const char *CUSTOM_MM_CONVERT_NMO1_TO_NMO2_ON_NON_DATA_SIM_FOR_CUSTOM_PLMN[] = {INVALID_CUST_PLMN};
+const kal_uint32 CUSTOM_MM_CONVERT_NMO1_TO_NMO2_ON_NON_DATA_SIM_FOR_CUSTOM_PLMN_NUM =
+ sizeof(CUSTOM_MM_CONVERT_NMO1_TO_NMO2_ON_NON_DATA_SIM_FOR_CUSTOM_PLMN)/sizeof(char *);
+
/*****************************************************************************
* FUNCTION
diff --git a/mcu/custom/protocol/common/ps/custom_mm_config.h b/mcu/custom/protocol/common/ps/custom_mm_config.h
index 070cdce..1d965e2 100755
--- a/mcu/custom/protocol/common/ps/custom_mm_config.h
+++ b/mcu/custom/protocol/common/ps/custom_mm_config.h
@@ -575,6 +575,10 @@
extern const kal_uint32 CUSTOM_GMM_SYNC_RAU_GUARD_TIMER_VALUE;
+/* MM optimization to change network mode from NMO1 to NMO2 for specific PLMN on non-data SIM */
+extern const char *CUSTOM_MM_CONVERT_NMO1_TO_NMO2_ON_NON_DATA_SIM_FOR_CUSTOM_PLMN[];
+extern const kal_uint32 CUSTOM_MM_CONVERT_NMO1_TO_NMO2_ON_NON_DATA_SIM_FOR_CUSTOM_PLMN_NUM;
+
/*************************************************************************
* Enum
*************************************************************************/
diff --git a/mcu/custom/protocol/common/ps/custom_n3cf_config.c b/mcu/custom/protocol/common/ps/custom_n3cf_config.c
index c70d1f8..5d308e3 100755
--- a/mcu/custom/protocol/common/ps/custom_n3cf_config.c
+++ b/mcu/custom/protocol/common/ps/custom_n3cf_config.c
Binary files differ
diff --git a/mcu/custom/protocol/common/ps/custom_nras_config.c b/mcu/custom/protocol/common/ps/custom_nras_config.c
index e8e23d8..1a0f20e 100755
--- a/mcu/custom/protocol/common/ps/custom_nras_config.c
+++ b/mcu/custom/protocol/common/ps/custom_nras_config.c
@@ -423,3 +423,647 @@
{
return (kal_uint16)NRAS_CUSTOM_4G5_REDIR_FAILURE_THRESHOLD;
}
+
+/* Feature: NR Priority Band Search */
+/*******************************************************************************
+ * Table to set operator stored NR priority band feature.
+ ******************************************************************************/
+#if defined(UNIT_TEST) || defined(__GTEST_ENABLE__)
+const nras_custom_file_nrrc_stored_operator_band_priority_struct NRAS_CUSTOM_FILE_NRRC_STORED_OPERATOR_BAND_PRIORITY_TBL =
+{
+ /*operator_num*/
+ 0x02,
+ /*operator_band_priority_list*/
+ {
+ /*operator_band_priority_list_0*/
+ {
+ /*operator_plmn_id*/
+ 0x00101f,
+ /*home_group_num*/
+ 0x04,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {1}},
+ {0x01, {41}},
+ {0x01, {77}},
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x00,
+ /*roaming_priority_band_group*/
+ {
+
+ }
+ },
+
+ /*operator_band_priority_list_1*/
+ {
+ /*operator_plmn_id*/
+ 0x00102f,
+ /*home_group_num*/
+ 0x04,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {25}},
+ {0x01, {66}},
+ {0x01, {71}},
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x02,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {79}},
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ }
+};
+#else
+const nras_custom_file_nrrc_stored_operator_band_priority_struct NRAS_CUSTOM_FILE_NRRC_STORED_OPERATOR_BAND_PRIORITY_TBL =
+{
+ /*operator_num*/
+ 0x00,
+ /*operator_band_priority_list*/
+ {
+ /*operator_band_priority_list_0*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_1*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_2*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_3*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_4*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_5*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_6*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_7*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_8*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_9*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_10*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_11*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_12*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_13*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_14*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_15*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_16*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_17*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_18*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_19*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_20*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_21*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_22*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_23*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_24*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_25*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_26*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_27*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_28*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_29*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_30*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ /*operator_band_priority_list_31*/
+ {
+ /*operator_plmn_id*/
+ 0xFFFFFF,
+ /*home_group_num*/
+ 0x01,
+ /*home_priority_band_group*/
+ {
+ /*band_num, band_list*/
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ },
+ /*roaming_group_num*/
+ 0x01,
+ /*roaming_priority_band_group*/
+ {
+ {0x01, {NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND}},
+ }
+ },
+ }
+};
+#endif
\ No newline at end of file
diff --git a/mcu/custom/protocol/common/ps/custom_nras_config.h b/mcu/custom/protocol/common/ps/custom_nras_config.h
index f054323..5eec90a 100755
--- a/mcu/custom/protocol/common/ps/custom_nras_config.h
+++ b/mcu/custom/protocol/common/ps/custom_nras_config.h
@@ -156,6 +156,36 @@
extern const nras_custom_partial_band_info_config CUSTOM_NRAS_PARTIAL_BAND_INFO_TBL[];
extern const kal_uint32 CUSTOM_NRAS_PARTIAL_BAND_INFO_NUM;
+/*Define the total band/band group/operator number for stored operator band priority table*/
+#define NRAS_CUSTOM_MAX_PRIORITY_BAND_NUM 32
+#define NRAS_CUSTOM_MAX_PRIORITY_BAND_GROUP_NUM 8
+#define NRAS_CUSTOM_MAX_STORED_OPERATOR_NUM 32
+#define NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_BAND 0xFFFF
+#define NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_FDD_BAND 0xFFFD
+#define NRAS_CUSTOM_NR_STORED_OPERATOR_BAND_PRIORITY_ANY_TDD_BAND 0xFFFE
+
+/*NRAS stored operator band priority information setting*/
+typedef struct
+{
+ kal_uint8 band_num;
+ kal_uint16 band_list[NRAS_CUSTOM_MAX_PRIORITY_BAND_NUM];
+} nras_custom_nrrc_priority_band_group_struct;
+
+typedef struct
+{
+ kal_uint32 operator_plmn_id;
+ kal_uint8 home_group_num;
+ nras_custom_nrrc_priority_band_group_struct home_priority_band_group[NRAS_CUSTOM_MAX_PRIORITY_BAND_GROUP_NUM];
+ kal_uint8 roaming_group_num;
+ nras_custom_nrrc_priority_band_group_struct roaming_priority_band_group[NRAS_CUSTOM_MAX_PRIORITY_BAND_GROUP_NUM];
+} nras_custom_nrrc_stored_operator_band_priority_struct;
+
+typedef struct
+{
+ kal_uint8 operator_num;
+ nras_custom_nrrc_stored_operator_band_priority_struct operator_band_priority_list[NRAS_CUSTOM_MAX_STORED_OPERATOR_NUM];
+} nras_custom_file_nrrc_stored_operator_band_priority_struct;
+extern const nras_custom_file_nrrc_stored_operator_band_priority_struct NRAS_CUSTOM_FILE_NRRC_STORED_OPERATOR_BAND_PRIORITY_TBL;
/*************************************************************************
* Function
diff --git a/mcu/custom/protocol/common/ps/custom_nvram_extra.c b/mcu/custom/protocol/common/ps/custom_nvram_extra.c
index 246256a..640a641 100755
--- a/mcu/custom/protocol/common/ps/custom_nvram_extra.c
+++ b/mcu/custom/protocol/common/ps/custom_nvram_extra.c
@@ -2355,7 +2355,7 @@
0x00 /* 34th */
// | 0x01 /* URI support for SEND SHORT MESSAGE */
-#if defined(__IMS_SUPPORT__)
+#if defined(__IMS_SUPPORT__) && !defined(__MODEM_CARD__) && !defined(__SAT_AP_NOT_SUPPORT__)
| 0x02 /* IMS URI supported for SET UP CALL */
#endif
// | 0x04 /* Media Type "Voice" supported for SET UP CALL and Call Control by USIM */
@@ -5563,6 +5563,31 @@
}
+kal_bool custom_sat_send_status_cmd_after_poll_timer(const kal_char *mcc_mnc_str)
+{
+ const kal_char *op_list[] = {
+ "42503"
+ };
+
+
+ kal_uint8 op_list_count = sizeof(op_list)/sizeof(op_list[0]);
+ kal_uint8 index = 0;
+ kal_uint8 length = strlen(mcc_mnc_str);
+
+ for (index = 0; index < op_list_count; index++)
+ {
+ if (length == strlen(op_list[index]))
+ {
+ if (0 == (strncmp(op_list[index], mcc_mnc_str, length)))
+ {
+ return KAL_TRUE;
+ }
+ }
+ }
+
+ return KAL_FALSE;
+}
+
/*****************************************************************************
* Local Function of SMU
diff --git a/mcu/custom/protocol/common/ps/custom_nwsel_config.c b/mcu/custom/protocol/common/ps/custom_nwsel_config.c
index e47d3d0..ed133e3 100755
--- a/mcu/custom/protocol/common/ps/custom_nwsel_config.c
+++ b/mcu/custom/protocol/common/ps/custom_nwsel_config.c
@@ -59,6 +59,9 @@
*
* removed!
* removed!
+ *
+ * removed!
+ * removed!
* removed!
* removed!
*
@@ -1275,7 +1278,7 @@
{"52005F","52018F","52047F","FFFFFF","FFFFFF"}, //DTAC
{"52000F","52004F","52099F","FFFFFF","FFFFFF"}, //TRUEMOVE
{"52001F","52003F","52023F","FFFFFF","FFFFFF"}, //AIS
- {"46001F","46006F","FFFFFF","FFFFFF","FFFFFF"}, //CU
+ {"46001F","46006F","46009F","46030F","FFFFFF"}, //CU
{"22603F","22606F","FFFFFF","FFFFFF","FFFFFF"}, //Telekom Romania
};
/* How many sets */
@@ -1929,6 +1932,23 @@
const kal_uint32 CUSTOM_PS_ONLY_PLMN_NUM = sizeof(CUSTOM_PS_ONLY_PLMN)/sizeof(char *);
/*************************************************************************
+ * customized VzW network definition
+ *
+ * Customize network that will check 23G SIB info for CSFb schedule decision
+ * Ex: CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION[] =
+ * {"46692F","46689F"}
+ *************************************************************************/
+
+const char *CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION[] = {"311480", /* AN1 */
+ "302220", /* AN6 */
+ "311580", /* AN7 */
+ "302720", /* AN8 */
+ "302780", /* AN13 */
+ INVALID_CUSTOM_WL_PLMN};
+
+const kal_uint32 CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION_NUM = sizeof(CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION)/sizeof(char *);
+
+/*************************************************************************
PLMN's to be added are:
1> Network does not support legacy RAT's(2/3G) and UE reported rat does not
consist LTE
diff --git a/mcu/custom/protocol/common/ps/custom_nwsel_config.h b/mcu/custom/protocol/common/ps/custom_nwsel_config.h
index b07ba1f..969e1b1 100755
--- a/mcu/custom/protocol/common/ps/custom_nwsel_config.h
+++ b/mcu/custom/protocol/common/ps/custom_nwsel_config.h
@@ -632,6 +632,8 @@
extern const char *CUSTOM_PS_ONLY_PLMN[];
extern const kal_uint32 CUSTOM_PS_ONLY_PLMN_NUM;
+extern const char *CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION[];
+extern const kal_uint32 CUSTOM_VZW_PLMN_FOR_CSFB_SCHEDULE_DECISION_NUM;
extern const char *CUSTOM_FPLMN[];
extern const kal_uint32 CUSTOM_FPLMN_NUM;
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;
}
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.h b/mcu/custom/protocol/common/ps/custom_ssds.h
index 2b7424d..6e47da9 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds.h
+++ b/mcu/custom/protocol/common/ps/custom_ssds.h
@@ -192,6 +192,14 @@
}custom_ssds_user_volte_subscription_status;
+typedef enum
+{
+ SSDS_CW_SYNC_TYPE_NONE,
+ SSDS_CW_SYNC_TYPE_REAL_TIME,
+ SSDS_CW_SYNC_TYPE_NON_REAL_TIME,
+ SSDS_CW_SYNC_IMS_REGISTERED_NON_REAL_TIME_ELSE_REAL_TIME
+}custom_ssds_cw_sync_type;
+
typedef struct
{
kal_int8 *atcmd_buff;
@@ -283,14 +291,19 @@
/********new design end*************/
-custom_ssds_ussd_path_type custom_ssds_get_ussd_req_path_variable ( custom_ssds_params_info_struct *params_info );
+custom_ssds_ussd_path_type custom_ssds_get_ussd_req_path_variable ( custom_ssds_params_info_struct *params_info);
+custom_ssds_ussd_path_type custom_ssds_get_stk_ussd_req_path_variable ( custom_ssds_params_info_struct *params_info);
void custom_ssds_need_send_409_err_string_variable(module_type module,kal_bool *need_send,kal_uint32 op_id,kal_char *mccmnc);
-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);
void custom_ssds_need_send_test_cmd(module_type module,kal_bool *need_send,kal_uint32 op_id,kal_char *mccmnc);
void custom_ssds_ussd_is_csfb_retry_allowed(custom_ssds_params_info_struct *params_info,kal_bool *is_ussd_csfb_allowed);
kal_bool custom_ssds_need_sync_to_cs(custom_ssds_atcmd_type ss_type,kal_uint32 rsp_code);
kal_bool custom_ssds_is_csfb_allowed(kal_uint32 op_id, kal_char *mccmnc, custom_ssds_roaming_type roaming_type);
+
+void custom_ssds_config_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);
kal_bool custom_ssds_is_ussi_allowed_during_ims_call(custom_ssds_params_info_struct *params_info);
kal_bool custom_ssds_is_csfb_during_imsCall_allowed(kal_uint32 op_id,
kal_char *mccmnc,
diff --git a/mcu/custom/protocol/common/ps/custom_ssds_config.c b/mcu/custom/protocol/common/ps/custom_ssds_config.c
index b10597f..8d86396 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds_config.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds_config.c
@@ -72,6 +72,9 @@
/* save the config from MCF_OTA */
static custom_ssds_config_context_struct custom_ssds_config_context_for_mcfota[CUSTOM_SSDS_CONFIG_CONTEXT_MAX_NUM];
+/* save call waiting sync information- operation, IMSI and service class */
+nvram_ef_ssds_cw_sync_info_struct cw_sync_info[CW_SYNC_INFO_CONTEXT_MAX_NUM];
+
#if defined(__MTK_TARGET__)
extern ltable_entry_struct logical_data_item_table_ssds[];
#else
@@ -352,7 +355,8 @@
record_root->common_config_record.need_send_409_err_str = INVALID_VALUE;
record_root->common_config_record.need_sync_cw_in_234g = INVALID_VALUE;
record_root->common_config_record.need_send_test_cmd = INVALID_VALUE;
- record_root->common_config_record.ussd_path = INVALID_VALUE;
+ record_root->common_config_record.ussd_path = INVALID_VALUE;
+ record_root->common_config_record.stk_ussd_path = INVALID_VALUE;
}
}
@@ -686,14 +690,14 @@
}
}
-void custom_ssds_config_get_need_sync_cw_in_234g_from_common_file(sim_interface_enum sim_id,
- kal_bool *need_sync,
- custom_ssds_config_type cfg_type)
+void custom_ssds_config_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)
{
nvram_ef_ssds_common_config_profile_struct *nvram_ptr = NULL;
custom_ssds_config_context_struct *context_root;
- context_root = _custom_ssds_get_context_by_simid(sim_id,cfg_type);
+ context_root = _custom_ssds_get_context_by_simid(params_info->sim_id,cfg_type);
if (!context_root || !need_sync)
{
@@ -703,8 +707,7 @@
if(INVALID_VALUE != nvram_ptr->need_sync_cw_in_234g)
{
- *need_sync = (nvram_ptr->need_sync_cw_in_234g == 0?KAL_FALSE:KAL_TRUE);
- kal_prompt_trace(MOD_SSDS+sim_id, "[Config file]cfg_type:%d,need_sync_cw_in_234g is 0x%x in common config file",cfg_type,nvram_ptr->need_sync_cw_in_234g);
+ *need_sync = (nvram_ptr->need_sync_cw_in_234g);
}
}
@@ -741,6 +744,7 @@
{
nvram_ef_ssds_common_config_profile_struct *nvram_ptr;
nvram_ef_ssds_need_send_409_err_str_entry_struct *nvram_entry_ptr;
+ nvram_ef_ssds_need_sync_cw_in_234g_entry_struct *nvram_cw_sync_ptr;
kal_bool retval = KAL_FALSE;
custom_ssds_config_context_struct *context_root;
kal_int8 index;
@@ -766,6 +770,17 @@
retval = KAL_TRUE;
break;
}
+ else if(config_id == NVRAM_SSDS_NEED_SYNC_CW_IN_234G)
+ {
+ nvram_cw_sync_ptr = &(nvram_ptr->need_sync_cw_in_234g_entry[index]);
+ if (KAL_FALSE == nvram_cw_sync_ptr->is_valid)
+ continue;
+ /*Finally, we found matched one*/
+ kal_mem_cpy(value_action, &(nvram_cw_sync_ptr->need_sync_cw_in_234g), sizeof(nvram_cw_sync_ptr->need_sync_cw_in_234g));
+ kal_prompt_trace(MOD_SSDS+sim_id, "[Config file]cfg_type:%d,We found matched one,nvram_cw_sync_ptr->need_sync_cw_in_234g = %d",cfg_type,nvram_cw_sync_ptr->need_sync_cw_in_234g);
+ retval = KAL_TRUE;
+ break;
+ }
else
{
}
diff --git a/mcu/custom/protocol/common/ps/custom_ssds_config.h b/mcu/custom/protocol/common/ps/custom_ssds_config.h
index f7fdded..9ba2c63 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds_config.h
+++ b/mcu/custom/protocol/common/ps/custom_ssds_config.h
@@ -68,10 +68,14 @@
#include "ssds_nvram_def.h"
#define CUSTOM_SSDS_CONFIG_CONTEXT_MAX_NUM 2
+#define CW_SYNC_INFO_CONTEXT_MAX_NUM 2
#define INVALID_XCAP_ERROR_CODE 0xFFFFFFFF
#define INVALID_SSDS_TIMER_VALUE 0xFFFFFFFF
#define INVALID_VALUE 0xFF
+/* save call waiting sync information- operation, IMSI and service class */
+extern nvram_ef_ssds_cw_sync_info_struct cw_sync_info[CW_SYNC_INFO_CONTEXT_MAX_NUM];
+
typedef struct
{
nvram_ef_ssds_request_profile_struct request_record;
@@ -80,6 +84,7 @@
nvram_ef_ssds_pdn_fail_profile_struct pdn_fail_record;
nvram_ef_ssds_timer_value_profile_struct timer_value_record;
nvram_ef_ssds_common_config_profile_struct common_config_record;
+ nvram_ef_ssds_cw_sync_info_struct cw_sync_info_record;
}custom_ssds_config_context_struct;
@@ -105,9 +110,9 @@
nvram_ef_ssds_timer_value_profile_value_struct *value_ptr,
nvram_ef_ssds_timer_value_profile_action_struct *value_action,
custom_ssds_config_type cfg_type);
-kal_bool custom_ssds_config_get_common_config(kal_uint8 config_id,
- sim_interface_enum sim_id,
- void *value_action,
+kal_bool custom_ssds_config_get_common_config(kal_uint8 config_id,
+ sim_interface_enum sim_id,
+ void *value_action,
custom_ssds_config_type cfg_type);
void custom_ssds_config_get_request_path_from_common_file(sim_interface_enum sim_id,
@@ -115,26 +120,26 @@
nvram_ssds_req_path_type *nvram_req_path,
custom_ssds_config_type cfg_type);
-void custom_ssds_config_get_response_path_from_common_file(sim_interface_enum sim_id,
- kal_uint32 xcap_error_code,
- custom_ssds_csfb_type *csfb_type,
+void custom_ssds_config_get_response_path_from_common_file(sim_interface_enum sim_id,
+ kal_uint32 xcap_error_code,
+ custom_ssds_csfb_type *csfb_type,
custom_ssds_config_type cfg_type);
-void custom_ssds_config_get_timer_value_from_common_file(sim_interface_enum sim_id,
- nvram_ssds_timer_type timer_id,
- kal_uint32 *timer_value,
+void custom_ssds_config_get_timer_value_from_common_file(sim_interface_enum sim_id,
+ nvram_ssds_timer_type timer_id,
+ kal_uint32 *timer_value,
custom_ssds_config_type cfg_type);
-void custom_ssds_config_get_need_send_409_err_string_from_common_file(sim_interface_enum sim_id,
- kal_bool *need_send,
+void custom_ssds_config_get_need_send_409_err_string_from_common_file(sim_interface_enum sim_id,
+ kal_bool *need_send,
custom_ssds_config_type cfg_type);
-
-void custom_ssds_config_get_need_sync_cw_in_234g_from_common_file(sim_interface_enum sim_id,
- kal_bool *need_sync,
- custom_ssds_config_type cfg_type);
-
-void custom_ssds_config_get_need_send_test_cmd_from_common_file(sim_interface_enum sim_id,
- kal_bool *need_send,
+
+void custom_ssds_config_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);
+
+void custom_ssds_config_get_need_send_test_cmd_from_common_file(sim_interface_enum sim_id,
+ kal_bool *need_send,
custom_ssds_config_type cfg_type);
void custom_ssds_config_customization(sim_interface_enum sim_slot_id, kal_uint16 op_id, kal_uint16 mccmnc_len, kal_uint8 *mccmnc);
diff --git a/mcu/custom/protocol/common/ps/custom_xcap_config.c b/mcu/custom/protocol/common/ps/custom_xcap_config.c
index 4e641e1..c3d8bd6 100755
--- a/mcu/custom/protocol/common/ps/custom_xcap_config.c
+++ b/mcu/custom/protocol/common/ps/custom_xcap_config.c
@@ -136,6 +136,7 @@
xcap_default_info->support_put_cf_root_rules = XCAP_SUPPORT_PUT_CF_ROOT_RULES_ALL_CF_CONDITIONAL_CF;
xcap_default_info->support_omit_cp_prefix_and_namespace = XCAP_INFO_DEFAULT_SUPPORT_OMIT_CP_PREFIX_AND_NAMESPACE;
xcap_default_info->support_put_cb_root = XCAP_INFO_DEFAULT_SUPPORT_PUT_CB_ROOT;
+ xcap_default_info->ignore_baoc_roaming_rule = XCAP_INFO_DEFAULT_IGNORE_BAOC_ROAMING_RULE;
/* GBA default configuration */
gba_default_info = &(cfg->gba_info);
@@ -152,6 +153,8 @@
gba_default_info->enable_tmpi_header = GBA_INFO_DEFAULT_ENABLE_TMPI_HEADER;
gba_default_info->supportTMPIasUserName = GBA_INFO_DEFAULT_SUPPORT_TMPI_AS_USERNAME;
gba_default_info->gba_delay_ua_send_packet = GBA_INFO_DEFAULT_GBA_DELAY_UA_SEND_PACKET;
+ gba_default_info->clear_gba_key_when_key_expiry = GBA_INFO_DEFAULT_CLEAR_GBA_KEY_WHEN_KEY_EXPIRY;
+ gba_default_info->gba_key_timeout = GBA_INFO_DEFAULT_GBA_KEY_TIMEOUT;
/* CM default configuration */
cm_default_info = &(cfg->cm_info);
@@ -269,6 +272,7 @@
} else if (streq(mcc, "226")){ /* DTAG - RO */
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ cfg->gba_info.gba_retry_times = 3;
} else if (streq(mcc, "230")){ /* DTAG - CZ */
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
@@ -441,6 +445,8 @@
cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_DEFAULT_ONLY;
cfg->cm_info.accept_public_wifi = XCAP_ENABLED;
+ cfg->gba_info.gba_key_timeout = 3600;
+ cfg->gba_info.clear_gba_key_when_key_expiry = XCAP_ENABLED;
if (streq(mnc, "210")) {
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
update_str(cfg->gba_info.imei_header, "X-TMUS-IMEI");
@@ -712,6 +718,7 @@
case 112: /* TelCel */
{
if (streq(mcc, "334")){ /* Mexico */
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc020.mcc334.pub.3gppnetwork.org");
update_str(cfg->xcap_info.ruleid_cfu, "cfu");
update_str(cfg->xcap_info.ruleid_cfb, "cfb");
update_str(cfg->xcap_info.ruleid_cfnrc, "cfnrc");
@@ -722,8 +729,9 @@
update_str(cfg->xcap_info.ruleid_baoicxh, "boic-exHC");
update_str(cfg->xcap_info.ruleid_baic, "baic");
update_str(cfg->xcap_info.ruleid_baicr, "bicro");
- update_str(cfg->gba_info.gba_url, "bsf.ims.mnc020.mcc334.pub.3gppnetwork.org");
+ //update_str(cfg->gba_info.gba_url, "bsf.ims.mnc020.mcc334.pub.3gppnetwork.org");
update_str(cfg->gba_info.gba_type, "GBA_ME");
+ cfg->gba_info.gba_port = 8080;
cfg->xcap_info.media_type = MEDIA_TYPE_ONLY_AUDIO;
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
}
@@ -747,6 +755,11 @@
}
break;
}
+ case 114: /* KTRN Rwanda */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc017.mcc635.pub.3gppnetwork.org");
+ break;
+ }
case 117: /* SmartFren Indonesia */
{
cfg->xcap_info.xcap_port = 7077;
@@ -805,6 +818,13 @@
update_str(cfg->gba_info.gba_type, "GBA_ME");
update_str(cfg->gba_info.gba_url, "bsf.mnc001.mcc740.pub.3gppnetwork.org");
}
+ else if(streq(mcc, "732")){ //Colombia
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc101.mcc732.pub.3gppnetwork.org");
+ cfg->xcap_info.xcap_port = 8080;
+ cfg->gba_info.gba_port = 8080;
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ update_str(cfg->xcap_info.ruleid_cfu, "cfu");
+ }
break;
}
case 121: /* Canada Bell */
@@ -1351,6 +1371,15 @@
cfg->gba_info.gba_port = 8086;
break;
}
+ case 183: /* Personal Paraguay */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc005.mcc744.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.support_adding_namespace = XCAP_DISABLED;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ break;
+ }
case 184: /* Vietel - Vietnam */
{
cfg->xcap_info.media_type = MEDIA_TYPE_VIDEO_WITH_AUDIO;
@@ -1539,6 +1568,14 @@
cfg->xcap_info.xcap_port = 443;
cfg->gba_info.gba_port = 443;
}
+ else if (streq(mcc, "708")){ /* Honduras */
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc002.mcc708.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc002.mcc708.pub.3gppnetwork.org");
+ update_str(cfg->xcap_info.xcap_protocol, "https");
+ update_str(cfg->gba_info.gba_protocol, "https");
+ cfg->gba_info.gba_port = 443;
+ cfg->xcap_info.xcap_port = 443;
+ }
break;
}
case 221: /* TPG Singapore */
@@ -1856,6 +1893,16 @@
cfg->xcap_info.xcap_port = 8090;
break;
}
+ case 312: /* Bite Latvia & Lithuania */
+ {
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ cfg->xcap_info.forwarding_number_use_sip_uri = XCAP_ENABLED;
+ if (streq(mnc, "247")) { /* Latvia */
+ cfg->xcap_info.ignore_baoc_roaming_rule = XCAP_ENABLED;
+ }
+ break;
+ }
case 316: /* Nex-Tech US */
{
update_str(cfg->gba_info.gba_type, "GBA_ME");
@@ -2154,6 +2201,15 @@
update_str(cfg->gba_info.gba_type, "GBA_ME");
break;
}
+ case 394: /* Telecom Andorra */
+ {
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
+ cfg->xcap_info.xcap_port = 8080;
+ cfg->gba_info.gba_port = 8088;
+ break;
+ }
case 396: /* THUMB Cellular US */
{
update_str(cfg->xcap_info.xcap_url, "xcap.ims.cellcom.com");
@@ -2168,6 +2224,11 @@
update_str(cfg->gba_info.gba_type, "GBA_ME");
break;
}
+ case 400 :/* Nova Iceland */
+ {
+ cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
+ break;
+ }
case 403: /* Imagine - Brunei */
{
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc001.mcc528.3gppnetwork.org");
@@ -2226,6 +2287,15 @@
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ }
+ case 423: /* Siminn/Iceland */
+ {
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.forwarding_number_use_sip_uri = XCAP_ENABLED;
+ cfg->xcap_info.url_encoding = XCAP_URL_ENCODING_NODE_SELECTOR;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
break;
}
case 424: /* Vodafone/Iceland */
@@ -2238,6 +2308,14 @@
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc002.mcc274.pub.3gppnetwork.org");
break;
}
+ case 425: /* MobiUz Uzbekistan*/
+ {
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ update_str(cfg->xcap_info.auid, "MyService/simservs.ngn.etsi.org");
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ break;
+ }
case 430: /* Airtel Nigeria */
{
update_str(cfg->gba_info.gba_type, "GBA_ME");
@@ -2249,6 +2327,33 @@
cfg->gba_info.gba_port = 8080;
break;
}
+ case 435: /* Airtel Zambia */
+ {
+ update_str(cfg->gba_info.gba_protocol, "https");
+ break;
+ }
+ case 439: /* Airtel Tanzania */
+ {
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ break;
+ }
+ case 442: /* Liberty - Puerto Rico */
+ {
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.forwarding_number_use_sip_uri = XCAP_ENABLED;
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc790.mcc313.pub.3gppnetwork.org");
+ update_str(cfg->xcap_info.ruleid_cfu, "CFU");
+ update_str(cfg->xcap_info.ruleid_cfb, "CFB");
+ update_str(cfg->xcap_info.ruleid_cfnrc, "CFNRC");
+ update_str(cfg->xcap_info.ruleid_cfnry, "CFNRY");
+ update_str(cfg->xcap_info.ruleid_baoc, "BAOC");
+ update_str(cfg->xcap_info.ruleid_baoic, "BOIC");
+ update_str(cfg->xcap_info.ruleid_baoicxh, "User-International-exHC-Barring");
+ update_str(cfg->xcap_info.ruleid_baic, "BAIC");
+ update_str(cfg->xcap_info.ruleid_baicr, "BICROAM");
+ break;
+ }
case 1001: /* Ericsson IODT */
{
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
diff --git a/mcu/custom/protocol/common/ps/custom_xcap_config.h b/mcu/custom/protocol/common/ps/custom_xcap_config.h
index 754238b..4617738 100755
--- a/mcu/custom/protocol/common/ps/custom_xcap_config.h
+++ b/mcu/custom/protocol/common/ps/custom_xcap_config.h
@@ -206,6 +206,7 @@
#define XCAP_INFO_DEFAULT_SUPPORT_IF_MATCH_HEADER XCAP_IF_MATCH_NOT_SUPPORTED
#define XCAP_INFO_DEFAULT_SUPPORT_OMIT_CP_PREFIX_AND_NAMESPACE XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_PUT_CB_ROOT XCAP_DISABLED
+#define XCAP_INFO_DEFAULT_IGNORE_BAOC_ROAMING_RULE XCAP_DISABLED
// GBA Info Default Values
#define GBA_INFO_DEFAULT_GBA_URL ""
@@ -221,6 +222,8 @@
#define GBA_INFO_DEFAULT_ENABLE_TMPI_HEADER XCAP_DISABLED
#define GBA_INFO_DEFAULT_SUPPORT_TMPI_AS_USERNAME XCAP_DISABLED
#define GBA_INFO_DEFAULT_GBA_DELAY_UA_SEND_PACKET 0
+#define GBA_INFO_DEFAULT_CLEAR_GBA_KEY_WHEN_KEY_EXPIRY XCAP_DISABLED
+#define GBA_INFO_DEFAULT_GBA_KEY_TIMEOUT 0
// CM Info Default Values
#if defined( __NOT_TRY_DEFAULT_APN_FOR_XCAP__ )