[Feature][Modem]Merge MTK release P3 P4 patch
Change-Id: I1ef3d69e36378ee73a422ecb2721488d6b416427
diff --git a/mcu/custom/protocol/common/ps/custom_esm_config.c b/mcu/custom/protocol/common/ps/custom_esm_config.c
index c10e8dd..b6710d1 100755
--- a/mcu/custom/protocol/common/ps/custom_esm_config.c
+++ b/mcu/custom/protocol/common/ps/custom_esm_config.c
@@ -65,6 +65,11 @@
* removed!
* removed!
* removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
*
* removed!
* removed!
@@ -89,6 +94,15 @@
#include "l4_ps_api.h"
#include "ps_em_exported_enum.h"
+/*************************************************************************
+ * * This PLMN array is used to check if the SIM inserted belongs to Orange operator
+ *
+ * Ex: CUSTOM_USE_ESM_EIT_SETTING_FOR_ORANGE_OPERATOR_PLMN[] =
+ {"26003", CUSTOM_PLMN_END}
+ *************************************************************************/
+
+const char *CUSTOM_USE_ESM_EIT_SETTING_FOR_ORANGE_OPERATOR_PLMN[] = {"26003F", "60400F", CUSTOM_PLMN_END};
+
/**
* @brief This function is used to decide whether to set Attach attempt
* counter to max value when receive ATTACH REJECT #19
diff --git a/mcu/custom/protocol/common/ps/custom_esm_config.h b/mcu/custom/protocol/common/ps/custom_esm_config.h
index e3b4903..1afd0db 100755
--- a/mcu/custom/protocol/common/ps/custom_esm_config.h
+++ b/mcu/custom/protocol/common/ps/custom_esm_config.h
@@ -65,6 +65,11 @@
* removed!
* removed!
* removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
*
* removed!
* removed!
@@ -83,12 +88,14 @@
#include "ps_public_enum.h"
#define ARREARAGE_APN_PREFIX_NUM 1
+#define CUSTOM_PLMN_END "FFFFFF"
/*************************************************************************
* Function
*************************************************************************/
extern kal_bool esm_custom_is_set_attach_cnt_max(esm_cause_enum esm_cause);
extern kal_bool esm_custom_is_arrearage_apn(kal_char *checked_apn);
+extern const char *CUSTOM_USE_ESM_EIT_SETTING_FOR_ORANGE_OPERATOR_PLMN[];
#endif /* _CUSTOM_ESM_CONFIG_H */
diff --git a/mcu/custom/protocol/common/ps/custom_imc_config.c b/mcu/custom/protocol/common/ps/custom_imc_config.c
index f4be087..a6e5f8c 100755
--- a/mcu/custom/protocol/common/ps/custom_imc_config.c
+++ b/mcu/custom/protocol/common/ps/custom_imc_config.c
@@ -90,6 +90,31 @@
* removed!
* removed!
* removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
*
* removed!
* removed!
@@ -6283,6 +6308,7 @@
case 214: /* IDC Moldova */
case 215: /* Cellcard Cambodia */
case 216: /* Zong@Pakistan */
+ case 220: /* Tigo */
case 221: /* TPG Singapore */
case 224: /* Telkomsel/Indonesia */
case 225: /*XL/Indonesia*/
@@ -6364,6 +6390,7 @@
case 388: /* China Broadcasting Network*/
case 389: /* Unitel/Loas */
case 390: /* LTC-Mobile/Liberia */
+ case 391: /* Bravado/US */
case 392: /* MobileNation */
case 396: /* Thumb Cellular */
case 397: /* MECTEL/Myanmar */
@@ -6372,9 +6399,13 @@
case 405: /* Brunei/UNN */
case 406: /* Brunei/DST */
case 407: /* Americanet Brazil*/
+ case 410: /* Mtel */
case 413: /* Ufone/Pakistan */
case 408: /* Bitel/Peru*/
case 411: /* Evolve Broadband - US*/
+ case 412: /*Standing Rock Telecom US*/
+ case 418: /* Emtel/Mauritius */
+ case 416: /* Brisanet/Brazil */
case 1002: /* Nokia Finland */
case 1004: /* Huawei IMS */
case 0x6001: /* Sony GTE/Beijing */
@@ -7166,6 +7197,11 @@
kal_snprintf((char *)conf_factory_uri, len-1, "sip:confserver@ic.ptci.mobi");
break;
}
+ case 409: /*BTC/Bahamas */
+ {
+ kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc%c%c0.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[0], mccmnc[1], mccmnc[2]);
+ break;
+ }
case 1001: /* Ericsson IMS IWLAN */
{
kal_snprintf((char *)conf_factory_uri, len-1, "sip:conference@conference.tcs.ics.se");
@@ -7343,7 +7379,7 @@
ua->tty_red_pt = 112;
ua->tty_red_level = 2;
ua->tty_cps = 30;
- kal_snprintf((char *)ua->user_agent, 128-1, "VoLTE/WFC UA");
+ kal_snprintf((char *)ua->user_agent, 256-1, "VoLTE/WFC UA");
kal_snprintf((char *)ua->UA_call_amr_mode_set, 16, "0,1,2,3,4,5,6,7");
kal_snprintf((char *)ua->UA_call_amr_wb_mode_set, 20-1, "0,1,2,3,4,5,6,7,8");
kal_snprintf((char *)ua->UA_icsi_1, 64-1, "urn:urn-7:3gpp-service.ims.icsi.mmtel");
@@ -7818,7 +7854,9 @@
ua->disable_conf_sub = 0;
ua->reset_reg_5626_count_in_flight_mode = 0;
ua->send_cancel_tcall_timeout_no_resp = 0;
- ua->use_from_uri_if_pai_missing = 0;
+ ua->add_pani_in_cancel = 0;
+ ua->use_from_uri_if_pai_missing = 0;
+ ua->set_operator_as_ims_only = 0;
/* nvram_imc_struct */
imc->resource_retain_timer = 3000;
@@ -8573,9 +8611,11 @@
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->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->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->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;}
/* nvram_imc_struct */
if (src_imc->resource_retain_timer != IMS_UNDEF_CONFIG_32) {dest_imc->resource_retain_timer = src_imc->resource_retain_timer;}
@@ -9263,6 +9303,7 @@
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1500;
+ nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1;
}
/* Morocco */
else if (strncmp((char *)&mccmnc[0], "604", 3) == 0) {
@@ -10024,6 +10065,8 @@
nvram_ims_profile_ptr->ua_config.cmr = 1;
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase = 1;
+ nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1;
+ nvram_ims_profile_ptr->ua_config.play_local_tone_when_no_rtp_pkt_on_remote_hold = 1;
}
/* VDF Czech */
else if (strncmp((char *)&mccmnc[0], "230", 3) == 0) {
@@ -10385,12 +10428,24 @@
nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer = 32000;
nvram_ims_profile_ptr->ua_config.set_rtcp_0 = 1;
nvram_ims_profile_ptr->ua_config.rtcp_interval = 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.bw_end = 2;
+ nvram_ims_profile_ptr->ua_config.ch_aw_recv = 0xFF;
+ #endif /* __EVS_SUPPORT__ */
/* IMCB */
nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
nvram_ims_profile_ptr->imc_config.pdn_retry_base_time = 10;
nvram_ims_profile_ptr->imc_config.pdn_retry_max_time = 10000;
nvram_ims_profile_ptr->imc_config.pdn_retry_pre_backoff_count = 0;
+
+ /* IMC */
+ nvram_ims_profile_ptr->imc_config.disable_isim_application = 1;
}
/* VDF Romania */
else if (strncmp((char *)&mccmnc[0], "226", 3) == 0) {
@@ -10619,6 +10674,7 @@
nvram_ims_profile_ptr->ua_config.sit_tcp_2xx_rsp_retransmission = 0;
nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
nvram_ims_profile_ptr->ua_config.confidence_level = 90;
+ nvram_ims_profile_ptr->ua_config.emerg_reg_timer = 10;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -10667,9 +10723,11 @@
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
- nvram_ims_profile_ptr->ua_config.UA_reg_f_timer = 20000;
- nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
- nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+ nvram_ims_profile_ptr->imc_config.auto_re_reg_base_timer = 10000;
+ nvram_ims_profile_ptr->imc_config.auto_re_reg_max_timer = 7200000;
+ nvram_ims_profile_ptr->ua_config.UA_reg_f_timer = 20000;
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
/* IMCB */
nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
@@ -10701,7 +10759,7 @@
nvram_ims_profile_ptr->imc_config.resource_retain_timer = 40000; // 2021Q1 MTRREQ-43301 (40 seconds)
nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1; //delay IMS dereg in 23G until call is released
strncpy((char*)nvram_ims_profile_ptr->ua_config.user_agent,
- "T-Mobile PRD-IR92/13 RCS-client/UP_2.0 term-Vendor3 cert/T-Mobile-ussd",
+ "PRD-IR92/15 PRD-NG114/1 CPM/OMA2.2 RCS-client/UP_2.0 term-Vendor3/Model3-zzzz client-CLN1/Software1234 OS-Android/11 cc/2.37 cert/T-Mobile-ussd",
sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
); // 2021Q4 MTRREQ-43101
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);
@@ -10767,6 +10825,7 @@
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1; // 2021Q4 GID-MTRREQ-522075
nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy = 1;
nvram_ims_profile_ptr->ua_config.video_add_plus_one = 1;
+ nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
@@ -10836,6 +10895,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 */
@@ -11264,7 +11325,8 @@
nvram_ims_profile_ptr->ua_config.ch_aw_recv = 3; //VzW_2017JUN
nvram_ims_profile_ptr->ua_config.bw_begin = 0; //VZ_REQ_IMS22927
nvram_ims_profile_ptr->ua_config.bw_end = 2; //VzW_2017JUN
- nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 55;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 55; //VZ_REQ_IMS_22952, VZ_TC_RCS_8362
+ nvram_ims_profile_ptr->ua_config.mod_session_req_timer_timeout = 0;
nvram_ims_profile_ptr->ua_config.use_lower_anonymous = 1;
nvram_ims_profile_ptr->ua_config.send_bye_when_term_early_dlg = 1;
nvram_ims_profile_ptr->ua_config.UA_call_h264_pt2 = 127;
@@ -11283,6 +11345,7 @@
strncpy((char *)nvram_ims_profile_ptr->ua_config.emergency_call_testing_number,
"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;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.keep_alive_mode = 2;
@@ -11407,8 +11470,6 @@
}
/* UK */
else if (strncmp((char *)&mccmnc[0], "234", 3) == 0) {
- nvram_ims_profile_ptr->imc_config.sms_support = 0;
- nvram_ims_profile_ptr->ua_config.sms_network_types = 0x00;
nvram_ims_profile_ptr->ua_config.register_expiry = 7190;
nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
@@ -11591,6 +11652,7 @@
nvram_ims_profile_ptr->ua_config.use_lower_anonymous = 1;
nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
nvram_ims_profile_ptr->ua_config.reg_restore_try_next_pcscf = 1;
+ nvram_ims_profile_ptr->ua_config.UA_call_session_flag = 0;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17;
@@ -11686,6 +11748,7 @@
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__ */
+ nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.try_n_next_pcscf_5626 = 2;
@@ -11919,6 +11982,7 @@
sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
);
/* Call */
+ nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
nvram_ims_profile_ptr->ua_config.add_pani_in_ack = 1;
nvram_ims_profile_ptr->ua_config.short_code_support = 1;
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
@@ -12631,7 +12695,7 @@
nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range = 16383;
nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start = 49152;
nvram_ims_profile_ptr->ua_config.session_refresher_in_req = 1;
- memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,128);
+ memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,256);
strncpy ( (char *)nvram_ims_profile_ptr->ua_config.user_agent,
"TTA-VoLTE/2.0 SHV-E330L/KMR1R140207 Device_Type/Android_Phone KT",
sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
@@ -12646,7 +12710,8 @@
nvram_ims_profile_ptr->ua_config.evs_support = 1;
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 0;
- nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
+ nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
+ nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_reg_b_timer = 8000;
@@ -12723,7 +12788,7 @@
nvram_ims_profile_ptr->ua_config.send_183_when_prcd_none = 0;
nvram_ims_profile_ptr->ua_config.session_refresher_in_req = 1;
nvram_ims_profile_ptr->ua_config.sms_network_types = 0x00;
- memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,128);
+ memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,256);
strncpy ( (char *)nvram_ims_profile_ptr->ua_config.user_agent,
"TTA-VoLTE/2.0 SHV-E330L/KMR1R140207 Device_Type/Android_Phone SKT",
sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
@@ -12737,6 +12802,8 @@
nvram_ims_profile_ptr->ua_config.always_fetch_1st_entry_in_hisInfo = 1;
nvram_ims_profile_ptr->ua_config.show_octet_align = 0;
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;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_reg_b_timer = 44000;
@@ -12807,7 +12874,7 @@
nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start = 1230;
nvram_ims_profile_ptr->ua_config.send_183_when_prcd_none = 0;
nvram_ims_profile_ptr->ua_config.session_refresher_in_req = 1;
- memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,128);
+ memset(&nvram_ims_profile_ptr->ua_config.user_agent[0],0,256);
strncpy ( (char *)nvram_ims_profile_ptr->ua_config.user_agent,
"TTA-VoLTE/2.0 SHV-E330L/KMR1R140207 Device_Type/Android_Phone LGU",
sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
@@ -12821,6 +12888,7 @@
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;
nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable = 1;
+ nvram_ims_profile_ptr->ua_config.add_pani_in_cancel = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.UA_reg_b_timer = 32000;
@@ -12899,6 +12967,7 @@
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.call_sdp_ans_ack_timeout = 10;
nvram_ims_profile_ptr->ua_config.cur_loc_for_emergency_enable = 0;
+ nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.random_init_ipsec_port = 0;
@@ -12946,6 +13015,7 @@
nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage = 0x0A;
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;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
@@ -13050,6 +13120,7 @@
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.sub_def_expires = 259200;
nvram_ims_profile_ptr->ua_config.add_cni_in_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.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
@@ -13398,6 +13469,7 @@
nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.register_expiry = 3600;
nvram_ims_profile_ptr->ua_config.sub_def_expires = 259200;
+ nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
/* Reg/Stack */
/* IMCB */
@@ -13733,8 +13805,12 @@
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.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;
#endif /* __EVS_SUPPORT__ */
/* Reg/Stack */
@@ -13913,6 +13989,7 @@
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.sip_compact_headers = 1;
nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 1;
+ nvram_ims_profile_ptr->imc_config.pcscf_reselect_flag = 1;
/* Call */
nvram_ims_profile_ptr->ua_config.short_code_support = 1;
nvram_ims_profile_ptr->ua_config.curr_loc_dir_none_for_wifi = 1;
@@ -13943,6 +14020,7 @@
#endif /* __EVS_SUPPORT__ */
nvram_ims_profile_ptr->ua_config.no_state_transition_when_183_withoutsdp= 1;
nvram_ims_profile_ptr->ua_config.reg_when_norsp_before_timeout = 1;
+ nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
nvram_ims_profile_ptr->ua_config.add_3gpp_ims_in_Accept = 1;
memset(&nvram_ims_profile_ptr->ua_config.UA_call_conf_amr_wb_mode_set[0],0,20);
@@ -14018,11 +14096,13 @@
nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer = 30;
nvram_ims_profile_ptr->imc_config.ims_reg_allowed_at_23g = 1;
nvram_ims_profile_ptr->imc_config.nw_vops_rule = 0x12; // 10010, relied on
+ nvram_ims_profile_ptr->imc_config.ussd_support = 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 */
nvram_ims_profile_ptr->imc_config.enable_ddd_feature = 1;
+ nvram_ims_profile_ptr->imc_config.default_fallback_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;
@@ -14263,6 +14343,7 @@
nvram_ims_profile_ptr->imc_config.pdn_retry_pre_backoff_count = 0;
nvram_ims_profile_ptr->imc_config.pdn_retry_base_time = 10;
nvram_ims_profile_ptr->imc_config.pdn_retry_max_time = 10000;
+ nvram_ims_profile_ptr->imc_config.resource_retain_timer = 8000; /* 8000 ms = 8 seconds */
/*IMC*/
nvram_ims_profile_ptr->imc_config.nr_recovery_support = 1;
@@ -14323,6 +14404,7 @@
nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
nvram_ims_profile_ptr->ua_config.enable_in_band_tone_in_hold = 0;
nvram_ims_profile_ptr->ua_config.when_stop_tcall = 100;
+ nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
/* Reg/Stack */
nvram_ims_profile_ptr->imc_config.sms_support = 0;
@@ -15006,7 +15088,7 @@
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_call_session_timer = 3600;
+ nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 900;
nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 900;
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
nvram_ims_profile_ptr->ua_config.register_expiry = 1800;
@@ -15303,6 +15385,7 @@
nvram_ims_profile_ptr->ua_config.sit_tcp_2xx_rsp_retransmission = 0;
nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
nvram_ims_profile_ptr->ua_config.confidence_level = 90;
+ nvram_ims_profile_ptr->ua_config.emerg_reg_timer = 10;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -15524,6 +15607,7 @@
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.set_operator_as_ims_only = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1400;
@@ -15924,6 +16008,7 @@
nvram_ims_profile_ptr->ua_config.br_recv_end = 6;
nvram_ims_profile_ptr->ua_config.br_send_end = 6;
#endif /* __EVS_SUPPORT__ */
+ 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;
@@ -15978,6 +16063,7 @@
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.bypass_403_reason_phrase = 1;
+ nvram_ims_profile_ptr->ua_config.init_reg_delay_time = 30;
/* IMCB */
nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
@@ -17315,6 +17401,7 @@
nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 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.register_expiry = 1800;
@@ -17354,6 +17441,16 @@
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;
@@ -18164,6 +18261,8 @@
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout = 30;
+ nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature = 1;
break;
}
@@ -18372,6 +18471,7 @@
nvram_ims_profile_ptr->ua_config.sit_tcp_2xx_rsp_retransmission = 0;
nvram_ims_profile_ptr->ua_config.contact_with_transport = 0;
nvram_ims_profile_ptr->ua_config.confidence_level = 90;
+ nvram_ims_profile_ptr->ua_config.emerg_reg_timer = 10;
/* IMCB */
nvram_ims_profile_ptr->imc_config.default_fallback_support = 1;
@@ -19065,6 +19165,7 @@
nvram_ims_profile_ptr->ua_config.ch_aw_recv = 0xFF;
nvram_ims_profile_ptr->ua_config.hf_only = 1;
nvram_ims_profile_ptr->ua_config.UA_call_no_resource_code = 580;
+ nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 100;
@@ -19185,6 +19286,24 @@
nvram_ims_profile_ptr->imc_config.disable_isim_application = 1;
}
+ /* Honduras */
+ else if(strncmp((char *)&mccmnc[0], "708", 3) == 0){
+ /* reset to default */
+ imc_set_mtk_default_value(nvram_ims_profile_ptr);
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x00dc; //operator_code = 220(Tigo)
+ 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_refer_to_peer = 1;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 90;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 90;
+
+ /* Reg/Stack */
+
+ /* IMCB */
+
+ /* IMC */
+ }
}
break;
}
@@ -19205,6 +19324,7 @@
nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context = 0;
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
nvram_ims_profile_ptr->ua_config.curr_loc_dir_none_for_wifi = 1;
+ nvram_ims_profile_ptr->ua_config.set_operator_as_ims_only = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.reg_gruu_support = 0;
@@ -19383,6 +19503,9 @@
nvram_ims_profile_ptr->ua_config.contact_with_accesstype = 1;
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1;
+ nvram_ims_profile_ptr->ua_config.play_local_tone_when_no_rtp_pkt_on_remote_hold = 1;
+ nvram_ims_profile_ptr->ua_config.reuse_transport_methods = 0x00000054; // CANCEL, ACK, REFER
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
@@ -19577,6 +19700,16 @@
nvram_ims_profile_ptr->imc_config.ussd_support = 1;
nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery = 1;
nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_pt = 96;
+#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 = 0;
+#endif /* __EVS_SUPPORT__ */
/* IMCB, Reg/Stack, UA internal configurations */
/* Call*/
@@ -19678,6 +19811,7 @@
nvram_ims_profile_ptr->imc_config.location_info_support = 1; //lbs location info service: on
nvram_ims_profile_ptr->imc_config.nw_vops_rule = 0x12; // relied on
nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping = 2; // SOS URN only
+ nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn = 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 */
@@ -20182,6 +20316,8 @@
nvram_ims_profile_ptr->ua_config.ect_enable = 1;
nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1;
nvram_ims_profile_ptr->ua_config.support_early_upgrade = 1;
+ nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1 = 0;
+ nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1500;
@@ -23243,7 +23379,6 @@
nvram_ims_profile_ptr->ua_config.ect_refer_to_use_sip_uri = 1;
nvram_ims_profile_ptr->ua_config.set_non_sendrecv_rtcp_0 = 1;
nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt = 1;
- nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled = 1;
#ifdef __EVS_SUPPORT__
nvram_ims_profile_ptr->ua_config.evs_support = 1;
@@ -23266,6 +23401,7 @@
nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism = 1;
nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
+ nvram_ims_profile_ptr->ua_config.contact_with_username = 0;
/* IMC */
@@ -23984,7 +24120,22 @@
if (with_imsi_info) {
if (strncmp((char *)&mccmnc[0], "418", 3) == 0) {
/* Call */
- nvram_ims_profile_ptr->ua_config.add_country_to_pani = 1;
+ nvram_ims_profile_ptr->ua_config.session_refresher_in_req = 1;
+ 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.srvcc_feature_enable = 0x000F; //enable SRVCC, aSRVCC, bSRVCC and mid-SRVCC
+ nvram_ims_profile_ptr->ua_config.oir_privacy_to_header = 1;
+ nvram_ims_profile_ptr->ua_config.add_country_to_pani = 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_begin = 3;
+ 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; // ch-aw-recv: 0
+ #endif
/* Reg/Stack */
nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1080;
nvram_ims_profile_ptr->ua_config.contact_with_accesstype = 1;
@@ -24350,6 +24501,66 @@
break;
}
+ case 391: /* Bravado/US */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x0187; //operator_code = Bravado/US
+ 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*/
+ nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start = 49512;
+ nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range = 16383;
+ nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90;
+ nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code = 603;
+ nvram_ims_profile_ptr->ua_config.merge_send_bye = 0;
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+ nvram_ims_profile_ptr->ua_config.call_id_with_host_inCall = 1;
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1;
+ nvram_ims_profile_ptr->ua_config.histinfo_in_supported = 1;
+ nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0;
+ nvram_ims_profile_ptr->ua_config.resp_precondition_without_bw_cnf = 1;
+ nvram_ims_profile_ptr->ua_config.force_srvcc_transfer = 0;
+ nvram_ims_profile_ptr->ua_config.show_octet_align = 0;
+ nvram_ims_profile_ptr->ua_config.check_curr_qos = 1;
+ nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite= 1;
+ nvram_ims_profile_ptr->ua_config.force_csfb_when663 = 1;
+ nvram_ims_profile_ptr->ua_config.set_text_rtcp_0 = 0;
+ nvram_ims_profile_ptr->ua_config.use_lower_anonymous = 1;
+ nvram_ims_profile_ptr->ua_config.update_call_id_with_host = 1;
+ nvram_ims_profile_ptr->ua_config.use_pau_at_sdp_origin = 1;
+ nvram_ims_profile_ptr->ua_config.ect_refer_to_use_pai = 1;
+ nvram_ims_profile_ptr->ua_config.ect_refer_to_use_sip_uri = 1;
+ nvram_ims_profile_ptr->ua_config.set_non_sendrecv_rtcp_0 = 1;
+ nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt = 1;
+
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 0;
+ 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.send_refer_to_peer = 1;
+ 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,
+ "8", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set)-1);
+ nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant = 0x0101;
+
+ /* 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;
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1;
+
+ nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo = 0x15;
+
+ /* IMCB */
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1;
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1;
+
+ /* IMC */
+
+ break;
+ }
+
case 392: /* MobileNation */
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x188; //operator_code = 392(MobileNation)
@@ -24720,6 +24931,62 @@
}
+ case 409: /* BTC/Bahamas */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x199; //operator_code = 409(BTC/Bahamas)
+ 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*/
+ 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.subscribe_dialog_to_server = 1;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 60;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 60;
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
+
+ break;
+ }
+ case 410: /* Mtel */
+ {
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x019A; //operator_code = 410(Mtel/Bosnia and Herzegovina)
+
+ 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.reg_gruu_support = 0;
+ nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout = 180;
+ nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout = 180;
+ 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.UA_call_session_min_se = 90;
+ 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 = 0;
+#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;
+
+ /* 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
+ break;
+ }
case 411: /* Evolve Broadband - US */
{
nvram_ims_profile_ptr->ua_config.operator_code = 0x019b; //operator_code = 411(Evolve Broadband - US)
@@ -24787,6 +25054,66 @@
break;
}
+ case 412: /*Standing Rock telecom US*/
+ {
+ /*call*/
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x019C; //operator_code = 412 (Standing Rock telecom US)
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1460;
+ nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start = 49152; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range = 16383; // Suggestion values
+ 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.rtcp_interval = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.UA_call_session_min_se = 90; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.UA_call_session_timer = 1800;
+ nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code = 603; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.refer_dialog_to_server = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.merge_send_bye = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.call_id_with_host_inCall = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server = 1; // Suggestion values
+#ifdef __EVS_SUPPORT__
+ nvram_ims_profile_ptr->ua_config.evs_support = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.bw_end = 2; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.bw_recv_end = 2; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.bw_send_end = 2; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order1 = 17; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order2 = 2; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.UA_call_codec_order3 = 1; // Suggestion values
+#endif /* __EVS_SUPPORT__ */
+ nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.histinfo_in_supported = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.prefer_original_codec = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.resp_precondition_without_bw_cnf = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.force_srvcc_transfer = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.show_octet_align = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.check_curr_qos = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.force_csfb_when663 = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.set_text_rtcp_0 = 0; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.use_lower_anonymous = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.use_pau_at_sdp_origin = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.ect_refer_to_use_pai = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.ect_refer_to_use_sip_uri = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.set_non_sendrecv_rtcp_0 = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt = 1; // Suggestion values
+ nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp = 1; // Suggestion values
+ nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion values
+ nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg = 1; // Suggestion values
+
+
+ /* SMS */
+ nvram_ims_profile_ptr->ua_config.update_call_id_with_host = 1; // Suggestion values
+
+ /*REG/Stack*/
+ nvram_ims_profile_ptr->ua_config.contact_with_transport = 0; // Suggestion values
+ 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
+ break;
+ }
+
case 413: /* Ufone/Pakistan */
{
@@ -24825,6 +25152,78 @@
nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp = 1; // Suggestion value
break;
}
+
+ case 416: /* Brisanet/Brazil */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01A0; //operator_code = 416(Brisanet/Brazil)
+ 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.send_refer_to_peer = 1;
+ nvram_ims_profile_ptr->imc_config.ussd_support = 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.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;
+ 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.ch_aw_recv = 0xff;
+ nvram_ims_profile_ptr->ua_config.UA_call_evs_pt = 112;
+#endif /* __EVS_SUPPORT__ */
+
+ break;
+ }
+
+ case 417: /* ATLAS TELECOM/UAE */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x1A1; //operator_code = 417(ATLAS TELECOM/UAE)
+
+ /* Reg/Stack */
+ nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_Force_Use_UDP = 1;
+
+ break;
+ }
+
+ case 418: /* Emtel/Mauritius */
+ {
+
+ nvram_ims_profile_ptr->ua_config.operator_code = 0x01A2; //operator_code = 418( Emtel/Mauritius)
+ 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.ims_notify_feature_enabled = 1;
+ 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;
+#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 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 8012766..7599623 100755
--- a/mcu/custom/protocol/common/ps/custom_iwlan_config.c
+++ b/mcu/custom/protocol/common/ps/custom_iwlan_config.c
@@ -263,6 +263,12 @@
cfg->xcap_ans_cfg.xcap_roaming_barring_enable = KAL_TRUE;
cfg->mms_ans_cfg.mms_cell_only_barring_enable = KAL_TRUE;
break;
+ case 608: //Senegal
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = 0;
+ break;
+ case 610: //Mali
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
case 647:
cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0xF;
@@ -876,8 +882,6 @@
cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th = -70;
cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_poor_th = -116; //-43~-141
cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_fair_th = -90; //-43~-141
- /* icap */
- cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0x00;
break;
case 262: // DE
cfg->ipol_ans_cfg.ipol_ims_md_supporting_rat = 0x40 | 0x7; // NR/LTE/3G/2G
@@ -1421,6 +1425,14 @@
}
case 133: /* DU */
{
+ switch (atoi(sim_mcc)) {
+ case 424:/* UAE */
+ cfg->ipol_ans_cfg.loc_cfg.ipol_ims_wlan_block_in_ap_mode_when_home_enable = KAL_TRUE;
+ cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = 0;
+ break;
+ default:
+ break;
+ }
break;
}
case 134: /* Elisa Finland */
@@ -1539,6 +1551,10 @@
cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th = -79;
cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th = -72;
break;
+ case 645: //Zambia
+ cfg->ipol_ans_cfg.ipol_ims_md_supporting_rat = 0x1;
+ cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = 1;
+ break;
}
break;
}
@@ -1926,6 +1942,13 @@
case 183: /* Personal */
{
cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_FALSE;
+ switch (atoi(sim_mcc)) {
+ case 744: //Paraguay
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
+ default :
+ break;
+ }
break;
}
case 184: /* Viettel */
@@ -2093,6 +2116,10 @@
case 220: /* Tigo*/
{
switch (atoi(sim_mcc)) {
+ case 708: /* Honduras*/
+ case 714: /* Panama*/
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
case 736: /* Bolivia*/
cfg->ipol_ans_cfg.ipol_ims_md_supporting_rat = 0x40 | 0x7; // NR/LTE/3G/2G
cfg->ipol_ans_cfg.ipol_ims_23G_setup_barring_enable = KAL_FALSE;
@@ -2302,6 +2329,19 @@
cfg->ipol_ans_cfg.loc_cfg.ipol_location_enable = KAL_TRUE;
break;
}
+ case 247: /* Maroc Telecom(IAM) / Morocco */
+ {
+ switch (atoi(sim_mcc)) {
+ case 604:
+ 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;
+ cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_TRUE;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 261: /* ASTAC-United States */
{
cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
@@ -2699,6 +2739,46 @@
}
break;
}
+ case 409: /* BTC */
+ {
+ switch (atoi(sim_mcc)) {
+ case 364: /* Bahamas*/
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th = -79;
+ cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th = -72;
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 410: /* Mtel/Bosnia and Herzegovina */
+ {
+ cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0x00;
+ break;
+ }
+ case 416: /* Brisanet*/
+ {
+ switch (atoi(sim_mcc)) {
+ case 724: /* Brazil */
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 419:
+ {
+ switch (atoi(sim_mcc)) {
+ case 641:
+ cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = 0;
+ break;
+ default:
+ 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_l4_utility.c b/mcu/custom/protocol/common/ps/custom_l4_utility.c
index 7d664a5..11300c2 100755
--- a/mcu/custom/protocol/common/ps/custom_l4_utility.c
+++ b/mcu/custom/protocol/common/ps/custom_l4_utility.c
@@ -23,7 +23,7 @@
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
-* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
@@ -82,7 +82,7 @@
#ifdef __MTK_TARGET__
#ifdef __NR_RAT__
-#include "mrs_nras_capability.h"
+#include "mrs_nras_capability.h"
#endif
#endif
@@ -99,7 +99,7 @@
#define CM_DTMF_P_W_SWITCH_FLAG KAL_FALSE
//define codec num
-#define SUPPORTED_2G_CODEC_NUM 6
+#define SUPPORTED_2G_CODEC_NUM 6
#define CUSTOM_ACM_BOUND (1000)
#define CSM_RLC_TIMER_CONFIG (3)
@@ -135,7 +135,7 @@
0x38, 0xB2, 0xE0, 0x50,
0x30, 0x28,
0xAE, 0xD0, 0x1C, 0xB2,
- 0xE7, 0xA0, 0x00, 0x90
+ 0xE7, 0xA0, 0x00, 0x90
};
kal_uint8 custom_smsal_wea_test_data2[] ={
@@ -155,40 +155,40 @@
kal_uint8 custom_cb_message1[] = {
- 0x01, 0x47, 0xF6, 0x5B, 0x1C, 0x66, 0x83, 0xA0, 0xD7, 0x69,
- 0x84, 0x36, 0xBB, 0xC5, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0E
+ 0x01, 0x47, 0xF6, 0x5B, 0x1C, 0x66, 0x83, 0xA0, 0xD7, 0x69,
+ 0x84, 0x36, 0xBB, 0xC5, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0E
};
kal_uint8 custom_cb_message2[] = {
- 0x01, 0x47, 0xF6, 0x5B, 0x1C, 0x66, 0x83, 0xA0, 0xD7, 0x69,
- 0x84, 0x36, 0xBB, 0xC5, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0E
+ 0x01, 0x47, 0xF6, 0x5B, 0x1C, 0x66, 0x83, 0xA0, 0xD7, 0x69,
+ 0x84, 0x36, 0xBB, 0xC5, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0E
};
kal_uint8 custom_test_wham_message[] ={
- 0x01, 0x11, 0x40, 0x11, 0x18, 0x40, 0x11, 0x11, 0x20, 0x40,
- 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x11, 0x40, 0x11, 0x18, 0x40, 0x11, 0x11, 0x20, 0x40,
+ 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0A
};
@@ -213,17 +213,17 @@
#include "kal_trace.h" // for tst_sys_trace
#include "sim_exported_enum.h"
-/* *********** NOTE **************************************************
+/* *********** NOTE **************************************************
* IMPORTANT READ IT BEFORE UPDATING MTK_RSA_ESCAPE_SIGNATURE_OEM *
* Do not remove the macro MTK_RSA_ESCAPE_SIGNATURE_OEMfrom this file. *
* Add the signature pattern withing the double quotes " " */
#define MTK_RSA_ESCAPE_SIGNATURE_OEM ""
#define CUSTOM_L4C_LTE_ONLY_LTE_NW_TIMER 360 // in seconds the default timer value is 6 mins
-
+
/*ALPS04938172:The wait for MT paging in LTE RAT timer value (in seconds)*/
#define CSM_WAIT_ON_LTE_PAGING_TIMER_CONFIG (2)
-
+
extern kal_bool nvram_custom_config_ims_profile(sbp_reconfig_custom_param_struct *param_ptr);
extern kal_bool nvram_custom_config_ltecsr_profile(sbp_reconfig_custom_param_struct *param_ptr);
extern kal_bool nvram_custom_config_sdm_ads_profile(sbp_reconfig_custom_param_struct *param_ptr);
@@ -239,30 +239,30 @@
CM_RESOURCE_UNAVAIL_UNSPECIFIED};//47
/*****************************************************************************
- If customer want to use other character instead of '?' as wild character
- Please re-define this CUSTOM_WILD_CHAR
+ If customer want to use other character instead of '?' as wild character
+ Please re-define this CUSTOM_WILD_CHAR
[Note!!] Wild character definition should be unique and sync with MMI display
- [Note!!] This is used only apply to L4 protocol.
- Customer still need to revise the definition in MMI and Phonebook
+ [Note!!] This is used only apply to L4 protocol.
+ Customer still need to revise the definition in MMI and Phonebook
*****************************************************************************/
#define CUSTOM_WILD_CHAR '?'
/*****************************************************************************
- If customer want to use other character instead of 'w' as auto dtmf modifier
- Please re-define this CUSTOM_AUTO_DTMF_MODIFIER
+ If customer want to use other character instead of 'w' as auto dtmf modifier
+ Please re-define this CUSTOM_AUTO_DTMF_MODIFIER
[Note 1] Please always use lowercase character e.g. use 't' instead of 'T'
[Note 2] Auto DTMF modifier definition should be unique and sync with MMI display
- [Note 3] This is used only apply to L4 protocol.
- Customer still need to revise the definition in MMI and Phonebook
+ [Note 3] This is used only apply to L4 protocol.
+ Customer still need to revise the definition in MMI and Phonebook
*****************************************************************************/
-#define CUSTOM_AUTO_DTMF_MODIFIER 'w'
+#define CUSTOM_AUTO_DTMF_MODIFIER 'w'
/*****************************************************************************
* FUNCTION
* custom_wild_char()
* DESCRIPTION
* This function is used to return wild character definition
-*
+*
* PARAMETERS
* none
* RETURNS
@@ -279,7 +279,7 @@
* custom_auto_dtmf_modifer()
* DESCRIPTION
* This function is used to return auto DTMF modifier definition
-*
+*
* PARAMETERS
* none
* RETURNS
@@ -295,7 +295,7 @@
* custom_ext_modem_mod_id()
* DESCRIPTION
* This function is used to return external modem module id
-*
+*
* PARAMETERS
* none
* RETURNS
@@ -307,13 +307,13 @@
* custom_short_string_as_call()
* DESCRIPTION
* This function is used to define specific short string (1 or 2 digit dial string)
-* that should be treat as call instead of USSD.
-* In spec 22.030 Figure 3.5.3.2 it define short string except 2 digit starting
-* with a '1' shall treat as USSD. However,there might be some special operator requirement
+* that should be treat as call instead of USSD.
+* In spec 22.030 Figure 3.5.3.2 it define short string except 2 digit starting
+* with a '1' shall treat as USSD. However,there might be some special operator requirement
* ex: "86" is a operator service call number
* PARAMETERS
* kal_uint8 c1
-* kal_uint8 c2
+* kal_uint8 c2
* kal_uint8 length
* RETURNS
* KAL_TRUE or KAL_FALSE
@@ -341,12 +341,12 @@
* FUNCTION
* custom_idle_string_as_call()
* DESCRIPTION
-* This function is used to define specific string input in idle screen
+* This function is used to define specific string input in idle screen
* that should be treat as call instead of USSD.
-* This check is prior to the spec 22.030 Figure 3.5.3.2
+* This check is prior to the spec 22.030 Figure 3.5.3.2
*
* PARAMETERS
-* kal_uint8 *str
+* kal_uint8 *str
* kal_uint8 length
* RETURNS
* KAL_TRUE or KAL_FALSE
@@ -364,22 +364,22 @@
|| (kal_mem_cmp(str,"#0",length) == 0))) // "#0 SEND"
|| ((length == 3) && ((kal_mem_cmp(str,"411",length) == 0) // "411 SEND"
|| (kal_mem_cmp(str,"*08",length) == 0) // "*08 SEND"
- || ((str[0] == '#')
- && (str[1] == '#')
+ || ((str[0] == '#')
+ && (str[1] == '#')
&& custom_is_digit(str[2])))) // "##<1 digit> SEND"
|| ((length == 4) && ((str[0] == '*') || (str[0] == '#'))
- && custom_is_digit(str[1])
- && custom_is_digit(str[2])
+ && custom_is_digit(str[1])
+ && custom_is_digit(str[2])
&& custom_is_digit(str[3])) // "*<3 digits> SEND" or "#<3 digits> SEND"
- || ((length == 5) && (str[0] == '*')
- && custom_is_digit(str[1])
- && custom_is_digit(str[2])
- && custom_is_digit(str[3])
+ || ((length == 5) && (str[0] == '*')
+ && custom_is_digit(str[1])
+ && custom_is_digit(str[2])
+ && custom_is_digit(str[3])
&& custom_is_digit(str[4])) // "*<4 digits> SEND"
- || ((length == 5) && (str[0] == '#')
- && custom_is_digit(str[1])
- && custom_is_digit(str[2])
- && custom_is_digit(str[3])
+ || ((length == 5) && (str[0] == '#')
+ && custom_is_digit(str[1])
+ && custom_is_digit(str[2])
+ && custom_is_digit(str[3])
&& custom_is_digit(str[4])
&& custom_is_digit(str[5])) // "#<5 digits> SEND"
|| ((length == 9) && (str[0] == '*') && (str[1] == '*')
@@ -852,13 +852,13 @@
/* [Operator requirement]
- * If Idea and Vodafone is in the same circle in India, even though the reigistered PLMN
+ * If Idea and Vodafone is in the same circle in India, even though the reigistered PLMN
* is not contained in HPLMN specified by SIM card, UE should still consider it home */
if (KAL_TRUE == is_idea_vodafone_in_India_same_circle(plmn, mcc_mnc))
{
custom_is_on_hplmn = KAL_TRUE;
}
-
+
/* [Operator requirement] H3G Denmark and TDC
* if H3G SIM card MCC+MNC is 23806 and current TDC PLMN is 23801/23810. Treat as home PLMN. not consider roaming PLMN */
@@ -870,19 +870,19 @@
}
}
- /* [Operator requirement]
+ /* [Operator requirement]
* For AT&T Sim cards in Mexico (), if device registers on 334 03 or 334 020, UE should consider it as home.
*/
if ((kal_mem_cmp(mcc_mnc,"33405",5) == 0) || (kal_mem_cmp(mcc_mnc,"334050",6) == 0) || (kal_mem_cmp(mcc_mnc,"334090",6) == 0))
{
- if ((kal_mem_cmp(plmn,"33405",5) == 0) || (kal_mem_cmp(plmn,"334050",6) == 0) || (kal_mem_cmp(plmn,"334090",6) == 0)
+ if ((kal_mem_cmp(plmn,"33405",5) == 0) || (kal_mem_cmp(plmn,"334050",6) == 0) || (kal_mem_cmp(plmn,"334090",6) == 0)
|| (kal_mem_cmp(plmn,"33403",5) == 0) || (kal_mem_cmp(plmn,"334020",6) == 0))
{
custom_is_on_hplmn = KAL_TRUE;
}
}
- /* [Operator requirement]
+ /* [Operator requirement]
* Spain Tuenti: SIM 21405 & register 21407 should be regarded as home.
*/
if (kal_mem_cmp(mcc_mnc,"21405",5) == 0)
@@ -892,8 +892,8 @@
custom_is_on_hplmn = KAL_TRUE;
}
}
-
- /* [Operator requirement]
+
+ /* [Operator requirement]
* Sprint-TMO: SIM 310120/312530 & register 310120/312530 should be regarded as home.
*/
if ((kal_mem_cmp(mcc_mnc,"310120",6) == 0) || (kal_mem_cmp(mcc_mnc,"312530",6) == 0))
@@ -913,13 +913,13 @@
custom_is_on_hplmn = KAL_TRUE;
}
}
- /* [Operator requirement] Canada
- * if SIM card MCC - 302 and any Canada PLMN (MCC-302)
+ /* [Operator requirement] Canada
+ * if SIM card MCC - 302 and any Canada PLMN (MCC-302)
* Treat as home PLMN not consider roaming PLMN.
* except simcard is 302/490(Shaw), 302/490(Freedom), 302/270(Eastlink)*/
if (!((kal_mem_cmp(mcc_mnc,"302490",6) == 0)||(kal_mem_cmp(mcc_mnc,"302270",6) == 0)))
- {
+ {
if((kal_mem_cmp(mcc_mnc,"302",3) == 0)&&(kal_mem_cmp(plmn,"302",3) == 0))
{
custom_is_on_hplmn = KAL_TRUE;
@@ -944,7 +944,7 @@
* DESCRIPTION
* In CPHS spec , it define a file to record if Call Forwarding Uncoditional (CFU) is active.
* If CFU is active , ME show indicate user with CFU icon in MMI.
-* However, not all the SIM card havs this CFU flag file.
+* However, not all the SIM card havs this CFU flag file.
* So one SIM card might be with CFU activaed in ME A,but fail to display CFU icon when it is inserted in the ME B.
*
* To dispaly CFU icon correctly,MTK solution might try to query CFU status right after first camping on to NW.
@@ -954,15 +954,15 @@
* none
* RETURNS
* KAL_FALSE (default) is to query CFU status for the first time camping on to NW
-* KAL_TRUE is to disable the trick
+* KAL_TRUE is to disable the trick
*************************************************************************************************/
kal_uint8 custom_disable_query_cfu_status(void)
{
#if defined(__TC01__) || defined(__SS_CPHS_QUERY_CFU_DISABLE__)
- return KAL_TRUE;
-#else
- return KAL_FALSE;
-#endif
+ return KAL_TRUE;
+#else
+ return KAL_FALSE;
+#endif
}
/***********************************************************************************************
@@ -971,7 +971,7 @@
* DESCRIPTION
* In CPHS spec , it define a file to record if Call Forwarding Uncoditional (CFU) is active.
* If CFU is active , ME show indicate user with CFU icon in MMI.
-* However, not all the SIM card havs this CFU flag file.
+* However, not all the SIM card havs this CFU flag file.
* So one SIM card might be with CFU activaed in ME A,but fail to display CFU icon when it is inserted in the ME B.
*
* To dispaly CFU icon correctly,MTK solution might try to query CFU status right after first camping on to NW always.
@@ -987,10 +987,10 @@
kal_uint8 custom_cphs_query_cfu_status_always(void)
{
#if defined(__SS_CPHS_QUERY_CFU_ALWAYS__)
- return KAL_TRUE;
-#else
- return KAL_FALSE;
-#endif
+ return KAL_TRUE;
+#else
+ return KAL_FALSE;
+#endif
}
/***********************************************************************************************
@@ -1008,9 +1008,9 @@
kal_uint8 custom_cfu_store_ftn_in_efcfis(void)
{
#ifdef __CFU_FTN_IN_EFCFIS__
- return KAL_TRUE;
+ return KAL_TRUE;
#else
- return KAL_FALSE;
+ return KAL_FALSE;
#endif
}
@@ -1024,7 +1024,7 @@
* none
* RETURNS
* KAL_FALSE is to prevent AT+EGMR to write IMEI
-* KAL_TRUE (default) is to allow the functionality
+* KAL_TRUE (default) is to allow the functionality
*************************************************************************************************/
kal_uint8 custom_allow_at_write_imei(void)
{
@@ -1043,7 +1043,7 @@
* FUNCTION
* custom_sms_fdn_check_da_only()
* DESCRIPTION
-* According to spec 22.101 A.25 ,
+* According to spec 22.101 A.25 ,
* For SMS,both SCA(Service Center address) and DA(Destination Address) shall be checked when FDN is enabled
* There might be special requirement for sms fdn check to check DA only.
*
@@ -1087,7 +1087,7 @@
* DESCRIPTION
* This function is used to convert battery_voltage(battery_level_enum)
* to cind value 0~5 (battery cind range 0~5 is defined in HFP and 27.007 spec)
-* battery cind_value is the response of AT+CIND or +CIEV:<battery_ind>,<cind_value>
+* battery cind_value is the response of AT+CIND or +CIEV:<battery_ind>,<cind_value>
*
* PARAMETERS
* battery_voltage IN
@@ -1113,7 +1113,7 @@
cind_value = 0;
}
- return cind_value;
+ return cind_value;
}
/*****************************************************************************
@@ -1122,17 +1122,17 @@
* DESCRIPTION
* This function is to check if the chars of the input str are valid or not
* PARAMETERS
- * number [IN] string being checked
+ * number [IN] string being checked
* RETURNS
* KAL_TRUE or KAL_FALSE
*****************************************************************************/
kal_bool l4_custom_is_phb_valid_char(kal_uint8 ch)
{
- if ( !((ch >= '0' && ch <= '9') || ch == 'p' ||
+ if ( !((ch >= '0' && ch <= '9') || ch == 'p' ||
ch == custom_wild_char() || ch == custom_auto_dtmf_modifier() ||
ch == '+' || ch == '*' || ch == '#') )
{
- return KAL_FALSE;
+ return KAL_FALSE;
}
return KAL_TRUE;
@@ -1221,11 +1221,11 @@
* DESCRIPTION
* This function is to configure "if we allow gprs dialup when MS is busy(in call)"
* in Bluetooth SPP port
-* If return KAL_TRUE, we will response 'BUSY' for ATD*99# when MS busy (in call)
+* If return KAL_TRUE, we will response 'BUSY' for ATD*99# when MS busy (in call)
* If return KAL_FALSE, we allow ATD*99# to be processed when MS is in call
*
* For BQB DUN testcase APS/BV/02.
-* It request MS to response 'BUSY' for GPRS dialup(ATD*99#) when MS is in call.
+* It request MS to response 'BUSY' for GPRS dialup(ATD*99#) when MS is in call.
*
* PARAMETERS
* none
@@ -1243,11 +1243,11 @@
* FUNCTION
* custom_check_keypad_code
* DESCRIPTION
- * This function is used to convert the input of AT command (ex. AT+CKPD)
+ * This function is used to convert the input of AT command (ex. AT+CKPD)
* to the Device Key
* Customer can use this function to override the meaning of a key from AT command
* If customer didn't handle the key, we will check our default key mapping
- *
+ *
* PARAMETERS
* key [IN] input keys from command
* keycode [OUT] a output device key which is converted from key
@@ -1314,8 +1314,8 @@
* get the supported bands of the protocol
*
* PARAMETERS
-* gsm_bands returned gsm bands
-* umts_bands returned umts bands
+* gsm_bands returned gsm bands
+* umts_bands returned umts bands
*
* RETURNS
* none
@@ -1323,23 +1323,23 @@
void custom_get_supported_bands(kal_uint32 *gsm_bands, kal_uint32 *umts_bands, kal_uint32 *lte_band, kal_uint32 *nr_band, kal_uint32 *nsa_band)
{
*gsm_bands = 0
- #if defined(__EGSM900__)
- | 0x02 //BAND_900
+ #if defined(__EGSM900__)
+ | 0x02 //BAND_900
#endif
- #if defined(__DCS1800__)
- | 0x08 //BAND_1800
- #endif
- #if defined(__GSM850__)
- | 0x80 //BAND_850
- #endif
- #if defined(__PCS1900__)
- | 0x10 //BAND_1900
- #endif
+ #if defined(__DCS1800__)
+ | 0x08 //BAND_1800
+ #endif
+ #if defined(__GSM850__)
+ | 0x80 //BAND_850
+ #endif
+ #if defined(__PCS1900__)
+ | 0x10 //BAND_1900
+ #endif
;
#if defined(__MTK_TARGET__)
#if !defined (L1_NOT_PRESENT)
- kal_char band_dbg_custom_str[100];
+ kal_char band_dbg_custom_str[100];
// *gsm_bands = L1D_GetBandSupport_PCore();
*gsm_bands = L1D_UeBandCapability();
kal_sprintf(band_dbg_custom_str, "custom_get_supported_bands(), L1D_GetBandSupport_PCore(): 0x%x\n\r", *gsm_bands);
@@ -1349,13 +1349,13 @@
if(KAL_TRUE == gmss_is_tdscdma_mode_activated(l4c_current_mod_id - MOD_L4C))
{
- *umts_bands = 0
+ *umts_bands = 0
#if defined(__UMTS_TDD128_BAND_A__)
- | 0x00000001
- #endif
+ | 0x00000001
+ #endif
#if defined(__UMTS_TDD128_BAND_F__)
- | 0x00000020
- #endif
+ | 0x00000020
+ #endif
;
}
@@ -1387,7 +1387,7 @@
//5G
#ifdef __MTK_TARGET__
#ifdef __NR_RAT__
-
+
if (nsa_band != NULL && nr_band != NULL) // for +EPBSEH cmd
{
//<nr_band> = rf nr band, <nsa_band> = rf endc band
@@ -1396,7 +1396,7 @@
else if (nr_band != NULL) // for existing cmds other than +EPBSEH
{
// <nr_band> = (rf nr band | rf endc band)
- mrs_nras_max_band_cap_for_user((mrs_nr_band_list_struct*)nr_band);
+ mrs_nras_max_band_cap_for_user((mrs_nr_band_list_struct*)nr_band);
}
#endif
#endif
@@ -1414,7 +1414,7 @@
#define CUSTOM_3G_SIGNAL_LEVEL_2_MAX_STRENGTH (11)
#define CUSTOM_3G_SIGNAL_LEVEL_3_MAX_STRENGTH (14)
-/* 20101028: Adjust TDD RSCP to CSQ mapping */
+/* 20101028: Adjust TDD RSCP to CSQ mapping */
#ifdef __UMTS_TDD128_MODE__
#define CUSTOM_3G_TDD_RSCP_THRESHOLD_1 (-51)
#define CUSTOM_3G_TDD_RSCP_THRESHOLD_2 (-75)
@@ -1455,9 +1455,9 @@
level = 31;
}
else
- {
- level = (strength_in_dbm + 113) / 2;
- }
+ {
+ level = (strength_in_dbm + 113) / 2;
+ }
return level;
}
@@ -1467,12 +1467,12 @@
*
* DESCRIPTION
* This function is used to convert signal level to raw qdBm according to 3GPP 27.007 +CESQ definnition
-*
+*
* PARAMETERS
* none
*
* RETURNS
-*
+*
*****************************************************************************/
kal_int32 custom_signal_strength_cesq_level_to_raw(l4_cesq_param_enum type, kal_uint8 signal_level)
{
@@ -1548,12 +1548,12 @@
*
* DESCRIPTION
* This function is used to convert qdBm to signal level according to 3GPP 27.007 +CESQ definnition
-*
+*
* PARAMETERS
* none
*
* RETURNS
-*
+*
*****************************************************************************/
kal_uint8 custom_signal_strength_raw_to_cesq_level(l4_cesq_param_enum type, kal_int32 raw_in_qdbm)
{
@@ -1734,7 +1734,7 @@
*
* PARAMETERS
* kal_uint8 rat radio access technology (2G/3G)
-* kal_int32 rssi_in_qdbm 2G/3G raw data
+* kal_int32 rssi_in_qdbm 2G/3G raw data
* kal_int32 RSCP_in_qdbm 3G raw data
* kal_int32 EcN0_in_qdbm 3G raw data
* kal_uint8 ber 2G/3G raw data
@@ -1744,8 +1744,8 @@
* level value: ranged from 0 to 31, 99 means invalid/un-available
*****************************************************************************/
kal_uint8 custom_signal_strength_raw_to_csq_level(
- kal_uint8 rat,
- kal_int32 rssi_in_qdbm,
+ kal_uint8 rat,
+ kal_int32 rssi_in_qdbm,
kal_int32 RSCP_in_qdbm,
kal_int32 EcN0_in_qdbm,
kal_uint8 ber,
@@ -1765,10 +1765,10 @@
level = custom_signal_strength_in_ts27007(rssi_in_qdbm / 4);
}
}
-#ifdef __UMTS_RAT__
+#ifdef __UMTS_RAT__
else if (rat == RAT_UMTS)
{
- #ifdef __UMTS_TDD128_MODE__ /* 3G TDD conversion */
+ #ifdef __UMTS_TDD128_MODE__ /* 3G TDD conversion */
{
kal_int32 RSCP = RSCP_in_qdbm / 4;
@@ -1778,39 +1778,39 @@
}
else if (RSCP >= CUSTOM_3G_TDD_RSCP_THRESHOLD_2)
{
- level = (CUSTOM_3G_TDD_CSQ_LEVEL_2+1) +
- (CUSTOM_3G_TDD_CSQ_LEVEL_1-CUSTOM_3G_TDD_CSQ_LEVEL_2-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_2) /
+ level = (CUSTOM_3G_TDD_CSQ_LEVEL_2+1) +
+ (CUSTOM_3G_TDD_CSQ_LEVEL_1-CUSTOM_3G_TDD_CSQ_LEVEL_2-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_2) /
(CUSTOM_3G_TDD_RSCP_THRESHOLD_1-CUSTOM_3G_TDD_RSCP_THRESHOLD_2);
}
else if (RSCP >= CUSTOM_3G_TDD_RSCP_THRESHOLD_3)
{
- level = (CUSTOM_3G_TDD_CSQ_LEVEL_3+1) +
- (CUSTOM_3G_TDD_CSQ_LEVEL_2-CUSTOM_3G_TDD_CSQ_LEVEL_3-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_3) /
+ level = (CUSTOM_3G_TDD_CSQ_LEVEL_3+1) +
+ (CUSTOM_3G_TDD_CSQ_LEVEL_2-CUSTOM_3G_TDD_CSQ_LEVEL_3-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_3) /
(CUSTOM_3G_TDD_RSCP_THRESHOLD_2-CUSTOM_3G_TDD_RSCP_THRESHOLD_3-1);
}
else if (RSCP >= CUSTOM_3G_TDD_RSCP_THRESHOLD_4)
{
- level = (CUSTOM_3G_TDD_CSQ_LEVEL_4+1) +
- (CUSTOM_3G_TDD_CSQ_LEVEL_3-CUSTOM_3G_TDD_CSQ_LEVEL_4-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_4) /
+ level = (CUSTOM_3G_TDD_CSQ_LEVEL_4+1) +
+ (CUSTOM_3G_TDD_CSQ_LEVEL_3-CUSTOM_3G_TDD_CSQ_LEVEL_4-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_4) /
(CUSTOM_3G_TDD_RSCP_THRESHOLD_3-CUSTOM_3G_TDD_RSCP_THRESHOLD_4-1);
}
else if (RSCP >= CUSTOM_3G_TDD_RSCP_THRESHOLD_5)
{
- level = (CUSTOM_3G_TDD_CSQ_LEVEL_5+1) +
- (CUSTOM_3G_TDD_CSQ_LEVEL_4-CUSTOM_3G_TDD_CSQ_LEVEL_5-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_5) /
+ level = (CUSTOM_3G_TDD_CSQ_LEVEL_5+1) +
+ (CUSTOM_3G_TDD_CSQ_LEVEL_4-CUSTOM_3G_TDD_CSQ_LEVEL_5-1) * (RSCP-CUSTOM_3G_TDD_RSCP_THRESHOLD_5) /
(CUSTOM_3G_TDD_RSCP_THRESHOLD_4-CUSTOM_3G_TDD_RSCP_THRESHOLD_5-1);
}
else
{
level = 0;
- }
+ }
}
#else /* 3G FDD conversion */
/* Alva 20081210: signal strength = (Ec/N0 + 25) + (RSCP + 120) / 8, range: 0 ~ 31 */
level =
- ((EcN0_in_qdbm / 4) + 25) +
+ ((EcN0_in_qdbm / 4) + 25) +
(((RSCP_in_qdbm / 4) + 120) / 8);
if (level > 31)
@@ -1818,20 +1818,20 @@
level = 31;
}
- /* Gordon 20090604: To reflect the real network environment more accurately,
- * based on the experiment results, we modify the calculated signal level for MMI display
- * When RSCP < -72 and the original signal strength > 9,
+ /* Gordon 20090604: To reflect the real network environment more accurately,
+ * based on the experiment results, we modify the calculated signal level for MMI display
+ * When RSCP < -72 and the original signal strength > 9,
* a new formula is defined to modify the original signal strength.
* More detailed information are shown in the excel file for the new formula */
if (level >= (CUSTOM_3G_SIGNAL_LEVEL_1_MAX_STRENGTH+1))
{
kal_int32 RSCP_in_dbm = RSCP_in_qdbm / 4;
- if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_3_THRESHOLD)
+ if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_3_THRESHOLD)
{
level = CUSTOM_3G_SIGNAL_LEVEL_1_MAX_STRENGTH;
}
- else if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_2_THRESHOLD)
+ else if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_2_THRESHOLD)
{
if ((CUSTOM_3G_SIGNAL_LEVEL_3_MAX_STRENGTH) >= level)
{
@@ -1839,10 +1839,10 @@
}
else
{
- level=CUSTOM_3G_SIGNAL_LEVEL_2_MAX_STRENGTH;
+ level=CUSTOM_3G_SIGNAL_LEVEL_2_MAX_STRENGTH;
}
}
- else if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_1_THRESHOLD)
+ else if (RSCP_in_dbm < CUSTOM_3G_SIGNAL_LEVEL_MINUS_1_THRESHOLD)
{
if (CUSTOM_3G_SIGNAL_LEVEL_2_MAX_STRENGTH >= level)
{
@@ -1854,7 +1854,7 @@
}
else
{
- level=CUSTOM_3G_SIGNAL_LEVEL_3_MAX_STRENGTH;
+ level=CUSTOM_3G_SIGNAL_LEVEL_3_MAX_STRENGTH;
}
}
}
@@ -1894,8 +1894,8 @@
* level value: ranges from 0 to 5
*****************************************************************************/
kal_uint8 custom_signal_strength_raw_to_ciev_signal_level(
- kal_uint8 rat,
- kal_int32 rssi_in_qdbm,
+ kal_uint8 rat,
+ kal_int32 rssi_in_qdbm,
kal_int32 RSCP_in_qdbm,
kal_int32 EcN0_in_qdbm,
kal_uint8 ber,
@@ -1957,8 +1957,8 @@
*
* RETURNS
* A kal_uint8 value 0 ~ 5 indicating the ignorable difference bwtween two <val>
-* in +CIEV:<signal>,<val>. If the return is larger than 0, the <val> different
-* to the last reported +CIEV Signal Strength <val> which is smaller then the
+* in +CIEV:<signal>,<val>. If the return is larger than 0, the <val> different
+* to the last reported +CIEV Signal Strength <val> which is smaller then the
* return would be ignored.
* If the return value is 0, the +CIEV Signal Strength URC is reported as usual
*****************************************************************************/
@@ -2002,15 +2002,15 @@
* cmd_id [IN] AT command enum defined in the ps\l4\atci\include\at_cmd.def
*
* RETURNS
-* KAL_TRUE: could be executed,
+* KAL_TRUE: could be executed,
* KAL_FLASE: could not be executed
*****************************************************************************/
kal_bool custom_check_is_atcmd_allowed(rmmi_cmd_id_enum cmd_id)
-{
- /* the following example disallowed executing
+{
+ /* the following example disallowed executing
* the command AT+EADP
*/
- /*if (cmd_id == RMMI_CMD_ATEADP)
+ /*if (cmd_id == RMMI_CMD_ATEADP)
{
return KAL_FALSE;
}*/
@@ -2031,7 +2031,7 @@
* PARAMETERS
* none
*****************************************************************************/
-kal_uint8 custom_l4c_gprs_when_needed_timer(void)
+kal_uint8 custom_l4c_gprs_when_needed_timer(void)
{
const kal_uint8 GPRS_DETACH_TIMER = 20;
return GPRS_DETACH_TIMER;
@@ -2082,11 +2082,11 @@
{
kal_uint8 mapping_qci;
-#define MTK_OPERATOR_SPECIFIC_QCI_MAP_TO_GBR_QCI 4
+#define MTK_OPERATOR_SPECIFIC_QCI_MAP_TO_GBR_QCI 4
#define MTK_OPERATOR_SPECIFIC_QCI_MAP_TO_NON_GBR_QCI 9
- // GBR
+ // GBR
if ( eps_qos->max_bitrate_up_lnk != 0
|| eps_qos->max_bitrate_down_lnk != 0
|| eps_qos->guarntd_bit_rate_up_lnk != 0
@@ -2101,7 +2101,7 @@
|| eps_qos->ext2_guarntd_bit_rate_down_lnk != 0
) {
mapping_qci = MTK_OPERATOR_SPECIFIC_QCI_MAP_TO_GBR_QCI;
- }
+ }
// non-GBR
else {
mapping_qci = MTK_OPERATOR_SPECIFIC_QCI_MAP_TO_NON_GBR_QCI;
@@ -2137,7 +2137,7 @@
*
* DESCRIPTION
* This function is used to transform the TON/NPI of SAT send SS/CALL from SIM
-*
+*
* PARAMETERS
* raw_data [IN] raw data from SIM
*
@@ -2178,7 +2178,7 @@
{
kal_uint8 out_buff[100];
-#ifdef __AMR_WB_FOR_T_MOBILE__
+#ifdef __AMR_WB_FOR_T_MOBILE__
/* *is_gsm_white_list =KAL_TRUE; means that MS support AMR_WB in 2G rat of the selected PLMN*/
/*check 2G white_list plmn [byte2:mcc1,mcc2; byte1:mcc3,mnc1; byte0:mnc2,mnc3]*/
switch(plmn_id)
@@ -2188,11 +2188,11 @@
case 0x0046002f:
*is_gsm_white_list =KAL_TRUE;
break;
- */
+ */
default:
*is_gsm_white_list =KAL_FALSE;
break;
- }
+ }
#else
#ifdef __AMR_GSM_IOT_SUPPORT__
switch(plmn_id)
@@ -2202,7 +2202,7 @@
case 0x0046002f:
*is_gsm_white_list =KAL_TRUE;
break;
- */
+ */
default:
*is_gsm_white_list = KAL_TRUE;
break;
@@ -2210,7 +2210,7 @@
#else
switch(plmn_id)
{
- /*Please add white plmn list as specified below:
+ /*Please add white plmn list as specified below:
case 0x0022201f:
case 0x0022210f:
case 0x0022288f:
@@ -2218,31 +2218,31 @@
*is_gsm_white_list =KAL_TRUE;
break;
*/
-
+
default:
*is_gsm_white_list =KAL_FALSE;
break;
}
-#endif
-#endif
+#endif
+#endif
#ifdef __OP11__
- /* *is_umts_white_list =KAL_TRUE; means that MS support AMR_WB in 3G rat of the selected PLMN*/
+ /* *is_umts_white_list =KAL_TRUE; means that MS support AMR_WB in 3G rat of the selected PLMN*/
/*check UMTS white_list plmn [byte2:mcc1,mcc2; byte1:mcc3,mnc1; byte0:mnc2,mnc3]*/
- switch(plmn_id)
+ switch(plmn_id)
{
- /*Please add white plmn list as specified below:
+ /*Please add white plmn list as specified below:
case 0x0046000f:
case 0x0046002f:
*is_umts_white_list =KAL_TRUE;
break;
- */
+ */
default:
*is_umts_white_list =KAL_FALSE;
break;
}
#else
- *is_umts_white_list =sbp_query_md_feature_by_ps(SBP_AMR_WB_UMTS, ps_index);
-#endif
+ *is_umts_white_list =sbp_query_md_feature_by_ps(SBP_AMR_WB_UMTS, ps_index);
+#endif
kal_sprintf((kal_char*)out_buff, " GSM white list = %d, UMTS white list = %d, PLMN = %x", *is_gsm_white_list, *is_umts_white_list,plmn_id);
tst_sys_trace((kal_char*)out_buff);
@@ -2327,7 +2327,7 @@
* FUNCTION
* cc_get_SUPPORTED_2G_CODEC_NUM
* DESCRIPTION
-* This function is used to get the MAX Codec size customer defined
+* This function is used to get the MAX Codec size customer defined
*
* PARAMETERS
*
@@ -2432,7 +2432,7 @@
*
* RETURNS
* kal_uint16
-*
+*
*****************************************************************************/
kal_uint16 custom_config_cc_disc_error_cause(kal_uint16 **cc_disc_error_cause)
{
@@ -2497,7 +2497,7 @@
#define FD_MONITOR_SLOT 10
/* the inactivity timer table. unit is 0.1 sec */
-kal_uint16 fd_timer[MAX_SIM_NUM][MAX_SUPPORTED_FD_TIMER_ID] =
+kal_uint16 fd_timer[MAX_SIM_NUM][MAX_SUPPORTED_FD_TIMER_ID] =
{
{
/* timer id(b8~b1) meaning
@@ -2543,7 +2543,7 @@
* FUNCTION
* custom_get_fd_monitor_slot()
* DESCRIPTION
-*
+*
* PARAMETERS
* none
* RETURNS
@@ -2559,7 +2559,7 @@
* FUNCTION
* custom_get_fd_timer_id()
* DESCRIPTION
-* This function is used to return the timer ID according to input
+* This function is used to return the timer ID according to input
* parameters
* PARAMETERS
* conditions
@@ -2583,7 +2583,7 @@
* custom_set_fd_timer()
* DESCRIPTION
* This function is used to define time duration of Fast Dormancy to monitor
-* PS data transfer. The unit is 0.1 sec.
+* PS data transfer. The unit is 0.1 sec.
* Current default value is 40 sec (i.e. 400 x 0.1 sec)
* PARAMETERS
* none
@@ -2654,11 +2654,11 @@
* Table reconfig_mod_info_tbl is used to define the attribute of each module.
* It can define the module which want to regist the dynamic reconfigure procedure in 1st column.
* It can define the SAP which is used for ILM sending. (In 2nd column)
- * It can define the refingure mode that the module is interested. (In 3rd column)
+ * It can define the refingure mode that the module is interested. (In 3rd column)
* Note it's defined as bit-MAP such that it can define multiple modes.
* It can define the gemini module type which will automatically send to MOD_XXX_n, n= 1, 2, 3...
*/
-reconfigure_module_info_struct reconfig_mod_info_tbl[] =
+reconfigure_module_info_struct reconfig_mod_info_tbl[] =
{
{MOD_TCM, L4C_ME_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
{MOD_MM, L4C_ME_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
@@ -2667,9 +2667,9 @@
{MOD_D2PM, L4C_ME_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
{MOD_PHB, L4C_ME_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
{MOD_RAC, RAC_L4C_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
- {MOD_SMSAL, SMSAL_L4C_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
+ {MOD_SMSAL, SMSAL_L4C_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
#ifdef __IMS_SUPPORT__
-#ifdef __MULTIPLE_IMS_SUPPORT__
+#ifdef __MULTIPLE_IMS_SUPPORT__
{MOD_IMC, L4C_ME_SAP, RECONFIG_SIM_SWITCH, CFG_GEMINI_MOD, NULL},
#endif /* __MULTIPLE_IMS_SUPPORT__ */
#endif
@@ -2737,7 +2737,7 @@
sml_lock_rule_enum lock_rule = sml_query_sml_lock_rule();
link_sml_check_enum checking_rule = LINK_SML_CHECK_NO_VALID_SIM_EXIST;
- if ((lock_rule == SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT) ||
+ if ((lock_rule == SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT) ||
(lock_rule == SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT_SRVLCK) ||
(lock_rule == SML_LOCK_RULE_LINK_LOCK_RJIO_LOCK))
{
@@ -2747,13 +2747,13 @@
if (i != updated_sim_slot)
{
target_sim_protocol = l4c_gemini_get_switched_sim_id(i);
-
+
if (l4c_check_protocol_supported(target_sim_protocol) == KAL_FALSE)
- {
+ {
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] PS_%d is Not Supported",
+ "[LINK_SML] PS_%d is Not Supported",
target_sim_protocol);
-
+
continue;
}
@@ -2790,11 +2790,11 @@
}
/* current SIM is not in SIM1 slot */
else if (l4c_check_protocol_supported(target_sim_protocol) == KAL_FALSE)
- {
+ {
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] PS_%d is Not Supported",
+ "[LINK_SML] PS_%d is Not Supported",
target_sim_protocol);
-
+
checking_rule = LINK_SML_CHECK_NO_VALID_SIM_EXIST;
}
else if (sml_query_legal_service(target_sim_protocol) == SML_RULE_FULL_SERVICE)
@@ -2821,11 +2821,11 @@
}
/* current SIM is not in SIM2 slot */
else if (l4c_check_protocol_supported(target_sim_protocol) == KAL_FALSE)
- {
+ {
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] PS_%d is Not Supported",
+ "[LINK_SML] PS_%d is Not Supported",
target_sim_protocol);
-
+
checking_rule = LINK_SML_CHECK_NO_VALID_SIM_EXIST;
}
else if (sml_query_legal_service(target_sim_protocol) == SML_RULE_FULL_SERVICE)
@@ -2848,13 +2848,13 @@
if (i != updated_sim_slot)
{
target_sim_protocol = l4c_gemini_get_switched_sim_id(i);
-
+
if (l4c_check_protocol_supported(target_sim_protocol) == KAL_FALSE)
- {
+ {
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] PS_%d is Not Supported",
+ "[LINK_SML] PS_%d is Not Supported",
target_sim_protocol);
-
+
continue;
}
@@ -2862,8 +2862,8 @@
{
/* Valid SIM detected, return and update current card to valid SIM */
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] SIM%d(Slot%d) is Valid SIM",
- target_sim_protocol,
+ "[LINK_SML] SIM%d(Slot%d) is Valid SIM",
+ target_sim_protocol,
i);
return LINK_SML_CHECK_ALL_SIM_LOCKED;
@@ -2873,8 +2873,8 @@
/* this slot is still waiting verification result,
return and update current card to BUSY */
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] SIM%d(Slot%d) is still BUSY",
- target_sim_protocol,
+ "[LINK_SML] SIM%d(Slot%d) is still BUSY",
+ target_sim_protocol,
i);
return LINK_SML_CHECK_NO_VALID_SIM_EXIST;
}
@@ -2886,23 +2886,23 @@
if (LINK_SML_CHECK_ALL_SIM_LOCKED == checking_rule)
{
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] All locked, control-SIM at PS_%d(Slot%d) is Invalid SIM",
+ "[LINK_SML] All locked, control-SIM at PS_%d(Slot%d) is Invalid SIM",
target_sim_protocol,
- l4c_gemini_get_actual_sim_id(target_sim_protocol));
+ l4c_gemini_get_actual_sim_id(target_sim_protocol));
}
else if (LINK_SML_CHECK_WAITING == checking_rule)
{
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] Waiting, control-SIM at PS_%d(Slot%d) is still BUSY",
+ "[LINK_SML] Waiting, control-SIM at PS_%d(Slot%d) is still BUSY",
target_sim_protocol,
l4c_gemini_get_actual_sim_id(target_sim_protocol));
}
else if (LINK_SML_CHECK_VALID_SIM_EXIST == checking_rule)
{
kal_prompt_trace(kal_get_active_module_id(),
- "[LINK_SML] Unlocked, control-SIM at PS_%d(Slot%d) is Valid SIM",
- target_sim_protocol,
- l4c_gemini_get_actual_sim_id(target_sim_protocol));
+ "[LINK_SML] Unlocked, control-SIM at PS_%d(Slot%d) is Valid SIM",
+ target_sim_protocol,
+ l4c_gemini_get_actual_sim_id(target_sim_protocol));
}
else // LINK_SML_CHECK_NO_VALID_SIM_EXIST
{
@@ -2914,7 +2914,7 @@
}
kal_bool custom_check_link_sml_legal_sim_rule(kal_uint8 updated_sim_slot)
-{
+{
sml_lock_rule_enum lock_rule = sml_query_sml_lock_rule();
if ((lock_rule == SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT) ||
@@ -3033,7 +3033,7 @@
/* unlock all SIM if Current SIM is valid */
for (i = 0; i < MAX_SIM_NUM; i++)
{
- if ((pending_password_tbl[i] == ID_PH_FSIM_PIN) ||
+ if ((pending_password_tbl[i] == ID_PH_FSIM_PIN) ||
(pending_password_tbl[i] == ID_PH_NET_PIN) ||
(pending_password_tbl[i] == ID_PH_NETSUB_PIN) ||
(pending_password_tbl[i] == ID_PH_SP_PIN) ||
@@ -3333,7 +3333,7 @@
*
* DESCRIPTION
* This function is used to customiz link_SML. Each SIM ME Lock can depend
-* on the status of other SIM. Please modify pending_password_tbl and
+* on the status of other SIM. Please modify pending_password_tbl and
* need_unlock_table according to the updated_sim and updated_type.
*
* PARAMETERS
@@ -3345,8 +3345,8 @@
* RETURNS
* whether the pending password of any SIM is change
*****************************************************************************/
-kal_bool custom_l4c_root_lock_verify(kal_uint8 updated_sim_slot,
- smu_pending_password_id_enum updated_type,
+kal_bool custom_l4c_root_lock_verify(kal_uint8 updated_sim_slot,
+ smu_pending_password_id_enum updated_type,
smu_pending_password_id_enum *pending_password_tbl,
link_sml_valid_sim_enum *real_sim_verify_state_tbl,
kal_uint8 *need_unlock_table)
@@ -3374,11 +3374,11 @@
if (updated_sim_slot == SIM1)
{
kal_uint8 i;
-
+
/* unlock all SIM if SIM1 is valid */
for (i=1; i<MAX_SIM_NUM; i++)
{
- if ((pending_password_tbl[i] == ID_PH_FSIM_PIN) ||
+ if ((pending_password_tbl[i] == ID_PH_FSIM_PIN) ||
(pending_password_tbl[i] == ID_PH_NET_PIN) ||
(pending_password_tbl[i] == ID_PH_NETSUB_PIN) ||
(pending_password_tbl[i] == ID_PH_SP_PIN) ||
@@ -3577,9 +3577,9 @@
* DESCRIPTION
* for AT+EREGCHK to set the method
* PARAMETERS
-*
+*
* RETURNS
-*
+*
*****************************************************************************/
void custom_set_eregchk_method(kal_uint8 cs_method, kal_uint8 ps_method)
{
@@ -3594,9 +3594,9 @@
* DESCRIPTION
* get the setting of AT+EREGCHK
* PARAMETERS
-*
+*
* RETURNS
-*
+*
*****************************************************************************/
void custom_get_eregchk_method(kal_uint8 *cs_method, kal_uint8 *ps_method)
{
@@ -3769,18 +3769,18 @@
* FUNCTION
* custom_query_feature_is_supported()
* DESCRIPTION
-*
+*
* PARAMETERS
-*
+*
* RETURNS
-*
+*
*****************************************************************************/
l4c_feature_support_enum custom_query_feature_is_supported(kal_uint8 feature_id)
{
switch (feature_id)
{
case 0: // L4C CME Error Cade (27.007 ch9)
- return L4C_FEATURE_SUPPORT_LR11;
+ return L4C_FEATURE_SUPPORT_LR11;
case 1: // L4C ipv4v6 cause2 report supported: +CGEV: ME PDN ACT <cid>, <reason> (27.009 ch9)
return L4C_FEATURE_SUPPORT_LR11;
@@ -3847,7 +3847,7 @@
* - We have open market project with sbp_id set to 0 (default)
* But, we still need to enable some operator specific feature according to the inserted SIM card.
* So we provide this function for this kind of project.
-* - Please use this function only when it is needed to enable your operator
+* - Please use this function only when it is needed to enable your operator
* specific SBP feature according to the IMSI under open market project (sbp_id = 0)
* - The returned value is meaningful only when SIM task could get IMSI from the SIM card.
* If your feature need to be enabled before SIM_READY_IND, please don't use this function.
@@ -3888,7 +3888,7 @@
* DESCRIPTION
* TTY call support AMRWB or not
* PARAMETERS
-*
+*
* RETURNS
* KAL_TRUE : TTY supprot AMRWB
* KAL_FALSE : TTY doesn't supprot AMRWB
@@ -3903,9 +3903,9 @@
* FUNCTION
* custom_cc_timer()
* DESCRIPTION
-*
+*
* PARAMETERS
-*
+*
* RETURNS
* ret_timer timer value
*****************************************************************************/
@@ -3939,7 +3939,7 @@
* DESCRIPTION
* Show 4G+ when Scell is configured or activated
* PARAMETERS
-*
+*
* RETURNS
* CA_ICON_BY_CONFIG
* CA_ICON_BY_ACTIVATION
@@ -3961,7 +3961,7 @@
}
#endif
-typedef struct {
+typedef struct {
kal_uint32 mccMnc_range_start;
kal_uint32 mccMnc_range_end;
} rac_plmn_table;
@@ -3969,25 +3969,25 @@
/*
* provide a table to no change UE_MODE when enter cause18 plmn
*
- * LTE NAS NOTE 1: The UE may transit from CS/PS mode 1 to PS mode 1 or from CS/PS mode 2 to PS mode 2 if "CS domain not available" is received.
- * After the transition to PS mode 1 or PS mode 2 due to "CS domain not available", the UE can transit back to CS/PS mode 1 or CS/PS mode 2,
+ * LTE NAS NOTE 1: The UE may transit from CS/PS mode 1 to PS mode 1 or from CS/PS mode 2 to PS mode 2 if "CS domain not available" is received.
+ * After the transition to PS mode 1 or PS mode 2 due to "CS domain not available", the UE can transit back to CS/PS mode 1 or CS/PS mode 2,
* e.g. due to change of PLMN which is not in the list of the equivalent PLMNs.
*/
-const static rac_plmn_table s_custom_cause18_table[] =
+const static rac_plmn_table s_custom_cause18_table[] =
{
- {0, 0}, // default never match
+ {0, 0}, // default never match
//{46000, 46000}, // China Mobile
};
kal_bool custom_cause18_not_change_uemode_by_plmn(kal_uint32 u32_plmn_id)
{
- kal_uint32 i;
+ kal_uint32 i;
kal_uint32 table_size = sizeof(s_custom_cause18_table) / sizeof(s_custom_cause18_table[0]);
/* Scan the s_custom_roaming_vdp_table table*/
for(i = 0; i < table_size; i++)
- {
- if ((s_custom_cause18_table[i].mccMnc_range_start <= u32_plmn_id) &&
+ {
+ if ((s_custom_cause18_table[i].mccMnc_range_start <= u32_plmn_id) &&
(s_custom_cause18_table[i].mccMnc_range_end >= u32_plmn_id))
{
// Found in the table
@@ -4000,14 +4000,14 @@
#if defined(__RAC_CHANGE_VDP_BY_ROAMING__)
-typedef struct {
+typedef struct {
rac_plmn_table imsi;
kal_uint8 custom_vdp_setting; // L4_CS_VOICE_ONLY, (CS_only:1 CS_prefer:2 PS_prefer:3 PS_only:4)
} roam_vdp_imsi_table;
-const static roam_vdp_imsi_table s_custom_roaming_vdp_table[] =
+const static roam_vdp_imsi_table s_custom_roaming_vdp_table[] =
{
- {{0, 0}, 1}, // default never match
+ {{0, 0}, 1}, // default never match
//{{26202, 26202}, 1}, // Germany
};
@@ -4031,8 +4031,8 @@
/* Scan the s_custom_roaming_vdp_table table*/
for(i = 0; i < table_size; i++)
- {
- if ((s_custom_roaming_vdp_table[i].imsi.mccMnc_range_start <= mccmnc) &&
+ {
+ if ((s_custom_roaming_vdp_table[i].imsi.mccMnc_range_start <= mccmnc) &&
(s_custom_roaming_vdp_table[i].imsi.mccMnc_range_end >= mccmnc))
{
// Found in the table
@@ -4049,20 +4049,21 @@
#endif // __RAC_CHANGE_VDP_BY_ROAMING__
#if defined(__RAC_CHANGE_VDP_SRVCC_BY_SIM__)
-typedef struct {
+typedef struct {
rac_plmn_table imsi;
kal_uint8 custom_vdp_setting; // L4_CS_VOICE_ONLY, (CS_only:1 CS_prefer:2 PS_prefer:3 PS_only:4)
kal_bool custom_srvcc; // Disable:KAL_FALSE(0),, Enable:KAL_TRUE(1)
} vdp_imsi_table;
-const static vdp_imsi_table s_custom_vdp_table[] =
+const static vdp_imsi_table s_custom_vdp_table[] =
{
- {{0xFEFEFEFE, 0xFEFEFEFE}, 1, KAL_FALSE}, // default never match
+ {{0xFEFEFEFE, 0xFEFEFEFE}, 1, KAL_FALSE}, // default never match
/* ALPS04991665: Titan controls VDP settings for USCC, so we may not need these entries in TC10 */
#ifndef __TC10__
{{311580, 311589}, 1, KAL_TRUE}, // USCC
{{311220, 311229}, 1, KAL_TRUE}, // USCC
#endif
+ {{46015, 46015}, 3, KAL_FALSE}, // CBN
//{{23502, 23502}, 1, KAL_FALSE}, // United Kingdom (EE)
//{{23430, 23434}, 1, KAL_FALSE}, // United Kingdom (EE)
};
@@ -4073,8 +4074,8 @@
* check the custom vdp table by imsi.
*
* if hit, update custom vdp and srvcc
-* if not-hit, update custom vdp only
-*
+* if not-hit, update custom vdp only
+*
* PARAMETERS
* none
* RETURNS
@@ -4100,8 +4101,8 @@
/* Scan the s_vdp_imsi_table table*/
for(i = 0; i < table_size; i++)
- {
- if ((s_custom_vdp_table[i].imsi.mccMnc_range_start <= mccmnc) &&
+ {
+ if ((s_custom_vdp_table[i].imsi.mccMnc_range_start <= mccmnc) &&
(s_custom_vdp_table[i].imsi.mccMnc_range_end >= mccmnc))
{
// Found in the table
@@ -4125,7 +4126,7 @@
* DESCRIPTION
* Check if the change RAT retry for ECC reject is not allowed for the particular PLMN
* PARAMETERS
-*
+*
* RETURNS
* KAL_TRUE - Allow change RAT retry
* KAL_FALSE - Do not allow change RAT retry
@@ -4164,7 +4165,7 @@
* others: SBP ID (ex. 17: DOCOMO)
*****************************************************************************/
kal_uint16 custom_judge_sbp_id_use_mcc_mnc(kal_uint16 mcc, kal_uint16 mnc)
-{
+{
if ( ((mcc == 440) && (mnc == 10)) ||
((mcc == 310) && (mnc == 370)) ||
@@ -4174,21 +4175,21 @@
}
else if ( ((mcc == 440) && (mnc >= 7 && mnc <= 8)) ||
((mcc == 440) && (mnc >= 50 && mnc <= 56)) ||
- ((mcc == 440) && (mnc >= 70 && mnc <= 79)) ||
- ((mcc == 440) && (mnc >= 88 && mnc <= 89)) ||
+ ((mcc == 440) && (mnc >= 70 && mnc <= 79)) ||
+ ((mcc == 440) && (mnc >= 88 && mnc <= 89)) ||
((mcc == 441) && (mnc == 70)) )
{
return 129; // KDDI
}
else if(((mcc == 405) && ( mnc >= 51 && mnc <= 56 ) ) ||
- ((mcc == 404) && ( mnc == 2 || mnc == 3 || mnc == 10 || mnc == 16 || mnc == 31 || mnc == 40 ||
+ ((mcc == 404) && ( mnc == 2 || mnc == 3 || mnc == 10 || mnc == 16 || mnc == 31 || mnc == 40 ||
mnc == 45 || mnc == 49 ||mnc == 70 || mnc == 90 || (mnc >= 92 && mnc<=98))))
{
return 147; // Airtel
}
- else if( ((mcc == 310) && ((mnc == 30)||(mnc == 70)||(mnc == 90)||(mnc == 150)||(mnc == 170)||
+ else if( ((mcc == 310) && ((mnc == 30)||(mnc == 70)||(mnc == 90)||(mnc == 150)||(mnc == 170)||
(mnc == 280)||(mnc == 380)||(mnc == 410)||(mnc == 560)||(mnc == 680)||(mnc == 950)))||
- ((mcc == 311) && (mnc == 180))||
+ ((mcc == 311) && (mnc == 180))||
((mcc == 312) && (mnc == 670))||
((mcc == 313) && (mnc == 100))||
((mcc == 334) && ((mnc == 50)|| (mnc == 90))))
@@ -4202,11 +4203,11 @@
{
return 8; // TMO-US
}
- else if ( (mcc == 460) && (mnc == 01))
+ else if ( (mcc == 460) && (mnc == 01))
{
- return 2; // CU
+ return 2; // CU
}
- else if ( (mcc == 460) && (mnc == 00))
+ else if ( (mcc == 460) && (mnc == 00))
{
return 1; // CMCC
}
@@ -4222,7 +4223,7 @@
((mcc == 222) && ((mnc == 06) || (mnc == 10))) ||
((mcc == 262) && ((mnc == 02) || (mnc == 04) || (mnc == 9))) ||
((mcc == 268) && (mnc == 01)) ||
- ((mcc == 214) && ((mnc == 01) || (mnc == 06))) ||
+ ((mcc == 214) && ((mnc == 01) || (mnc == 06))) ||
((mcc == 286) && (mnc == 02)) ||
((mcc == 204) && (mnc == 04)) ||
((mcc == 230) && (mnc == 03)) ||
@@ -4253,7 +4254,7 @@
{
return 116; // 116(Uplus)
}
- else if ((mcc == 208) && (mnc == 20 || mnc == 21 || mnc == 88))
+ else if ((mcc == 208) && (mnc == 20 || mnc == 21 || mnc == 88))
{
return 139; // Bouygues
}
@@ -4261,6 +4262,10 @@
{
return 19; // 19(Telstra)
}
+ else if((mcc == 639) && (mnc == 03))
+ {
+ return 347; // 347(Airtel Kenya)
+ }
else
{
return 0;
@@ -4376,7 +4381,7 @@
* none
* RETURNS
* wild character to be used for SML lock code
-*
+*
*****************************************************************************/
kal_uint8 custom_get_crrst_sml_wild_char(void)
{
@@ -4390,10 +4395,10 @@
* DESCRIPTION
* Check if 9th digit of ICCID has to be passed through CCMSG_ID_SYSMSGSVC_L4_SIM_INFO
* PARAMETERS
-*
+*
* RETURNS
* KAL_TRUE - If 9th digit of ICCID required
-* KAL_FALSE -If 9th digit of ICCID is not required
+* KAL_FALSE -If 9th digit of ICCID is not required
*****************************************************************************/
kal_bool custom_check_if_iccid_at_early_boot_required(void)
{
@@ -4411,7 +4416,7 @@
* none
* RETURNS
* wild character to be used for SML lock code
-*
+*
*****************************************************************************/
void custom_l4_camera_hopping_notify_callback(kal_uint32 value)
{
@@ -4436,9 +4441,9 @@
IWLAN_L4C_EVDO_ECIO = 9,
MAX_SIG_TYPE,
}sig_type_enum;*/
-
-custom_cell_power_level_threshold custom_cell_power_level_threshold_table[] =
+
+custom_cell_power_level_threshold custom_cell_power_level_threshold_table[] =
{
{GSM_RSSI, 5, {-452, -428, -404, -380, -356,0,0,0,0,0,0,0,0,0,0,0}},
{UTRAN_RSCP, 5, {-452, -428, -404, -380, -356,0,0,0,0,0,0,0,0,0,0,0}},
@@ -4462,7 +4467,7 @@
return KAL_TRUE;
}
}
-
+
return KAL_FALSE;
}
@@ -4471,13 +4476,13 @@
* FUNCTION
* custom_get_sml_wild_char
* DESCRIPTION
-* Obtain the wild character to be used in SML lock code
+* Obtain the wild character to be used in SML lock code
*
* PARAMETERS
* none
* RETURNS
* wild character to be used for SML lock code
-*
+*
*****************************************************************************/
kal_uint8 custom_get_sml_wild_char(void)
{
@@ -4536,7 +4541,7 @@
}
break;
- case 2:
+ case 2:
{
*cb_data_len = sizeof(custom_cb_message2)/sizeof(custom_cb_message2[0]);
*msg_id = 0x1120;
@@ -4561,7 +4566,7 @@
}
break;
}
-
+
}
kal_uint8 *custom_get_wea_test_data(kal_uint8 mode,kal_uint16 *wea_test_data_len)
@@ -4589,9 +4594,9 @@
return NULL;
}
break;
-
+
}
-
+
}
#ifdef __FEATURE_SAMSUNG_RF_SAR_EUR_CHK__
@@ -4601,7 +4606,7 @@
* DESCRIPTION
* This function checks if the mcc belongs to Europe or USA
* PARAMETERS
- * mcc [IN] mobile country code
+ * mcc [IN] mobile country code
* RETURNS
* kal_bool result
*****************************************************************************/
@@ -4672,16 +4677,16 @@
/*****************************************************************************
* FUNCTION
-*
+*
* DESCRIPTION
-*
-*
+*
+*
*
* PARAMETERS
-*
+*
* RETURNS
-*
-*
+*
+*
*****************************************************************************/
kal_char *custom_op129_skip_signature_verify_pattern(void)
{
@@ -4742,7 +4747,7 @@
return KAL_TRUE;
}
}
-
+
return KAL_FALSE;
}
@@ -4765,8 +4770,39 @@
return ((kal_uint32)CUSTOM_L4C_LTE_ONLY_LTE_NW_TIMER);
}
-l4c_sim_oper_enum custom_check_imsi_to_set_rat(kal_uint8* imsi)
-{
+typedef enum{
+ L4C_SIM_LGU,
+ L4C_SIM_KT_SKT,
+ L4C_SIM_AUSA_H,
+ L4C_SIM_AUSA_R,
+ L4C_SIM_DCM,
+ L4C_SIM_OTHER_JPN,
+ L4C_SIM_RJIL,
+ L4C_SIM_OTHER_PS_ONLY,
+ L4C_SIM_OTHER
+} l4c_sim_oper_enum;
+
+typedef struct {
+ l4c_sim_oper_enum sim_oper;
+ l4c_rat_mode_custom_type_enum home_rat_mode;
+ l4c_rat_mode_custom_type_enum roaming_rat_mode;
+} l4c_custom_rat_mode;
+
+const static l4c_custom_rat_mode l4c_custom_rat_mode_table[] =
+{
+ {L4C_SIM_LGU, L4C_RAT_NL_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_KT_SKT, L4C_RAT_NLWG_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_AUSA_H, L4C_RAT_NL_CUSTOMIZATION, L4C_RAT_NL_CUSTOMIZATION},
+ {L4C_SIM_AUSA_R, L4C_RAT_NLWG_CUSTOMIZATION, L4C_RAT_NLWG_CUSTOMIZATION},
+ {L4C_SIM_DCM, L4C_RAT_NL_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_OTHER_JPN, L4C_RAT_NLW_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_RJIL, L4C_RAT_NL_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_OTHER_PS_ONLY, L4C_RAT_NL_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION},
+ {L4C_SIM_OTHER, L4C_RAT_NO_CUSTOMIZATION, L4C_RAT_NO_CUSTOMIZATION}
+};
+
+l4c_sim_oper_enum custom_check_imsi_to_set_rat(kal_uint8* imsi, kal_uint16 sbp_id)
+{
if (strncmp((char*)(imsi+1), "45006", 5) == 0)
{
return L4C_SIM_LGU;
@@ -4784,19 +4820,63 @@
return L4C_SIM_KT_SKT;
}
else if (strncmp((char*)(imsi+1), "313390", 6) == 0)
- {
+ {
return L4C_SIM_AUSA_H;
}
else if((strncmp((char*)(imsi+1), "20809005", 8) == 0) || (strncmp((char*)(imsi+1), "20809006", 8) == 0))
{
return L4C_SIM_AUSA_R;
- }
+ }
+ else if (strncmp((char*)(imsi+1), "44010", 5) == 0)
+ {
+ return L4C_SIM_DCM;
+ }
+ else if ((strncmp((char*)(imsi+1), "440", 3) == 0) ||
+ (strncmp((char*)(imsi+1), "441", 3) == 0))
+ {
+ return L4C_SIM_OTHER_JPN;
+ }
+ else if (sbp_id == SBP_ID_RJL)
+ {
+ return L4C_SIM_RJIL;
+ }
+ else if ((sbp_id == SBP_ID_SEATEL) || (sbp_id == SBP_ID_TPG) ||
+ (sbp_id == SBP_ID_SMARTFREN) || (sbp_id == SBP_ID_YTL))
+ {
+ return L4C_SIM_OTHER_PS_ONLY;
+ }
else
{
return L4C_SIM_OTHER;
}
}
+l4c_rat_mode_custom_type_enum custom_get_rat_for_custom_imsi(kal_uint8* imsi, kal_uint16 sbp_id, kal_bool is_home_country)
+{
+ kal_uint32 table_size = (sizeof(l4c_custom_rat_mode_table) / sizeof(l4c_custom_rat_mode_table[0]));
+ l4c_sim_oper_enum oper = custom_check_imsi_to_set_rat(imsi, sbp_id);
+ l4c_rat_mode_custom_type_enum result = L4C_RAT_NO_CUSTOMIZATION;
+ kal_uint32 i;
+
+ for (i=0; i<table_size; i++)
+ {
+ if (oper == l4c_custom_rat_mode_table[i].sim_oper)
+ {
+ if (is_home_country == KAL_TRUE)
+ {
+ result = l4c_custom_rat_mode_table[i].home_rat_mode;
+ break;
+ }
+ else
+ {
+ result = l4c_custom_rat_mode_table[i].roaming_rat_mode;
+ break;
+ }
+ }
+ }
+ return result;
+}
+
/*****************************************************************************
* FUNCTION
* custom_check_cnap_allowed_for_plmn
@@ -4816,7 +4896,7 @@
/* under construction !*/
/* under construction !*/
/* under construction !*/
-#endif
+#endif
return KAL_FALSE;
@@ -4833,10 +4913,10 @@
case 0x0046002f:
ret_val = KAL_FALSE;
break;
- */
+ */
default:
break;
- }
+ }
return ret_val;
}
@@ -4844,7 +4924,7 @@
* FUNCTION
* custom_config_wait_on_lte_paging_timer
* DESCRIPTION
-* This function is used to get wait for MT paging in LTE RAT timer
+* This function is used to get wait for MT paging in LTE RAT timer
* value in seconds.
*
* PARAMETERS
@@ -4865,13 +4945,13 @@
kal_char plmn_id[7];
}custom_disable_fd_plmn;
-/*This is the table which needs to be updated to disable legacy FD based on
-the PLMN ID.
- For the PLMN ID for which the Legacy FD needs to be disabled should be
+/*This is the table which needs to be updated to disable legacy FD based on
+the PLMN ID.
+ For the PLMN ID for which the Legacy FD needs to be disabled should be
entered in this table.
Format:-
- --> PLMN ID is accpeted in the string format.
- --> Each PLMN ID can have at max 6 characters. Last byte is reserved for
+ --> PLMN ID is accpeted in the string format.
+ --> Each PLMN ID can have at max 6 characters. Last byte is reserved for
'\0'
--> Please make sure to enclose each entry by paranthesis '{' '}'
--> You can follow the commented example
@@ -4888,10 +4968,10 @@
};
-/*This is the table which needs to be updated to disable full R8 FD based on the PLMN ID.
+/*This is the table which needs to be updated to disable full R8 FD based on the PLMN ID.
For the PLMN ID for which the R8 FD needs to be disabled should be entered in this table.
Format:-
- --> PLMN ID is accpeted in the string format.
+ --> PLMN ID is accpeted in the string format.
--> Each PLMN ID can have at max 6 characters. Last byte is reserved for '\0'
--> Please make sure to enclose each entry by paranthesis '{' '}'
--> You can follow the commented example
@@ -4916,12 +4996,12 @@
kal_char mcc[4];
}custom_disable_fd_mcc;
-/*This is the table which needs to be updated to disable legacy FD based on
-the MCC.
- For the MCC for which the Legacy FD needs to be disabled should be
+/*This is the table which needs to be updated to disable legacy FD based on
+the MCC.
+ For the MCC for which the Legacy FD needs to be disabled should be
entered in this table.
Format:-
- --> MCC is accpeted in the string format.
+ --> MCC is accpeted in the string format.
--> Each MCC can have at max 3 characters. Last byte is reserved for '\0'
--> Please make sure to enclose each entry by paranthesis '{' '}'
--> You can follow the commented example
@@ -4931,10 +5011,10 @@
{"FFF"}
};
-/*This is the table which needs to be updated to disable legacy FD based on the MCC.
+/*This is the table which needs to be updated to disable legacy FD based on the MCC.
For the MCC for which the Legacy FD needs to be disabled should be entered in this table.
Format:-
- --> MCC is accpeted in the string format.
+ --> MCC is accpeted in the string format.
--> Each MCC can have at max 3 characters. Last byte is reserved for '\0'
--> Please make sure to enclose each entry by paranthesis '{' '}'
--> You can follow the commented example
@@ -4952,8 +5032,8 @@
* FUNCTION
* custom_match_plmn_id_to_disable_pre_r8_FD()
* DESCRIPTION
-* Below function will match the PLMN ID & MCC from the SIM card with the
-custom table
+* Below function will match the PLMN ID & MCC from the SIM card with the
+custom table
* to check if the legacy FD needs to be disabled.
*
* PARAMETERS
@@ -4962,7 +5042,7 @@
* TRUE: enable filter
* FALSE: disable filter
*****************************************************************************/
-kal_bool custom_match_plmn_id_to_disable_pre_r8_FD(kal_char *plmnid ,
+kal_bool custom_match_plmn_id_to_disable_pre_r8_FD(kal_char *plmnid ,
kal_char *mcc)
{
kal_uint8 i = 0;
@@ -4972,15 +5052,15 @@
if (strcmp(mcc, (kal_char*)custom_disable_fd_mcc_table[i].mcc) == 0)
{
return KAL_TRUE;
- }
+ }
}
-
+
for(i = 0; i<CUSTOM_DISABLE_FD_PLMN_TABLE_SIZE; i++)
{
if (strcmp(plmnid, (kal_char*)custom_disable_fd_plmn_table[i].plmn_id) == 0)
{
return KAL_TRUE;
- }
+ }
}
return KAL_FALSE;
@@ -4990,7 +5070,7 @@
* FUNCTION
* custom_match_plmn_id_to_disable_both_FD()
* DESCRIPTION
-* Below function will match the PLMN ID & MCC from the SIM card with the custom table
+* Below function will match the PLMN ID & MCC from the SIM card with the custom table
* to check if the full R8 FD needs to be disabled.
*
* PARAMETERS
@@ -5008,15 +5088,15 @@
if (strcmp(mcc, (kal_char*)custom_disable_full_fd_mcc_table[i].mcc) == 0)
{
return KAL_TRUE;
- }
+ }
}
-
+
for(i = 0; i<CUSTOM_DISABLE_FULL_FD_PLMN_TABLE_SIZE; i++)
{
if (strcmp(plmnid, (kal_char*)custom_disable_full_fd_plmn_table[i].plmn_id) == 0)
{
return KAL_TRUE;
- }
+ }
}
return KAL_FALSE;
diff --git a/mcu/custom/protocol/common/ps/custom_l4_utility.h b/mcu/custom/protocol/common/ps/custom_l4_utility.h
index d6c8d49..b488fea 100755
--- a/mcu/custom/protocol/common/ps/custom_l4_utility.h
+++ b/mcu/custom/protocol/common/ps/custom_l4_utility.h
@@ -23,7 +23,7 @@
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
-* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
@@ -53,7 +53,7 @@
*
****************************************************************************/
#if !defined(L4_NOT_PRESENT)
-
+
#ifndef CUSTOM_L4_UTILITY_H
#define CUSTOM_L4_UTILITY_H
@@ -102,7 +102,7 @@
}custom_cc_timer_enum;
typedef struct
-{
+{
sig_type_enum sig_type;
kal_uint8 num_thresholds; // the number of thresholds
kal_int32 array_threshold[L4C_POWER_THRESHOLD_NUM];
@@ -124,8 +124,8 @@
extern kal_uint8 custom_signal_strength_raw_to_cesq_level(l4_cesq_param_enum type, kal_int32 raw_in_qdbm);
extern kal_uint8 custom_signal_strength_raw_to_csq_level(
- kal_uint8 rat,
- kal_int32 rssi_in_qdbm,
+ kal_uint8 rat,
+ kal_int32 rssi_in_qdbm,
kal_int32 RSCP_in_qdbm,
kal_int32 EcN0_in_qdbm,
kal_uint8 ber,
@@ -136,8 +136,8 @@
kal_int32 ss_RSRP_in_qdbm);
extern kal_uint8 custom_signal_strength_raw_to_ciev_signal_level(
- kal_uint8 rat,
- kal_int32 rssi_in_qdbm,
+ kal_uint8 rat,
+ kal_int32 rssi_in_qdbm,
kal_int32 RSCP_in_qdbm,
kal_int32 EcN0_in_qdbm,
kal_uint8 ber,
@@ -150,8 +150,8 @@
extern kal_uint8 custom_signal_strength_in_ts27007(kal_int32 strength_in_dbm);
#if defined(__GEMINI__) && defined(__SIM_ME_LOCK__)
-extern kal_bool custom_l4c_root_lock_verify(kal_uint8 updated_sim_slot,
- smu_pending_password_id_enum updated_type,
+extern kal_bool custom_l4c_root_lock_verify(kal_uint8 updated_sim_slot,
+ smu_pending_password_id_enum updated_type,
smu_pending_password_id_enum *pending_password_tbl,
link_sml_valid_sim_enum *real_sim_verify_state_tbl,
kal_uint8 *need_unlock_table);
@@ -235,7 +235,7 @@
extern kal_uint32 custom_get_l4c_lte_only_timeout(void);
-extern l4c_sim_oper_enum custom_check_imsi_to_set_rat(kal_uint8 *imsi);
+extern l4c_rat_mode_custom_type_enum custom_get_rat_for_custom_imsi(kal_uint8* imsi, kal_uint16 sbp_id, kal_bool is_home_country);
#if defined (__TC10__)
extern kal_uint32 sbp_query_id(void);
diff --git a/mcu/custom/protocol/common/ps/custom_l5.c b/mcu/custom/protocol/common/ps/custom_l5.c
index 265978a..144d6ef 100755
--- a/mcu/custom/protocol/common/ps/custom_l5.c
+++ b/mcu/custom/protocol/common/ps/custom_l5.c
@@ -425,4 +425,28 @@
/* under construction !*/
#endif
return L5_5G_ICON_MODE_JP;
-}
\ No newline at end of file
+}
+
+/***********************************************************************************
+**You can modify this fuction to enable/disable nitz network name cache into NVRAM
+***********************************************************************************/
+kal_bool custom_l5_nw_enable_nitz_name_cache_to_nvram()
+{
+ // Return TRUE means default enable the nitz network name cache into nvram and will be used after reboot;
+ // Return FALSE means disable this function.
+ return KAL_TRUE;
+}
+
+/******************************************************************************
+**if you want to Ignore Duplicate Registration State Indication Change
+**ignoreDuplicateRegistrationState parameter as below:
+** KAL_FALSE means don't ignoreDuplicateRegistrationState
+** KAL_TRUE means ignoreDuplicateRegistrationState
+*******************************************************************************/
+
+kal_bool custom_l5_custom_ignore_duplicate_registration_state_Ind()
+{
+ kal_bool ignoreDuplicateRegistrationState = KAL_FALSE;
+ /* To Enable ignoreDuplicateRegistrationState = KAL_TRUE; */
+ return ignoreDuplicateRegistrationState;
+}
diff --git a/mcu/custom/protocol/common/ps/custom_l5.h b/mcu/custom/protocol/common/ps/custom_l5.h
index a921ed2..92ad5dd 100755
--- a/mcu/custom/protocol/common/ps/custom_l5.h
+++ b/mcu/custom/protocol/common/ps/custom_l5.h
@@ -87,4 +87,7 @@
void custom_l5_MBIM_message(void* message_buffer, uint32_t msg_length);
kal_bool custom_l5_oper_name_mapping_by_gid1(kal_char *oper_name, kal_char *plmn_id, kal_uint8 plmn_length, kal_uint8 *gid1, kal_uint8 gid1_max_length);
kal_uint32 custom_l5_get_5g_icon_display_mode();
+kal_bool custom_l5_nw_enable_nitz_name_cache_to_nvram();
+kal_bool custom_l5_custom_ignore_duplicate_registration_state_Ind();
+
#endif
diff --git a/mcu/custom/protocol/common/ps/custom_ltecsr_config.c b/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
index adce354..a151cbd 100755
--- a/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
+++ b/mcu/custom/protocol/common/ps/custom_ltecsr_config.c
@@ -37,7 +37,7 @@
nvram_ltecsr_profile_ptr->stat_report_interval = 5000;
nvram_ltecsr_profile_ptr->evs_prefer_rate = 15;
nvram_ltecsr_profile_ptr->text_rtp_expire_timer = 0; // default zero because no text RTP is reasonable
- nvram_ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ nvram_ltecsr_profile_ptr->text_rtcp_expire_timer = 0; // default zero to avoid unexpected RTT call drop/downgrade
nvram_ltecsr_profile_ptr->text_rtp_rtcp_expire_timer = 0; // default zero because no text RTP is reasonable and we consider NW default don't support text RTCP
nvram_ltecsr_profile_ptr->wfc_silence_threshold = 5000;
nvram_ltecsr_profile_ptr->evolte_delay_threshold = 400; // unit: ms
@@ -156,6 +156,20 @@
ltecsr_profile_ptr->no_rtp_dropcall = 60000;/*add for no rtp drop call*/
break;
}
+ 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->evs_prefer_rate = 4; /*VoLTE_EVS_Codec_Bitrate_13_2 */
+
+ ltecsr_profile_ptr->evolte_anbr_enable = KAL_TRUE;
+ ltecsr_profile_ptr->evolte_anbr_para = ltecsr_profile_ptr->evolte_anbr_para | 1; //ping pong avoided for anbr scenerio: dl bitrate increase
+ ltecsr_profile_ptr->evolte_anbr_para = ltecsr_profile_ptr->evolte_anbr_para | (1<<1); //rtcp bw not considered
+ ltecsr_profile_ptr->evolte_anbr_para = ltecsr_profile_ptr->evolte_anbr_para | (1<<2); //sip avoided
+ ltecsr_profile_ptr->evolte_anbr_para = ltecsr_profile_ptr->evolte_anbr_para | (1<<3); //only part of audio rates can be selected from, instead of all mode_set
+ ltecsr_profile_ptr->no_rtp_dropcall = 60000;/*add for no rtp drop call*/
+ ltecsr_profile_ptr->silence_dropcall_threshold = 60000; // Inactivity timeouts for both RTP and RTCP shall be set to 20 seconds
+ break;
+ }
case 2:/* CU*/
{
ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<12); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
@@ -185,7 +199,11 @@
/* New Zealand */
if (strncmp((char *)(custom_param_ptr->mccmnc), "530", 3) == 0) {
ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1) | (1<<5) | (1<<6);
- }
+ }
+ /* Italy */
+ if (strncmp((char *)(custom_param_ptr->mccmnc), "222", 3) == 0) {
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ }
break;
}
case 7: /* ATT */
@@ -198,6 +216,7 @@
ltecsr_profile_ptr->rtcp_expire_timer = 20000;
ltecsr_profile_ptr->silence_dropcall_threshold = 20000; // Inactivity timeouts for both RTP and RTCP shall be set to 20 seconds
ltecsr_profile_ptr->text_rtp_rtcp_expire_timer = 20000;
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
/* Mexico */
if (strncmp((char *)(custom_param_ptr->mccmnc), "334", 3) == 0) {
ltecsr_profile_ptr->rtp_expire_warning_timer = 1000;
@@ -215,6 +234,7 @@
ltecsr_profile_ptr->rtp_expire_timer = 30000;
ltecsr_profile_ptr->rtcp_expire_timer = 30000;
ltecsr_profile_ptr->rtp_expire_warning_timer = 1000;
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
ltecsr_profile_ptr->ul_silence_dropcall_threshold = 30000;
break;
@@ -289,10 +309,16 @@
{
ltecsr_profile_ptr->stat_feature_option = ltecsr_profile_ptr->stat_feature_option | (1<<3); //LTECSR_STAT_HIDDEN
ltecsr_profile_ptr->stat_report_interval = 3000;
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
ltecsr_profile_ptr->silence_dropcall_threshold = 45000; //Sprint requirment: 45s
break;
}
+ case 21: /* DISH */
+ {
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ break;
+ }
case 50: /*SoftBank*/
{
//LTECSR_FEATURE_DTMF_MUTE and LTECSR_FEATURE_CMR_DISABLE
@@ -305,6 +331,15 @@
{
ltecsr_profile_ptr->no_rtp_dropcall= 60000;/*parmter for no dl rtp drop*/
break;
+ }
+ case 105: /* Claro-Paraguay */
+ {
+ /* Paraguay */
+ ltecsr_profile_ptr->rtp_expire_timer = 30000;
+ ltecsr_profile_ptr->rtcp_expire_timer = 25000;
+ ltecsr_profile_ptr->silence_dropcall_threshold = 10000;
+
+ break;
}
case 114: /*KT*/
case 115: /*SKT*/
@@ -359,6 +394,11 @@
ltecsr_profile_ptr->rtcp_expire_timer = 0;
break;
}
+ case 121: /* Bell */
+ {
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ break;
+ }
case 129: /* KDDI */
{
//LTECSR_FEATURE_DTMF_MUTE and LTECSR_FEATURE_HOLDCALL_DL_CHECK
@@ -442,6 +482,7 @@
ltecsr_profile_ptr->silence_dropcall_threshold = 14000;
ltecsr_profile_ptr->rtcp_expire_timer = 14000;
ltecsr_profile_ptr->rtp_expire_timer = 14000;
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
ltecsr_profile_ptr->ra_para = ltecsr_profile_ptr->ra_para | (1 << 0) | (1 << 1) | (1 << 2);
ltecsr_profile_ptr->ra_duration_max = 10000;
ltecsr_profile_ptr->ra_duration_low = 15000;
@@ -473,12 +514,14 @@
}
case 161: /* Play Poland */
{
- ltecsr_profile_ptr->silence_dropcall_threshold = 60000;
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
+ ltecsr_profile_ptr->silence_dropcall_threshold = 40000;
break;
}
case 162: /* Freedom Canada */
{
ltecsr_profile_ptr->silence_dropcall_threshold = 10000;
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
break;
}
case 171: /* WOM Colombia */{
@@ -536,6 +579,11 @@
ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
break;
}
+ case 204: /* Rogers */
+ {
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ break;
+ }
case 209: /* Avantel */
{
// LTECSR_FEATURE_FIX_RTCP_INTERVAL_ACTIVE and LTECSR_FEATURE_FIX_RTCP_INTERVAL_HOLD
@@ -577,6 +625,8 @@
/* italy */
ltecsr_profile_ptr->silence_dropcall_threshold = 10000; //10s
ltecsr_profile_ptr->rtcp_expire_timer = 10000;
+ ltecsr_profile_ptr->rtp_expire_warning_timer = 2000;
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<1); //LTECSR_FEATURE_HOLDCALL_DL_CHECK
}
break;
}
@@ -599,6 +649,12 @@
ltecsr_profile_ptr->silence_dropcall_threshold = 20000; // 20s
ltecsr_profile_ptr->rtcp_fix_interval_active = 5000; // 5s
ltecsr_profile_ptr->rtcp_fix_interval_hold = 5000; // 5s
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ break;
+ }
+ case 238: /* Videotron */
+ {
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
break;
}
case 239: /* VIP */
@@ -611,8 +667,9 @@
}
break;
}
- case 240: /* XPlore Mobile Canada */
+ case 240: /* Xplore Canada */
{
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
ltecsr_profile_ptr->silence_dropcall_threshold = 20000;
break;
}
@@ -636,6 +693,11 @@
ltecsr_profile_ptr->rtcp_expire_timer = 15000;
break;
}
+ case 276: /* AlticeUSA */
+ {
+ ltecsr_profile_ptr->text_rtcp_expire_timer = 20000;
+ break;
+ }
case 285: /* Vinafhone Vietnam */
{
ltecsr_profile_ptr->silence_dropcall_threshold = 20000;
@@ -709,8 +771,9 @@
case 367: /* James Valley Wireless */
{
if (strncmp((char *)(custom_param_ptr->mccmnc), "310", 3) == 0) {
- ltecsr_profile_ptr->rtp_expire_timer = 10000;
- ltecsr_profile_ptr->rtcp_expire_timer = 10000;
+ ltecsr_profile_ptr->silence_dropcall_threshold = 10000;
+ ltecsr_profile_ptr->rtp_expire_timer = 0;
+ ltecsr_profile_ptr->rtcp_expire_timer = 0;
}
break;
}
@@ -720,6 +783,8 @@
if (strncmp((char *)(custom_param_ptr->mccmnc), "647", 3) == 0) {
//LTECSR_FEATURE_FIX_RTCP_INTERVAL_ACTIVE and LTECSR_FEATURE_FIX_RTCP_INTERVAL_HOLD
ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<5) | (1<<6);
+ ltecsr_profile_ptr->rtcp_fix_interval_active = 20000;
+ ltecsr_profile_ptr->rtcp_fix_interval_hold = 20000;
}
break;
}
@@ -731,6 +796,14 @@
}
break;
}
+ case 417: /*ATLAS TELECOM UAE*/
+ {
+ //LTECSR_FEATURE_RTCP_MAX_INTERVAL_ENABLE
+ ltecsr_profile_ptr->ltecsr_common_para2 = ltecsr_profile_ptr->ltecsr_common_para2 | (1<<8);
+ ltecsr_profile_ptr->rtcp_max_interval = 0xFFFF;
+ ltecsr_profile_ptr->rtcp_min_interval = 5000;
+ break;
+ }
}
/* Priority 2:[MCF OTA Customization] */
diff --git a/mcu/custom/protocol/common/ps/custom_sdm_utility.c b/mcu/custom/protocol/common/ps/custom_sdm_utility.c
index 548c092..d248f16 100755
--- a/mcu/custom/protocol/common/ps/custom_sdm_utility.c
+++ b/mcu/custom/protocol/common/ps/custom_sdm_utility.c
@@ -77,9 +77,6 @@
{
/* Telefonica Germany */
{"262", "03", 1}, {"262", "07", 1}, {"262", "08", 1}, {"262", "11", 1}, {"262", "77", 1},
-
- /* Telefonica UK */
- {"234", "10", 1},
/* Telefonica Spain */
{"214", "05", 1}, {"214", "07", 1},
@@ -211,6 +208,9 @@
/* MTS Serbia */
{"220", "03", 1},
+ /* Mtel/Bosnia and Herzegovina */
+ {"218", "05", 1},
+
/* Default */
};
@@ -226,9 +226,6 @@
/* Telefonica Germany */
{"262", "03", 0}, {"262", "07", 0}, {"262", "08", 0}, {"262", "11", 0}, {"262", "77", 0},
-
- /* Telefonica UK */
- {"234", "10", 0},
/* Telefonica Spain */
{"214", "05", 0}, {"214", "07", 0},
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.c b/mcu/custom/protocol/common/ps/custom_ssds.c
index 666e2a1..b561706 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds.c
@@ -240,12 +240,15 @@
case 354: /* Poste Mobile/Italy */
case 366: /* Appalachian-US */
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 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")))
+ (0 == strcmp(params_info->mcc, "216")) || (0 == strcmp(params_info->mcc, "231")) ||
+ (0 == strcmp(params_info->mcc, "226")))
{
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
is_changed = KAL_TRUE;
@@ -253,7 +256,7 @@
break;
case 120:/* Claro */
{
- if(0 == strcmp(params_info->mcc, "370")) /* Claro-Dominican support USSI */
+ if((0 == strcmp(params_info->mcc, "370")) || (0 == strcmp(params_info->mcc, "740"))) /* Claro-Dominican/Ecuador support USSI */
{
break;
}
@@ -714,6 +717,7 @@
break;
}
case 1:/* CMCC */
+ case 388:/* CBN China*/
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
switch(params_info->atcmd_type)
@@ -1259,6 +1263,21 @@
}
}
}
+ else if(0 == strcmp(params_info->mcc, "655"))
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
else if(0 == strcmp(params_info->mcc, "222"))
{
if(0 == strcmp(params_info->mnc, "10")) /* Vodafone-Italy */
@@ -1700,7 +1719,15 @@
}
case 15:/* TELEFONICA */
{
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ if(params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC &&
+ params_info->rf_status == CUSTOM_SSDS_RF_OFF)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ }
+ else
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ }
switch(params_info->atcmd_type)
{
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
@@ -1726,6 +1753,11 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
break;
default:
+ if(CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status)
+ {
+ atcmd_path_type = (params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_PREFER:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ return atcmd_path_type;
+ }
break;
}
break;
@@ -2244,6 +2276,20 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
}
}
+ else if((0 == strcmp(params_info->mcc, "370")))
+ {
+ /*Claro-Dominican*/
+ 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;
+ }
+ }
+
break;
}
case 121: /* BELL */
@@ -2557,7 +2603,15 @@
{
if(0 == strcmp(params_info->mcc, "424")) /** United Arab Emirates **/
{
+ if ((KAL_TRUE != params_info->is_ims_registered) || (KAL_TRUE != params_info->is_mobile_data_setting_enabled))
+ {
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ else
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ }
+
switch(params_info->atcmd_type)
{
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
@@ -2882,10 +2936,6 @@
{/* CLIR service*/
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
}
- else
- {
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
- }
break;
}
case 152: /* OPTUS-AUS */
@@ -3006,6 +3056,19 @@
}
}
}
+ else if(0 == strcmp(params_info->mcc, "214"))
+ {
+ 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 */
@@ -3496,27 +3559,43 @@
}
case 183: /* PERSONAL */
{
- 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_GET_CLIR:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
- break;
- default:
- break;
- }
- /*data off or roaming status*/
- if((KAL_TRUE != params_info->is_mobile_data_setting_enabled) ||
- (CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status) )
- {
- return atcmd_path_type;
- }
- break;
+ if (0 == strcmp(params_info->mcc, "722")) /* Argentina */
+ {
+ 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_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ /*data off or roaming status*/
+ if((KAL_TRUE != params_info->is_mobile_data_setting_enabled) ||
+ (CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status) )
+ {
+ return atcmd_path_type;
+ }
+ break;
+ }
+ else if (0 == strcmp(params_info->mcc, "744")) /* Paraguay */
+ {
+ 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 184: /* VIETEL-Vietnam */
{
@@ -3772,6 +3851,7 @@
}
case 202: /* SPARK-NZ */
{
+ need_check_roaming_data_off = KAL_FALSE;
if ((params_info->is_ims_registered)&&
(params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING))
@@ -4025,6 +4105,22 @@
}
}
+ else if(0 == strcmp(params_info->mcc, "714"))/* Tigo-Panama */
+ {
+ 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_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ }
break;
}
case 221:/* TPG-Singapore */
@@ -4331,6 +4427,22 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
}
+ case 246: /* Ooredoo */
+ {
+ if(0 == strcmp(params_info->mcc, "427")) /* Qatar */
+ {
+ 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_CS_ONLY;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ }
case 247: /* Maroc Telecom */
{
if(0 == strcmp(params_info->mcc, "604")) /* Morocco */
@@ -4445,7 +4557,7 @@
{
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;
+ atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_ONLY:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
@@ -5316,11 +5428,49 @@
need_check_roaming = KAL_TRUE;
break;
}
+ case 382:/*Zeop-French Reunion*/
+ {
+ if(params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
case 387:/*West Central Wireless - US*/
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 416: /* Brazil-Brisanet special requirement for SS. Only CLIR/CW should be kept for Brazil-Brisanet*/
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ 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;
+ default:
+ break;
+ }
+ break;
+ }
+ case 418: /* Emtel - 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 1001: /* Ericsson-IODT */
{
/* default config */
@@ -5412,6 +5562,11 @@
}
break;
}
+ case 393:/* IT-E Wireless - USA */
+ {
+ need_check_roaming_data_off = KAL_FALSE;
+ break;
+ }
case 396: /* Thumb cellular -US */
{
switch(params_info->atcmd_type)
@@ -5425,16 +5580,63 @@
}
break;
}
+ case 397: /* Mectel-Myanmar */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+ break;
+ }
case 408: /* Bitel -Peru */
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
}
- case 411: /* Evolve - Broadband */
+ case 410: /* Mtel/Bosnia and Herzegovina */
+ {
+ 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;
+ default:
+ break;
+ }
+ break;
+ }
+ case 411: /* Evolve - Broadband */
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 417: /* ATLAS TELECOM - UAE */
+ {
+ 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 419: /* Airtel - Uganda */
+ {
+ 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 1002: /* Nokia IODT */
{
/* default config */
@@ -5719,6 +5921,56 @@
}
break;
}
+ case 388:/* CBN China*/
+ {
+ 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_COLR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_COLR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_COLP:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_COLP:
+ if ((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {//VOLTE card: not support CLIR/CLIP/COLR/COLP
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_4;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+ //is_ocb = _custom_ssds_is_ocb(&(req_info->atcmd_info));
+ if(CUSTOM_SSDS_OUTGOING_CALL_BARRING == params_info->cb_type && ((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id)))
+ {//VOLTE card: not support OCB
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_4;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ if((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_832;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ if((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_CCWA;
+ }
+ break;
+ default:
+ break;
+ }
+ if(403 == params_info->rsp_id || 831 == params_info->rsp_id)
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO;
+ }
+ break;
+ }
case 2:/* CU */
{
is_need_sync_to_cs = KAL_FALSE;
@@ -6237,6 +6489,14 @@
}
break;
}
+ case 397:/* Mectel - Myanmar */
+ {
+ if (200 != params_info->rsp_id)
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_ONCE;
+ }
+ break;
+ }
default:
break;
}
@@ -6494,6 +6754,12 @@
is_ussi_allowed_during_ims_call = KAL_FALSE;
}
break;
+ case 246: /* Ooredoo */
+ if(0 == strcmp(params_info->mcc, "427")) /* Ooredoo-Qatar */
+ {
+ is_ussi_allowed_during_ims_call = KAL_FALSE;
+ }
+ break;
default:
break;
}
@@ -6522,6 +6788,18 @@
case 151: /* M1-Singapore */
is_rat_mode_change_allowed = KAL_TRUE;
break;
+ case 120: /* Claro */
+ if (0 == strcmp(params_info->mcc,"724")) /* Brazil */
+ {
+ is_rat_mode_change_allowed = KAL_TRUE;
+ }
+ break;
+ case 132: /* Movistar*/
+ if(0 == strcmp(params_info->mcc,"724")) /* Brazil*/
+ {
+ is_rat_mode_change_allowed = KAL_TRUE;
+ }
+ break;
default:
break;
}
diff --git a/mcu/custom/protocol/common/ps/custom_xcap_config.c b/mcu/custom/protocol/common/ps/custom_xcap_config.c
index 970d5a8..31978e2 100755
--- a/mcu/custom/protocol/common/ps/custom_xcap_config.c
+++ b/mcu/custom/protocol/common/ps/custom_xcap_config.c
@@ -124,6 +124,7 @@
xcap_default_info->support_query_simservs = XCAP_INFO_DEFAULT_SUPPORT_QUERY_SIMSERVS;
xcap_default_info->support_enable_by_cond = XCAP_INFO_DEFAULT_SUPPORT_ENABLE_BY_COND;
xcap_default_info->support_disable_by_cond = XCAP_INFO_DEFAULT_SUPPORT_DISABLE_BY_COND;
+ xcap_default_info->support_erasure_by_cond = XCAP_INFO_DEFAULT_SUPPORT_ERASURE_BY_COND;
xcap_default_info->support_isim = XCAP_INFO_DEFAULT_SUPPORT_ISIM;
xcap_default_info->remove_media_when_not_support_media = XCAP_INFO_DEFAULT_REMOVE_MEDIA_WHEN_NOT_SUPPORT_MEDIA;
xcap_default_info->support_xcap_diff = XCAP_INFO_DEFAULT_SUPPORT_XCAP_DIFF;
@@ -172,6 +173,7 @@
http_default_info->hide_port_number = HTTP_INFO_DEFAULT_HIDE_PORT_NUMBER;
http_default_info->dns_failover = HTTP_INFO_DEFAULT_DNS_FAILOVER;
http_default_info->xcap_dns_default_ttl = HTTP_INFO_DEFAULT_XCAP_DNS_DEFAULT_TTL;
+ http_default_info->dns_force_query = HTTP_INFO_DEFAULT_DNS_FORCE_QUERY;
/* SIM default configuration */
sim_default_info = &(cfg->sim_info);
@@ -205,6 +207,16 @@
cfg->xcap_info.remove_media_when_not_support_media = XCAP_ENABLED;
break;
}
+ case 388:/* CBN China*/
+ {
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc015.mcc460.pub.3gppnetwork.org");
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ cfg->gba_info.gba_port = 80;
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.remove_media_when_not_support_media = XCAP_ENABLED;
+ break;
+ }
case 2: /* CU China */
{
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
@@ -231,6 +243,7 @@
cfg->xcap_info.support_disable_by_cond = XCAP_ENABLED;
cfg->cm_info.pdn_releasing_timer = 15;
cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_PREFER_CELLULAR_XCAP;
+ cfg->http_info.dns_force_query = KAL_TRUE;
}
else if (streq(mcc, "605")){/*Tunisia*/
cfg->xcap_info.xcap_port = 8090;
@@ -251,6 +264,9 @@
cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_XCAP_ONLY;
if (streq(mcc, "204")){ /* DTAG - NL */
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ } else if (streq(mcc, "226")){ /* DTAG - RO */
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
} else if (streq(mcc, "230")){ /* DTAG - CZ */
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
@@ -269,6 +285,8 @@
cfg->xcap_info.cache_level = XCAP_NO_CACHE;
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ } else if (streq(mcc, "202")){ /* DTAG - Greece */
+ cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_PREFER_CELLULAR_XCAP;
}
}
break;
@@ -307,7 +325,7 @@
update_str(cfg->xcap_info.xcap_protocol, "https");
update_str(cfg->gba_info.gba_protocol, "https");
cfg->xcap_info.url_encoding = XCAP_URL_ENCODING_NODE_SELECTOR;
- cfg->xcap_info.media_type = MEDIA_TYPE_ONLY_AUDIO;
+ cfg->xcap_info.media_type = MEDIA_TYPE_SEPERATE;
} else if (streq(mcc, "216")){ /* VDF-Hungary */
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
cfg->xcap_info.set_cfnrc_with_cfnl = XCAP_ENABLED;
@@ -421,7 +439,6 @@
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->cm_info.support_empty_pdn_establishment = XCAP_DISABLED;
if (streq(mnc, "210")) {
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
update_str(cfg->gba_info.imei_header, "X-TMUS-IMEI");
@@ -434,6 +451,7 @@
} else {
if (streq(mnc, "260")) {
cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_ENABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_DEFAULT_THEN_XCAP;
}
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
@@ -541,13 +559,15 @@
cfg->xcap_info.support_adding_no_reply_timer = XCAP_ENABLED;
cfg->http_info.tcp_session_keep_alive = XCAP_DISABLED;
cfg->xcap_info.support_put_cw_root = XCAP_ENABLED;
- cfg->xcap_info.enable_custom_user_agent_string = XCAP_ENABLED;
- update_str(cfg->xcap_info.user_agent_default, "");
+ cfg->xcap_info.enable_custom_user_agent_string = XCAP_ENABLED;
+ cfg->cm_info.support_empty_pdn_establishment = XCAP_ENABLED;
+ update_str(cfg->xcap_info.user_agent_default, "");
if (streq(mnc, "872") && streq(mcc, "405"))
{
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc872.mcc405.pub.3gppnetwork.org");
}
cfg->http_info.naptr_srv_level = XCAP_NAPTR_SRV_LEVEL_NAPTR;
+ cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_PREFER_CELLULAR_XCAP;
break;
}
case 19: /* Telstra */
@@ -625,6 +645,7 @@
{
cfg->xcap_info.xcap_port = 8090;
cfg->xcap_info.support_disable_by_cond = XCAP_ENABLED;
+ cfg->xcap_info.support_erasure_by_cond = XCAP_ENABLED;
cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.url_encoding = XCAP_URL_ENCODING_NODE_SELECTOR;
@@ -663,11 +684,12 @@
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc003.mcc454.pub.3gppnetwork.org");
break;
}
- case 107: /* SFR France */
- {
- cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
- break;
- }
+ case 107: /* SFR France */
+ {
+ cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
+ cfg->xcap_info.timer_inside_cfnry = XCAP_ENABLED;
+ break;
+ }
case 108: /* TWN Taiwan */
{
cfg->xcap_info.xcap_port = 8090;
@@ -778,6 +800,7 @@
cfg->gba_info.gba_port = 8080;
cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
update_str(cfg->gba_info.gba_type, "GBA_ME");
+ update_str(cfg->gba_info.gba_url, "bsf.mnc001.mcc740.pub.3gppnetwork.org");
}
break;
}
@@ -837,6 +860,7 @@
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
cfg->cm_info.pdn_releasing_timer = 300;
cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_XCAP_ONLY;
+ cfg->xcap_info.cache_level = XCAP_NO_CACHE;
break;
}
case 130: /* TIM */
@@ -978,13 +1002,16 @@
}
case 137: /* Tele2 */
{
- if (streq(mcc, "250")){ /* Tele2 */
+ if (streq(mcc, "250")){ /* Russia */
cfg->xcap_info.xcap_port = 8085;
cfg->gba_info.gba_port = 8080;
cfg->xcap_info.support_cfnl = XCAP_DISABLED;
cfg->xcap_info.media_type = MEDIA_TYPE_ONLY_AUDIO;
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc020.mcc250.pub.3gppnetwork.org");
update_str(cfg->gba_info.gba_url_path, "/bsf-auth/");
+ cfg->xcap_info.remove_node_namespace = XCAP_ENABLED;
+ cfg->xcap_info.support_put_cf_root = XCAP_DISABLED;
+ cfg->xcap_info.support_adding_namespace = XCAP_DISABLED;
} else if (streq(mcc, "204")){/* Tele2 NL*/
cfg->xcap_info.media_type = MEDIA_TYPE_ONLY_AUDIO;
cfg->xcap_info.support_clir_root = XCAP_DISABLED;
@@ -1391,6 +1418,8 @@
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc003.mcc284.pub.3gppnetwork.org");
cfg->xcap_info.support_adding_namespace = XCAP_DISABLED;
cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
+ cfg->cm_info.pdn_releasing_timer = 15;
+ cfg->cm_info.apn_selection_rule = XCAP_CM_APN_SELECTION_RULE_PREFER_CELLULAR_XCAP;
break;
}
case 201: /* KPN NL */
@@ -1404,7 +1433,7 @@
}
case 202: /* Spark Newzealand */
{
- if (streq(mnc, "005")){
+ if (streq(mnc, "005") || streq(mnc, "05")){
update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc005.mcc530.pub.3gppnetwork.spark.co.nz");
cfg->xcap_info.xcap_port = 8443;
update_str(cfg->xcap_info.xcap_protocol, "https");
@@ -1413,7 +1442,7 @@
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc005.mcc530.pub.3gppnetwork.spark.co.nz");
cfg->gba_info.gba_port = 8444;
}
- else if (streq(mnc, "099")){
+ else if (streq(mnc, "099") || streq(mnc, "99")){
update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc099.mcc530.pub.3gppnetwork.spark.co.nz");
cfg->xcap_info.xcap_port = 8080;
update_str(cfg->gba_info.gba_url, "xcap.ims.mnc099.mcc530.pub.3gppnetwork.spark.co.nz");
@@ -1872,6 +1901,7 @@
case 332: /* Southern LINC */
{
update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc720.mcc312.3gppnetwork.org");
+ cfg->xcap_info.forwarding_number_use_sip_uri = XCAP_ENABLED;
break;
}
case 335: /* NT-Thailand */
@@ -1894,6 +1924,16 @@
update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc001.mcc748.pub.3gppnetwork.org");
update_str(cfg->gba_info.gba_url, "bsf.mnc001.mcc748.pub.3gppnetwork.org");
break;
+ }
+ case 339: /* Unitel Angola */
+ {
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc002.mcc631.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc002.mcc631.pub.3gppnetwork.org");
+ cfg->xcap_info.xcap_port = 443;
+ cfg->gba_info.gba_port = 443;
+ update_str(cfg->xcap_info.xcap_protocol, "https");
+ update_str(cfg->gba_info.gba_protocol, "https");
+ break;
}
case 344: /* 4ka Slovakia */
{
@@ -1949,8 +1989,8 @@
{
if (streq(mcc, "655")) { /* South Africa */
update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc038.mcc655.pub.3gppnetwork.org");
- update_str(cfg->gba_info.gba_url, "bsf.ims.mnc038.mcc655.pub.3gppnetwork.org");
- cfg->xcap_info.xcap_port = 8080;
+ update_str(cfg->gba_info.gba_url, "bsf.mnc038.mcc655.pub.3gppnetwork.org");
+ cfg->xcap_info.xcap_port = 80;
}
break;
}
@@ -2053,6 +2093,26 @@
update_str(cfg->gba_info.gba_type, "GBA_ME");
break;
}
+ case 381: /* Asiacell/Iraq */
+ {
+ if (streq(mcc, "418")) {
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ cfg->gba_info.gba_port = 8080;
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc005.mcc418.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc005.mcc418.pub.3gppnetwork.org");
+ }
+ break;
+ }
+ case 382: /* Zeop */
+ {
+ if (streq(mcc, "647")) { /* French Reunion */
+ cfg->xcap_info.xcap_port = 8081;
+ cfg->gba_info.gba_port = 8080;
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc004.mcc647.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc004.mcc647.pub.3gppnetwork.org");
+ }
+ break;
+ }
case 386: /* ENetworks */
{
cfg->xcap_info.support_media_tag = XCAP_DISABLED;
@@ -2060,6 +2120,73 @@
update_str(cfg->gba_info.gba_url, "bsf.ims.mnc000.mcc738.pub.3gppnetwork.org");
break;
}
+ case 393: /* IT-E Wireless */
+ {
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc110.mcc310.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc110.mcc310.pub.3gppnetwork.org");
+ cfg->xcap_info.xcap_port = 8090;
+ cfg->gba_info.gba_port = 8091;
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ break;
+ }
+ case 396: /* THUMB Cellular US */
+ {
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.cellcom.com");
+ update_str(cfg->gba_info.gba_url, "gba.ims.thumbcell.com");
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ cfg->xcap_info.forwarding_number_use_sip_uri = XCAP_ENABLED;
+ break;
+ }
+ case 397: /* MECTEL/Myanmar */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc003.mcc414.pub.3gppnetwork.org");
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ break;
+ }
+ case 403: /* Imagine - Brunei */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc001.mcc528.3gppnetwork.org");
+ break;
+ }
+ case 404: /* Progresif - Brunei */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc002.mcc528.3gppnetwork.org");
+ break;
+ }
+ case 405: /* UNN - Brunei */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc003.mcc528.3gppnetwork.org");
+ break;
+ }
+ case 406: /* DST - Brunei */
+ {
+ update_str(cfg->gba_info.gba_url, "bsf.ims.mnc011.mcc528.3gppnetwork.org");
+ break;
+ }
+ case 410: /* Mtel/Bosnia and Herzegovina */
+ {
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_adding_unprovisioned_rule = XCAP_DISABLED;
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ break;
+ }
+ case 412: /* Stand Rock-US */
+ {
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc530.mcc311.pub.3gppnetwork.org");
+ break;
+ }
+ case 419: /* Airtel - Uganda */
+ {
+ if (streq(mcc, "641")) {
+ update_str(cfg->gba_info.gba_type, "GBA_ME");
+ update_str(cfg->xcap_info.xcap_url, "xcap.ims.mnc001.mcc641.pub.3gppnetwork.org");
+ cfg->xcap_info.xcap_port = 8081;
+ update_str(cfg->gba_info.gba_url, "bsf.mnc001.mcc641.pub.3gppnetwork.org");
+ cfg->xcap_info.support_media_tag = XCAP_DISABLED;
+ cfg->xcap_info.support_cfnl = XCAP_DISABLED;
+ }
+ 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 038dc00..d5e3aca 100755
--- a/mcu/custom/protocol/common/ps/custom_xcap_config.h
+++ b/mcu/custom/protocol/common/ps/custom_xcap_config.h
@@ -180,7 +180,7 @@
#define XCAP_INFO_DEFAULT_SUPPORT_ADDING_NO_REPLY_TIMER XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_ADDING_UNPROVISIONED_RULE XCAP_ENABLED
#define XCAP_INFO_DEFAULT_SUPPORT_XCAP_ENHANCE XCAP_ENABLED
-#define XCAP_INFO_DEFAULT_TOTAL_EXE_TIME 30
+#define XCAP_INFO_DEFAULT_TOTAL_EXE_TIME 35
#define XCAP_INFO_DEFAULT_NEED_CHECK_ISIM_INFO XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_ADDING_NAMESPACE XCAP_ENABLED
#define XCAP_INFO_DEFAULT_SUPPORT_BAICA XCAP_DISABLED
@@ -189,6 +189,7 @@
#define XCAP_INFO_DEFAULT_SUPPORT_QUERY_SIMSERVS XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_DISABLE_BY_COND XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_ENABLE_BY_COND XCAP_DISABLED
+#define XCAP_INFO_DEFAULT_SUPPORT_ERASURE_BY_COND XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_ISIM XCAP_ENABLED
#define XCAP_INFO_DEFAULT_EXCLUSIVE_CB XCAP_DISABLED
#define XCAP_INFO_DEFAULT_SUPPORT_PUT_CW_ROOT XCAP_DISABLED
@@ -231,7 +232,7 @@
#define CM_INFO_DEFAULT_ACCEPT_PUBLIC_WIFI XCAP_DISABLED
#define CM_INFO_DEFAULT_PDN_RETRY_TIMES 2
#define CM_INFO_DEFAULT_PDN_REJECT_CODE 0x0000
-#define CM_INFO_DEFAULT_SUPPORT_EMPTY_PDN_ESTABLISHMENT XCAP_ENABLED
+#define CM_INFO_DEFAULT_SUPPORT_EMPTY_PDN_ESTABLISHMENT XCAP_DISABLED
// HTTP Info Default Values
#define HTTP_INFO_DEFAULT_SUPPROT_GZIP XCAP_DISABLED
@@ -242,6 +243,7 @@
#define HTTP_INFO_DEFAULT_HIDE_PORT_NUMBER XCAP_DISABLED
#define HTTP_INFO_DEFAULT_DNS_FAILOVER XCAP_DISABLED
#define HTTP_INFO_DEFAULT_XCAP_DNS_DEFAULT_TTL 600
+#define HTTP_INFO_DEFAULT_DNS_FORCE_QUERY KAL_FALSE
// SIM Info Default Values
#define SIM_INFO_DEFAULT_SAVED_IMSI ""