[Feature][Modem]Add Modem Patch P1

Change-Id: Idee4f9fd6700b484f7db86704cf5639cec4d71a2
diff --git a/mcu/custom/protocol/common/ps/custom_atcmd_parse.c b/mcu/custom/protocol/common/ps/custom_atcmd_parse.c
old mode 100644
new mode 100755
index e7b5646..dcc89ed
--- a/mcu/custom/protocol/common/ps/custom_atcmd_parse.c
+++ b/mcu/custom/protocol/common/ps/custom_atcmd_parse.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
@@ -91,7 +91,7 @@
 //#include "custom_nvram_editor_data_item.h"
 #include "dcl.h"
 #include "dcm_sw.h"
-#if defined(__MTK_TARGET__) 
+#if defined(__MTK_TARGET__)
 extern kal_uint32 PLL_FrequencyMeter_GetFreq(kal_uint32 index);
 #include "kal_debug.h"
 #endif
@@ -124,7 +124,7 @@
 #include "ps2sat_struct.h"
 #include "sim_common_enums.h"
 #include "smu_common_enums.h"
-#endif /* __MOD_SMU__ */ 
+#endif /* __MOD_SMU__ */
 
 #include "gmss_public.h"
 
@@ -166,7 +166,7 @@
 #endif
 #endif
 
-#if defined(__MTK_TARGET__) 
+#if defined(__MTK_TARGET__)
 #include "ptp_public.h"
 #endif
 
@@ -180,8 +180,8 @@
 #include "dsp_header_define_cuif_inner_brp.h"
 #include "dsp_header_define_cuif_fec_wbrp.h"
 #include "dsp_header_define_cuif_speech.h"
-#endif	
-#endif	
+#endif
+#endif
 
 #if defined(__MTK_TARGET__)
 extern kal_bool Set_EMI_ELM_ExceptionType(kal_uint8 exception_type);
@@ -207,7 +207,7 @@
 #  include "mdmcu_pmu.h"
 # endif
 # include "system_profiler_public.h"
-#endif	
+#endif
 
 #ifdef __AGPS_CONTROL_PLANE__
 extern kal_uint8 l4c_get_csmss_g_ss_id(void);
@@ -218,16 +218,16 @@
 #ifndef L4_NOT_PRESENT
 extern kal_bool l4c_drx_setting_req_hdlr(kal_uint8* data);
 #endif
-/* mtk01616_080104: 
+/* mtk01616_080104:
   * This is used to define default <time> and <pause> value for AT+CKPD.
   * <time> * 0.1 sec is the time to stroke each key
-  * <pause> * 0.1 sec  is the length between two strokes.  
+  * <pause> * 0.1 sec  is the length between two strokes.
   * <time> or <pause> should not larger than 255 (25.5 sec)
   * Default value is manufacturer specific,but should be so long that a normal MT can handle keystrokes correctly
   * Please refer to spec 07.07 section 8.7 for more detailed information
   */
 #define CUSTOM_AT_CKPD_DEFAULT_TIME 2
-#define CUSTOM_AT_CKPD_DEFAULT_PAUSE 4 
+#define CUSTOM_AT_CKPD_DEFAULT_PAUSE 4
 
 //Define AT command URC "RING" interval , the unit is 0.1 sec , default value is 4 sec = 40 x 0.1 sec
 #define CUSTOM_URC_RING_INTERVAL 40
@@ -273,35 +273,35 @@
     DCL_HANDLE handle;
     kal_uint8 *ctp_buffer = NULL;
     kal_uint8 *result = NULL;
-    
+
     ctp_buffer = (kal_uint8 *)get_ctrl_buffer( 1024 );
-    
+
     if ( ctp_buffer == NULL )
         EXT_ASSERT(0, (int)ctp_buffer, 0, 0);
-        
+
     cmd.u4Command = action;
     cmd.pVoid1 = (void *)data_str;
     cmd.pVoid2 = (void *)&result;
-    
+
     handle = DclSTS_Open( DCL_TS, 0 );
-    DclSTS_Control( handle, STS_CMD_COMMAND, (DCL_CTRL_DATA_T *)&cmd );   
-    DclSTS_Close(handle);     
-    
+    DclSTS_Control( handle, STS_CMD_COMMAND, (DCL_CTRL_DATA_T *)&cmd );
+    DclSTS_Close(handle);
+
     if ( action == DCL_CTP_COMMAND_GET_VERSION )
         ret_len = 6;
-        
+
     if ( action == DCL_CTP_COMMAND_GET_CONFIG )
         ret_len = 106;
-            
+
     if ( action == DCL_CTP_COMMAND_GET_DIFF_DATA )
-        ret_len = 162;      
+        ret_len = 162;
 
     if ( action == DCL_CTP_COMMAND_GET_FW_BUFFER )
     {
         offset = data_str[0]*256 + data_str[1];
         inlen = data_str[2];
         memcpy( &result[offset], &data_str[3], inlen);
-        
+
         if ( inlen != 128 )
         {
             #define GT818_FW_STRING  "ctp_firmware_rusklmeoxkwjadfjnklruo3"
@@ -309,24 +309,24 @@
             FS_HANDLE fs_handle;
             UINT writen;
             kal_wchar   CTP_FIRMWARE_PATH[64];
-                    
+
             drv_letter = FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_I_SYSTEM | FS_DRIVE_V_NORMAL);
-            kal_wsprintf( CTP_FIRMWARE_PATH, "%c:\\%s", drv_letter, GT818_FW_STRING );    
+            kal_wsprintf( CTP_FIRMWARE_PATH, "%c:\\%s", drv_letter, GT818_FW_STRING );
             fs_handle = FS_Open( CTP_FIRMWARE_PATH, FS_CREATE_ALWAYS | FS_READ_WRITE );
             FS_Write(fs_handle, (kal_uint8 *) result , offset+inlen, &writen);
             FS_Close( fs_handle );
-        }            
+        }
     }
-    
+
     kal_sprintf( (kal_char *)ctp_buffer, "+EGCMD: " );
-            
+
     for ( i = 0 ; i < ret_len ; i++ )
-        kal_sprintf( (kal_char *)&ctp_buffer[strlen((char *)(ctp_buffer))], "%02X", result[i] );            
-        
-    rmmi_write_unsolicitedResultCode( ctp_buffer, strlen((kal_char *)(ctp_buffer)), KAL_TRUE, 1, NULL );    
-    
+        kal_sprintf( (kal_char *)&ctp_buffer[strlen((char *)(ctp_buffer))], "%02X", result[i] );
+
+    rmmi_write_unsolicitedResultCode( ctp_buffer, strlen((kal_char *)(ctp_buffer)), KAL_TRUE, 1, NULL );
+
     free_ctrl_buffer( ctp_buffer );
-    
+
     return KAL_TRUE;
 }
 #endif
@@ -338,9 +338,9 @@
     tst_inject = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-    strncpy((kal_char*)tst_inject->string, cmd_str, strlen(cmd_str));
+    strncpy((kal_char*)tst_inject->string, cmd_str, sizeof(tst_inject->string)-1);
     msg_send5(MOD_L4C, dst_mod, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-    
+
     return KAL_TRUE;
 #else
     return KAL_FALSE;
@@ -354,9 +354,9 @@
     tst_module_string_inject_struct *sleep_ctrl;
     sleep_ctrl = construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-    strncpy((kal_char*)sleep_ctrl->string, cmd_str, strlen(cmd_str));
+    strncpy((kal_char*)tst_inject->string, cmd_str, sizeof(tst_inject->string)-1);
     msg_send5(MOD_L4C, MOD_CHSC, 0, MSG_ID_C2K_SLEEP_CTRL_MSG, (local_para_struct*)sleep_ctrl);
-    
+
     return KAL_TRUE;
 #else
     return KAL_FALSE;
@@ -366,23 +366,23 @@
 
 
 #ifdef __UMTS_TDD128_MODE__
-static const module_name_enum_map_struct mod_map[] = 
-    {                        
-            {"0MDDBG", MOD_MDDBG0, MOD_MDDBG0, 0},//0                    
-            {"MEME", MOD_MEME_FDD, MOD_MEME_TDD, 0},//0                    
+static const module_name_enum_map_struct mod_map[] =
+    {
+            {"0MDDBG", MOD_MDDBG0, MOD_MDDBG0, 0},//0
+            {"MEME", MOD_MEME_FDD, MOD_MEME_TDD, 0},//0
             {"CSE", MOD_CSE_FDD, MOD_CSE_TDD, 0},
             {"CSCE", MOD_CSCE_FDD, MOD_CSCE_TDD, 0},
-            {"SIBE", MOD_SIBE_FDD, MOD_SIBE_TDD, 0}, 
+            {"SIBE", MOD_SIBE_FDD, MOD_SIBE_TDD, 0},
             {"USIME", MOD_USIME_FDD, MOD_USIME_TDD, 0},
             {"RRCE", MOD_RRCE_FDD, MOD_RRCE_TDD, 0},//5
             {"SLCE", MOD_SLCE_FDD, MOD_SLCE_TDD, 0},
             {"ADR", MOD_ADR_FDD, MOD_ADR_TDD, 0},
-            {"URR", MOD_URR_FDD, MOD_URR_TDD, 0}, 
+            {"URR", MOD_URR_FDD, MOD_URR_TDD, 0},
             {"URLC", MOD_URLC_FDD, MOD_URLC_TDD, 0},
             {"UMAC", MOD_UMAC_FDD, MOD_UMAC_TDD, 0},//10
-            {"UL2", MOD_UL2_FDD, MOD_UL2_TDD, 0},                    
+            {"UL2", MOD_UL2_FDD, MOD_UL2_TDD, 0},
             {"MM", MOD_MM, MOD_MM, 0},
-            {"CC", MOD_CC, MOD_CC, 0}, 
+            {"CC", MOD_CC, MOD_CC, 0},
             {"CISS", MOD_CISS, MOD_CISS, 0},
             {"SMS", MOD_SMS, MOD_SMS, 0},//15
             {"SIM", MOD_SIM, MOD_SIM, 0},
@@ -392,25 +392,25 @@
             #else
             {"L4C2", MOD_L4C, MOD_L4C, 0},
             #endif
-            {"TCM", MOD_TCM, MOD_TCM, 0}, 
+            {"TCM", MOD_TCM, MOD_TCM, 0},
             {"SMSAL", MOD_SMSAL, MOD_SMSAL, 0},//20
             {"UEM", MOD_UEM, MOD_UEM, 0},
             {"RAC", MOD_RAC, MOD_RAC, 0},
             {"SMU", MOD_SMU, MOD_SMU, 0},
-            {"USAT", MOD_USAT, MOD_USAT, 0}, 
+            {"USAT", MOD_USAT, MOD_USAT, 0},
             {"CSM", MOD_CSM, MOD_CSM, 0},//25
             {"ENG", MOD_ENG, MOD_ENG, 0},
             {"PHB", MOD_PHB, MOD_PHB, 0},
             {"RRM", MOD_RRM_FDD, MOD_RRM_TDD, 0},
-            {"RLC", MOD_RLC_FDD, MOD_RLC_TDD, 0}, 
+            {"RLC", MOD_RLC_FDD, MOD_RLC_TDD, 0},
             {"MAC", MOD_MAC_FDD, MOD_MAC_TDD, 0},//30
-            {"LAPDM", MOD_LAPDM_FDD, MOD_LAPDM_TDD, 0}, 
+            {"LAPDM", MOD_LAPDM_FDD, MOD_LAPDM_TDD, 0},
             {"MPAL", MOD_MPAL_FDD, MOD_MPAL_TDD, 0},
             {"SNDCP", MOD_SNDCP, MOD_SNDCP, 0},
-            {"SM", MOD_SM, MOD_SM, 0}, 
+            {"SM", MOD_SM, MOD_SM, 0},
             {"LLC", MOD_LLC, MOD_LLC, 0},//35
-            {"MBMSAL", MOD_MBMSAL, MOD_MBMSAL, 0}, 
-            {"GMSS", MOD_GMSS,MOD_GMSS, 0}, 
+            {"MBMSAL", MOD_MBMSAL, MOD_MBMSAL, 0},
+            {"GMSS", MOD_GMSS,MOD_GMSS, 0},
             {"NWSEL", MOD_NWSEL,MOD_NWSEL, 0},
             {"ERRC", MOD_ERRC,MOD_ERRC, 0},
             {"EMM", MOD_EMM, MOD_EMM, 0},
@@ -430,7 +430,7 @@
             #endif
             #if (CUR_GEN >= MD_GEN97)
             #ifdef __NR_RAT__
-            {"NRRC", MOD_NRRC, MOD_NRRC, 0},            
+            {"NRRC", MOD_NRRC, MOD_NRRC, 0},
             {"NL1MOB", MOD_NL1_MOB, MOD_NL1_MOB, 0},
             {"VGMM", MOD_VGMM, MOD_VGMM, 0},
             {"NL1", MOD_NL1, MOD_NL1, 0},
@@ -454,23 +454,23 @@
             #endif /* __GEMINI__ */
         };
 #else  /* __UMTS_TDD128_MODE__ */
-static const module_name_enum_map_struct mod_map[] = 
-    {                        
-            {"0MDDBG", MOD_MDDBG0, MOD_MDDBG0, 0},//0                    
-            {"MEME", MOD_MEME_FDD, MOD_NIL, 0},//0                    
+static const module_name_enum_map_struct mod_map[] =
+    {
+            {"0MDDBG", MOD_MDDBG0, MOD_MDDBG0, 0},//0
+            {"MEME", MOD_MEME_FDD, MOD_NIL, 0},//0
             {"CSE", MOD_CSE_FDD, MOD_NIL, 0},
             {"CSCE", MOD_CSCE_FDD, MOD_NIL, 0},
-            {"SIBE", MOD_SIBE_FDD, MOD_NIL, 0}, 
+            {"SIBE", MOD_SIBE_FDD, MOD_NIL, 0},
             {"USIME", MOD_USIME_FDD, MOD_NIL, 0},
             {"RRCE", MOD_RRCE_FDD, MOD_NIL, 0},//5
             {"SLCE", MOD_SLCE_FDD, MOD_NIL, 0},
             {"ADR", MOD_ADR_FDD, MOD_NIL, 0},
-            {"URR", MOD_URR_FDD, MOD_NIL, 0}, 
+            {"URR", MOD_URR_FDD, MOD_NIL, 0},
             {"URLC", MOD_URLC_FDD, MOD_NIL, 0},
             {"UMAC", MOD_UMAC_FDD, MOD_NIL, 0},//10
-            {"UL2", MOD_UL2_FDD, MOD_NIL, 0},                    
+            {"UL2", MOD_UL2_FDD, MOD_NIL, 0},
             {"MM", MOD_MM, MOD_MM, 0},
-            {"CC", MOD_CC, MOD_CC, 0}, 
+            {"CC", MOD_CC, MOD_CC, 0},
             {"CISS", MOD_CISS, MOD_CISS, 0},
             {"SMS", MOD_SMS, MOD_SMS, 0},//15
             {"SIM", MOD_SIM, MOD_SIM, 0},
@@ -480,25 +480,25 @@
             #else
             {"L4C2", MOD_L4C, MOD_L4C, 0},
             #endif
-            {"TCM", MOD_TCM, MOD_TCM, 0}, 
+            {"TCM", MOD_TCM, MOD_TCM, 0},
             {"SMSAL", MOD_SMSAL, MOD_SMSAL, 0},//20
             {"UEM", MOD_UEM, MOD_UEM, 0},
             {"RAC", MOD_RAC, MOD_RAC, 0},
             {"SMU", MOD_SMU, MOD_SMU, 0},
-            {"USAT", MOD_USAT, MOD_USAT, 0}, 
+            {"USAT", MOD_USAT, MOD_USAT, 0},
             {"CSM", MOD_CSM, MOD_CSM, 0},//25
             {"ENG", MOD_ENG, MOD_ENG, 0},
             {"PHB", MOD_PHB, MOD_PHB, 0},
             {"RRM", MOD_RRM_FDD, MOD_NIL, 0},
-            {"RLC", MOD_RLC_FDD, MOD_NIL, 0}, 
+            {"RLC", MOD_RLC_FDD, MOD_NIL, 0},
             {"MAC", MOD_MAC_FDD, MOD_NIL, 0},//30
-            {"LAPDM", MOD_LAPDM_FDD, MOD_NIL, 0}, 
+            {"LAPDM", MOD_LAPDM_FDD, MOD_NIL, 0},
             {"MPAL", MOD_MPAL_FDD, MOD_NIL, 0},
             {"SNDCP", MOD_SNDCP, MOD_SNDCP, 0},
-            {"SM", MOD_SM, MOD_SM, 0}, 
+            {"SM", MOD_SM, MOD_SM, 0},
             {"LLC", MOD_LLC, MOD_LLC, 0},//35
-            {"MBMSAL", MOD_MBMSAL, MOD_MBMSAL, 0}, 
-            {"GMSS", MOD_GMSS,MOD_GMSS, 0}, 
+            {"MBMSAL", MOD_MBMSAL, MOD_MBMSAL, 0},
+            {"GMSS", MOD_GMSS,MOD_GMSS, 0},
             {"NWSEL", MOD_NWSEL,MOD_NWSEL, 0},
             {"ERRC", MOD_ERRC,MOD_ERRC, 0},
             {"EMM", MOD_EMM, MOD_EMM, 0},
@@ -551,7 +551,7 @@
 *  	rmmi_get_data_ps_id()
 * DESCRIPTION
 *   	This function will use mspm_is_proc_ongoing API to derive the data sim PS_ID.
-*       please be aware that mspm_sim_index_enum is PS_ID 
+*       please be aware that mspm_sim_index_enum is PS_ID
 * PARAMETERS
 * RETURNS
 *	kal_int8: PS 0~3 or -1
@@ -581,38 +581,38 @@
 *   	This function should parse general proprietary AT command request.
 *     Each owner should maintain and modify the code.
 * PARAMETERS
-*   	kal_uint32 op 
-*	kal_uint32 data_len 
+*   	kal_uint32 op
+*	kal_uint32 data_len
 *	kal_uint8 *data_str
 * RETURNS
 *	KAL_TRUE or KAL_FALSE
 *****************************************************************************/
-kal_bool rmmi_general_command_parsing(kal_uint32 op, 
-												kal_uint32 data_len, 
+kal_bool rmmi_general_command_parsing(kal_uint32 op,
+												kal_uint32 data_len,
 												kal_uint8 *data_str)
 {
 	kal_bool ret_val = KAL_FALSE;
-	
+
 #ifndef L4_NOT_PRESENT
 
 	switch(op)
 	{
-		
+
 		case 2: /* add by stanley 2006-07-03*/
 		{
 #if  defined(__BTMTK__)
 			bt_test_cmd_req_struct  *param_ptr;
 			param_ptr = (bt_test_cmd_req_struct *)construct_local_para(
 															(kal_uint16)sizeof(bt_test_cmd_req_struct),
-															TD_CTRL);   
+															TD_CTRL);
 
 			kal_mem_cpy(param_ptr->test_cmd_content, data_str, data_len);
-			rmmi_send_msg_to_bt(MSG_ID_BT_TEST_CMD_REQ, param_ptr);	 
+			rmmi_send_msg_to_bt(MSG_ID_BT_TEST_CMD_REQ, param_ptr);
 			ret_val = KAL_TRUE;
 #endif /* __BTMTK__ */
       break;
 		}
-        
+
     case 6:
     {
 #ifdef __UMTS_RAT__
@@ -657,7 +657,7 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                                         construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject->string, strTstInject, strlen(strTstInject));
+                strncpy((kal_char*)tst_inject->string, strTstInject, sizeof(tst_inject->string)-1);
                 tst_inject->index = data_len;
 
                 {
@@ -665,14 +665,14 @@
                 }
             }
         }
-        	
+
 	ret_val = KAL_TRUE;
         }
 #endif /* __UMTS_RAT__ */
     }
     break;
 
-    #if defined(__AGPS_CONTROL_PLANE__)            
+    #if defined(__AGPS_CONTROL_PLANE__)
         case 14:
         {
             ret_val = KAL_TRUE;
@@ -680,11 +680,11 @@
         }
     #endif
 
-/************************sample code begin************************/			
+/************************sample code begin************************/
 //		case op: /*owner_date: purpose*/
 //		{
 //			/*call proprietary parsing function here and AT will give result  */
-//			/*code OK/ERROR according to return value of parsing function*/	
+//			/*code OK/ERROR according to return value of parsing function*/
 //
 //			break;
 //		}
@@ -703,7 +703,7 @@
         {
             ret_val = process_gt818_ctp_cmd( (kal_uint8)(op - 15), data_len, data_str );
             break;
-        }   
+        }
     #endif
 
 #if defined(__AGPS_SUPPORT__)
@@ -886,7 +886,7 @@
             ret_val = custom_send_sm_stress_inject_msg( "OSTDSleepEnable", MOD_L1);
             break;
         }
-#if defined(__MTK_TARGET__) 
+#if defined(__MTK_TARGET__)
         case 55:
         {
             //ret_val = custom_send_sm_stress_inject_msg( "OSTDSleepDisable", MOD_L1);
@@ -1021,8 +1021,8 @@
             }
             break;
         }
-        
-#if defined(__MTK_TARGET__) 
+
+#if defined(__MTK_TARGET__)
         case 71:
         {
             if (data_len == 3) {
@@ -1072,7 +1072,7 @@
          #endif
 	 #else
 	    ASSERT(0);
-	 #endif   
+	 #endif
             break;
         }
 	case 77:
@@ -1095,7 +1095,7 @@
 	    }
 	#else
 	    ASSERT(0);
-	#endif  
+	#endif
             break;
         }
         case 78:
@@ -1112,7 +1112,7 @@
         {
             ret_val = ptp_Dump_API(data_len,data_str);
             break;
-        }       
+        }
         case 87:
         {
             ret_val = ptp_PMIC_API(data_len,data_str);
@@ -1128,33 +1128,33 @@
 
 #ifdef __LTE_RAT__
         case 90:
-        {   
+        {
             //AT cmd to inject message to EMM, note that only HEX STRING can be accepted
-            if (data_str[0]  == 0x00)  
+            if (data_str[0]  == 0x00)
             {
                 // stop all running T3402s
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            
-                strncpy((kal_char*)tst_inject->string, "stop_t3402_all", strlen("stop_t3402_all"));
+
+                strncpy((kal_char*)tst_inject->string, "stop_t3402_all", sizeof(tst_inject->string));
                 tst_inject->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
                 ret_val = KAL_TRUE;
             }
-            
+
             //AT cmd to reset VZW parameters
-            if (data_str[0]  == 0x01)  
-            { 
+            if (data_str[0]  == 0x01)
+            {
                 // reset EMM parameters
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            
-                strncpy((kal_char*)tst_inject->string, "vzw_reset", strlen("vzw_reset"));
+
+                strncpy((kal_char*)tst_inject->string, "vzw_reset", sizeof(tst_inject->string));
                 tst_inject->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-                
+
                 // TODO: reset PAM parameters
-                
+
                 // TODO: reset NWSEL parameters
 
 
@@ -1162,20 +1162,20 @@
             }
 
             //AT cmd to inject message to EMM to setup short T3430
-            if (data_str[0]  == 0x02)  
+            if (data_str[0]  == 0x02)
             {
                 tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            
-                strncpy((kal_char*)tst_inject_sim1->string, "SHORT_T3430", strlen("SHORT_T3430"));
+
+                strncpy((kal_char*)tst_inject_sim1->string, "SHORT_T3430", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-                
+
 #if defined(__GEMINI_LTE__)
                 tst_module_string_inject_struct *tst_inject_sim2;
                 tst_inject_sim2 = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject_sim2->string, "SHORT_T3430", strlen("SHORT_T3430"));
+                strncpy((kal_char*)tst_inject_sim2->string, "SHORT_T3430", sizeof(tst_inject_sim2->string));
                 tst_inject_sim2->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 
@@ -1186,20 +1186,20 @@
             }
 
             //AT cmd to inject message to EMM to setup normal T3430
-            if (data_str[0]  == 0x03)  
+            if (data_str[0]  == 0x03)
             {
                 tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            
-                strncpy((kal_char*)tst_inject_sim1->string, "DEFAULT_T3430", strlen("DEFAULT_T3430"));
+
+                strncpy((kal_char*)tst_inject_sim1->string, "DEFAULT_T3430", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-                
+
 #if defined(__GEMINI_LTE__)
                 tst_module_string_inject_struct *tst_inject_sim2;
                 tst_inject_sim2 = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject_sim2->string, "DEFAULT_T3430", strlen("DEFAULT_T3430"));
+                strncpy((kal_char*)tst_inject_sim2->string, "DEFAULT_T3430", sizeof(tst_inject_sim2->string));
                 tst_inject_sim2->index = 0;
                 msg_send5(MOD_DHL_READER, MOD_EMM_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 
@@ -1254,14 +1254,14 @@
                 error_code = SysProfiler_Stop();
                 if(error_code != SYSPRO_ERROR_CODE_SUCCESS){
                     kal_sys_trace("Sysprofiler Fail to Stop by AT-CMD");
-                }      
+                }
             }
 
             //kal_char msg_buff[100];
             //snprintf(msg_buff, sizeof(msg_buff), "[SWLA] SWLA_AT_CMD:%d %d %d.", (kal_uint32)data_str[0], (kal_uint32)data_str[1], (kal_uint32)data_str[2] );
-            //kal_sys_trace(msg_buff); 
+            //kal_sys_trace(msg_buff);
 
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
         }
         break;
         case 101:
@@ -1275,9 +1275,9 @@
             SysProfiler_SetMode( (kal_uint8)data_str[0] );
             //kal_char msg_buff[100];
             //snprintf(msg_buff, sizeof(msg_buff), "[SWLA] SWLA_AT_CMD:%d %d %d. ", (kal_uint32)data_str[0], (kal_uint32)data_str[1], (kal_uint32)data_str[2] );
-            //kal_sys_trace(msg_buff); 
+            //kal_sys_trace(msg_buff);
 
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
         }
         break;
 
@@ -1292,11 +1292,11 @@
                 snprintf(tmp_buff, sizeof(tmp_buff), " 0x%02x", data_str[i]);
                 strncat(msg_buff, tmp_buff, strlen(tmp_buff));
             }
-            kal_sys_trace(msg_buff); 
+            kal_sys_trace(msg_buff);
 
             switch( data_str[0])
             {
-                case 0: 
+                case 0:
                 {
                     error_code = SysProfiler_PassPMCParameterByATCMD(data_str);
                     ASSERT(error_code == SYSPRO_ERROR_CODE_SUCCESS);
@@ -1332,7 +1332,7 @@
                     coreID = data_str[1];
                     kal_uint32 counter = data_str[2];
                     kal_uint32 event = data_str[3];
-                    kal_uint32 qualifier = (data_str[4]<<24) | (data_str[5]<<16) | (data_str[6]<<8) | data_str[7]; 
+                    kal_uint32 qualifier = (data_str[4]<<24) | (data_str[5]<<16) | (data_str[6]<<8) | data_str[7];
 
                     snprintf(msg_buff, sizeof(msg_buff), "Received SWLA CM2 Addon Command. CoreID:%d, Counter:%d, Event:%d, Qualifier:0x%x",
                                 coreID, counter, event, qualifier);
@@ -1377,17 +1377,17 @@
                     ASSERT((start_addr & 0x7) == 0 || (start_addr == 0xFFFFFFFF));  // 8 byte align. If 0xFFFFFFFF then filter is off
                     ASSERT((end_addr & 0x7) == 0 || (end_addr == 0xFFFFFFFF));      // 8 byte aglin. If 0xFFFFFFFF then filter is off
                     ASSERT(target_vpemask <= 0x3F);                                 // vpe id bitmask, 0x3F stands for all vpes
-                    
+
                     /* Config ICM2 */
                     IAPMU_ICM_StopCounter((IAPMU_ICM_CNT_T)(0x1<<counter));
                     IAPMU_ICM_SetEvent((IAPMU_ICM_CNT_T)(0x1<<counter), (IAPMU_ICM_MONITOR_EVENT_T)event, start_addr, end_addr, target_vpemask, qualifier);
                     IAPMU_ICM_ResetCounter((IAPMU_ICM_CNT_T)(0x1<<counter));
                     IAPMU_ICM_StartCounter((IAPMU_ICM_CNT_T)(0x1<<counter));
 
-                    
+
                     for( coreID=0; coreID< MAX_SYSPRO_NUMBER; coreID++){
                         kal_uint16 vpesmask_this_core = 0x1<<(coreID*2) | 0x1<<(coreID*2+1);
-                        if( ( vpesmask_this_core & vpemask) == 0) 
+                        if( ( vpesmask_this_core & vpemask) == 0)
                             continue;  // vpemask no including this core
 
                         error_code = SysProfiler_TurnOnICM2Addon(coreID, counter);
@@ -1408,7 +1408,7 @@
                         ASSERT(error_code == SYSPRO_ERROR_CODE_SUCCESS);
                     }
                     break;
-                }          
+                }
 #endif
                 case 0xff:
                 {
@@ -1420,7 +1420,7 @@
                 default:
                     break;
             }
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
         }
         break;
         case 103:
@@ -1429,15 +1429,15 @@
             kal_char msg_buff[100];
             snprintf(msg_buff, sizeof(msg_buff), "Unit Test %d %d %d %d %d", (kal_uint32)data_str[0], (kal_uint32)data_str[1], (kal_uint32)data_str[2], (kal_uint32)data_str[3], (kal_uint32)data_str[4]  );
             kal_sys_trace(msg_buff);
-            
+
             SYSPROFILER_SNAPSHOT_BUFF_ID_ENUM ID = SYSPRO_SNAPSHOT_BUFF_HRT_FAIL;
             SYSPROFILER_ERROR_CODE error_code;
             error_code = SysProfiler_BufferSnapshot(&ID);
             ASSERT(error_code == SYSPRO_ERROR_CODE_SUCCESS);
-            
+
             snprintf(msg_buff, sizeof(msg_buff), "Unit Test Result: %d %d %d %d %d", (kal_uint32)ID, (kal_uint32)data_str[1], (kal_uint32)data_str[2], (kal_uint32)data_str[3], (kal_uint32)data_str[4]  );
             kal_sys_trace(msg_buff);
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
 #endif
         }
         break;
@@ -1447,21 +1447,21 @@
             switch( data_str[0]){
                 case 0:
                 {
-                    SysProfiler_Adjust_buffer(SYSPRO_MIN_BUFF_SIZE, 0); 
+                    SysProfiler_Adjust_buffer(SYSPRO_MIN_BUFF_SIZE, 0);
                     break;
                 }
                 case 1:
                 {
-                    SysProfiler_Adjust_buffer(SYSPRO_MAX_BUFF_SIZE, 0); 
+                    SysProfiler_Adjust_buffer(SYSPRO_MAX_BUFF_SIZE, 0);
                     break;
                 }
                 case 2:
                 {
                     if(data_len != 5){
-                         kal_sys_trace("Sysprofiler Fail to Adjust buff size due to wrong input size.");                        
+                         kal_sys_trace("Sysprofiler Fail to Adjust buff size due to wrong input size.");
                     }
                     kal_uint32 buff_size = (data_str[1]<<24) | (data_str[2]<<16) | (data_str[3]<<8) | data_str[4];
-                    SysProfiler_Adjust_buffer(SYSPRO_CUSTOM_BUFF_SIZE, buff_size); 
+                    SysProfiler_Adjust_buffer(SYSPRO_CUSTOM_BUFF_SIZE, buff_size);
                     break;
                 }
             }
@@ -1472,7 +1472,7 @@
         {
             kal_char msg_buff[100];
             snprintf(msg_buff, sizeof(msg_buff), "IAPMU_USER_SWITCH_AT_CMD:%d %d . ", (kal_uint32)data_str[0], (kal_uint32)data_str[1]);
-            system_print(msg_buff); 
+            system_print(msg_buff);
             switch( data_str[0])
             {
                 case 0:
@@ -1482,14 +1482,14 @@
                     IAPMU_STATUS_E pmu_error_code = IAPMU_set_current_sw_cfg(new_pmu_user);
                     snprintf(msg_buff, sizeof(msg_buff), "IAPMU_USER_SWITCH_AT_CMD: %s(%d).",
                         (pmu_error_code == PMU_STATUS_OK) ? "OK" : "FAIL", (kal_uint32)pmu_error_code);
-                    system_print(msg_buff); 
+                    system_print(msg_buff);
 #elif defined(__MIPS_I7200__)
                     extern kal_int32 mdmcu_set_current_user(kal_uint32);
                     const kal_uint32 user = data_str[1];
                     const kal_uint32 code = mdmcu_set_current_user(user);
                     snprintf(msg_buff, sizeof(msg_buff), "IAPMU_USER_SWITCH_AT_CMD: %s(%d).",
                         (code == PMU_CODE_OK) ? "OK" : "FAIL", code);
-                    system_print(msg_buff); 
+                    system_print(msg_buff);
 #endif
                     break;
                 }
@@ -1498,7 +1498,7 @@
                     break;
             }
 
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
         }
         break;
 #endif /* __MTK_TARGET__ */
@@ -1508,7 +1508,7 @@
 #if defined(__MD97__)
 		case 145: //MPB enable/disable
 		{
-			extern kal_bool mpb_record_enable;	
+			extern kal_bool mpb_record_enable;
 			if(mpb_record_enable){
 				mpb_record_enable = KAL_FALSE;
 				kal_sys_trace("[MPB] Regular logging DISABLE");
@@ -1519,14 +1519,14 @@
 			ret_val = KAL_TRUE;
 			break;
 		}
-		case 146: // MPB record period 
+		case 146: // MPB record period
 		{
 			kal_uint32 mpb_val = (kal_uint32)(data_str[0]);
 			extern kal_uint32 mpb_record_period_in_sec;
 			extern kal_bool mpb_record_fast_mode;
 			char print_str[64];
 			sprintf(print_str, "[MPB] Set regular logging to %d sec", mpb_val);
-			
+
 			if(mpb_val==0){
 				mpb_record_fast_mode = KAL_TRUE ;
 				kal_sys_trace("[MPB] Fast record mode ENALBE");
@@ -1545,8 +1545,8 @@
         {/* Gen93/95 CMD EX: AT+EGCMD=152, 3, "000009" */ /* "000009"==> MDCORE. "00000E"==> IA. "00000F"==> uSIP. "00000B"==> BUS_2X */
          /* Gen97 CMD EX: AT+EGCMD=152, 3, "000009" */ /* "000009"==> (Shaolin+uSIP bus)+uSIP. "00000E"==> Shaolin+uSIP bus. "00000F"==> uSIP. "00000B"==> BUS_4X. "000401"==> SHAOLIN. "000403"==> IA */
             kal_bool lpm_32K = KAL_TRUE;
-            
-            if (data_len != 3) 
+
+            if (data_len != 3)
             {
                 ret_val = KAL_FALSE;
             }
@@ -1561,7 +1561,7 @@
                     lpm_32K = KAL_FALSE;
                 }
              #if defined(__MD93__)||defined(__MD95__)
-                DCM_Service_Change_LPM_Setting(lpm_32K, (kal_uint32)data_str[1], (kal_uint32)data_str[2]);                
+                DCM_Service_Change_LPM_Setting(lpm_32K, (kal_uint32)data_str[1], (kal_uint32)data_str[2]);
              #else
                 LPM_Change_Setting(lpm_32K, (kal_uint32)data_str[1], (kal_uint32)data_str[2]);
              #endif
@@ -1569,18 +1569,18 @@
             }
 
             break;
-        }        
+        }
     #endif
         case 153:
         {/*CMD EX: AT+EGCMD=153, 1, "1F"*/
             kal_char buff[100];
-            if (data_len != 1) 
+            if (data_len != 1)
             {
                 ret_val = KAL_FALSE;
             }
             else
             {
-                strncpy(buff, "Frequency Meter Source=0x", strlen("Frequency Meter Source=0x"));
+                strncpy(buff, "Frequency Meter Source=0x", 100);
                 kal_itoa(data_str[0], buff+strlen(buff), 16);
                 strncat(buff, ", frequency=", strlen(", frequency="));
                 kal_itoa(PLL_FrequencyMeter_GetFreq((kal_uint32)data_str[0]), buff+strlen(buff), 10);
@@ -1590,64 +1590,64 @@
             }
 
             break;
-        }   
+        }
         case 154:
-        {/* To know DCM is Enable/Disable. CMD EX: AT+EGCMD=154 */            
+        {/* To know DCM is Enable/Disable. CMD EX: AT+EGCMD=154 */
             kal_char buff[40];
-        #if defined(DCM_SUPPORT)    
+        #if defined(DCM_SUPPORT)
             ret_val = DCM_Query_Status();
 
             if(ret_val == KAL_TRUE)
             {
-                strncpy(buff, "DCM Enabled", strlen("DCM Enabled"));
+                strncpy(buff, "DCM Enabled", 40);
             }
             else
             {
-                strncpy(buff, "DCM Disabled", strlen("DCM Disabled"));                    
+                strncpy(buff, "DCM Disabled", 40);
             }
         #else
-            strncpy(buff, "DCM function is not support!", strlen("DCM function is not support!"));
+            strncpy(buff, "DCM function is not support!", 40);
         #endif
             system_print(buff);
-            
+
             ret_val = KAL_TRUE;
             break;
         }
         case 155:
         {/* CMD EX: AT+EGCMD=155 */
-        #if defined(DCM_SUPPORT)            
+        #if defined(DCM_SUPPORT)
             // Unlock DCM by AT Command. ==> DCM enable.   default is enable
             DCM_SW_Unlock(DCM_LOCK_UNLOCK_MODULE_AT_COMMAND);
             ret_val = KAL_TRUE;
-        #else   
+        #else
             ret_val = KAL_FALSE;
-        #endif        
+        #endif
             break;
-        }		
+        }
         case 156:
         {/* CMD EX: AT+EGCMD=156 */
-        #if defined(DCM_SUPPORT)            
+        #if defined(DCM_SUPPORT)
             // Lock DCM by AT Command. ==>DCM disable. default is enable
             DCM_SW_Lock(DCM_LOCK_UNLOCK_MODULE_AT_COMMAND);
             ret_val = KAL_TRUE;
-        #else   
+        #else
             ret_val = KAL_FALSE;
-        #endif             
+        #endif
             break;
         }
         case 157:
         {/* CMD EX: AT+EGCMD=157 */
-        #if defined(DCM_SUPPORT)   
+        #if defined(DCM_SUPPORT)
             extern void DCM_Disable_For_AddressLogger(void);
             // Disable Address Logger related DCM by AT Command. ==> Let tester could use Address Logger normally.
             DCM_Disable_For_AddressLogger();
             ret_val = KAL_TRUE;
-        #else   
+        #else
             ret_val = KAL_FALSE;
-        #endif             
+        #endif
             break;
-        }		
-		case 158:	
+        }
+		case 158:
 		{
 			//Set EMI latency exception type
 			ret_val = Set_EMI_ELM_ExceptionType((data_str[0]));
@@ -1659,29 +1659,29 @@
 			ret_val = Set_EMI_ELM_Config((data_str[0]), (data_str[1]), (data_str[2]));
 			break;
 		}
-		
+
 		case 160:
 		{
 			//Set ELM read average latency threshold
 			//Default value: Please reference to function ELM_INIT in elm.c
-            ret_val = Set_EMI_ELM_Threshold((data_str[0]), (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);						
+            ret_val = Set_EMI_ELM_Threshold((data_str[0]), (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
 			break;
 		}
 
-		case 161:	
-		{			
+		case 161:
+		{
 			ret_val = Set_EMI_ELM_Mode((data_str[0]));
 			break;
 		}
 
-		case 162:	
-		{			
+		case 162:
+		{
 			ret_val = Set_EMI_ELM_VPE((data_str[0]), (data_str[1]));
 			break;
 		}
 
-		case 163:	
-		{			
+		case 163:
+		{
 			ret_val = Set_EMI_ELM_uSIP_Core((data_str[0]), (data_str[1]), (data_str[2]));
 			break;
 		}
@@ -1695,29 +1695,29 @@
 		}
 		case 165:
 		{
-			extern void Drv_ELM_Change_WC_Threshold(kal_uint8,kal_uint32);			
+			extern void Drv_ELM_Change_WC_Threshold(kal_uint8,kal_uint32);
 			Drv_ELM_Change_WC_Threshold((data_str[0]), (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
 			ret_val = KAL_TRUE;
 			break;
 		}
 		case 166:
 		{
-			extern void Drv_ELM_Reset_Mdinfra_AXID_MASK();			
+			extern void Drv_ELM_Reset_Mdinfra_AXID_MASK();
 			Drv_ELM_Reset_Mdinfra_AXID_MASK();
 			ret_val = KAL_TRUE;
 			break;
 		}
 #if defined(__MD95__)
-		case 170:	
-		{			
+		case 170:
+		{
 			ret_val = drv_sfu_AT_Config(data_str);
 			break;
 		}
 #endif
-		
+
 #if defined(__SPV_SIB_DUMP_SWLA__)
                 case 180:
-                { 
+                {
                     extern void SPV_Sib_Dump_SWLA(void);
                     SPV_Sib_Dump_SWLA();
                     ret_val = KAL_TRUE;
@@ -1804,7 +1804,7 @@
             ret_val = 1;
             break;
         }
-#endif	
+#endif
 
 #if defined(__FORCE_EMI_LATENCY_ENABLE__)
 
@@ -1825,23 +1825,23 @@
         if ((data_len >= 3) && ( (kal_uint8)(data_str[2]) == 1)) {
             EMI_FORCE_DISABLE_DRAMC_WRITE_EARLY_RESPONSE();
         }
-		#endif 
-		
+		#endif
+
         EMI_FORCE_LATENCY(r_lat_cfg, w_lat_cfg);
 
         ret_val = KAL_TRUE;
 		break;
-    }  
+    }
 #if defined(__MD97__) && !defined(MT6297)
 	case 194:
-	{		
+	{
 		EMI_AGING_26M();
         ret_val = KAL_TRUE;
 	    break;
 	}
 #endif
 
-#endif	
+#endif
 
 #if defined(__MTK_TARGET__)
         case 195:
@@ -1853,11 +1853,11 @@
         }
 
         case 196:
-        {/*CMD EX: AT+EGCMD=196, 1, "00"   
+        {/*CMD EX: AT+EGCMD=196, 1, "00"
                                     "00": disable. "11": enable*/
 extern void Drv_MDAPInterface_DVFSRC_Log_On(kal_uint32);
 
-            if (data_len != 1) 
+            if (data_len != 1)
             {
                 ret_val = KAL_FALSE;
             }
@@ -1867,21 +1867,21 @@
                 ret_val = KAL_TRUE;
             }
             break;
-        }    
+        }
 #endif
 
-#if defined(__BW_RUNTIME_PF__)	
+#if defined(__BW_RUNTIME_PF__)
 		case 199:
         {
             RECORD_AP_DVFSRC = (kal_uint32)(data_str[0]);
             ret_val = KAL_TRUE;
-            break;            
+            break;
         }
         case 200:
         {
             BW_index = (kal_uint32)(data_str[0]);
             ret_val = KAL_TRUE;
-            break;            
+            break;
         }
         case 201:
         {
@@ -1889,11 +1889,11 @@
             // duration*10 as upper bound
             kal_uint32 duration = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_Cor_Duration_core[0] = duration;
-            BW_Cor_Duration_core[1] = duration;           
+            BW_Cor_Duration_core[1] = duration;
             BW_Dur_Low_core[0] = duration;
-            BW_Dur_Low_core[1] = duration;           
+            BW_Dur_Low_core[1] = duration;
             BW_Dur_High_core[0] = duration*10;
-            BW_Dur_High_core[1] = duration*10;            			
+            BW_Dur_High_core[1] = duration*10;
 #if defined(__MD97__)
 			BW_Cor_Duration_core[2] = duration;
             BW_Cor_Duration_core[3] = duration;
@@ -1902,7 +1902,7 @@
 			BW_Dur_High_core[2] = duration*10;
             BW_Dur_High_core[3] = duration*10;
 #endif
-			
+
             SPVSVC_BW_Threshold_Print();
             ret_val = KAL_TRUE;
             break;
@@ -1911,10 +1911,10 @@
         {
             BW_Cor_Duration_core[0] = BW_Cor_Duration[BW_index];
             BW_Cor_Duration_core[1] = BW_Cor_Duration[BW_index];
-#if defined(__MD97__)			
+#if defined(__MD97__)
             BW_Cor_Duration_core[2] = BW_Cor_Duration[BW_index];
             BW_Cor_Duration_core[3] = BW_Cor_Duration[BW_index];
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
             ret_val = KAL_TRUE;
             break;
@@ -1922,87 +1922,87 @@
         case 205:
         {
             BW_Dur_Low_core[0] = BW_Cor_Duration_Low[BW_index];
-            BW_Dur_Low_core[1] = BW_Cor_Duration_Low[BW_index];      
-#if defined(__MD97__)			
-            BW_Dur_Low_core[2] = BW_Cor_Duration_Low[BW_index];            
-            BW_Dur_Low_core[3] = BW_Cor_Duration_Low[BW_index];  
-#endif			
+            BW_Dur_Low_core[1] = BW_Cor_Duration_Low[BW_index];
+#if defined(__MD97__)
+            BW_Dur_Low_core[2] = BW_Cor_Duration_Low[BW_index];
+            BW_Dur_Low_core[3] = BW_Cor_Duration_Low[BW_index];
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }  
+        }
         case 206:
         {
             BW_Dur_High_core[0] = BW_Cor_Duration_High[BW_index];
-            BW_Dur_High_core[1] = BW_Cor_Duration_High[BW_index];      
-#if defined(__MD97__)			
-            BW_Dur_High_core[2] = BW_Cor_Duration_High[BW_index];            
+            BW_Dur_High_core[1] = BW_Cor_Duration_High[BW_index];
+#if defined(__MD97__)
+            BW_Dur_High_core[2] = BW_Cor_Duration_High[BW_index];
             BW_Dur_High_core[3] = BW_Cor_Duration_High[BW_index];
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
         }
         case 207:
         {
             BW_Cor_Enable = 1;
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }  
+        }
         case 208:
         {
             BW_Cor_Enable = 0;
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 209:
         {
             SPVSVC_BW_Max_Print();
             ret_val = KAL_TRUE;
             break;
-        } 
+        }
         case 210:
         {
             SPVSVC_BW_Max_Clear();
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
             break;
-        }         
+        }
         case 211:
         {
             BW_Cor_Raw_Data_Print_Enable = 1;
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }  
+        }
         case 212:
         {
             BW_Cor_Raw_Data_Print_Enable = 0;
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 213:
         {
-            BW_Transaction_Low_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]); 
+            BW_Transaction_Low_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_Transaction_Low_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#if defined(__MD97__)			
+#if defined(__MD97__)
             BW_Transaction_Low_core[2] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_Transaction_Low_core[3] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 214:
         {
             BW_M3_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_M3_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#if defined(__MD97__)			
+#if defined(__MD97__)
             BW_M3_Assertion_core[2] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_M3_Assertion_core[3] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 215:
         {
             BW_M4_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
@@ -2010,58 +2010,58 @@
 #if defined(__MD97__)
             BW_M4_Assertion_core[2] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_M4_Assertion_core[3] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }   
+        }
         case 216:
         {
             BW_M3M4_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             BW_M3M4_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 217:
         {
             Latency_M3_Read_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M3_Read_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#if defined(__MD97__)			
+#if defined(__MD97__)
             Latency_M3_Read_Assertion_core[2] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M3_Read_Assertion_core[3] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 218:
         {
             Latency_M4_Read_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M4_Read_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#if defined(__MD97__)			
+#if defined(__MD97__)
             Latency_M4_Read_Assertion_core[2] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M4_Read_Assertion_core[3] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
-#endif			
+#endif
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }   
+        }
 #if defined(__MD95__)
         case 219:
         {
             Latency_M3_Write_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M3_Write_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 220:
         {
             Latency_M4_Write_Assertion_core[0] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             Latency_M4_Write_Assertion_core[1] = (kal_uint32)((data_str[0]<<24) | (data_str[1]<<16) | (data_str[2]<<8) | data_str[3]);
             SPVSVC_BW_Threshold_Print();
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
         }
 #endif /*__MD95__*/
@@ -2072,13 +2072,13 @@
 		case 221:
         {
             FORCE_MD_ULTRA(0);
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
 		case 222:
         {
             FORCE_MD_ULTRA(1);
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
         }
 #endif
@@ -2108,12 +2108,12 @@
         case 250:
         {
 extern void SPV_EBM_Dump_Config(kal_bool);
-            
+
             SPV_EBM_Dump_Config(KAL_FALSE);
 
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
         case 251:
         {
 extern kal_bool SPV_EBM_Compare_Config_With_Init(void);
@@ -2124,12 +2124,12 @@
             if(!comparedResult)
                 ASSERT(0);
 
-            ret_val = KAL_TRUE;            
+            ret_val = KAL_TRUE;
             break;
-        }    
+        }
 #endif
         case 300:
-        {            
+        {
             if (data_len == 2)
             {
                 tst_module_string_inject_struct *tst_inject;
@@ -2139,7 +2139,7 @@
                 kal_sprintf((kal_char*)tst_inject->string, "emac300:");
                 tst_inject->string[8] = data_str[0];
                 tst_inject->string[9] = data_str[1];
-                    
+
                 msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #if defined(__NR_RAT__)
@@ -2179,13 +2179,13 @@
                msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
         case 301:
         {
-            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C; 
+            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C;
 
             if (data_len == 1)
             {
@@ -2197,15 +2197,15 @@
                 tst_inject->string[0] = data_str[0];
                 tst_inject->string[1] = data_str[1];
                 tst_inject->string[2] = data_str[2];
-                    
+
                 msg_send5(MOD_L4C + which_sim, MOD_UPCM + which_sim, 0,
                     MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        } 
-        
+        }
+
         case 302:
         {
             if (data_len == 2)
@@ -2218,7 +2218,7 @@
                 tst_inject->string[8] = data_str[0];
                 tst_inject->string[9] = data_str[1];
 
-                    
+
                 msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #if defined(__NR_RAT__)
@@ -2258,10 +2258,10 @@
                msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
- 
+
  	    case 303:
         {
             if (data_len == 1)
@@ -2269,12 +2269,12 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject->string, "TPB_CMD_EN", strlen("TPB_CMD_EN"));
+                strncpy((kal_char*)tst_inject->string, "TPB_CMD_EN", sizeof(tst_inject->string));
                 tst_inject->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_EL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -2285,12 +2285,12 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject->string, "TPB_CMD_THRES", strlen("TPB_CMD_THRES"));
+                strncpy((kal_char*)tst_inject->string, "TPB_CMD_THRES", sizeof(tst_inject->string));
                 tst_inject->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_EL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -2304,22 +2304,22 @@
                 tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim1->string, "EL1_MPC_BOP", strlen("EL1_MPC_BOP"));
+                strncpy((kal_char*)tst_inject_sim1->string, "EL1_MPC_BOP", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_EL1_MPC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-				
+
 				#if defined(__GEMINI_LTE__)
-				tst_module_string_inject_struct *tst_inject_sim2;				
+				tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim2->string, "EL1_MPC_BOP", strlen("EL1_MPC_BOP"));
+                strncpy((kal_char*)tst_inject_sim2->string, "EL1_MPC_BOP", sizeof(tst_inject_sim2->string));
                 tst_inject_sim2->index = data_str[0];
 				msg_send5(MOD_L4C_2, MOD_EL1_MPC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 				#endif
 
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -2336,10 +2336,10 @@
                 tst_inject->string[9]  = data_str[1];
                 tst_inject->string[10] = data_str[2];
                 tst_inject->string[11] = data_str[3];
-                    
+
                 msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
 
-#if defined(__NR_RAT__)                
+#if defined(__NR_RAT__)
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
@@ -2348,18 +2348,18 @@
                 tst_inject->string[15] = data_str[1];
                 tst_inject->string[16] = data_str[2];
                 tst_inject->string[17] = data_str[3];
-                    
+
                 msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
 #endif
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
         case 307:
         {
-            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C; 
+            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C;
 
             if (data_len == 1)
             {
@@ -2371,20 +2371,20 @@
                 tst_inject->string[0] = data_str[0];
                 tst_inject->string[1] = data_str[1];
                 tst_inject->string[2] = data_str[2];
-                    
+
                 msg_send5(MOD_L4C + which_sim, MOD_UPCM + which_sim, 0,
                     MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        } 
+        }
         case 308:/*CMD EX:
         					 AT+EGCMD = 308, 5, "AABBCCFFFF"
         					 AA/BB/CC=0xFF: time setting off
         					 AA/BB/CC>0: config as the setting value AA/BB/CC
         					 FFFF: effective time for the game
-        					 e.g. AT+EGCMD =300,3,"" 
+        					 e.g. AT+EGCMD =300,3,""
         					 => Enable , RSRP = 0xFF88 (-120 dBm),RSRQ = 0xFFF6 (-10 dB)*/
         {
             if (data_len == 5)
@@ -2401,7 +2401,7 @@
                 tst_inject_erlcdl->string[3] = data_str[4];
 
                 msg_send5(MOD_L4C, MOD_ERLCDL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_erlcdl);
-                
+
                 tst_inject_erlcul = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
@@ -2409,11 +2409,11 @@
                 tst_inject_erlcul->string[0] = data_str[0];
                 tst_inject_erlcul->string[1] = data_str[3];
                 tst_inject_erlcul->string[2] = data_str[4];
-                
+
                 msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_erlcul);
             }
-            
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
         case 309:
@@ -2429,16 +2429,16 @@
                 tst_inject->string[9]  = data_str[1];
                 tst_inject->string[10] = data_str[2];
                 tst_inject->string[11] = data_str[3];
-                    
+
                 msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-				
+
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        }   
+        }
         case 310:
-        {                 
+        {
             // AT+EGCMD = 310, 4, "00FF0100"
             // data_len = 4
             // data_str[0] = 0x00
@@ -2456,16 +2456,16 @@
                 tst_inject->string[9]  = data_str[1];
                 tst_inject->string[10] = data_str[2];
                 tst_inject->string[11] = data_str[3];
-                 
+
                 msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-                            
+
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
         case 311:
-        {                 
+        {
             // AT+EGCMD = 311, 4, "00AABBCC"
             // data_len = 4
             // data_str[0] = 0x00
@@ -2488,7 +2488,7 @@
                 msg_send5(MOD_L4C, MOD_ENPDCP, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
         case 312:
@@ -2499,14 +2499,14 @@
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject->string, "KGOpt_dynamic_cqi", strlen("KGOpt_dynamic_cqi"));
+                strncpy((kal_char*)tst_inject->string, "KGOpt_dynamic_cqi", sizeof(tst_inject->string));
 
                 tst_inject->index = data_str[0];
-                    
+
                 msg_send5(MOD_L4C, MOD_EL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-            
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
         case 313:
@@ -2517,14 +2517,14 @@
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject->string, "KGOpt_force_ri", strlen("KGOpt_force_ri"));
+                strncpy((kal_char*)tst_inject->string, "KGOpt_force_ri", sizeof(tst_inject->string));
 
                 tst_inject->index = data_str[0];
-                    
+
                 msg_send5(MOD_L4C, MOD_EL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-            
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
         case 314:
@@ -2536,7 +2536,7 @@
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject->string, "nmac_314", strlen("nmac_314"));
+                strncpy((kal_char*)tst_inject->string, "nmac_314", sizeof(tst_inject->string));
 
                 tst_inject->index = data_str[0];
 
@@ -2553,13 +2553,13 @@
             {
                 //recursive case, must use with care!!!
                 kal_uint8 data_arr[6];
-                
+
                 if(data_str[0]==1 || data_str[0]==2)
                 {
                     //AT+EGCMD = 308, 5, "281E19FFFF"
                     data_arr[0]=40, data_arr[1]=30, data_arr[2]=25, data_arr[3]=data_arr[4]=255;
                     rmmi_general_command_parsing(308,5,data_arr);
-                    
+
                     //AT+EGCMD = 322, 6, "140514FFFFFF"
                     //data_arr[0]=20, data_arr[1]=5, data_arr[2]=20, data_arr[3]=data_arr[4]=data_arr[5]=255;
                     //rmmi_general_command_parsing(322,6,data_arr);
@@ -2599,7 +2599,7 @@
 					//AT+EGCMD = 479, 1, "01"
                     data_arr[0]=1;
                     rmmi_general_command_parsing(479,1,data_arr);
-                    
+
                     //AT+EGCMD = 480, 1, "01"
                     data_arr[0]=1;
                     rmmi_general_command_parsing(480,1,data_arr);
@@ -2611,7 +2611,7 @@
                         //AT+EGCMD = 303, 1, "02"
                         data_arr[0]=2;
                         rmmi_general_command_parsing(303,1,data_arr);
-                        
+
                         //AT+EGCMD = 321, 1, "02"
                         //data_arr[0]=2;
                         //rmmi_general_command_parsing(321,1,data_arr);
@@ -2637,8 +2637,8 @@
                     {
                         //turn off level2 optimization
                         data_arr[0]=2;
-                        rmmi_general_command_parsing(305,1,data_arr);                        
-                        
+                        rmmi_general_command_parsing(305,1,data_arr);
+
                         data_arr[0]=data_arr[1]=data_arr[2]=data_arr[3]=0;
                         rmmi_general_command_parsing(303,1,data_arr);
                         rmmi_general_command_parsing(312,1,data_arr);
@@ -2671,9 +2671,9 @@
                     rmmi_general_command_parsing(90,1,data_arr);
 
                 }
-                
-            } 
-            ret_val = KAL_TRUE;       
+
+            }
+            ret_val = KAL_TRUE;
             break;
         }
         case 316:
@@ -2691,7 +2691,7 @@
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
-                strncpy((kal_char*)tst_inject->string, "atcmd_disable_316", strlen("atcmd_disable_316"));
+                strncpy((kal_char*)tst_inject->string, "atcmd_disable_316", sizeof(tst_inject->string));
                 tst_inject->index = data_str[0];
 
                 msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
@@ -2708,7 +2708,7 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "emac317:");
                 tst_inject->string[8]  = data_str[0];
                 tst_inject->string[9]  = data_str[1];
@@ -2718,13 +2718,13 @@
                 tst_inject->string[13] = data_str[5];
                 tst_inject->string[14] = data_str[6];
                 tst_inject->string[15] = data_str[7];
-                   
-                msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        }              
+        }
         case 318:
         {
 #ifdef __LTE_RAT__
@@ -2738,14 +2738,14 @@
             {
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para(sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject->string, "KGOpt_custom_paging_cycle", strlen("KGOpt_custom_paging_cycle"));
+                strncpy((kal_char*)tst_inject->string, "KGOpt_custom_paging_cycle", sizeof(tst_inject->string));
                 tst_inject->index = (data_str[0] & 0x0F);
                 msg_send5(MOD_L4C, MOD_ERRC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
             ret_val = KAL_TRUE;
             break;
-        }     
+        }
         case 319:
         {
             // AT+EGCMD = 319, 6, "010203040506" (backward compatible to Gen95 command)
@@ -2771,7 +2771,7 @@
             break;
         }
         case 320:
-        {                 
+        {
             // AT+EGCMD = 320, 2, "00AA"
             // data_len = 2
             // data_str[0] = 0x00
@@ -2791,33 +2791,33 @@
                 msg_send5(MOD_L4C, MOD_ENPDCP, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
-#if defined(__NR_RAT__)        
+#if defined(__NR_RAT__)
         case 321:
-        {                 
+        {
             // AT+EGCMD = 321, 1, "10"
             if (data_len == 1)
             {
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_TPB_CMD_EN", strlen("NL1_TXPWR_TPB_CMD_EN"));
+                strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_TPB_CMD_EN", sizeof(tst_inject->string));
                 tst_inject->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
-#endif       
+#endif
         case 322:
         /*CMD EX:
         					 AT+EGCMD = 322, 5, "AABBCCDDFFFF"
         					 AA/BB/CC=0xFF: time setting off */
         {
-#if defined(__NR_RAT__)        
+#if defined(__NR_RAT__)
             if (data_len == 6)
             {
                 tst_module_string_inject_struct *tst_inject_nrlcul, *tst_inject_nrlcdl;
@@ -2833,7 +2833,7 @@
 				tst_inject_nrlcdl->string[13] = data_str[5];
 
                 msg_send5(MOD_L4C, MOD_NRLCDL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_nrlcdl);
-                
+
                 tst_inject_nrlcul = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
 
@@ -2843,21 +2843,21 @@
 				tst_inject_nrlcul->string[11] = data_str[3];
                 tst_inject_nrlcul->string[12] = data_str[4];
                 tst_inject_nrlcul->string[13] = data_str[5];
-                
+
                 msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_nrlcul);
             }
-#endif       
-            ret_val = KAL_TRUE;       
+#endif
+            ret_val = KAL_TRUE;
             break;
         }
-#if defined(__GEMINI_GAP_CUSTOMIZATION__) 
+#if defined(__GEMINI_GAP_CUSTOMIZATION__)
 
         case 323:
         {
             /*CMD EX:
-        					 AT+EGCMD = 323, 2, "0104"  CUSTOM Threshold enabled, with sinr threshold = 4, 
+        					 AT+EGCMD = 323, 2, "0104"  CUSTOM Threshold enabled, with sinr threshold = 4,
         					 AT+EGCMD = 323, 2, "0001"  CUSTOM Threshold disable
-        					 rs-sinr offset is kept for future use 
+        					 rs-sinr offset is kept for future use
  																	*/
             if (data_len == 2)
             {
@@ -2877,7 +2877,7 @@
 
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -2898,9 +2898,9 @@
                 kal_sprintf((kal_char*)tst_inject_sim1->string, "mpc:325:");
 				tst_inject_sim1->index = data_str[0];
 	            tst_inject_sim1->string[8] = data_str[1];
-	            tst_inject_sim1->string[9] = data_str[2];				
+	            tst_inject_sim1->string[9] = data_str[2];
 				msg_send5(MOD_L4C, MOD_EL1_MPC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-				
+
 				#if defined(__GEMINI_LTE__)
 				tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
@@ -2908,13 +2908,13 @@
                 kal_sprintf((kal_char*)tst_inject_sim2->string, "mpc:325:");
 				tst_inject_sim2->index = data_str[0];
 	            tst_inject_sim2->string[8] = data_str[1];
-	            tst_inject_sim2->string[9] = data_str[2];	
+	            tst_inject_sim2->string[9] = data_str[2];
 				msg_send5(MOD_L4C_2, MOD_EL1_MPC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 				#endif
-				
+
 			}
 
-			ret_val = KAL_TRUE; 	  
+			ret_val = KAL_TRUE;
 			break;
 		}
 		case 326:/*CMD EX:
@@ -2936,7 +2936,7 @@
 				msg_send5(MOD_L4C, MOD_EL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
 			}
 
-			ret_val = KAL_TRUE; 	  
+			ret_val = KAL_TRUE;
 			break;
 		}
 
@@ -2944,10 +2944,10 @@
         {
             /*CMD EX:
         					 AT+EGCMD = 327, 1, "00"  GEMINI_GAP_CUSTOMIZATION(GGC) disabled
-        					 AT+EGCMD = 327, 1, "01"  GGC level 1 enabled 
-        					 AT+EGCMD = 327, 1, "02"  GGC level 2 enabled 
-        					 AT+EGCMD = 327, 1, "03"  GGC level 3 enabled 
-        					 AT+EGCMD = 327, 1, "04"  GGC level 4 enabled 
+        					 AT+EGCMD = 327, 1, "01"  GGC level 1 enabled
+        					 AT+EGCMD = 327, 1, "02"  GGC level 2 enabled
+        					 AT+EGCMD = 327, 1, "03"  GGC level 3 enabled
+        					 AT+EGCMD = 327, 1, "04"  GGC level 4 enabled
  																	*/
  			if (data_len == 1)
             {
@@ -2969,15 +2969,15 @@
 				#define LEVEL_3 3
 				#define LEVEL_4 4
 				/*Patch RCR/RIFM/FPF ON or OFF*/
-				#define RCR_OFF  (0) 
-				#define RCR_ON   (1) 
-				#define RIFM_OFF (0) 
+				#define RCR_OFF  (0)
+				#define RCR_ON   (1)
+				#define RIFM_OFF (0)
 				#define RIFM_ON  (1)
-				#define FPF_OFF  (4) 
-				#define FPF_ON   (3) 
+				#define FPF_OFF  (4)
+				#define FPF_ON   (3)
 				/*Patch unused field value*/
 				#define DEFAULT_VALUE (0)
-				/*RCR AT command threshold*/   		
+				/*RCR AT command threshold*/
 				#define LEVEL_1_RCR_SINR_THRES (10)	 		//Unit: db
 				#define LEVEL_2_RCR_SINR_THRES (5)     		//Unit: db
 				#define LEVEL_3_RCR_SINR_THRES (0)     		//Unit: db
@@ -2991,14 +2991,14 @@
 				#define LEVEL_3_RIFM_SINR_THRES      (10)     //Unit: db
 				#define LEVEL_4_RIFM_SINR_THRES_SIGN (1)      /* 1: THRES >=0, 0: THRES <0 */
 				#define LEVEL_4_RIFM_SINR_THRES      (5)      //Unit: db
-				/*Patch FPF Setting*/   		
-				#define LEVEL_1_FPF_SETTING (FPF_ON)	 		
-				#define LEVEL_2_FPF_SETTING (FPF_ON)    		
-				#define LEVEL_3_FPF_SETTING (FPF_ON)     		
-				#define LEVEL_4_FPF_SETTING (FPF_ON)   
+				/*Patch FPF Setting*/
+				#define LEVEL_1_FPF_SETTING (FPF_ON)
+				#define LEVEL_2_FPF_SETTING (FPF_ON)
+				#define LEVEL_3_FPF_SETTING (FPF_ON)
+				#define LEVEL_4_FPF_SETTING (FPF_ON)
                 switch (data_str[0])
                 {
-                    
+
                     case LEVEL_0:
                         data_RCR[0] = RCR_OFF, data_RCR[1] = DEFAULT_VALUE;
                         data_RIFM[0] = RIFM_OFF, data_RIFM[1] = DEFAULT_VALUE, data_RIFM[2] = DEFAULT_VALUE;
@@ -3029,17 +3029,17 @@
                         data_RIFM[0] = RIFM_OFF, data_RIFM[1] = DEFAULT_VALUE, data_RIFM[2] = DEFAULT_VALUE;
                         data_FPF = FPF_OFF;
                         break;
-                    
+
                 }
-                
+
                 rmmi_general_command_parsing(323, 2, data_RCR);
                 rmmi_general_command_parsing(325, 3, data_RIFM);
                 rmmi_general_command_parsing(326, 1, &data_FPF);
             }
-            ret_val = KAL_TRUE; 	  
+            ret_val = KAL_TRUE;
 			break;
- 																	
-        }  
+
+        }
 #endif /* __GEMINI_GAP_CUSTOMIZATION__ */
         case 328:
         {
@@ -3056,15 +3056,15 @@
                 tst_inject->string[16] = data_str[2];
                 tst_inject->string[17] = data_str[3];
                 tst_inject->string[18] = data_str[4];
-                    
+
                 msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
         case 330:
-        {                 
+        {
             // AT+EGCMD = 330, 3, "00AABB"
             // data_len = 3
             // data_str[0] = 0x00
@@ -3086,11 +3086,11 @@
                 msg_send5(MOD_L4C, MOD_ENPDCP, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
         case 331:
-        {                 
+        {
             // AT+EGCMD = 331, 1, "00"
             // data_len = 1
             // data_str[0] = 0x00
@@ -3108,14 +3108,14 @@
                 msg_send5(MOD_L4C, MOD_ENPDCP, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
         case 332:
         {
-#if defined(__NR_RAT__)			
+#if defined(__NR_RAT__)
             if (data_len == 4)
-            {             
+            {
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
@@ -3124,38 +3124,38 @@
                 tst_inject->string[9]  = data_str[1];
                 tst_inject->string[10] = data_str[2];
                 tst_inject->string[11] = data_str[3];
-                    
-                msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);               
+
+                msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-#endif 	
-            ret_val = KAL_TRUE;       
+#endif
+            ret_val = KAL_TRUE;
             break;
-        }   
+        }
         case 333:
-        {				  
+        {
             // AT+EGCMD = 333, 4, "00FF0100"
             // data_len = 4
             // data_str[0] = 0x00
             // data_str[1] = 0xFF
             // data_str[2] = 0x01
             // data_str[3] = 0x00
-#if defined(__NR_RAT__) 		
+#if defined(__NR_RAT__)
             if (data_len == 4)
-            {            
-                tst_module_string_inject_struct *tst_inject;            
+            {
+                tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-		
+
                 kal_sprintf((kal_char*)tst_inject->string, "nmac310:");
                 tst_inject->string[8]  = data_str[0];
                 tst_inject->string[9]  = data_str[1];
                 tst_inject->string[10] = data_str[2];
                 tst_inject->string[11] = data_str[3];
-						 
+
                 msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-            
+
             }
-#endif		
-            ret_val = KAL_TRUE; 	  
+#endif
+            ret_val = KAL_TRUE;
             break;
         }
         case 334:/*CMD EX:
@@ -3163,39 +3163,39 @@
                                                     AT+EGCMD = 334, 1, "02"  BOP disable
                                                                                                                                                             */
         {
-#if defined(__NR_RAT__)		
+#if defined(__NR_RAT__)
             if (data_len == 1)
-            {		
+            {
                 tst_module_string_inject_struct *tst_inject_nr_sim1;
                 tst_inject_nr_sim1 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_nr_sim1->string, "NL1_MOB_HO_enh", strlen("NL1_MOB_HO_enh"));
+                strncpy((kal_char*)tst_inject_nr_sim1->string, "NL1_MOB_HO_enh", sizeof(tst_inject_nr_sim1->string));
                 tst_inject_nr_sim1->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_NL1_MOB, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_nr_sim1);
-		
+
 #if defined(__GEMINI__)
 #if (MAX_NR_NUM>=2)
                 tst_module_string_inject_struct *tst_inject_nr_sim2;
                 tst_inject_nr_sim2 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_nr_sim2->string, "NL1_MOB_HO_enh", strlen("NL1_MOB_HO_enh"));
+                strncpy((kal_char*)tst_inject_nr_sim2->string, "NL1_MOB_HO_enh", sizeof(tst_inject_nr_sim2->string));
                 tst_inject_nr_sim2->index = data_str[0];
                 msg_send5(MOD_L4C_2, MOD_NL1_MOB_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_nr_sim2);
 #endif
 #endif
             }
-#endif		
-            ret_val = KAL_TRUE; 	  
+#endif
+            ret_val = KAL_TRUE;
             break;
         }
         case 335:
         {
-#if defined(__NR_RAT__)			
+#if defined(__NR_RAT__)
             if (data_len == 8)
             {
-                tst_module_string_inject_struct *tst_inject;													
+                tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
-                    construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);					 
+                    construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
                 kal_sprintf((kal_char*)tst_inject->string, "nmac317:");
                 tst_inject->string[8]  = data_str[0];
                 tst_inject->string[9]  = data_str[1];
@@ -3205,40 +3205,40 @@
                 tst_inject->string[13] = data_str[5];
                 tst_inject->string[14] = data_str[6];
                 tst_inject->string[15] = data_str[7];
-																	   
-                msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);             
+
+                msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-#endif													
-            ret_val = KAL_TRUE; 	  
+#endif
+            ret_val = KAL_TRUE;
             break;
         }
         case 336:
-        {				  
+        {
             // AT+EGCMD = 336, 1, "01" on
             // AT+EGCMD = 336, 1, "00" off
-#if defined(__NR_RAT__) 		
+#if defined(__NR_RAT__)
             if (data_len == 1)
-            {				
-                tst_module_string_inject_struct *tst_inject;            
+            {
+                tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-				
+
                 kal_sprintf((kal_char*)tst_inject->string, "gm3_en:");
                 tst_inject->string[7]  = data_str[0];
-				 
+
                 msg_send5(MOD_L4C, MOD_NMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-					
+
             }
-#endif		
-            ret_val = KAL_TRUE; 	  
+#endif
+            ret_val = KAL_TRUE;
             break;
-        }	
+        }
         case 337:
         {
             if (data_len == 1)
             {
                 //recursive case, must use with care!!!
                 kal_uint8 data_arr[6];
-                
+
                 if(data_str[0]==1 || data_str[0]==2)
                 {
 
@@ -3268,7 +3268,7 @@
 
                         //AT+EGCMD = 321, 1, "02"
                         data_arr[0]=2;
-                        rmmi_general_command_parsing(321,1,data_arr); 
+                        rmmi_general_command_parsing(321,1,data_arr);
 
                         //AT+EGCMD = 334, 1, "01"
                         data_arr[0]=1;
@@ -3283,8 +3283,8 @@
                     {
                         //turn off level2 optimization
                         data_arr[0]=2;
-                        rmmi_general_command_parsing(334,1,data_arr);                        
-                        
+                        rmmi_general_command_parsing(334,1,data_arr);
+
                         data_arr[0]=data_arr[1]=data_arr[2]=data_arr[3]=0;
                         rmmi_general_command_parsing(321,1,data_arr);
                     }
@@ -3292,8 +3292,8 @@
                 else if(data_str[0]==0)
                 {
                     data_arr[0]=2;
-                    rmmi_general_command_parsing(334,1,data_arr);                     
-                    
+                    rmmi_general_command_parsing(334,1,data_arr);
+
                     data_arr[0]=data_arr[1]=data_arr[2]=data_arr[3]=data_arr[4]=0;
                     rmmi_general_command_parsing(321,1,data_arr);
                     rmmi_general_command_parsing(322,6,data_arr);
@@ -3303,9 +3303,9 @@
                     //rmmi_general_command_parsing(314,1,data_arr);
                     rmmi_general_command_parsing(320,2,data_arr);
                 }
-                
-            } 
-            ret_val = KAL_TRUE;       
+
+            }
+            ret_val = KAL_TRUE;
             break;
       }
       case 338:
@@ -3333,7 +3333,7 @@
             break;
       }
       case 339:
-      {                 
+      {
           // AT+EGCMD = 339, 7, "00FF0100010203"
           // data_len = 7
           // data_str[0] = 0x00
@@ -3357,16 +3357,16 @@
               tst_inject->string[12] = data_str[4];
               tst_inject->string[13] = data_str[5];
               tst_inject->string[14] = data_str[6];
-                 
+
               msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-                            
+
           }
 
-          ret_val = KAL_TRUE;       
+          ret_val = KAL_TRUE;
           break;
       }
       case 340:
-      {                 
+      {
           // AT+EGCMD = 340, 1, "00" or "01"
           // data_len = 1
           // data_str[0] = 0 or 1
@@ -3382,22 +3382,22 @@
               if(data_str[0]==0)
               {
                   //Disable last pdn feature
-                  strncpy((kal_char*)tst_inject->string, "disable", strlen("disable"));
+                  strncpy((kal_char*)tst_inject->string, "disable", sizeof(tst_inject->string));
               }
               else if(data_str[0]==1)
               {
                   //Enable last pdn feature
-                  strncpy((kal_char*)tst_inject->string, "enable", strlen("enable"));
+                  strncpy((kal_char*)tst_inject->string, "enable", sizeof(tst_inject->string));
               }
               msg_send5(MOD_L4C, MOD_DDM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
           }
           else
           {
               //Disable last pdn feature
-              strncpy((kal_char*)tst_inject->string, "disable", strlen("disable"));
+              strncpy((kal_char*)tst_inject->string, "disable", sizeof(tst_inject->string));
               msg_send5(MOD_L4C, MOD_DDM, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
           }
-          ret_val = KAL_TRUE;       
+          ret_val = KAL_TRUE;
           break;
       }
       case 341:
@@ -3416,25 +3416,25 @@
           {
               if(data_str[0]==0)
               {
-                  strncpy((kal_char*)tst_inject->string, "nmac341:0", strlen("nmac341:0"));
+                  strncpy((kal_char*)tst_inject->string, "nmac341:0", sizeof(tst_inject->string));
               }
               else if(data_str[0]==1)
               {
-                  strncpy((kal_char*)tst_inject->string, "nmac341:1", strlen("nmac341:1"));
+                  strncpy((kal_char*)tst_inject->string, "nmac341:1", sizeof(tst_inject->string));
               }
               msg_send5(MOD_L4C, MOD_NMAC + ps_id, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
           }
           else
           {
-              strncpy((kal_char*)tst_inject->string, "nmac341:0", strlen("nmac341:0"));
+              strncpy((kal_char*)tst_inject->string, "nmac341:0", sizeof(tst_inject->string));
               msg_send5(MOD_L4C, MOD_NMAC + ps_id, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
           }
-          ret_val = KAL_TRUE;       
+          ret_val = KAL_TRUE;
           break;
       }
 	    case 342:/*CMD EX:
         					 AT+EGCMD = 342, 1, "0000000000",  Force IC disable
-        					 AT+EGCMD = 342, 5, "01009B0172",  Force IC PCI value in hex format. 
+        					 AT+EGCMD = 342, 5, "01009B0172",  Force IC PCI value in hex format.
         					                               009B as PCI 155 0172 as PCI 370
 				*/
         {
@@ -3444,8 +3444,8 @@
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para(sizeof(tst_module_string_inject_struct), TD_RESET);
                 kal_sprintf((kal_char*)tst_inject->string, "FORCE_IC");
 				tst_inject->index = data_str[0];
-				tst_inject->string[8] = data_str[1];	
-	            tst_inject->string[9] = data_str[2];	
+				tst_inject->string[8] = data_str[1];
+	            tst_inject->string[9] = data_str[2];
 	            tst_inject->string[10] = data_str[3];
 	            tst_inject->string[11] = data_str[4];
                 msg_send5(MOD_L4C, MOD_EL1_MPC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
@@ -3455,14 +3455,14 @@
                 tst_inject_2 = (tst_module_string_inject_struct *)construct_local_para(sizeof(tst_module_string_inject_struct), TD_RESET);
                 kal_sprintf((kal_char*)tst_inject_2->string, "FORCE_IC");
 				tst_inject_2->index = data_str[0];
-				tst_inject_2->string[8] = data_str[1];					
-	            tst_inject_2->string[9] = data_str[2];	
+				tst_inject_2->string[8] = data_str[1];
+	            tst_inject_2->string[9] = data_str[2];
 	            tst_inject_2->string[10] = data_str[3];
 	            tst_inject_2->string[11] = data_str[4];
                 msg_send5(MOD_L4C_2, MOD_EL1_MPC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_2);
         #endif
             }
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
       case 343:
@@ -3475,21 +3475,21 @@
               tst_module_string_inject_struct *tst_inject_sim1;
               tst_inject_sim1 = (tst_module_string_inject_struct *)
               construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                  strncpy((kal_char*)tst_inject_sim1->string, "ERRC_MOB_HST_GAME", strlen("ERRC_MOB_HST_GAME"));
+              strncpy((kal_char*)tst_inject_sim1->string, "ERRC_MOB_HST_GAME", sizeof(tst_inject_sim1->string));
               tst_inject_sim1->index = data_str[0];
               msg_send5(MOD_L4C, MOD_ERRC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-				
+
 #if defined(__GEMINI_LTE__)
-              tst_module_string_inject_struct *tst_inject_sim2;				
+              tst_module_string_inject_struct *tst_inject_sim2;
               tst_inject_sim2 = (tst_module_string_inject_struct *)
                   construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-              strncpy((kal_char*)tst_inject_sim2->string, "ERRC_MOB_HST_GAME", strlen("ERRC_MOB_HST_GAME"));
+              strncpy((kal_char*)tst_inject_sim2->string, "ERRC_MOB_HST_GAME", sizeof(tst_inject_sim2->string));
               tst_inject_sim2->index = data_str[0];
               msg_send5(MOD_L4C_2, MOD_ERRC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 #endif
           }
 
-          ret_val = KAL_TRUE;       
+          ret_val = KAL_TRUE;
           break;
       }
 #if defined(__NR_RAT__)
@@ -3503,7 +3503,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PUSCH", strlen("NL1_TXPWR_ADJ_PUSCH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PUSCH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3519,7 +3519,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PUCCH", strlen("NL1_TXPWR_ADJ_PUCCH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PUCCH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3535,7 +3535,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PRACH", strlen("NL1_TXPWR_ADJ_PRACH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_PRACH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3551,7 +3551,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_SRS", strlen("NL1_TXPWR_ADJ_SRS"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_ADJ_SRS", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3567,7 +3567,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PUSCH", strlen("NL1_TXPWR_FIX_PUSCH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PUSCH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3583,7 +3583,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PUCCH", strlen("NL1_TXPWR_FIX_PUCCH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PUCCH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3599,7 +3599,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PRACH", strlen("NL1_TXPWR_FIX_PRACH"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_PRACH", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3615,7 +3615,7 @@
             tst_module_string_inject_struct *tst_inject;
             tst_inject = (tst_module_string_inject_struct *)
                           construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_SRS", strlen("NL1_TXPWR_FIX_SRS"));
+            strncpy((kal_char*)tst_inject->string, "NL1_TXPWR_FIX_SRS", sizeof(tst_inject->string));
             tst_inject->index = data_str[0];
             msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
          }
@@ -3624,7 +3624,7 @@
          break;
       }
       case 352:
-      {                 
+      {
          if (data_len == 4)
          {
             tst_module_string_inject_struct *tst_inject;
@@ -3635,12 +3635,12 @@
             tst_inject->string[9]  = data_str[1];
             tst_inject->string[10] = data_str[2];
             tst_inject->string[11] = data_str[3];
-				 
+
             msg_send5(MOD_L4C, MOD_EMAC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
-							
+
          }
 
-         ret_val = KAL_TRUE;       
+         ret_val = KAL_TRUE;
          break;
       }
 #endif
@@ -3670,23 +3670,23 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)construct_local_para(sizeof(tst_module_string_inject_struct), TD_RESET);
                 kal_sprintf((kal_char*)tst_inject->string, "NBI_THR");
-				tst_inject->index = data_str[0];												
+				tst_inject->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_EL1_MPC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
   #if defined(__GEMINI_LTE__)
                 tst_module_string_inject_struct *tst_inject_2;
                 tst_inject_2 = (tst_module_string_inject_struct *)construct_local_para(sizeof(tst_module_string_inject_struct), TD_RESET);
                 kal_sprintf((kal_char*)tst_inject_2->string, "NBI_THR");
-				tst_inject_2->index = data_str[0];												
+				tst_inject_2->index = data_str[0];
                 msg_send5(MOD_L4C_2, MOD_EL1_MPC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_2);
   #endif
             }
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
       }
       case 388:
       {
 #ifdef __EL1_HWS__
-          // AT+EGCMD=319,100,50tail 
+          // AT+EGCMD=319,100,50tail
           // data_len = 100
           // extra margin = 50
           extern kal_bool EL1SM_Set_Extra_Settle(kal_uint32 data_len, kal_uint8 *data_str);
@@ -3697,7 +3697,7 @@
       case 390:
       {
 #ifdef __EL1_HWS__
-          /* 
+          /*
             Used to tune SPU timing.
             Ex.
             at+egcmd = 390, 200 -> set lead time = 200us.  default lead time is 300us.
@@ -3759,22 +3759,22 @@
                  tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim1->string, "EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH", strlen("EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH"));
+                strncpy((kal_char*)tst_inject_sim1->string, "EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_EL1_MPC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-				
+
 			#if defined(__GEMINI_LTE__)
                 tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim2->string, "EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH", strlen("EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH"));
+                strncpy((kal_char*)tst_inject_sim2->string, "EL1_MPC_PREFER_OTHER_SIM_PCELL_PATCH", sizeof(tst_inject_sim2->string));
                 tst_inject_sim2->index = data_str[0];
 				msg_send5(MOD_L4C_2, MOD_EL1_MPC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 			#endif
-                
+
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -3785,27 +3785,27 @@
         {
             if (data_len == 1)
             {
-                tst_module_string_inject_struct *tst_inject_sim1; 
+                tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim1->string, "prefer_PSIM_cell", strlen("prefer_PSIM_cell"));
+                strncpy((kal_char*)tst_inject_sim1->string, "prefer_PSIM_cell", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_ERRC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
-				
+
 		#if defined(__GEMINI_LTE__)
 		        tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
 				construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-				strncpy((kal_char*)tst_inject_sim2->string, "prefer_PSIM_cell", strlen("prefer_PSIM_cell"));
+				strncpy((kal_char*)tst_inject_sim2->string, "prefer_PSIM_cell", sizeof(tst_inject_sim2->string));
 				tst_inject_sim2->index = data_str[0];
 				msg_send5(MOD_L4C_2, MOD_ERRC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 		#endif
-                
+
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        }     
+        }
 
         case 402:/*CMD EX:
 			 AT+EGCMD = 402, 1, "01"  AP trigger ims rereg
@@ -3815,23 +3815,23 @@
         {
             if (data_len == 1)
             {
-                tst_module_string_inject_struct *tst_inject_sim1; 
+                tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim1->string, "trigger_interface:", strlen("trigger_interface:"));
+                strncpy((kal_char*)tst_inject_sim1->string, "trigger_interface:", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->string[20] = data_str[0];
                 msg_send5(MOD_L4C, MOD_IMC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
     #if defined(__GEMINI_LTE__)
 		        tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
 				construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-				strncpy((kal_char*)tst_inject_sim2->string, "trigger_interface:", strlen("trigger_interface:"));
+				strncpy((kal_char*)tst_inject_sim2->string, "trigger_interface:", sizeof(tst_inject_sim2->string));
 				tst_inject_sim2->string[20] = data_str[0];
-				msg_send5(MOD_L4C_2, MOD_IMC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);    
-    #endif      
+				msg_send5(MOD_L4C_2, MOD_IMC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
+    #endif
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -3843,26 +3843,26 @@
         {
             if (data_len == 1)
             {
-                tst_module_string_inject_struct *tst_inject_sim1; 
+                tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                strncpy((kal_char*)tst_inject_sim1->string, "query_interface:", strlen("query_interface:"));
+                strncpy((kal_char*)tst_inject_sim1->string, "query_interface:", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->string[20] = data_str[0];
                 msg_send5(MOD_L4C, MOD_IMC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
     #if defined(__GEMINI_LTE__)
 		        tst_module_string_inject_struct *tst_inject_sim2;
 				tst_inject_sim2 = (tst_module_string_inject_struct *)
 				construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-				strncpy((kal_char*)tst_inject_sim2->string, "query_interface:", strlen("query_interface:"));
+				strncpy((kal_char*)tst_inject_sim2->string, "query_interface:", sizeof(tst_inject_sim2->string));
 				tst_inject_sim2->string[20] = data_str[0];
 				msg_send5(MOD_L4C_2, MOD_IMC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
-    #endif      
+    #endif
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
-                    
+
         case 450:
         {
             if (data_len == 1)
@@ -3870,17 +3870,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
-                kal_sprintf((kal_char*)tst_inject->string, "erlcul450:");                
+
+                kal_sprintf((kal_char*)tst_inject->string, "erlcul450:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 451:
         {
             if (data_len == 3)
@@ -3888,19 +3888,19 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul451:");
                 tst_inject->index = data_str[0];
                 tst_inject->string[10] = data_str[1];
                 tst_inject->string[11] = data_str[2];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 452:
         {
             if (data_len == 1)
@@ -3908,17 +3908,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul452:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 453:
         {
             if (data_len == 1)
@@ -3926,17 +3926,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul453:");
                 tst_inject->index = data_str[0];
-                 
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 454:
         {
             if (data_len == 1)
@@ -3944,17 +3944,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul454:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 455:
         {
             if (data_len == 1)
@@ -3962,17 +3962,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul455:");
                 tst_inject->index = data_str[0];
-                 
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 456:
         {
             if (data_len == 3)
@@ -3980,20 +3980,20 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul456:");
                 tst_inject->index = data_str[0];
                 tst_inject->string[10] = data_str[1];
                 tst_inject->string[11] = data_str[2];
                 tst_inject->string[12] = data_str[3];
-                 
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-         
+
         case 457:
         {
             if (data_len == 1)
@@ -4001,14 +4001,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
+
                 kal_sprintf((kal_char*)tst_inject->string, "erlcul457:");
                 tst_inject->index = data_str[0];
-                 
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4019,17 +4019,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
-                kal_sprintf((kal_char*)tst_inject->string, "erlcul458:");                
+
+                kal_sprintf((kal_char*)tst_inject->string, "erlcul458:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-        
+
         case 459:
         {
             if (data_len == 1)
@@ -4037,17 +4037,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-         
-                kal_sprintf((kal_char*)tst_inject->string, "erlcul459:");                
+
+                kal_sprintf((kal_char*)tst_inject->string, "erlcul459:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_ERLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
-         
-            ret_val = KAL_TRUE;       
+
+            ret_val = KAL_TRUE;
             break;
         }
-        
+
         case 470:
         {
 #if defined(__NR_RAT__)
@@ -4056,14 +4056,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
-                kal_sprintf((kal_char*)tst_inject->string, "nrlcul470:");                
+
+                kal_sprintf((kal_char*)tst_inject->string, "nrlcul470:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4075,16 +4075,16 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul471:");
                 tst_inject->index = data_str[0];
                 tst_inject->string[10] = data_str[1];
                 tst_inject->string[11] = data_str[2];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4096,14 +4096,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul472:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4115,14 +4115,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul473:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4134,14 +4134,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul474:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4153,14 +4153,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul475:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4172,17 +4172,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul476:");
                 tst_inject->index = data_str[0];
                 tst_inject->string[10] = data_str[1];
                 tst_inject->string[11] = data_str[2];
                 tst_inject->string[12] = data_str[3];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4194,17 +4194,17 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
+
                 kal_sprintf((kal_char*)tst_inject->string, "nrlcul477:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
-        }         
-        
+        }
+
         case 478:
         {
 #if defined(__NR_RAT__)
@@ -4213,14 +4213,14 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
- 
-                kal_sprintf((kal_char*)tst_inject->string, "nrlcul478:");                
+
+                kal_sprintf((kal_char*)tst_inject->string, "nrlcul478:");
                 tst_inject->index = data_str[0];
-                
-                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);          
+
+                msg_send5(MOD_L4C, MOD_NRLCUL, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 #endif
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 #endif
@@ -4234,21 +4234,21 @@
                 tst_module_string_inject_struct *tst_inject_sim1;
                 tst_inject_sim1 = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                    strncpy((kal_char*)tst_inject_sim1->string, "ERRC_GAME_MODE", strlen("ERRC_GAME_MODE"));
+                    strncpy((kal_char*)tst_inject_sim1->string, "ERRC_GAME_MODE", sizeof(tst_inject_sim1->string));
                 tst_inject_sim1->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_ERRC, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim1);
 
 #if defined(__GEMINI_LTE__)
-                tst_module_string_inject_struct *tst_inject_sim2;				
+                tst_module_string_inject_struct *tst_inject_sim2;
                 tst_inject_sim2 = (tst_module_string_inject_struct *)
                     construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                  strncpy((kal_char*)tst_inject_sim2->string, "ERRC_GAME_MODE", strlen("ERRC_GAME_MODE"));
+                  strncpy((kal_char*)tst_inject_sim2->string, "ERRC_GAME_MODE", sizeof(tst_inject_sim2->string));
                 tst_inject_sim2->index = data_str[0];
                 msg_send5(MOD_L4C_2, MOD_ERRC_2, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject_sim2);
 #endif
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4262,28 +4262,28 @@
                 tst_module_string_inject_struct *tst_inject;
                 tst_inject = (tst_module_string_inject_struct *)
                 construct_local_para((kal_uint16)sizeof(tst_module_string_inject_struct), TD_RESET);
-                
-                strncpy((kal_char*)tst_inject->string, "NL1_CM_Feature_1", strlen("NL1_CM_Feature_1"));
-                
+
+                strncpy((kal_char*)tst_inject->string, "NL1_CM_Feature_1", sizeof(tst_inject->string));
+
                 tst_inject->index = data_str[0];
                 msg_send5(MOD_L4C, MOD_NL1, 0, MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 
         case 481:
         {
             // AT+EGCMD = 481, 1, "AB"  IPCORE discard background/user data
-			//  A 
+			//  A
 			//    0 UDP&IGMP discarding
 			//    1 all packet discarding
-			//    2 all packet discarding except ping&IPv6 RS 
-			//  B 
+			//    2 all packet discarding except ping&IPv6 RS
+			//  B
 			//    0 disable
 			//    non 0 enable
-            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C; 
+            kal_uint8 which_sim = l4c_current_mod_id - MOD_L4C;
             if (data_len == 1)
             {
                 tst_module_string_inject_struct *tst_inject;
@@ -4293,13 +4293,13 @@
 				tst_inject->index = 0xAB;
 				switch (data_str[0] & 0xf0)
                 {
-				case 0x00: /* discard UDP and IGMP packets*/ 
+				case 0x00: /* discard UDP and IGMP packets*/
 				    if ((data_str[0] & 0xf) == 0)
                         tst_inject->index = 0;
 					else
 						tst_inject->index = 1;
 					break;
-				case 0x10: /* discard all packets*/ 
+				case 0x10: /* discard all packets*/
 				    if ((data_str[0] & 0xf) == 0)
                         tst_inject->index = 4;
 					else
@@ -4311,14 +4311,14 @@
 					else
 						tst_inject->index = 7;
 					break;
-				case 0x30: /* ACK reduction */ 
+				case 0x30: /* ACK reduction */
 				    if ((data_str[0] & 0xf) == 0)
                         tst_inject->index = 2;
 					else
 						tst_inject->index = 3;
 					break;
 				default:
-				    break;	
+				    break;
 				}
 
                 if ((tst_inject->index >= 4) && (tst_inject->index <= 7))
@@ -4335,21 +4335,21 @@
 				    if ((tst_inject->index == 5) || (tst_inject->index == 7))
 					{
 						nvram_l4_misc_ptr->misc |= tst_inject->index;
-					}	
+					}
 
                     nvram_external_write_data(NVRAM_EF_L4_MISC_LID,
                                       1,
                                       (kal_uint8*)nvram_l4_misc_ptr,
                                       NVRAM_EF_L4_MISC_SIZE);
 				}
-				
+
                 tst_inject->string[0] = data_str[0];
 
                 msg_send5(MOD_L4C + which_sim, MOD_IPCORE + which_sim, 0,
                     MSG_ID_TST_INJECT_STRING, (local_para_struct*)tst_inject);
             }
 
-            ret_val = KAL_TRUE;       
+            ret_val = KAL_TRUE;
             break;
         }
 #ifdef __IMS_SUPPORT__
@@ -4376,7 +4376,7 @@
         case 5566:
         {
             enable_ecies_dump_log();
-            ret_val = KAL_TRUE; 
+            ret_val = KAL_TRUE;
             break;
         }
 
@@ -4416,7 +4416,7 @@
             }
 
             while (left--) dhl_print(TRACE_INFO, DHL_USER_FLAG_NONE, MOD_NVRAM, "%x", exported_public_key[i++]);
-            ret_val = KAL_TRUE;        	  
+            ret_val = KAL_TRUE;
             break;
         }
 #if defined(__SEC_TEST__)
@@ -4450,33 +4450,33 @@
         case 9527:
         {
             ret_val = SleepDrv_LowPowerMonitorSetParameter(data_len,data_str);
-            break;        
+            break;
         }
-        
+
         case 9477:
         {
             SleepDrv_LowPowerMonitorStart();
-            ret_val = KAL_TRUE;        	  
+            ret_val = KAL_TRUE;
         	  break;
         }
 
         case 9478:
         {
-            SleepDrv_LowPowerMonitorStop();        	
-            ret_val = KAL_TRUE;        	  
+            SleepDrv_LowPowerMonitorStop();
+            ret_val = KAL_TRUE;
         	  break;
         }
         case 9487:
         {
         	  SleepDrv_LowPowerMonitorCreate();
-            ret_val = KAL_TRUE;        	  
+            ret_val = KAL_TRUE;
         	  break;
         }
 
         case 9453:
         {
         	  SleepDrv_LowPowerMonitorDelete();
-            ret_val = KAL_TRUE;        	  
+            ret_val = KAL_TRUE;
         	  break;
         }
 
@@ -4489,8 +4489,8 @@
 }
 
 extern l4c_at_cmd_process_type_enum  l4c_internal_gmc_process(kal_uint8 src_id,
-                                                              kal_uint8 op, 
-                                                              kal_uint8 *config_str, 
+                                                              kal_uint8 op,
+                                                              kal_uint8 *config_str,
                                                               l4c_general_modem_configure_struct *cmd_param_ptr);
 
 
@@ -4509,7 +4509,7 @@
             The configure string will be used in AT+EGMC=<op>,<config_str>.
             Add string here to regist new <config_str>
             Note: String length cannot exceed size: MAX_ATCMD_EGMC_CONFIG_STR_LEN
-    
+
         2. max_sim_num
             max SIM number of destination.
             1: only SIM1; 2: SIM1 or SIM2; 3: SIM1 or SIM2 or SIM3...
@@ -4522,10 +4522,10 @@
 
 rmmi_general_gmc_table_struct gmc_general_table[] = {
 
-//  {"cnf_test",            MAX_SIM_NUM, MOD_RAC}, 
+//  {"cnf_test",            MAX_SIM_NUM, MOD_RAC},
 #ifdef __LTE_RAT__
-    {"ims_req_hps",         MAX_LTE_NUM, MOD_EVAL,  KAL_FALSE, KAL_FALSE}, 
-    {"ims_call",            MAX_LTE_NUM, MOD_EVAL,  KAL_FALSE, KAL_FALSE}, 
+    {"ims_req_hps",         MAX_LTE_NUM, MOD_EVAL,  KAL_FALSE, KAL_FALSE},
+    {"ims_call",            MAX_LTE_NUM, MOD_EVAL,  KAL_FALSE, KAL_FALSE},
 	{"emm_smart_idle_local_release", MAX_LTE_NUM, MOD_EVAL, KAL_FALSE, KAL_FALSE},
     {"non_data_sim_ignore_ps_paging",  MAX_LTE_NUM, MOD_EVAL, KAL_FALSE, KAL_FALSE},
     {"ims_ecc_guard_timer", MAX_LTE_NUM, MOD_ESM,   KAL_FALSE, KAL_FALSE},
@@ -4567,12 +4567,12 @@
     {"utas_query_ant_port", MAX_SIM_NUM, MOD_MMRF,  KAL_FALSE, KAL_FALSE},
     {"ant_test_to_realsim", MAX_SIM_NUM, MOD_MMRF,  KAL_FALSE, KAL_FALSE},
     {"etm_set_hfp_fpwm",              1, MOD_MMRF,  KAL_FALSE, KAL_FALSE},
-    {"c2k_utas",            MAX_SIM_NUM, MOD_L1D_MDM, KAL_FALSE, KAL_FALSE},    
+    {"c2k_utas",            MAX_SIM_NUM, MOD_L1D_MDM, KAL_FALSE, KAL_FALSE},
     {"tds_utas",                      1, MOD_TL1,   KAL_FALSE, KAL_FALSE},
     {"gsm_set_txrx_ant",    MAX_SIM_NUM, MOD_L1,    KAL_FALSE, KAL_FALSE},
 #ifdef __FCS_SUPPORT__
     {"fcs",                 MAX_SIM_NUM, MOD_FCS,   KAL_FALSE, KAL_FALSE},
-#endif    
+#endif
 	{"boot_download_mode",            1, MOD_L4BPWR, KAL_FALSE, KAL_FALSE},
     {"elevator_mode",       MAX_SIM_NUM, MOD_RAC,   KAL_FALSE, KAL_FALSE},
 #ifdef __NR_RAT__
@@ -4597,6 +4597,7 @@
     {"ping_pong_bar_setting", MAX_SIM_NUM, MOD_NRRC,KAL_FALSE, KAL_FALSE},
     {"vonr_early_conn_rel", MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"nrrc_data_inactive_timer", MAX_SIM_NUM, MOD_NRRC, KAL_FALSE, KAL_FALSE},
+    {"customized_paging_cycle", MAX_SIM_NUM, MOD_NRRC, KAL_FALSE, KAL_FALSE},
     {"nrrc_feature_set",    MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"nrrc_feature_get",    MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"poor_sinr_thresh",    MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
@@ -4605,11 +4606,12 @@
     {"set_srv_nbr_cell_th", MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"hst_cell_power_th_setting", MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"set_nr_a2_thresh",    MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
+    {"nr_postpone_a2_for_b1b2",    MAX_SIM_NUM, MOD_NRRC,  KAL_FALSE, KAL_FALSE},
     {"NR_CAP_UPDATE",       MAX_NR_NUM,  MOD_NRRC,  KAL_FALSE, KAL_FALSE},
 #ifdef __SASE_SUPPORT__
     {"endc_deactivation",   MAX_NR_NUM, MOD_SASE_CLIENT,     KAL_FALSE, KAL_FALSE},
     {"MTK_endc_deactivation",   MAX_NR_NUM, MOD_SASE_CLIENT, KAL_FALSE, KAL_FALSE},
-    {"sa_silence",          MAX_NR_NUM, MOD_SASE_CLIENT,     KAL_FALSE, KAL_FALSE},    
+    {"sa_silence",          MAX_NR_NUM, MOD_SASE_CLIENT,     KAL_FALSE, KAL_FALSE},
     {"VoWiFiDisable5GSA",   MAX_SIM_NUM, MOD_SASE_CLIENT,    KAL_FALSE, KAL_FALSE},
 #endif
 #endif
@@ -4627,10 +4629,10 @@
     {"ue_cap_query",                  1, MOD_MMRF_XL1TST,   KAL_FALSE, KAL_TRUE},
     {"lte_fetch_pd_report", MAX_LTE_NUM, MOD_EL1, KAL_FALSE, KAL_TRUE},
 #ifdef __HIF_USB_SUPPORT__
-    {"usb_serialnumber",           1, MOD_USBCORE,          KAL_FALSE, KAL_FALSE},      
-    {"usb_mode",           1, MOD_USBCORE,                  KAL_FALSE, KAL_FALSE},    
-    {"usb_pwrdown",           1, MOD_USBCORE,          KAL_FALSE, KAL_FALSE},  
-#endif 
+    {"usb_serialnumber",           1, MOD_USBCORE,          KAL_FALSE, KAL_FALSE},
+    {"usb_mode",           1, MOD_USBCORE,                  KAL_FALSE, KAL_FALSE},
+    {"usb_pwrdown",           1, MOD_USBCORE,          KAL_FALSE, KAL_FALSE},
+#endif
 #ifdef __SIM_RECOVERY_SWITCH__
 	{"switch_hotswap_off",       MAX_SIM_NUM, MOD_SIM,   KAL_FALSE, KAL_FALSE},
 	{"switch_recovery_off",       MAX_SIM_NUM, MOD_SIM,   KAL_FALSE, KAL_FALSE},
@@ -4638,12 +4640,13 @@
     {"b1_nr_config",   MAX_LTE_NUM, MOD_ERRC,  KAL_FALSE, KAL_FALSE},
     {"b1_nr_bands",   MAX_LTE_NUM, MOD_ERRC,  KAL_FALSE, KAL_FALSE},
 
+    {"4g5_pingpong_detection", MAX_LTE_NUM, MOD_ERRC, KAL_FALSE, KAL_FALSE},
 };
 
 
 l4c_at_cmd_process_type_enum rmmi_general_modem_configure_req(kal_uint8 src_id,
-                                                              kal_uint8 op, 
-                                                              kal_uint8 *config_str, 
+                                                              kal_uint8 op,
+                                                              kal_uint8 *config_str,
                                                               l4c_general_modem_configure_struct *cmd_param_ptr,
                                                               kal_uint8 *hex_str)
 {
@@ -4706,7 +4709,7 @@
                         hex_val_ptr         = (kal_uint8*)get_ctrl_buffer(hex_str_len + 2);
                         is_convert_finish   = check_hex_value_ext(hex_str,hex_val_ptr);
                     }
-                    
+
                     if (KAL_TRUE == is_convert_finish)
                     {
                         peer_buf_ptr = (peer_buff_struct*)construct_peer_buff(hex_str_len,0,0,TD_RESET);
@@ -4741,7 +4744,7 @@
             break;
         }
     }
-    
+
 
     if (KAL_FALSE == is_processed) //Not found in general table, check internal process.
     {
@@ -4762,7 +4765,7 @@
     kal_uint8 *candidate_str;
 
     max = sizeof(gmc_general_table)/sizeof(rmmi_general_gmc_table_struct);
-    config_len = strlen((kal_char*)config_str); 
+    config_len = strlen((kal_char*)config_str);
 
     for (i = 0; i < max; i++)
     {
@@ -4853,7 +4856,7 @@
     rmmi_ptr_g->error_report_mode = RMMI_SIMPLE_ERROR;
 
     /* AT+CSCS=<chset> default value */
-    rmmi_ptr_g->char_set = RMMI_CHSET_IRA;    
+    rmmi_ptr_g->char_set = RMMI_CHSET_IRA;
 
 	/* AT+COPS=<mode>,<format> default value */
     rmmi_ptr_g->plmn_format = RMMI_PLMN_LONG_ALPHA;       //default for long alpha
@@ -4864,15 +4867,15 @@
 #endif
 
 	/* AT+CPOL=<index>,<format> , set <format> default value here */
-    rmmi_ptr_g->CPOL_plmn_format = RMMI_PLMN_NUMERIC;	
+    rmmi_ptr_g->CPOL_plmn_format = RMMI_PLMN_NUMERIC;
 
     /* AT+CMEC=<keyp>,<disp>,<ind> default value */
-    rmmi_ptr_g->cmec_keyp = 2; 
+    rmmi_ptr_g->cmec_keyp = 2;
     rmmi_ptr_g->cmec_disp = 0;
     rmmi_ptr_g->cmec_ind = 0;
 
-    /* AT+CLAE=<mode> default value */    
-    rmmi_ptr_g->clae_mode = KAL_FALSE;    
+    /* AT+CLAE=<mode> default value */
+    rmmi_ptr_g->clae_mode = KAL_FALSE;
 
 	/* AT+CSDH=<show> default value */
     rmmi_ptr_g->csdh_show = KAL_FALSE;
@@ -4901,73 +4904,73 @@
     /* AT+ECSQ=<flag> default value*/
     rmmi_ptr_g->report_mode.ecsq = 0;
 
-    /* AT+CMER=<mode>,<keyp>,0,<ind>,<bfr> default value */	
-    rmmi_ptr_g->report_mode.cmer_mode = 0;  
+    /* AT+CMER=<mode>,<keyp>,0,<ind>,<bfr> default value */
+    rmmi_ptr_g->report_mode.cmer_mode = 0;
     rmmi_ptr_g->report_mode.cmer_keyp = 0;
-    rmmi_ptr_g->report_mode.cmer_ind = 0;   
-    rmmi_ptr_g->report_mode.cmer_bfr = 0;	
+    rmmi_ptr_g->report_mode.cmer_ind = 0;
+    rmmi_ptr_g->report_mode.cmer_bfr = 0;
 
-    /* AT+CLIP=<n> default value*/	
+    /* AT+CLIP=<n> default value*/
     rmmi_ptr_g->report_mode.clip = 0;
 
-    /* AT+COLP=<n> default value*/	
+    /* AT+COLP=<n> default value*/
     rmmi_ptr_g->report_mode.colp = RMMI_DISABLE_REPORT;
 
-    /* AT+CLIR=<n> default value*/	
+    /* AT+CLIR=<n> default value*/
     rmmi_ptr_g->report_mode.clir = RMMI_DISABLE_REPORT;
 
-    /* AT+CDIP=<n> default value*/	
+    /* AT+CDIP=<n> default value*/
     rmmi_ptr_g->report_mode.cdip = RMMI_DISABLE_REPORT;
 
-    /* AT+CNAP=<n> default value*/	
+    /* AT+CNAP=<n> default value*/
     rmmi_ptr_g->report_mode.cnap = RMMI_DISABLE_REPORT;
 
 #if defined(__UE_SIMULATOR__) && defined(__IMS_SUPPORT__)
-    /* AT+CREG=<n> default value*/  
+    /* AT+CREG=<n> default value*/
     rmmi_ptr_g->report_mode.cs_reg = RMMI_ENABLE_LOC_REPORT;
 
-    /* AT+CGREG=<n> default value*/ 
+    /* AT+CGREG=<n> default value*/
     rmmi_ptr_g->report_mode.ps_reg = RMMI_ENABLE_LOC_REPORT;
 
-    /* AT+CNRREG=<n> default value*/ 
+    /* AT+CNRREG=<n> default value*/
     rmmi_ptr_g->report_mode.nr_reg = RMMI_ENABLE_LOC_REPORT;
-#else	
-    /* AT+CREG=<n> default value*/	
+#else
+    /* AT+CREG=<n> default value*/
     rmmi_ptr_g->report_mode.cs_reg = RMMI_DISABLE_NW_REG_REPORT;
 
-    /* AT+CGREG=<n> default value*/	
+    /* AT+CGREG=<n> default value*/
     rmmi_ptr_g->report_mode.ps_reg = RMMI_DISABLE_NW_REG_REPORT;
 
-    /* AT+C5GREG=<n> default value*/ 
+    /* AT+C5GREG=<n> default value*/
     rmmi_ptr_g->report_mode.nr_reg = RMMI_DISABLE_REPORT;    // VDM get reg state from attach ind by egreg
 #endif
-    /* AT+CAOC=<mode> default value*/	
+    /* AT+CAOC=<mode> default value*/
     rmmi_ptr_g->report_mode.ccm = RMMI_DISABLE_REPORT;
 
-    /* AT+CCWE=<mode> default value*/	
+    /* AT+CCWE=<mode> default value*/
     rmmi_ptr_g->report_mode.acm_warning = RMMI_DISABLE_REPORT;
 
-    /* AT+CCWA=<n> default value*/	
+    /* AT+CCWA=<n> default value*/
     rmmi_ptr_g->report_mode.call_wait = RMMI_DISABLE_REPORT;
 
-    /* AT+CGEREP=<mode> default value*/	
+    /* AT+CGEREP=<mode> default value*/
     rmmi_ptr_g->report_mode.cgerep = RMMI_DISABLE_REPORT;
 
-    /* AT+CR=<mode> default value*/	
+    /* AT+CR=<mode> default value*/
     rmmi_ptr_g->report_mode.cr = RMMI_DISABLE_REPORT;
 
-    /* AT+CRC=<mode> default value*/	
+    /* AT+CRC=<mode> default value*/
     rmmi_ptr_g->report_mode.crc = RMMI_DISABLE_REPORT;
 
-    /* AT+CTZR=<onoff> default value*/	
+    /* AT+CTZR=<onoff> default value*/
     rmmi_ptr_g->report_mode.timezone = RMMI_TIME_ZONE_DISABLE_REPORT;
 
-    /* AT+CUSD=<n> default value*/	
+    /* AT+CUSD=<n> default value*/
     rmmi_ptr_g->report_mode.ussd = RMMI_DISABLE_REPORT;
 
-    /* AT+CSSN=<n>,<m> default value*/	
-    rmmi_ptr_g->report_mode.ss_mo = RMMI_DISABLE_REPORT;	
-    rmmi_ptr_g->report_mode.ss_mt = RMMI_DISABLE_REPORT;	
+    /* AT+CSSN=<n>,<m> default value*/
+    rmmi_ptr_g->report_mode.ss_mo = RMMI_DISABLE_REPORT;
+    rmmi_ptr_g->report_mode.ss_mt = RMMI_DISABLE_REPORT;
 
     /* AT+CEN=<reporting> */
     rmmi_ptr_g->report_mode.cen = RMMI_ENABLE_REPORT; // +CEN
@@ -4992,7 +4995,7 @@
 
     /* AT+ECEREG=<n> default value*/
 	rmmi_ptr_g->report_mode.ecereg = RMMI_DISABLE_REPORT;
-	
+
     /* AT+ECREG=<n> default value*/
 	rmmi_ptr_g->report_mode.ecreg = RMMI_DISABLE_REPORT;
 
@@ -5035,7 +5038,7 @@
     rmmi_ptr_g->report_mode.ecsra = RMMI_DISABLE_REPORT;
 
     rmmi_ptr_g->report_mode.cscon = RMMI_DISABLE_REPORT;
-    
+
     rmmi_ptr_g->report_mode.evocd = RMMI_DISABLE_REPORT;
     rmmi_ptr_g->report_mode.erlm_mode = RMMI_DISABLE_REPORT;
     rmmi_ptr_g->report_mode.esimecc = RMMI_ENABLE_REPORT;
@@ -5045,8 +5048,8 @@
     rmmi_ptr_g->report_mode.eimscons = RMMI_DISABLE_REPORT;
     rmmi_ptr_g->report_mode.eltebwinfo = RMMI_DISABLE_REPORT;
     rmmi_ptr_g->report_mode.eacb = RMMI_DISABLE_REPORT;
-	
-    /* AT+EPPI=<n> default value*/	
+
+    /* AT+EPPI=<n> default value*/
     rmmi_ptr_g->report_mode.eppi = RMMI_DISABLE_REPORT;
 //#ifdef __FAST_ROAMING_SEARCH__
     rmmi_ptr_g->report_mode.efmcc = RMMI_DISABLE_REPORT;
@@ -5223,7 +5226,7 @@
 * FUNCTION
 *  	rmmi_remove_listing_at_command()
 * DESCRIPTION
-*   	
+*
 * PARAMETERS
 *	NONE
 *
@@ -5234,7 +5237,7 @@
 {
 /* If you don't want to list some at command, you can refer the following example.
     If you don't list ata and at+casp, please refer the following code.*/
-/*	
+/*
        if (strcmp(rsp_str, "a") == 0 || strcmp(rsp_str, "casp") == 0)
 	{
 		return KAL_FALSE;
@@ -5246,7 +5249,7 @@
 * FUNCTION
 *  	rmmi_add_listing_at_command()
 * DESCRIPTION
-*   	
+*
 * PARAMETERS
 *	NONE
 *
@@ -5257,7 +5260,7 @@
 {
 /* If you want to list some custom at command, you can refer the following example.
     If you list at+aaaa and at+bbbb, please refer the following code.*/
-/*    
+/*
     rsp_str[0]="at+aaaa\0";
     rsp_str[1]="at+bbbb\0";
 
diff --git a/mcu/custom/protocol/common/ps/custom_d2_config.c b/mcu/custom/protocol/common/ps/custom_d2_config.c
old mode 100644
new mode 100755
index 4577706..fd9d8d6
--- a/mcu/custom/protocol/common/ps/custom_d2_config.c
+++ b/mcu/custom/protocol/common/ps/custom_d2_config.c
@@ -3893,6 +3893,20 @@
         return KAL_FALSE;
 }
 #endif
+kal_bool custom_enable_gaming_mode_deact_internet_pdn(kal_uint32 sim_sbp_id)
+{
+    switch(sim_sbp_id){
+        case 1:
+        case 2:
+        case 9:
+            return KAL_TRUE;
+            break;
+        default:
+            return KAL_FALSE;
+            break;
+    }
+}
+
 d2am_keep_pdn_event_enum custom_data_switch_keep_pdn(d2am_pdn_info_for_custom_struct *pdn_info_for_custom)
 {
     // Customer can decide to keep pdn or not based on apn/apn type or anything else in profile
diff --git a/mcu/custom/protocol/common/ps/custom_d2_config.h b/mcu/custom/protocol/common/ps/custom_d2_config.h
old mode 100644
new mode 100755
index 7eb8801..e1b092d
--- a/mcu/custom/protocol/common/ps/custom_d2_config.h
+++ b/mcu/custom/protocol/common/ps/custom_d2_config.h
@@ -181,6 +181,7 @@
 extern kal_bool custom_d2_signalling_flag(kal_uint8 ps_id, kal_bool apn_type_is_ims, kal_uint32 default_sbp_id, kal_uint32 sbp_id, char *apn, kal_uint8 *plmn, kal_bool is_roaming);
 extern kal_bool custom_d2_pcscf_discovery_flag(kal_uint8 ps_id, kal_bool apn_type_is_ims, kal_bool apn_type_is_rcs, kal_uint32 default_sbp_id, kal_uint32 sbp_id, char *apn, kal_uint8 *plmn, kal_bool is_roaming);
 extern kal_bool custom_d2_ims_last_pdn(kal_uint32 sim_sbp_id);
+extern kal_bool custom_enable_gaming_mode_deact_internet_pdn(kal_uint32 sim_sbp_id);
 extern kal_bool custom_d2_need_to_fallback(kal_uint32 sbp_id, kal_uint16 err_cause);
 pdp_type_enum custom_d2_determine_reactivate_data_call_type(kal_uint32 sbp_id, kal_bool is_roamming, kal_uint16 err_cause, pdp_addr_type_enum  pdp_addr_type, kal_uint32 apn_type, kal_uint32 fail_count);
 extern void custom_ia_apn(kal_uint8 *apn, kal_uint8 *req_apn, kal_uint8 ps_id);
diff --git a/mcu/custom/protocol/common/ps/custom_imc_config.c b/mcu/custom/protocol/common/ps/custom_imc_config.c
old mode 100644
new mode 100755
index b6d75f0..f4be087
--- a/mcu/custom/protocol/common/ps/custom_imc_config.c
+++ b/mcu/custom/protocol/common/ps/custom_imc_config.c
@@ -90,6 +90,446 @@
  * 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!
+ * 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!
+ * 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!
+ *
+ * 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!
+ * 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!
+ *
+ * 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!
+ * 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!
+ * 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!
+ * 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!
+ * 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!
+ * 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!
+ *
+ * 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!
+ * 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!
+ *
+ * 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!
+ * removed!
+ * removed!
  * removed!
  *
  * removed!
@@ -333,6 +773,11 @@
  * removed!
  * removed!
  *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -5850,9 +6295,10 @@
         case 245: /* Vietnamobile/Vietnam */
         case 255: /* Cellular One */
         case 257: /* Viaero/US */
+        case 261: /* ASTAC */
         case 267: /* GCI/US */
-		case 271: /* Sagebrush(Nemont) */
-		case 273: /* OptimERA */
+        case 271: /* Sagebrush(Nemont) */
+        case 273: /* OptimERA */
         case 274: /* Yoigo/Spain */
         case 275: /* Lifecell/Ukraine */
         case 276: /* AlticeUSA */
@@ -5875,6 +6321,7 @@
         case 304: /*CTMO Macau */
         case 306: /*HKCU Hongkong */
         case 315: /*Beeline Kazakhstan*/
+        case 316: /* Nex-Tech/US */
         case 319: /* Monaco Telecom/Epic Cyprus */
         case 321: /*Ora(viti) french*/
         case 314: /* TelePost/Greenland */
@@ -5894,27 +6341,40 @@
         case 354: /* Poste Mobile Italy */
         case 357: /* Ecuador / CNT */
         case 363: /* C Spire */
-		case 364: /* United Wireless */
-		case 365: /* Illinois Valley Cellular */
-		case 366: /* Appalachian Wireless */
-		case 367: /* James Valley Wireless */
-		case 368: /* Pioneer Cellular */
-		case 369: /* Pine Belt Wireless */
-		case 370: /* STRATA */
-		case 371: /* Silver Star */
-		case 372: /* OneComm */
-		case 373: /* Cordova Wireless */
-		case 374: /* Copper Valley Wireless */
-		case 375: /* Blue Wireless */
-		case 376: /* Inland Cellular */
-		case 378: /* Geoverse */
+        case 364: /* United Wireless */
+        case 365: /* Illinois Valley Cellular */
+        case 366: /* Appalachian Wireless */
+        case 367: /* James Valley Wireless */
+        case 368: /* Pioneer Cellular */
+        case 369: /* Pine Belt Wireless */
+        case 370: /* STRATA */
+        case 371: /* Silver Star */
+        case 372: /* OneComm */
+        case 373: /* Cordova Wireless */
+        case 374: /* Copper Valley Wireless */
+        case 375: /* Blue Wireless */
+        case 376: /* Inland Cellular */
+        case 378: /* Geoverse */
+        case 381: /* Iraq / Asia Cell */
+		case 382: /* French Reunion Zeop */
         case 383: /* Magti/Georgia */
+        case 385: /* BH Mobile */
         case 386: /* ENetworks/Guyana */
         case 387: /* West Central Wireless */
+        case 388: /* China Broadcasting Network*/
         case 389: /* Unitel/Loas */
-		case 390: /* LTC-Mobile/Liberia */
-		case 392: /* MobileNation */
+        case 390: /* LTC-Mobile/Liberia */
+        case 392: /* MobileNation */
+        case 396: /* Thumb Cellular */
         case 397: /* MECTEL/Myanmar */
+        case 403: /* Brunei/Imagine */
+        case 404: /* Brunei/Progesif */
+        case 405: /* Brunei/UNN */
+        case 406: /* Brunei/DST */
+		case 407: /* Americanet Brazil*/
+        case 413: /* Ufone/Pakistan */
+		case 408: /* Bitel/Peru*/
+        case 411: /* Evolve Broadband - US*/
         case 1002: /* Nokia Finland */
         case 1004: /* Huawei IMS */
         case 0x6001: /* Sony GTE/Beijing */
@@ -5955,15 +6415,6 @@
             if (!with_imsi_info) {
                 //dynacmic generate
             }
-            /* ltaly */
-            else if (strncmp((char *)&mccmnc[0], "222", 3) == 0) {
-                if (imsi_mnc_len == 2) {
-                    kal_snprintf((char *)conf_factory_uri, len-1, "sip:40770@ims.mnc0%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[0], mccmnc[1], mccmnc[2]);
-                }
-                else if (imsi_mnc_len == 3) {
-                    kal_snprintf((char *)conf_factory_uri, len-1, "sip:40770@ims.mnc%c%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[5], mccmnc[0], mccmnc[1], mccmnc[2]);
-                }
-            }
             /* Netherlands */
             else if (strncmp((char *)&mccmnc[0], "204", 3) == 0) {
                 if (imsi_mnc_len == 2) {
@@ -6153,7 +6604,7 @@
             kal_snprintf((char *)conf_factory_uri, len-1, "sip:shconf@ims.mnc005.mcc525.3gppnetwork.org");
             break;
         }
-		case 105: /*  Claro/Paraguay */
+        case 105: /*  Claro/Paraguay */
         {
             kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc002.mcc744.3gppnetwork.org");
             break;
@@ -6387,9 +6838,10 @@
             if (!with_imsi_info) {
                 //dynacmic generate
             }
-            /* Hungary, Romania */
+            /* Hungary, Romania, Spain */
             else if ((strncmp((char *)&mccmnc[0], "216", 3) == 0) ||
-                    (strncmp((char *)&mccmnc[0], "226", 3) == 0)) {
+                    (strncmp((char *)&mccmnc[0], "226", 3) == 0) ||
+                    (strncmp((char *)&mccmnc[0], "214", 3) == 0)) {
                 if (imsi_mnc_len == 2) {
                     kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc0%c%c.mcc%c%c%c.3gppnetwork.org", mccmnc[3], mccmnc[4], mccmnc[0], mccmnc[1], mccmnc[2]);
                 }
@@ -6691,7 +7143,7 @@
             kal_snprintf((char *)conf_factory_uri, len-1, "sip:confserver@ims.cellcom.com");
             break;
         }
-		case 337: /* Antel-Uruguay */
+        case 337: /* Antel-Uruguay */
         {
             kal_snprintf((char *)conf_factory_uri, len-1, "sip:mmtel@conf-factory.ims.mnc001.mcc748.3gppnetwork.org");
             break;
@@ -7363,6 +7815,10 @@
     ua->UA_call_codec_order4 = 0;
     ua->send_media_mod_after_active = 0;
     ua->register_event_subscribe_support = 1;
+    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;
 
     /* nvram_imc_struct */
     imc->resource_retain_timer = 3000;
@@ -8116,6 +8572,10 @@
     if (src_ua->UA_call_codec_order4 != IMS_UNDEF_CONFIG_8) {dest_ua->UA_call_codec_order4 = src_ua->UA_call_codec_order4;}
     if (src_ua->send_media_mod_after_active != IMS_UNDEF_CONFIG_8) {dest_ua->send_media_mod_after_active = src_ua->send_media_mod_after_active;}
     if (src_ua->register_event_subscribe_support != IMS_UNDEF_CONFIG_8) {dest_ua->register_event_subscribe_support = src_ua->register_event_subscribe_support;}
+    if (src_ua->disable_conf_sub != IMS_UNDEF_CONFIG_8) {dest_ua->disable_conf_sub = src_ua->disable_conf_sub;}
+    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;}
 
     /* nvram_imc_struct */
     if (src_imc->resource_retain_timer != IMS_UNDEF_CONFIG_32) {dest_imc->resource_retain_timer = src_imc->resource_retain_timer;}
@@ -8387,6 +8847,7 @@
             nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
             nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt       = 1;
             nvram_ims_profile_ptr->ua_config.session_refresher_in_resp      = 1;
+            nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_username          = 0;
@@ -8510,6 +8971,7 @@
             nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
             nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt       = 1;
             nvram_ims_profile_ptr->ua_config.session_refresher_in_resp      = 1;
+            nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_username          = 0;
@@ -8605,6 +9067,7 @@
                     nvram_ims_profile_ptr->ua_config.refer_dialog_to_server         = 1;
                     nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming    = 1;
                     nvram_ims_profile_ptr->ua_config.wfc_emerg_pidf_country         = 1;
+                    nvram_ims_profile_ptr->ua_config.wfc_emerg_pidf_lng_lat_country = 1;
                     nvram_ims_profile_ptr->ua_config.merge_send_bye                 = 0;
                     nvram_ims_profile_ptr->ua_config.add_3gpp_ims_in_Accept         = 1;
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 180;
@@ -8771,6 +9234,7 @@
                     nvram_ims_profile_ptr->ua_config.register_cap_whenever              = 1;
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase           = 1;
                     nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo                  = 0x33;     // disable 3des encryption
+                    nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                = 0;
 
                     /* SMS */
                     nvram_ims_profile_ptr->ua_config.sms_network_types                  = 0x03;   //(LTE+WIFI)
@@ -8901,7 +9365,7 @@
                     nvram_ims_profile_ptr->ua_config.UA_call_codec_order3               = 1;
                     nvram_ims_profile_ptr->ua_config.evs_configuration_profile          = 4;      
                     nvram_ims_profile_ptr->ua_config.evs_configuration_profile_2        = 1;      
-                #endif
+                #endif /* __EVS_SUPPORT__ */
                 }
                 /*Tunisia*/
                 else if (strncmp((char *)&mccmnc[0], "605", 3) == 0) {
@@ -9024,7 +9488,46 @@
                     nvram_ims_profile_ptr->ua_config.evs_configuration_profile_2        = 1;      // EVS Configuration A2: br=5.9-24.4; bw=nb-swb
                     nvram_ims_profile_ptr->ua_config.ch_aw_recv                         = 0;
                     nvram_ims_profile_ptr->ua_config.ch_aw_recv_2                       = 0;
-                    #endif
+                    #endif /* __EVS_SUPPORT__ */
+                }
+                /* Saint-Pierre-et-Miquelon Telecom  */
+                else if (strncmp((char *)&mccmnc[0], "308", 3) == 0) {
+                    nvram_ims_profile_ptr->imc_config.ussd_support                      = 1;
+                    nvram_ims_profile_ptr->imc_config.sms_support                       = 1;
+                    nvram_ims_profile_ptr->imc_config.location_info_support             = 1;    // lbs location info service: on
+                    nvram_ims_profile_ptr->ua_config.ignore_380_emg_xml                 = 1;
+                    nvram_ims_profile_ptr->ua_config.check_conference_subscribe         = 1;
+                    nvram_ims_profile_ptr->ua_config.pidf_country                       = 1;
+
+                    /* Reg/Stack */
+
+                    /* IMCB */
+
+                }
+				/* Ivory Coast */
+                else if(strncmp((char *)&mccmnc[0], "612", 3) == 0){
+                    /* Call */
+                    nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 180;
+                    nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 180;
+                    memset(&nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set[0],0,16);
+                    strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set,
+                    "0,2,4,7", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set)-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.evs_configuration_profile          = 4;      // EVS Configuration B2: br=9.6-24.4; bw=swb
+                    nvram_ims_profile_ptr->ua_config.evs_configuration_profile_2        = 1;      // EVS Configuration A2: br=5.9-24.4; bw=nb-swb
+                    nvram_ims_profile_ptr->ua_config.ch_aw_recv                         = 0;
+                    nvram_ims_profile_ptr->ua_config.ch_aw_recv_2                       = 0;
+				#endif
+                    
+                    /* SMS */
+
+                    /* Reg/Stack */
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1100;
+
                 }
             }
             break;
@@ -9127,6 +9630,8 @@
                     nvram_ims_profile_ptr->ua_config.set_homeuri_from_pau           = 1;
                     nvram_ims_profile_ptr->ua_config.ecall_get_puid_from_normal_ims_reg = 1;  // copy UID from normal IMS registration
                     nvram_ims_profile_ptr->ua_config.ignore_380_emg_xml             = 1;
+                    nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 1;
+                    nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo              = 0x33;     // NULL + AES
                 }
                 /* Poland */
                 else if (strncmp((char *)&mccmnc[0], "260", 3) == 0) {
@@ -9148,9 +9653,7 @@
                     nvram_ims_profile_ptr->ua_config.reuse_transport_methods        = 0x00000250;
                     nvram_ims_profile_ptr->ua_config.prefer_original_codec          = 0;
                     nvram_ims_profile_ptr->ua_config.call_id_with_host_inCall       = 1;
-                    memset(&nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set[0],0,16);
-                    strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set,  
-                        "0,1,2", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set)-1);
+                    nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo              = 0x33;     // NULL + AES
                 }
                 /* Greece (Cosmote) */
                 else if (strncmp((char *)&mccmnc[0], "202", 3) == 0) {
@@ -9173,6 +9676,7 @@
                     nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp        = 1;
                     nvram_ims_profile_ptr->ua_config.prefer_original_codec          = 0;
                     nvram_ims_profile_ptr->ua_config.random_init_ipsec_port         = 1;
+                    nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
 
                     /* IMCB */
                     memset(&nvram_ims_profile_ptr->imc_config.pdn_rej_handle[0],0,64);              //Cosmote "N,33,16,0;N,30,16,0;N,*,0,1;E,*,0,1;"
@@ -9390,6 +9894,7 @@
                     nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout       = 20;
                     nvram_ims_profile_ptr->ua_config.sip_dscp                       = 0x30;
                     nvram_ims_profile_ptr->ua_config.audio_dscp                     = 0x30;
+                    nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing    = 1;
                     nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail            = 0;
                 #ifdef __EVS_SUPPORT__
                     nvram_ims_profile_ptr->ua_config.evs_support                    = 1;
@@ -9406,6 +9911,7 @@
                     nvram_ims_profile_ptr->ua_config.ect_enable                     = 0;
                     nvram_ims_profile_ptr->ua_config.no_auto_retry_for_mo_call      = 0;
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase       = 1;
+                    nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage             = 0x4E; // Default + WFC normal disabled.
                 }
                 /* VDF Spain */
                 else if (strncmp((char *)&mccmnc[0], "214", 3) == 0) {
@@ -9451,6 +9957,9 @@
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase       = 1;
                     nvram_ims_profile_ptr->ua_config.oos_end_reset_tcp_client       = 1;
                     nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail            = 0;
+                    nvram_ims_profile_ptr->ua_config.contact_with_accesstype        = 1;
+                    nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage             = 0x4E; // Default + WFC normal disabled.
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
                 }
                 /* VDF Hungary */
                 else if (strncmp((char *)&mccmnc[0], "216", 3) == 0) {
@@ -9499,7 +10008,7 @@
                     nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite    = 1;
                     nvram_ims_profile_ptr->ua_config.prefer_original_codec          = 0;
                     nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg      = 1;
-                    nvram_ims_profile_ptr->ua_config.use_org_sdp_for_invite_without_sdp = 1;
+                    nvram_ims_profile_ptr->ua_config.use_org_sdp_for_invite_without_sdp = 0;
                 #ifdef __EVS_SUPPORT__
                     nvram_ims_profile_ptr->ua_config.evs_support                    = 1;
                     nvram_ims_profile_ptr->ua_config.UA_call_codec_order1           = 17;
@@ -9520,7 +10029,7 @@
                 else if (strncmp((char *)&mccmnc[0], "230", 3) == 0) {
                     nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery         = 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.call_ringback_timer_timeout    = 1800;
                     nvram_ims_profile_ptr->ua_config.authorization_with_algo        = 1;
                     nvram_ims_profile_ptr->ua_config.contact_with_accesstype        = 1;
                     nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server     = 1;
@@ -9540,6 +10049,9 @@
                 #endif /* __EVS_SUPPORT__ */
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase       = 1;
                     nvram_ims_profile_ptr->ua_config.register_event_subscribe_support = 0;
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1500;
+                    nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer                = 4000;
+                    nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer                = 5000;
                     /* IMCB */
                     nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp        = 1;
                 }
@@ -9549,8 +10061,8 @@
                     nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server     = 1;
                     nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
                     nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout       = 20;
-                    nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 120;
-                    nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 120;
+                    nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 60;
+                    nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 60;
                     nvram_ims_profile_ptr->ua_config.UA_call_amr_pt                 = 118;
                     nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_pt              = 116;
                     nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_pt             = 110;
@@ -9566,7 +10078,10 @@
                     nvram_ims_profile_ptr->ua_config.ignore_380_emg_xml             = 1;
                     nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 1;
                     nvram_ims_profile_ptr->ua_config.in_reply_to_support            = 0;
+                    nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing    = 1;
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase       = 1;
+                    nvram_ims_profile_ptr->ua_config.register_expiry                = 3600;
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
                 }
                 /* VDF Germany */
                 else if (strncmp((char *)&mccmnc[0], "262", 3) == 0) {
@@ -9601,6 +10116,7 @@
                     nvram_ims_profile_ptr->ua_config.access_network_info_type       = 4;
                     nvram_ims_profile_ptr->ua_config.use_new_pcscf_for_reg          = 1;  // VOLTE_REG_NEW_PCSCF_FOR_PCO_CHANGE
                     nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase       = 1;
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size = 1280;
                     /* SMS */
                     nvram_ims_profile_ptr->ua_config.sms_support_in_23g             = 0;
                     nvram_ims_profile_ptr->ua_config.in_reply_to_support            = 0;
@@ -10080,6 +10596,7 @@
             nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout      = 45;
             nvram_ims_profile_ptr->ua_config.add_pani_in_ack                    = 1;
             nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy            = 1;
+            nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage                 = 0x08;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani           = 1;
@@ -10392,6 +10909,7 @@
             nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
             nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt       = 1;
             nvram_ims_profile_ptr->ua_config.session_refresher_in_resp      = 1;
+            nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_username          = 0;
@@ -10687,8 +11205,8 @@
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3        = 1;          //VzW_2017JUN
             nvram_ims_profile_ptr->ua_config.evs_configuration_profile   = 0;          //VZW_2020OCT EVS_A1 
             nvram_ims_profile_ptr->ua_config.evs_configuration_profile_2 = 2;          //VZW_2020OCT EVS_B0
-            nvram_ims_profile_ptr->ua_config.UA_call_evs_pt              = 115;        //VZW_2020OCT	 
-			nvram_ims_profile_ptr->ua_config.evs_fmtp_variant_pt         = 109;        //VZW_2020OCT
+            nvram_ims_profile_ptr->ua_config.UA_call_evs_pt              = 115;        //VZW_2020OCT 
+            nvram_ims_profile_ptr->ua_config.evs_fmtp_variant_pt         = 109;        //VZW_2020OCT
 #endif /* __EVS_SUPPORT__ */
             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);
 
@@ -10839,6 +11357,7 @@
             nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
             nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1             = 0;
             nvram_ims_profile_ptr->ua_config.ect_enable                             = 1;
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1;                    
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;
@@ -10868,7 +11387,6 @@
                     nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1      = 1;
                     nvram_ims_profile_ptr->ua_config.from_header_peer_addr           = 1;
                     nvram_ims_profile_ptr->ua_config.omit_sip_instance_in_contact    = 0x03; // B0000_0011
-                    nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature          = 1;
 #ifdef __EVS_SUPPORT__
                     nvram_ims_profile_ptr->ua_config.evs_support                     = 1;
                     nvram_ims_profile_ptr->ua_config.UA_call_codec_order1            = 17;
@@ -10883,6 +11401,9 @@
                     nvram_ims_profile_ptr->ua_config.bw_recv_end                     = 2;
 #endif /* __EVS_SUPPORT__ */
                     nvram_ims_profile_ptr->ua_config.use_local_conf_participant_list_in_srvcc = 1;
+                    nvram_ims_profile_ptr->ua_config.audio_dscp                      = 46;
+                    /* IMCB */
+                    nvram_ims_profile_ptr->imc_config.dedicated_fallback_support        = 1;
                 }
                 /* UK */
                 else if (strncmp((char *)&mccmnc[0], "234", 3) == 0) {
@@ -10961,6 +11482,8 @@
                     nvram_ims_profile_ptr->ua_config.ect_without_target_hold            = 1;
                     nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                    = 1;
                     nvram_ims_profile_ptr->ua_config.always_add_user_phone_in_conf_refer = 1;
+                    nvram_ims_profile_ptr->ua_config.use_org_sdp_for_invite_without_sdp = 1;
+                    nvram_ims_profile_ptr->ua_config.audio_dscp                         = 46;
 
                     /* IMCB */
                     nvram_ims_profile_ptr->imc_config.dedicated_fallback_support        = 1;
@@ -11148,11 +11671,11 @@
             nvram_ims_profile_ptr->ua_config.support_ringing_downgrade          = 1;
             nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode         = 1;
             nvram_ims_profile_ptr->ua_config.mod_session_req_timer_timeout      = 40;
-            nvram_ims_profile_ptr->ua_config.disable_ul_rtp_in_early_state  = 1;
+            nvram_ims_profile_ptr->ua_config.disable_ul_rtp_in_early_state      = 1;
             nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage                 = 0x0F;
             nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
-            nvram_ims_profile_ptr->ua_config.audio_dscp                     = 46;
-            nvram_ims_profile_ptr->ua_config.video_dscp                     = 26;
+            nvram_ims_profile_ptr->ua_config.audio_dscp                         = 46;
+            nvram_ims_profile_ptr->ua_config.video_dscp                         = 26;
             nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature             = 1;
             nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming        = 1;
             nvram_ims_profile_ptr->ua_config.cur_loc_for_emergency_enable       = 0;
@@ -11181,7 +11704,8 @@
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.pdn_retry_backoff_enable          = 1;
             nvram_ims_profile_ptr->imc_config.resource_retain_timer             = 12*1000;
-            nvram_ims_profile_ptr->imc_config.is_ims_retry_status               = 2;
+            nvram_ims_profile_ptr->imc_config.is_ims_retry_status               = 4;
+            nvram_ims_profile_ptr->imc_config.nr_recovery_support               = 1;
             memset(&nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list[0],0,32);
             strncpy((char *)nvram_ims_profile_ptr->imc_config.pcscf_home_policy_list,
                       "0,2,6,3,1,4,5,0",
@@ -11395,7 +11919,8 @@
                       sizeof (nvram_ims_profile_ptr->ua_config.user_agent)-1
                     );
             /* Call */
-            nvram_ims_profile_ptr->ua_config.short_code_support         = 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;
             nvram_ims_profile_ptr->ua_config.ch_aw_recv                         = 2;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 330;
@@ -11404,6 +11929,8 @@
             nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 10;         
             nvram_ims_profile_ptr->ua_config.when_stop_tcall                    = 100;
             nvram_ims_profile_ptr->ua_config.use_lower_anonymous                = 1;
+            nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context    = 0;
+            nvram_ims_profile_ptr->ua_config.hold_before_add_to_conf            = 1;
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
@@ -11454,6 +11981,9 @@
             nvram_ims_profile_ptr->ua_config.norm_sits_trans_timer_in_proceeding = 330;
             /***********************Clone from DoCoMo ********************************/
             nvram_ims_profile_ptr->ua_config.emerg_reg_timer                = 10;
+            /* IMC */
+            nvram_ims_profile_ptr->imc_config.allow_emergency_dereg         = 2;   // deactivate ECC PDN directly
+
             break;
         }
         case 100: /* CSL */
@@ -11650,7 +12180,7 @@
             nvram_ims_profile_ptr->ua_config.dereg_sms_disconnect_stack             = 0;
             break;
         }
-		case 105: /* Claro/Paraguay */
+        case 105: /* Claro/Paraguay */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                         = 0x0069; 
 
@@ -11668,6 +12198,7 @@
             nvram_ims_profile_ptr->ua_config.contact_with_accesstype                = 1;
             
             /* IMCB */
+            nvram_ims_profile_ptr->imc_config.isim_invalidation_rules               = 1;
             
             break;
         }
@@ -11953,6 +12484,7 @@
                     nvram_ims_profile_ptr->imc_config.location_info_support         = 1;
                     nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call = 1;
                     nvram_ims_profile_ptr->imc_config.nw_vops_rule                  = 0x01;
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules       = 1;
 
                     /* IMCB, Reg/Stack, UA internal configurations */
                     /* Call */
@@ -12029,7 +12561,7 @@
             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;
-            #endif
+            #endif /* __EVS_SUPPORT__ */
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.UA_net_ipsec                   = 0;
@@ -12318,6 +12850,8 @@
 
             /*IMC*/
             nvram_ims_profile_ptr->imc_config.allow_emergency_dereg         = 2;      // RMSC00027725(TTA_VoLTE_8_2000), deactivate emergency PDN directly
+			nvram_ims_profile_ptr->imc_config.is_ims_retry_status           = 4;     // RELIED_ON_WATCHDOG_TIMER
+			nvram_ims_profile_ptr->imc_config.is_ims_retry_watchdog_timer   = 30;   // if re-reg does not succeed in 30sec, update IMS retry status as false
             set_psismsc_by_imsi(&nvram_ims_profile_ptr->imc_config.default_psismsc[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
             break;
         }
@@ -12364,6 +12898,7 @@
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3           = 1;
 #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;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.random_init_ipsec_port                 = 0;
@@ -12471,6 +13006,7 @@
             set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
 
             /* IMCB, Reg/Stack, UA internal configurations */
+            nvram_ims_profile_ptr->imc_config.isim_invalidation_rules               = 1;
             /* Call */
             nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context        = 0;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
@@ -12512,25 +13048,30 @@
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;         
                     nvram_ims_profile_ptr->ua_config.merge_send_bye                     = 0;          
                     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.sub_def_expires                    = 259200;     
+					nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                    = 1;                 
 
                     /* Reg/Stack */
                     nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size    = 1080;       
-                    nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 1;          
                     nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe     = 1;          
                     nvram_ims_profile_ptr->ua_config.contact_with_accesstype            = 1;          
                     nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;          
                     nvram_ims_profile_ptr->ua_config.pidf_country                       = 1;          
                     nvram_ims_profile_ptr->ua_config.reg_gruu_support                   = 0;          
                     nvram_ims_profile_ptr->ua_config.register_expiry                    = 3600;       
+                    nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;        // Add country in WFC and VOLTE MESSAGE/REG/INVITE
+                    nvram_ims_profile_ptr->ua_config.geolocation_type                   = 2;
 
                     /* IMCB */         
                     nvram_ims_profile_ptr->imc_config.pdn_retry_base_time               = 10;         
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules           = 1;                    
 
                     /* IMC */        
                     nvram_ims_profile_ptr->imc_config.location_info_support             = 1;
                     nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping   = 1;
                     nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg           = 1;                    
+                    nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call  = 1;
+
                 }
                 /* Guatemala */
                 else if (strncmp((char *)&mccmnc[0], "704", 3) == 0) {
@@ -12572,7 +13113,8 @@
                     nvram_ims_profile_ptr->imc_config.pdn_retry_backoff_enable          = 1;
                     nvram_ims_profile_ptr->imc_config.pdn_retry_base_time               = 10;
                     nvram_ims_profile_ptr->imc_config.pdn_retry_max_time                = 10000;
-                    /* IMC */
+                    /* IMC */  
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules           = 1;                    
                     nvram_ims_profile_ptr->imc_config.location_info_support             = 1;
                     nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call  = 1;
                 }
@@ -12628,6 +13170,7 @@
                     /* IMC */
                     nvram_ims_profile_ptr->imc_config.location_info_support             = 1;
                     nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1;
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules           = 1;
                 }
                 /* PERU */
                 else if (strncmp((char *)&mccmnc[0], "716", 3) == 0) {
@@ -12639,6 +13182,7 @@
                     set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
 
                     /* IMCB, Reg/Stack, UA internal configurations */
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules       = 1;
                     /* Call */
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 90;
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 90;
@@ -12677,6 +13221,7 @@
                     set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
 
                     /* IMCB, Reg/Stack, UA internal configurations */
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules       = 1;
                     /* Call */
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 90;
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 90;
@@ -12694,6 +13239,8 @@
                     nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 0;
                     nvram_ims_profile_ptr->ua_config.sub_def_expires                = 259200;
                     nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage             = 0x0E;
+					nvram_ims_profile_ptr->ua_config.reject_no_answer_resp_code     = 480;
+					nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout       = 25;
 
                     /* Reg/Stack */
                     nvram_ims_profile_ptr->ua_config.pidf_country                   = 1;
@@ -12716,6 +13263,9 @@
                     nvram_ims_profile_ptr->imc_config.pdn_retry_max_time            = 10000;
                     nvram_ims_profile_ptr->imc_config.pdn_retry_pre_backoff_count   = 0;
                     nvram_ims_profile_ptr->imc_config.enable_ddd_feature            = 1;
+                    /* IMC */
+                    nvram_ims_profile_ptr->imc_config.auto_re_reg_timer             = 4000;
+                    nvram_ims_profile_ptr->imc_config.nr_recovery_support           = 1;
                 }
                 /* Argentina */
                 else if (strncmp((char *)&mccmnc[0], "722", 3) == 0) {
@@ -12730,6 +13280,7 @@
                     set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
 
                     /* IMCB, Reg/Stack, UA internal configurations */
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules       = 1;
                     /* Call */
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 90;
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 90;
@@ -12751,17 +13302,19 @@
                     "0,2,4,7", sizeof(nvram_ims_profile_ptr->ua_config.UA_call_amr_mode_set)-1);
                     nvram_ims_profile_ptr->ua_config.check_contact_380              = 1;
                     nvram_ims_profile_ptr->ua_config.audio_dscp                     = 0x2E;
-                    nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 0;
+                    nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 1;
                     nvram_ims_profile_ptr->imc_config.default_fallback_support      = 1;
                     nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
                     nvram_ims_profile_ptr->ua_config.sub_def_expires                     = 259200;
+					nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;        // Add country in WFC and VOLTE MESSAGE/REG/INVITE
+					nvram_ims_profile_ptr->ua_config.geolocation_type                   = 2;
 
                     /* Reg/Stack */
                     nvram_ims_profile_ptr->ua_config.pidf_country                   = 1;
                     nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg      = 1;
                     nvram_ims_profile_ptr->imc_config.pdn_retry_base_time           = 10;
-                    nvram_ims_profile_ptr->ua_config.add_country_to_pani            = 1;
                     nvram_ims_profile_ptr->ua_config.contact_with_accesstype        = 1;
+                    nvram_ims_profile_ptr->ua_config.register_expiry                = 3600;
                 }
                 /* Colombia */
                 else if (strncmp((char *)&mccmnc[0], "732", 3) == 0) {
@@ -12778,6 +13331,7 @@
 
                     /* IMCB, Reg/Stack, UA internal configurations */
                     nvram_ims_profile_ptr->imc_config.ignore_media_qos_check                = 0xfff;
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules               = 1;
                     /* Call */
                     nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context        = 0;
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
@@ -12847,9 +13401,11 @@
                     /* Reg/Stack */
 
                     /* IMCB */
-                    nvram_ims_profile_ptr->imc_config.pdn_retry_base_time           = 10;
+                    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.isim_invalidation_rules       = 1;
                 }
                 /* Ecuador */
                 else if (strncmp((char *)&mccmnc[0], "740", 3) == 0) {
@@ -12859,12 +13415,14 @@
                     nvram_ims_profile_ptr->imc_config.nw_vops_rule                      = 0x01;
 
                     /* IMCB, Reg/Stack, UA internal configurations */
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules           = 1;
                     /* Call*/
                     nvram_ims_profile_ptr->ua_config.sub_def_expires                    = 259200;     
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;
                     nvram_ims_profile_ptr->ua_config.merge_send_bye                     = 0;
                     nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
+                    nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                    = 1;
                 #ifdef __EVS_SUPPORT__
                     nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
                     nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
@@ -12879,18 +13437,20 @@
                 #endif /* __EVS_SUPPORT__ */
 
                     /* Reg/Stack */
-                    nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 1;
                     nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe     = 1;
                     nvram_ims_profile_ptr->ua_config.contact_with_accesstype            = 1;
                     nvram_ims_profile_ptr->ua_config.pidf_country                       = 1;
                     nvram_ims_profile_ptr->ua_config.reg_gruu_support                   = 0;
                     nvram_ims_profile_ptr->ua_config.register_expiry                    = 3600;
+                    nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;        // Add country in WFC and VOLTE MESSAGE/REG/INVITE
+                    nvram_ims_profile_ptr->ua_config.geolocation_type                   = 2;
 
                     /* IMCB */
 
                     /* IMC */
                     nvram_ims_profile_ptr->imc_config.allow_emergency_dereg             = 2;                  
                     nvram_ims_profile_ptr->imc_config.location_info_support             = 1;          
+                    nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call  = 1;
                 }
                 /* Uruguay */
                 else if (strncmp((char *)&mccmnc[0], "748", 3) == 0) {
@@ -12901,6 +13461,7 @@
                     set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
 
                     /* IMCB, Reg/Stack, UA internal configurations */
+                    nvram_ims_profile_ptr->imc_config.isim_invalidation_rules           = 1;
                     /* Call*/
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;         
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;         
@@ -12933,7 +13494,7 @@
                        "sip:+14382762000@ims.bell.ca",
                         sizeof (nvram_ims_profile_ptr->imc_config.default_psismsc)-1
                         );
-				nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn            = 1;
+                nvram_ims_profile_ptr->imc_config.wifi_em_reg_by_em_pdn            = 1;
 
                 /*REG/Stack*/
                 nvram_ims_profile_ptr->ua_config.follow_nw_ims_vops_support         = 1;
@@ -12948,6 +13509,7 @@
                 nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 1;
                 nvram_ims_profile_ptr->ua_config.not_auto_reg_403                   = 1;
                 nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
+				nvram_ims_profile_ptr->ua_config.emc_cits_protect_timer             = 600; // Bell_v200_55567
                 /* IMCB  IMC*/
                 nvram_ims_profile_ptr->imc_config.ims_video_qci                     = 255;
                 nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 8;
@@ -12961,6 +13523,7 @@
                 nvram_ims_profile_ptr->ua_config.session_refresher_in_req           = 1;
                 nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 120;
                 nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 120;
+                nvram_ims_profile_ptr->ua_config.emc_call_ringback_timer_timeout    = 600; // Bell_v200_55567
                 memset(&nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set[0],0,20);
                 strncpy((char *)nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_mode_set,
                     "0,1,2",
@@ -13365,6 +13928,7 @@
             nvram_ims_profile_ptr->ua_config.reject_no_answer_resp_code     = 500;
             nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled     = 1;
             nvram_ims_profile_ptr->ua_config.srvcc_feature_enable           = 7;
+            nvram_ims_profile_ptr->ua_config.reject_1w_if_1A1H              = 1;
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                    = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1           = 17;
@@ -13449,6 +14013,9 @@
                     nvram_ims_profile_ptr->ua_config.operator_code                  = 0x0082;      //operator_code = 130(TIM)
                     nvram_ims_profile_ptr->ua_config.UA_call_session_timer          = 0x00000708;  // UA_call_session_timer = 1800s
                     nvram_ims_profile_ptr->ua_config.UA_call_session_min_se         = 90;
+                    /*IMC*/
+                    nvram_ims_profile_ptr->imc_config.is_ims_retry_status           = 4; // RELIED_ON_WATCHDOG_TIMER
+                    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
 
@@ -13565,7 +14132,7 @@
             nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1         = 0;
             nvram_ims_profile_ptr->ua_config.support_early_upgrade              = 1;
             nvram_ims_profile_ptr->ua_config.curr_loc_dir_none_for_wifi         = 1;
-			nvram_ims_profile_ptr->ua_config.send_media_mod_after_active        = 1;
+            nvram_ims_profile_ptr->ua_config.send_media_mod_after_active        = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.random_init_ipsec_port             = 0;
@@ -13696,6 +14263,9 @@
                     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;
+
+					/*IMC*/
+                    nvram_ims_profile_ptr->imc_config.nr_recovery_support           = 1;
                 }
                 /* Mexico */
                 else if (strncmp((char *)&mccmnc[0], "334", 3) == 0) {
@@ -13937,7 +14507,7 @@
                     nvram_ims_profile_ptr->ua_config.br_send_end                        = 6;
                     nvram_ims_profile_ptr->ua_config.br_recv_end                        = 6;
                     nvram_ims_profile_ptr->ua_config.ch_aw_recv                         = 0xFF;
-                #endif
+                #endif /* __EVS_SUPPORT__ */
                     nvram_ims_profile_ptr->ua_config.prefer_original_codec              = 0;
 
                     /* Reg/Stack */
@@ -14390,7 +14960,6 @@
             nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_pt                 = 96;
             nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_wb_pt              = 97;
             nvram_ims_profile_ptr->ua_config.register_cap_whenever              = 1;
-            nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1         = 0;
             nvram_ims_profile_ptr->ua_config.conference_subscribe_timing        = 1;
             nvram_ims_profile_ptr->ua_config.p_early_media_in_invite            = 1;
             nvram_ims_profile_ptr->ua_config.session_refresher_in_req           = 1;
@@ -14405,6 +14974,7 @@
                     );
             nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
             nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout             = 15;
+            nvram_ims_profile_ptr->ua_config.from_header_peer_addr                = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1354;
@@ -14449,23 +15019,23 @@
             /*IMCB, Reg/Stack, UA internal configurations */
             /* Call */
             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.subscribe_dialog_to_server         = 0;
             nvram_ims_profile_ptr->ua_config.merge_send_bye                     = 0;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 30;
             nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 30;
             nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call     = 1;
             nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe     = 1;
             nvram_ims_profile_ptr->ua_config.force_srvcc_transfer               = 0x00;
-            nvram_ims_profile_ptr->ua_config.UA_call_amr_pt                     = 111;
-            nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_pt                  = 96;
-            nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_pt                 = 113;
-            nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_wb_pt              = 99;
+            nvram_ims_profile_ptr->ua_config.UA_call_amr_pt                     = 102;
+            nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_pt                  = 104;
+            nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_pt                 = 97;
+            nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_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.UA_call_evs_pt                     = 110;
+            nvram_ims_profile_ptr->ua_config.UA_call_evs_pt                     = 106;
 #endif /* __EVS_SUPPORT__ */
 
             /* Reg/Stack */
@@ -14572,6 +15142,7 @@
 
             /*IMCB, Reg/Stack, UA internal configurations */
             /* Call */
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode         = 1;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;
             nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;
             nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming        = 1;
@@ -14709,6 +15280,7 @@
             nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout      = 45;
             nvram_ims_profile_ptr->ua_config.add_pani_in_ack                    = 1;
             nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy            = 1;
+            nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage                 = 0x08;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani           = 1;
@@ -15658,6 +16230,50 @@
                             sizeof (nvram_ims_profile_ptr->imc_config.pdn_rej_handle)-1
                             );
                 }
+                /* Spain */
+                else if(strncmp((char *)&mccmnc[0], "214", 3) == 0){
+                    /* reset to default */
+                    imc_set_mtk_default_value(nvram_ims_profile_ptr);
+
+                    nvram_ims_profile_ptr->ua_config.operator_code                        = 0x009B;   //operator_code = 155(Digi)
+                    
+
+                    nvram_ims_profile_ptr->imc_config.nw_vops_rule                        = 0x18;     // 11000, IMS reg maintained but initial reg not allowed
+                    nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call    = 1;        // not register for WFC during a CS call
+                    nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel   = 1;        // delay IMS dereg in 23G until call is released
+                    nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery               = 1;
+                    
+                    set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+                    
+                    /* IMCB, Reg/Stack, UA internal configurations */
+                    /* Call */
+                    nvram_ims_profile_ptr->ua_config.UA_call_session_min_se              = 90;
+                    nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout          = 180;
+                    nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout         = 180;
+                    nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call      = 0;
+                    nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1          = 0;
+                    nvram_ims_profile_ptr->ua_config.srvcc_feature_enable                = 0x000F;    // enable SRVCC, aSRVCC, bSRVCC and mid-SRVCC
+                    nvram_ims_profile_ptr->ua_config.refer_dialog_to_server              = 1;
+                    nvram_ims_profile_ptr->ua_config.merge_send_bye_delay                = 2;
+                #ifdef __EVS_SUPPORT__
+                    nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
+                    nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
+                    nvram_ims_profile_ptr->ua_config.UA_call_codec_order2               = 2;
+                    nvram_ims_profile_ptr->ua_config.UA_call_codec_order3               = 1;
+                    nvram_ims_profile_ptr->ua_config.br_end                             = 6;
+                    nvram_ims_profile_ptr->ua_config.br_send_end                        = 6;
+                    nvram_ims_profile_ptr->ua_config.br_recv_end                        = 6;
+                #endif /* __EVS_SUPPORT__ */
+
+                    /* Reg/Stack */
+                    nvram_ims_profile_ptr->ua_config.reg_gruu_support                    = 0;
+                    nvram_ims_profile_ptr->ua_config.initial_reg_without_pani            = 1;
+                    nvram_ims_profile_ptr->ua_config.not_auto_reg_403                    = 1;
+                    nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg           = 1;
+                    nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo                   = 0x33;      // disable 3des encryption
+
+                    /* IMCB */
+                }
             }
 
             break;
@@ -15719,6 +16335,7 @@
                 nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call  = 0;
                 nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage              = 0x0F;     // PIDF_ALL_CALLS_DISABLE
                 nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1      = 0;
+                nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing     = 1;
 
                 /* Reg/Stack */
                 nvram_ims_profile_ptr->ua_config.reg_gruu_support                = 0;
@@ -16402,6 +17019,8 @@
             nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context    = 0;
             nvram_ims_profile_ptr->ua_config.call_invite_no_rsp_ran_prio_req_timer_timeout = 3;
             nvram_ims_profile_ptr->ua_config.always_add_user_phone_in_conf_refer = 1;
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+            nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 18;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.random_init_ipsec_port             = 0;
@@ -16716,7 +17335,7 @@
                     nvram_ims_profile_ptr->ua_config.refer_dialog_to_server         = 1;
                     nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi             = 1;
                     nvram_ims_profile_ptr->imc_config.ussd_support                  = 1;
-					nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context= 0;
+                    nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context= 0;
                 }
             }
             break;
@@ -16733,11 +17352,13 @@
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 120;        
             nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
             nvram_ims_profile_ptr->ua_config.in_reply_to_support                = 0;
+            nvram_ims_profile_ptr->ua_config.UA_call_session_timer              = 900;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_accesstype            = 1;
             nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 1;
             nvram_ims_profile_ptr->ua_config.confidence_level                   = 90;
+			nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.ims_v4v6_preference               = 2;          
@@ -16747,6 +17368,7 @@
 
             /* IMC */
             nvram_ims_profile_ptr->imc_config.disable_isim_application          = 1;
+			nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg           = 1;
             break;
         }
         case 175: /* TDC */
@@ -16910,6 +17532,8 @@
                 nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature          = 1;
                 nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode      = 1;
                 nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe  = 1;
+                nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout   = 30;
+                nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature          = 1;
 
                 /* Reg/Stack */
                 nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer                 = 500;
@@ -16918,12 +17542,6 @@
                 nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg      = 1;
 
                 /* IMCB */
-#ifdef __EVS_SUPPORT__
-                nvram_ims_profile_ptr->ua_config.UA_call_codec_order1            = 17;
-                nvram_ims_profile_ptr->ua_config.UA_call_codec_order2            = 2;
-                nvram_ims_profile_ptr->ua_config.UA_call_codec_order3            = 1;
-                nvram_ims_profile_ptr->ua_config.evs_support                     = 1;
-#endif
                 nvram_ims_profile_ptr->imc_config.ims_v4v6_preference            = 2;        //v4_prefer
             }
             break;
@@ -17047,6 +17665,7 @@
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1500;
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani           = 1;
             nvram_ims_profile_ptr->ua_config.not_auto_reg_403                   = 1;
+            nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase           = 1;
 
             /* SMS */
             nvram_ims_profile_ptr->ua_config.sms_support_in_23g                 = 0;
@@ -17087,6 +17706,9 @@
             nvram_ims_profile_ptr->ua_config.add_phone_context_ignore_number_type = 1;
             nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout             = 20;
 
+            /* IMC */
+            nvram_ims_profile_ptr->imc_config.ussd_support                        = 1;//enable USSD over IMS
+
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                      = 0x01;  // Add CNI to all operations.
             nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
@@ -17164,6 +17786,7 @@
             nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                             = 0x01;  // Add CNI to all operations.
             nvram_ims_profile_ptr->ua_config.add_precondition_in_hold_unhold_sdp         = 0;
             nvram_ims_profile_ptr->ua_config.in_reply_to_support                         = 0;
+            nvram_ims_profile_ptr->ua_config.UA_call_session_timer                       = 600;
 
             /*Reg*/
             nvram_ims_profile_ptr->ua_config.register_expiry                             = 3600;
@@ -17171,7 +17794,7 @@
             nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo                           = 0x20;
             nvram_ims_profile_ptr->imc_config.ims_v4v6_preference                        = 2;
             nvram_ims_profile_ptr->ua_config.contact_with_transport                      = 0;
-            nvram_ims_profile_ptr->ua_config.add_country_to_pani                         = 1;
+            nvram_ims_profile_ptr->ua_config.add_country_to_pani                         = 3;
             nvram_ims_profile_ptr->ua_config.curr_loc_dir_none_for_wifi                  = 1;
 
            /* IMCB */
@@ -17203,9 +17826,9 @@
             nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming               = 1;
             nvram_ims_profile_ptr->ua_config.support_ringing_downgrade                 = 1;
             nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode                = 1;
-            nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
+            nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite       = 1;
             nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                    = 1;
-            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout         = 30;
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout             = 30;
             nvram_ims_profile_ptr->ua_config.prefer_original_codec                     = 0;
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                               = 0;
@@ -17254,15 +17877,15 @@
             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.ims_notify_feature_enabled         = 1;
-			nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
+            nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
             nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1         = 0;
-			nvram_ims_profile_ptr->ua_config.UA_call_precondition               = 0;
+            nvram_ims_profile_ptr->ua_config.UA_call_precondition               = 0;
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order2               = 2;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3               = 1;
-#endif
+#endif /* __EVS_SUPPORT__ */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.default_fallback_support          = 1;
@@ -17516,6 +18139,7 @@
             
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg             = 1;
+            nvram_ims_profile_ptr->ua_config.add_country_to_pani                   = 1;
 
 
             /* IMCB */
@@ -17725,6 +18349,7 @@
             nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout      = 45;
             nvram_ims_profile_ptr->ua_config.add_pani_in_ack                    = 1;
             nvram_ims_profile_ptr->ua_config.stir_shaken_for_privacy            = 1;
+            nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage                 = 0x08;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani           = 1;
@@ -17850,7 +18475,7 @@
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 55;
             nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 65;
             nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 30;
-			nvram_ims_profile_ptr->ua_config.conf_refer_order_by_call_id        = 1;
+            nvram_ims_profile_ptr->ua_config.conf_refer_order_by_call_id        = 1;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.default_fallback_support          = 1;
@@ -17932,22 +18557,10 @@
             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.play_local_tone_when_no_rtp_pkt_on_remote_hold        = 1;
-        #ifdef __EVS_SUPPORT__
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                = 17;
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                = 2;
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                = 1;
-            nvram_ims_profile_ptr->ua_config.evs_support                         = 1;
-        #endif
-        #ifdef __EVS_SUPPORT__
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                = 17;
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                = 2;
-            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                = 1;
-            nvram_ims_profile_ptr->ua_config.evs_support                         = 1;
-        #endif /* __EVS_SUPPORT__ */
 
            /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.not_auto_reg_403                   = 1;
-            
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1200;      
            /* SMS */
            nvram_ims_profile_ptr->ua_config.sms_network_types                  = 0x00;
             
@@ -18071,7 +18684,10 @@
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.not_auto_reg_403                     = 1;
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani             = 1;
-        
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.dedicated_fallback_support          = 1;
+
             break;
         }
         case 207: /* CTM@/Macao */
@@ -18228,6 +18844,35 @@
             /* IMC */
             nvram_ims_profile_ptr->imc_config.disable_isim_application          = 1;          
             nvram_ims_profile_ptr->imc_config.location_info_support             = 1;
+			if(with_imsi_info){
+                /*Jamaica mcc = 338*/
+                if(strncmp((char *)&mccmnc[0], "338", 3) == 0){
+					/* reset to default */
+                    imc_set_mtk_default_value(nvram_ims_profile_ptr); 
+					nvram_ims_profile_ptr->ua_config.operator_code                      = 0x00d3      ;//operator_code = 211(CW)
+					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*/
+
+					/* Reg/Stack */
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1280;       
+			        nvram_ims_profile_ptr->ua_config.sub_contact_with_sip_instance      = 1;
+
+                    /* Call*/
+					nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout    	 	= 60;
+		            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout   		= 60;
+		            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server        	 	= 1;
+					nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe  	= 1;
+					nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call  	= 0;
+
+                    /* Reg/Stack */
+
+                    /* IMCB */
+
+                    /* IMC */
+                    
+                }
+            }
             break;
         }
         case 213: /* Motiv/Russia */
@@ -18512,6 +19157,7 @@
                     /* Reg/Stack */
                     nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1500;       
                     nvram_ims_profile_ptr->imc_config.ims_reg_allowed_at_23g            = 2;   
+                    nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                = 0;
 
                     /* IMCB */
 
@@ -18603,6 +19249,8 @@
             nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server         = 1;          
             nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context    = 0;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_On_Demand    = 0;
+            nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi                 = 1;
+            nvram_ims_profile_ptr->ua_config.pidf_country                       = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.reg_gruu_support                   = 0;
@@ -18725,22 +19373,23 @@
             if (with_imsi_info) {
                 nvram_ims_profile_ptr->ua_config.operator_code                      = 0x00e3;     //operator_code = 227(Wind)
                 /*Italy mcc = 222*/
-
                 if (strncmp((char *)&mccmnc[0], "222", 3) == 0) {
                     /* IMCB, Reg/Stack, UA internal configurations */
                     /* Call*/
                     nvram_ims_profile_ptr->ua_config.UA_call_session_min_se             = 900;
                     nvram_ims_profile_ptr->ua_config.UA_reg_retry_base_time             = 30;
-                    nvram_ims_profile_ptr->ua_config.UA_reg_retry_max_time              = 300;
+                    nvram_ims_profile_ptr->ua_config.UA_reg_retry_max_time              = 1800;
                     nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server         = 1;
                     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;
                     
                     /* Reg/Stack */
+                    nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1280;
                     nvram_ims_profile_ptr->ua_config.register_expiry                    = 24000;
                     nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
                     nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                = 0;
+                    nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi                 = 1;
                     
                     /* IMCB */
                     nvram_ims_profile_ptr->imc_config.auto_re_reg_max_timer             = 300000;     
@@ -18748,6 +19397,7 @@
                     /* IMC */
                     nvram_ims_profile_ptr->imc_config.ims_reg_allowed_at_23g            = 2;
                     nvram_ims_profile_ptr->imc_config.send_sip_dereg_at_23g             = 0;
+                    nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery             = 1;
                 }
                 /* Greece */
                 else if (strncmp((char *)&mccmnc[0], "202", 3) == 0) {
@@ -18810,10 +19460,13 @@
             nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming        = 1;
             nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable     = 1;
             nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout      = 30;
-            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;			
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 120;
             nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 120;
             nvram_ims_profile_ptr->ua_config.delay_unhold_call                  = 1;
+            nvram_ims_profile_ptr->ua_config.evs_support                        = 0;
+            nvram_ims_profile_ptr->ua_config.UA_call_session_min_se             = 1800;
+            nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code           = 486;
             nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;
             nvram_ims_profile_ptr->ua_config.call_mo_pidf_usage                 = 0x0A;
             nvram_ims_profile_ptr->ua_config.add_pcni_in_vowifi                 = 1;
@@ -18921,21 +19574,26 @@
             nvram_ims_profile_ptr->imc_config.nw_vops_rule                      = 0x18;     // IMS reg maintained but initial reg not allowed
             nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call  = 1;        // not register for WFC during a CS call
             nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel = 1;        // delay IMS dereg in 23G until call is released
+            nvram_ims_profile_ptr->imc_config.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;
 
             /* IMCB, Reg/Stack, UA internal configurations */
             /* Call*/
-            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;         
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 90;
             nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call     = 0;
             nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
             nvram_ims_profile_ptr->ua_config.attempt_reg_when_receive403        = 0;
             nvram_ims_profile_ptr->ua_config.prefer_original_codec              = 0;
-            nvram_ims_profile_ptr->ua_config.UA_call_session_min_se             = 90;    
+            nvram_ims_profile_ptr->ua_config.UA_call_session_min_se             = 90;
+            nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 18;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.register_expiry                    = 1800;
             nvram_ims_profile_ptr->ua_config.initial_reg_without_pani           = 1;
             nvram_ims_profile_ptr->ua_config.not_auto_reg_403                   = 1;
+            nvram_ims_profile_ptr->ua_config.bypass_403_reason_phrase           = 1;
             nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.dedicated_fallback_support        = 1;
@@ -19051,6 +19709,8 @@
             nvram_ims_profile_ptr->ua_config.set_text_rtcp_0                    = 0;
             nvram_ims_profile_ptr->ua_config.UA_call_amr_fmt_variant            = 0x1111;
             nvram_ims_profile_ptr->ua_config.show_octet_align                   = 0;
+            nvram_ims_profile_ptr->ua_config.disable_conf_sub                   = 1;
+            nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context    = 0;
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
@@ -19244,9 +19904,9 @@
             break;
         }
 
-		case 241 /*Claro*/:
-		{
-			//if(strncmp((char *)&mccmnc[0], "330", 3) == 0){
+        case 241 /*Claro*/:
+        {
+        //if(strncmp((char *)&mccmnc[0], "330", 3) == 0){
                     /* reset to default */
                     imc_set_mtk_default_value(nvram_ims_profile_ptr);
                     nvram_ims_profile_ptr->ua_config.operator_code                      = 0x00F1;     //operator_code = 241(Claro-Puerto Rico)
@@ -19525,6 +20185,7 @@
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1500;       
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
 
             /* IMCB */
 
@@ -19586,7 +20247,7 @@
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
-#endif
+#endif /* __EVS_SUPPORT__ */
             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;
@@ -19626,7 +20287,6 @@
             /* Call */
             nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start          = 49152;
             nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range          = 16383;
-            nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.call_id_with_host_inCall           = 1;
@@ -19666,7 +20326,67 @@
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
+            break;
+        }
+        case 261: /* ASTAC, Arctic Slope Telephone Association Cooperative */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                      = 0x105;        //operator_code = 261 (ASTAC)
+            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->ua_config.rtp_rtcp_local_port_start          = 49152;
+            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.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;
+
+            /* SMS */
+            nvram_ims_profile_ptr->ua_config.update_call_id_with_host           = 1;
+
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->ua_config.contact_with_transport             = 0;
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                  = 1;
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                = 0;
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                 = 0;
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all           = 20;
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism        = 1;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg          = 1;
+            nvram_ims_profile_ptr->ua_config.UA_reg_ipsec_algo                  = 0x15; //all+MD5
+
+            /* IMC */
+            //  nvram_ims_profile_ptr->imc_config.ims_roaming_mode                  = 1;
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp            = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp            = 1;
+			
             break;
         }
         case 267: /* GCI/US */
@@ -19732,7 +20452,7 @@
 
             break;
         }
-		case 271: /* Sagebrush(Nemont) */
+        case 271: /* Sagebrush(Nemont) */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x010F;   //operator_code = 271(Sagebrush(Nemont))
             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);
@@ -19743,9 +20463,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -19784,7 +20504,7 @@
             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.pend_dereg_in_initial_reg            = 1;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
 
             /* IMCB */
@@ -19792,7 +20512,7 @@
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
             break;
         }
-		case 273: /* OptimERA */
+        case 273: /* OptimERA */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0111;   //operator_code = 273(OptimERA)
             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);
@@ -19803,9 +20523,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -19843,7 +20563,7 @@
             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.pend_dereg_in_initial_reg            = 1;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1228;
 
             /* IMCB */
@@ -20319,7 +21039,6 @@
             /* Call */
             nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start          = 49152;
             nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range          = 16383;
-            nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.call_id_with_host_inCall           = 1;
@@ -20391,6 +21110,7 @@
             nvram_ims_profile_ptr->imc_config.nw_vops_rule                        = 0x18;     // 11000, IMS reg maintained but initial reg not allowed
             nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call    = 1;        // not register for WFC during a CS call
             nvram_ims_profile_ptr->imc_config.srvcc_no_ims_dereg_until_call_rel   = 1;        // delay IMS dereg in 23G until call is released
+            nvram_ims_profile_ptr->imc_config.location_info_support               = 1;
 
             /* IMCB, Reg/Stack, UA internal configurations */
 
@@ -20411,6 +21131,12 @@
             nvram_ims_profile_ptr->ua_config.refer_dialog_to_server               = 1;
             nvram_ims_profile_ptr->ua_config.session_refresher_in_req             = 1;
             nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe       = 1;
+            nvram_ims_profile_ptr->ua_config.add_cni_in_wifi                      = 0x01;
+            memset(&nvram_ims_profile_ptr->ua_config.required_loc_info_num_set[0],0,128);
+            strncpy ( (char *)nvram_ims_profile_ptr->ua_config.required_loc_info_num_set,
+            "15,17,18,114,115,119,196,197,116000,116117,116111,112",
+            sizeof (nvram_ims_profile_ptr->ua_config.required_loc_info_num_set)-1
+            );
             break;
         }
         case 288: /* Virgin UK */
@@ -20985,8 +21711,63 @@
             }
             break;
         }
+        case 316: /* Nex-Tech/US */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x013C; //operator_code = 316 (Nex-Tech/US)
 
-		case 317: /* Commnet Wireless(Choice) */
+            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.srvcc_feature_enable                   = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 120;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 120;
+            nvram_ims_profile_ptr->ua_config.disable_conf_sub                       = 1;
+
+            // Suggestion value
+            nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_start              = 49152;
+            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.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_pau_at_sdp_origin                  = 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;
+
+            /* SMS */
+            nvram_ims_profile_ptr->ua_config.update_call_id_with_host               = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_from_uri_if_pai_missing            = 1;
+
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->ua_config.geolocation_type                       = 2;
+            nvram_ims_profile_ptr->ua_config.pidf_country                           = 1;
+            nvram_ims_profile_ptr->ua_config.add_country_to_pani                    = 1;
+            nvram_ims_profile_ptr->ua_config.wfc_emerg_pidf_country                 = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;     // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;     // Suggestion value
+
+            break;
+        }
+        case 317: /* Commnet Wireless(Choice) */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                      = 0x013D; //operator_code = 317 (Commnet)
 
@@ -21641,7 +22422,11 @@
             nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe     = 1;
 
             nvram_ims_profile_ptr->ua_config.access_network_info_type           = 4;
-            nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;
+            nvram_ims_profile_ptr->ua_config.add_country_to_pani                = 3;		
+            nvram_ims_profile_ptr->ua_config.UA_call_evs_pt                     = 109;
+            nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_pt                  = 104;
+            nvram_ims_profile_ptr->ua_config.UA_call_amr_pt                     = 102;
+            nvram_ims_profile_ptr->ua_config.UA_call_h265_pt2                   = 98;            
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->imc_config.poweroff_ims_dereg_timer          = 6;
@@ -21709,22 +22494,22 @@
             nvram_ims_profile_ptr->imc_config.dedicated_fallback_support          = 1;
             break;
         }
-		case 337: /* Antel-Uruguay */
-		{
-			nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0151;   //(Antel-Uruguay)
-			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);
-			
-			/* IMC */
-			
-			/* Call*/
-			nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call       	= 0;
-			nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled				= 1;
-			
-			/* Reg/Stack */
-			
-			/* SMS */
-			break;
-		}
+        case 337: /* Antel-Uruguay */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0151;   //(Antel-Uruguay)
+            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);
+
+            /* IMC */
+
+            /* Call*/
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled             = 1;
+
+            /* Reg/Stack */
+
+            /* SMS */
+            break;
+        }
         case 338: /* Spusu */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                                = 0x0152;   //(Spusu)
@@ -21793,48 +22578,48 @@
             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.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.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.refer_dialog_to_server	            = 1;
-            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.subscribe_dialog_to_server	        = 1;
+            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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.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.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;
 
             /* 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.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;
 
             /* IMC, IMCB */
-            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp	            = 1;
-            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp	            = 1;            
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp            = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp            = 1;            
             break;
         }
         case 344: /* 4ka */
@@ -21916,7 +22701,7 @@
                     /* call */
                     nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 35;
                     nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout        = 90;
-					nvram_ims_profile_ptr->ua_config.conf_refer_order_by_call_id        = 1;
+                    nvram_ims_profile_ptr->ua_config.conf_refer_order_by_call_id        = 1;
                     nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout           = 15;
                     /* Reg/Stack */
                     nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size     = 1500;
@@ -22180,7 +22965,7 @@
             break;
         }
 
-		case 363: /* C Spire */
+        case 363: /* C Spire */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x016B;   //operator_code = 363(C Spire)
             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);
@@ -22190,9 +22975,9 @@
             nvram_ims_profile_ptr->ua_config.rtp_rtcp_local_port_range          = 16383;
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code           = 603;
-	        nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22209,12 +22994,12 @@
             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.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_session_min_se             = 900;
-			nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
-			nvram_ims_profile_ptr->ua_config.UA_call_precondition               = 0;
-			
+            nvram_ims_profile_ptr->ua_config.UA_call_session_min_se             = 900;
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_precondition               = 0;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22234,18 +23019,19 @@
             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.pend_dereg_in_initial_reg            = 1;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1228;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.authorization_with_algo              = 1;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
             break;
         }
-		
-		case 364: /* United Wireless */
+
+        case 364: /* United Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x016C;   //operator_code = 364(United Wireless)
             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);
@@ -22256,9 +23042,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22275,11 +23061,11 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
 
             /* SMS */
-            nvram_ims_profile_ptr->ua_config.update_call_id_with_host           = 1;			
+            nvram_ims_profile_ptr->ua_config.update_call_id_with_host           = 1;
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_transport               = 0;    
@@ -22288,17 +23074,17 @@
             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.pend_dereg_in_initial_reg            = 1;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1150;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 365: /* Illinois Valley Cellular */
+
+        case 365: /* Illinois Valley Cellular */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x016D;   //operator_code = 365(Illinois Valley Cellular)
             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);
@@ -22309,9 +23095,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22328,10 +23114,10 @@
             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.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;
-			
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22351,18 +23137,18 @@
             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;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 366: /* Appalachian Wireless */
+
+        case 366: /* Appalachian Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x016E;   //operator_code = 366(Appalachian Wireless)
             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);
@@ -22373,9 +23159,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22392,9 +23178,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22406,7 +23192,7 @@
 #endif /* __EVS_SUPPORT__ */
             /* SMS */
             nvram_ims_profile_ptr->ua_config.update_call_id_with_host             = 1;
-			
+
 
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.contact_with_transport               = 0;    
@@ -22415,17 +23201,17 @@
             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.pend_dereg_in_initial_reg            = 1;
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1160;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 367: /* James Valley Wireless */
+
+        case 367: /* James Valley Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x016F;   //operator_code = 367(James Valley Wireless)
             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);
@@ -22436,9 +23222,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22455,10 +23241,10 @@
             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.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;
-			
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22487,11 +23273,11 @@
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 368: /* Pioneer Cellular */
+
+        case 368: /* Pioneer Cellular */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0170;   //operator_code = 368(Pioneer Cellular)
             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);
@@ -22502,9 +23288,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22521,9 +23307,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
             /* SMS */
             nvram_ims_profile_ptr->ua_config.update_call_id_with_host             = 1;
 
@@ -22534,17 +23320,17 @@
             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_t4_timer                      = 20000;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer                      = 20000;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 369: /* Pine Belt Wireless */
+
+        case 369: /* Pine Belt Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0171;   //operator_code = 369(Pine Belt Wireless)
             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);
@@ -22555,9 +23341,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22574,9 +23360,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22596,17 +23382,17 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1160;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1160;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 370: /* STRATA */
+
+        case 370: /* STRATA */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0172;   //operator_code = 370(STRATA)
             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);
@@ -22617,9 +23403,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22636,10 +23422,10 @@
             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.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;
-			
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22659,19 +23445,19 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 371: /* Silver Star */
+
+        case 371: /* Silver Star */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0173;   //operator_code = 371(Silver Star)
             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);
@@ -22682,9 +23468,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22701,10 +23487,10 @@
             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.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;
-			
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22724,19 +23510,19 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 372: /* OneComm */
+
+        case 372: /* OneComm */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0174;   //operator_code = 372(OneComm)
             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);
@@ -22747,9 +23533,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22766,9 +23552,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22788,17 +23574,17 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1158;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1158;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 373: /* Cordova Wireless */
+
+        case 373: /* Cordova Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0175;   //operator_code = 373(Cordova Wireless)
             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);
@@ -22809,9 +23595,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22828,10 +23614,10 @@
             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.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_precondition               = 0;
-			
+            nvram_ims_profile_ptr->ua_config.UA_call_precondition               = 0;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22851,17 +23637,17 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1228;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1228;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 374: /* Copper Valley Wireless */
+
+        case 374: /* Copper Valley Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0176;   //operator_code = 374(Copper Valley Wireless)
             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);
@@ -22872,9 +23658,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22891,10 +23677,10 @@
             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.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;
-			
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22914,19 +23700,19 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 375: /* Blue Wireless */
+
+        case 375: /* Blue Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0177;   //operator_code = 375(Blue Wireless)
             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);
@@ -22937,9 +23723,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -22956,9 +23742,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -22978,18 +23764,18 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
 
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
-		
-		case 376: /* Inland Cellular */
+
+        case 376: /* Inland Cellular */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x0178;   //operator_code = 376(Inland Cellular)
             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);
@@ -23000,9 +23786,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -23019,11 +23805,11 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call     = 1;
-			nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
-			
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call     = 1;
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled         = 1;
+
             /* SMS */
             nvram_ims_profile_ptr->ua_config.update_call_id_with_host             = 1;
 
@@ -23034,16 +23820,16 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
-			
-			/* IMC */
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1260;
+
+            /* IMC */
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			nvram_ims_profile_ptr->imc_config.ussd_support                        = 1;
-			
+            nvram_ims_profile_ptr->imc_config.ussd_support                        = 1;
+
             break;
         }
 
@@ -23063,7 +23849,7 @@
             break;
         }
 
-		case 378: /* Geoverse */
+        case 378: /* Geoverse */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                            = 0x017A;   //operator_code = 378(Geoverse)
             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);
@@ -23074,9 +23860,9 @@
             nvram_ims_profile_ptr->ua_config.rtcp_interval                      = 1;
             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.refer_dialog_to_server             = 1;
-	        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.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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;
@@ -23093,9 +23879,9 @@
             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.set_non_sendrecv_rtcp_0            = 1;
             nvram_ims_profile_ptr->ua_config.add_param_in_rm_prtcpnt            = 1;
-			
+
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                          = 1;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                 = 17;
@@ -23115,13 +23901,13 @@
             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.VoLTE_Setting_SIP_TCP_MTU_Size       = 1100;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg            = 1;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size       = 1100;
 
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp              = 1;
-			
+
             break;
         }
         case 379: /* PTCI/US */
@@ -23129,11 +23915,11 @@
             nvram_ims_profile_ptr->ua_config.operator_code                      = 0x017B;     //operator_code = PTCI/US
             
             /* 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.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.UA_call_session_min_se             = 90;
+            nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code           = 603;
 
 #ifdef __EVS_SUPPORT__
             nvram_ims_profile_ptr->ua_config.evs_support                        = 1;
@@ -23145,29 +23931,29 @@
             nvram_ims_profile_ptr->ua_config.bw_recv_end                        = 2;
 #endif /* __EVS_SUPPORT__ */
 
-            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server	            = 1;
-            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.subscribe_dialog_to_server	        = 1;
+            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server             = 1;
+            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.subscribe_dialog_to_server         = 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.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.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;
 
             set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
             nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout         = 40;
@@ -23175,22 +23961,60 @@
             nvram_ims_profile_ptr->ua_config.UA_call_session_timer              = 7200;
 
             /* 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.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.VoLTE_Setting_SIP_TCP_MTU_Size     = 1500;
 
             /* IMC, IMCB */
-            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp	        = 1;
-            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp	        = 1;            
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp            = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp            = 1;            
+            break;
+        }
+        case 381: /* Iraq / Asia Cell */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                        = 0x017D;   //operator_code = 381(Iraq)
+            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);
+
+            if (with_imsi_info) {
+                if (strncmp((char *)&mccmnc[0], "418", 3) == 0) {
+                    /* Call */
+					nvram_ims_profile_ptr->ua_config.add_country_to_pani            = 1;
+                    /* 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;
+                    
+                }
+            }
             break;
         }
 
+		case 382: /* French Reunion Zeop */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                        = 0x017E;   //operator_code = 382(French Reunion Zeop)
+            
+            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.refer_dialog_to_server               = 1;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout           = 20;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout          = 90;
+            nvram_ims_profile_ptr->ua_config.srvcc_feature_enable                 = 0x000D;  // enable SRVCC/bSRVCC
+            nvram_ims_profile_ptr->ua_config.merge_send_bye                       = 0;
+            nvram_ims_profile_ptr->ua_config.set_rtcp_0                           = 1;
+            /* Reg/Stack */
+                    
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp              = 1;
+
+            break;
+
+        }
         case 383: /* Magti */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                      = 0x017F;    //operator_code = 383(Magti/Georgia)
@@ -23248,8 +24072,8 @@
             
             break;
         }
-		
-		case 387: /* West Central Wireless */
+
+        case 387: /* West Central Wireless */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                              = 0x0183;   //operator_code = 387(West Central Wireless)
 
@@ -23265,7 +24089,7 @@
             nvram_ims_profile_ptr->ua_config.UA_call_amr_wb_oct_pt                      = 107;
             nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_pt                         = 110;
             nvram_ims_profile_ptr->ua_config.UA_call_tel_evt_wb_pt                      = 111;
-			nvram_ims_profile_ptr->ua_config.tty_t140_pt                                = 113; // avoid conflict with 111
+            nvram_ims_profile_ptr->ua_config.tty_t140_pt                                = 113; // avoid conflict with 111
             nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled                 = 1;
             /* Reg/Stack */
             nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size             = 1460; 
@@ -23290,7 +24114,7 @@
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                       = 17;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                       = 2;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                       = 1;
-#endif
+#endif /* __EVS_SUPPORT__ */
             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;
@@ -23320,6 +24144,146 @@
             break;
         }
 
+        case 388: /* CBN */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code             = 0x0184; //operator_code = 388(CBN)
+            nvram_ims_profile_ptr->ua_config.UA_call_rej_by_user_code  = 603;
+            nvram_ims_profile_ptr->ua_config.UA_call_no_resource_code  = 580;
+            nvram_ims_profile_ptr->imc_config.resource_retain_timer    = 6000;  // 6000ms (6 seconds)
+            nvram_ims_profile_ptr->imc_config.nw_vops_rule             = 0x14;           // 10100, relied on but not in call
+            nvram_ims_profile_ptr->imc_config.rfc5626_flow_recovery    = 1;
+            nvram_ims_profile_ptr->imc_config.nr_recovery_support      = 1;
+            nvram_ims_profile_ptr->imc_config.no_ims_reg_during_active_cs_call  = 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);
+
+            nvram_ims_profile_ptr->imc_config.unlock_ims_permanent_reg_receive_tau = 0x06;
+            nvram_ims_profile_ptr->imc_config.emergency_reg_retain_timer           = 10000; // 10s
+            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;
+            
+            /* IMCB, Reg/Stack, UA internal configurations */
+            nvram_ims_profile_ptr->ua_config.custom_em_ims_event_info       = 1;
+            
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.add_3gpp_ims_in_Accept         = 1;
+            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server         = 1;
+            nvram_ims_profile_ptr->ua_config.when_stop_tcall                = 100;
+            nvram_ims_profile_ptr->ua_config.check_contact_380              = 1;
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe = 1;
+            nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context= 0;
+            nvram_ims_profile_ptr->ua_config.reject_mtcall_when_vilte       = 1;
+            nvram_ims_profile_ptr->ua_config.not_add_SDP_in_OPTIONS         = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_amr_pt                 = 96;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout     = 120;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout    = 120;
+            nvram_ims_profile_ptr->ua_config.call_tcall_timer_timeout       = 6;
+            nvram_ims_profile_ptr->ua_config.prefer_original_codec          = 0;
+            nvram_ims_profile_ptr->ua_config.add_audio_video_in_delay_media = 0;
+            nvram_ims_profile_ptr->ua_config.resp_precondition_without_bw_cnf=1;
+            nvram_ims_profile_ptr->ua_config.call_id_with_host_inCall       = 1;
+            nvram_ims_profile_ptr->ua_config.force_srvcc_transfer           = 0;
+            nvram_ims_profile_ptr->ua_config.bypass_conf_qos_check_in_delay_media = 1;
+            nvram_ims_profile_ptr->ua_config.auto_unhold_when_rcv_recvonly  = 1;
+            nvram_ims_profile_ptr->ua_config.err_handling_for_video_via_update = 0;
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout  = 30;
+            nvram_ims_profile_ptr->ua_config.disable_ul_rtp_in_early_state  = 1;
+            nvram_ims_profile_ptr->ua_config.support_early_upgrade          = 1;
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call = 0;
+            nvram_ims_profile_ptr->ua_config.transfer_conf_call_as_1to1     = 0;
+            nvram_ims_profile_ptr->ua_config.support_video_early_media      = 1;
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature         = 1;
+            nvram_ims_profile_ptr->ua_config.upgrade_with_Tupo              = 1;
+            nvram_ims_profile_ptr->ua_config.need_revise_rtp_dir            = 1;
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming    = 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.srvcc_feature_enable           = 0;
+            nvram_ims_profile_ptr->ua_config.ch_aw_recv                     = 0xff;
+            nvram_ims_profile_ptr->ua_config.delay_unhold_call              = 1;
+#ifdef __EVS_SUPPORT__
+            nvram_ims_profile_ptr->ua_config.evs_support                    = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1           = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2           = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3           = 1;
+#endif /* __EVS_SUPPORT__ */
+            nvram_ims_profile_ptr->ua_config.call_barring_in_warning_header = 1;
+            nvram_ims_profile_ptr->ua_config.support_ringing_downgrade      = 1;
+            nvram_ims_profile_ptr->ua_config.add_qos_when_offer_present     = 1;
+            nvram_ims_profile_ptr->ua_config.call_normal_clear_timer_timeout= 1;
+            nvram_ims_profile_ptr->ua_config.no_state_transition_when_183_withoutsdp = 1;
+            nvram_ims_profile_ptr->ua_config.merge_send_bye                 = 0;
+            nvram_ims_profile_ptr->ua_config.show_octet_align               = 0;
+            nvram_ims_profile_ptr->ua_config.conference_desub_time          = 2;
+            nvram_ims_profile_ptr->ua_config.follow_mt_pt_list              = 1;
+            nvram_ims_profile_ptr->ua_config.start_ringback_t_only_by_180   = 1;
+            nvram_ims_profile_ptr->ua_config.conf_refer_order_by_call_id    = 1;
+            nvram_ims_profile_ptr->ua_config.regard_180_without_pem_as_inactive = 1;
+            nvram_ims_profile_ptr->ua_config.always_fetch_1st_entry_in_hisInfo  = 1;
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout = 5;
+            nvram_ims_profile_ptr->ua_config.UA_reg_keep_alive              = 3;
+            nvram_ims_profile_ptr->ua_config.disconnect_tcp_when_abnormal   = 1;
+            nvram_ims_profile_ptr->ua_config.mod_session_req_timer_timeout  = 0;
+            nvram_ims_profile_ptr->ua_config.precondition_in_support_header = 3;
+            nvram_ims_profile_ptr->ua_config.add_prcd_in_video_action_sdp   = 1;
+            nvram_ims_profile_ptr->ua_config.ignore_mismatch_refer_notify   = 1;
+            nvram_ims_profile_ptr->ua_config.no_session_modify_retry_for_491 = 1;
+            nvram_ims_profile_ptr->ua_config.always_report_remote_video_cap_support = 1;
+            nvram_ims_profile_ptr->ua_config.mo_update_retry_upper_limit    = 1;
+            nvram_ims_profile_ptr->ua_config.refer_delay_timer              = 30;
+            nvram_ims_profile_ptr->ua_config.wait_audio_rtp_for_crs_timer_timeout = 3;
+            nvram_ims_profile_ptr->ua_config.stop_crs_if_no_video_or_audio  = 1;
+            nvram_ims_profile_ptr->ua_config.max_hold_unhold_retry_cnt      = 2;
+            nvram_ims_profile_ptr->ua_config.keep_original_refresher_in_reinvite = 1;
+            nvram_ims_profile_ptr->ua_config.support_invalid_audio_pt       = 1;
+            nvram_ims_profile_ptr->ua_config.session_refresher_in_resp      = 1;
+            nvram_ims_profile_ptr->ua_config.send_cancel_tcall_timeout_no_resp = 1;
+
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->ua_config.contact_with_username          = 0;
+            nvram_ims_profile_ptr->ua_config.de_subscribe                   = 0;
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec              = 1;
+            nvram_ims_profile_ptr->ua_config.dereg_reset_tcp_client         = 1;
+            nvram_ims_profile_ptr->ua_config.treg                           = 64;
+            nvram_ims_profile_ptr->ua_config.rereg_23g4                     = 1;
+            nvram_ims_profile_ptr->ua_config.resub_23g4                     = 1;
+            nvram_ims_profile_ptr->ua_config.not_auto_reg_403               = 1;
+            nvram_ims_profile_ptr->ua_config.keep_alive_mode                = 2;
+            nvram_ims_profile_ptr->ua_config.contact_with_accesstype        = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport         = 0;
+            nvram_ims_profile_ptr->ua_config.attempt_reg_when_receive403    = 0;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg      = 1;
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_invite    = 4;
+            nvram_ims_profile_ptr->ua_config.call_id_with_host_inReg        = 1;
+            nvram_ims_profile_ptr->ua_config.access_network_info_type       = 1;
+            nvram_ims_profile_ptr->ua_config.register_cap_whenever          = 1;
+            nvram_ims_profile_ptr->ua_config.query_other_sim_call_state     = 1;
+            nvram_ims_profile_ptr->ua_config.open_pcscf_retry_count_limit   = 1;
+            nvram_ims_profile_ptr->ua_config.scb_ntf_cs_protection          = 1;
+            nvram_ims_profile_ptr->ua_config.reg_reset_normal_tcp           = 1;
+            nvram_ims_profile_ptr->ua_config.stop_err_resp_retx_when_not_needed = 1;
+            nvram_ims_profile_ptr->ua_config.sip_bye_retransmit_total_time  = 32000;
+            nvram_ims_profile_ptr->ua_config.link_mtu_size                  = 1280;
+            
+            /* SMS */
+            nvram_ims_profile_ptr->ua_config.mo_retry_after_504             = 1;
+            nvram_ims_profile_ptr->ua_config.dereg_sms_disconnect_stack     = 0;
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.nr_quick_disable_support      = 1;
+            memset(&nvram_ims_profile_ptr->imc_config.pdn_rej_handle[0],0,64);     // CBN: "N,33,16,0;N,*,0,1;E,*,0,1;"
+            strncpy((char *)nvram_ims_profile_ptr->imc_config.pdn_rej_handle,
+                    "N,33,16,0;N,*,0,1;E,*,0,1;",
+                    sizeof (nvram_ims_profile_ptr->imc_config.pdn_rej_handle)-1
+                    );
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp        = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp        = 1;
+            nvram_ims_profile_ptr->imc_config.wait_for_sgn_timer            = 0xFFFFFFFE;
+            nvram_ims_profile_ptr->imc_config.pdn_retry_backoff_enable      = 1;
+            break;
+        }
+
         case 389: /* Unitel/Loas */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                        = 0x0185;    //operator_code = 385(Unitel/Loas)
@@ -23358,8 +24322,9 @@
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp               = 1;      // Suggestion value
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp               = 1;      // Suggestion value
             break;
-       }
-       case 390: /* LTC-Mobile/Liberia */
+        }
+   
+        case 390: /* LTC-Mobile/Liberia */
         {
             nvram_ims_profile_ptr->ua_config.operator_code                        = 0x0186;    //operator_code = 390(LTC-Mobile/Liberia)
             
@@ -23367,16 +24332,16 @@
 
             /* IMCB, Reg/Stack, UA internal configurations */
             /* Call*/
-			nvram_ims_profile_ptr->ua_config.refer_dialog_to_server               = 1;
+            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server               = 1;
 #ifdef __EVS_SUPPORT__
             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.evs_support                        = 1;
-		    nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1               = 17;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order2               = 2;
             nvram_ims_profile_ptr->ua_config.UA_call_codec_order3               = 1;
-#endif
+#endif /* __EVS_SUPPORT__ */
         
             /* Reg/Stack */
             
@@ -23440,7 +24405,78 @@
             /* IMCB */
             nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp            = 1;
             nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp            = 1;
-			
+
+            break;
+        }
+
+        case 396: /* Thumb Cellular */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x018c; //operator_code = 396(Thumb Cellular)
+            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.UA_call_session_min_se                 = 900;
+            nvram_ims_profile_ptr->ua_config.UA_call_precondition                   = 0;
+            nvram_ims_profile_ptr->ua_config.ims_notify_feature_enabled             = 1;
+            nvram_ims_profile_ptr->ua_config.srvcc_feature_enable                   = 0x0000; 
+            nvram_ims_profile_ptr->ua_config.tty_enable                             = 1;
+            nvram_ims_profile_ptr->ua_config.text_feature_tag                       = 1;            
+
+            /* Reg/Stack*/
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size         = 1228;
+            nvram_ims_profile_ptr->ua_config.UA_net_ipsec                           = 0;            
+
+            /* IMC */
+            nvram_ims_profile_ptr->imc_config.ussd_support                          = 1;  //enable ussd support
+            nvram_ims_profile_ptr->imc_config.emergency_call_category_mapping       = 2;  //always map to sos, no detail category
+            
+            /* Suggested value */
+            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_rej_by_user_code               = 603;
+            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.refer_dialog_to_server                 = 1;
+            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.subscribe_dialog_to_server             = 1;
+
+#ifdef __EVS_SUPPORT__            
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.bw_end                                 = 2;
+            nvram_ims_profile_ptr->ua_config.bw_send_end                            = 2;
+            nvram_ims_profile_ptr->ua_config.bw_recv_end                            = 2;
+#endif  /* __EVS_SUPPORT__ */
+
+            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.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.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->imc_config.not_acquire_audio_rtcp                = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;
+
             break;
         }
 
@@ -23483,6 +24519,313 @@
             break;
         }
 
+        case 403: /* Brunei/imagine */
+        {
+            
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0193; //operator_code = 403(Brunei/Imagine)
+            set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+            /* IMCB, Reg/Stack, UA internal configurations */
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+#ifdef __EVS_SUPPORT__
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
+#endif
+
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable         = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout          = 30; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout   = 5; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode             = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe         = 1; // Suggestion value
+            
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->imc_config.ims_v4v6_preference                   = 2;        //v4_prefer
+            nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg               = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;      // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;      // Suggestion value
+            break;
+        }
+        case 404: /* Brunei/progresif */
+        {
+            
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0194; //operator_code = 404(Brunei/Imagine)
+            set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+            /* IMCB, Reg/Stack, UA internal configurations */
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+#ifdef __EVS_SUPPORT__
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
+#endif
+
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable         = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout          = 30; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout   = 5; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode             = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe         = 1; // Suggestion value
+            
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->imc_config.ims_v4v6_preference                   = 2;        //v4_prefer
+            nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg               = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;      // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;      // Suggestion value
+            break;
+        }
+
+        case 405: /* Brunei/UNN */
+        {
+            
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0195; //operator_code = 405(Brunei/UNN)
+            set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+            /* IMCB, Reg/Stack, UA internal configurations */
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+#ifdef __EVS_SUPPORT__
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
+#endif
+
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable         = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout          = 30; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout   = 5; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode             = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe         = 1; // Suggestion value
+            
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->imc_config.ims_v4v6_preference                   = 2;        //v4_prefer
+            nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg               = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;      // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;      // Suggestion value
+            break;
+        }
+
+        case 406: /* Brunei/DST */
+        {
+            
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0196; //operator_code = 406(Brunei/DST)
+            set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+
+            /* IMCB, Reg/Stack, UA internal configurations */
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+#ifdef __EVS_SUPPORT__
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
+#endif
+
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable         = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout          = 30; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout   = 5; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode             = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe         = 1; // Suggestion value
+            
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->imc_config.ims_v4v6_preference                   = 2;        //v4_prefer
+            nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg               = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;      // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;      // Suggestion value
+            break;
+        }
+
+		case 407: /*Americanet Brazil*/
+		{
+			nvram_ims_profile_ptr->ua_config.operator_code                                  = 0x197;   //operator_code = 407(Americanet 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);
+
+			/*CAll*/
+			nvram_ims_profile_ptr->ua_config.refer_dialog_to_server              		    = 1;
+			nvram_ims_profile_ptr->ua_config.send_refer_to_peer         		  			= 1;
+            nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server              		= 1;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout       				= 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout         		    = 90;
+            nvram_ims_profile_ptr->ua_config.UA_call_tel_evt 								= 0;
+
+            break;
+			
+		}
+
+		case 408:	/*Bitel/Peru*/
+		{
+			nvram_ims_profile_ptr->ua_config.operator_code                          = 0x0198; //operator_code = 408(Bitel/Peru)
+			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.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+			break;
+			
+		}
+    
+        case 411:   /* Evolve Broadband - US */
+        {
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x019b; //operator_code = 411(Evolve Broadband - 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.UA_call_precondition                   = 1;
+            nvram_ims_profile_ptr->ua_config.ch_aw_recv                             = 0xff;
+            nvram_ims_profile_ptr->ua_config.use_eps_prefix_in_phone_context        = 0;
+
+            /* REG/STACK */
+            nvram_ims_profile_ptr->ua_config.UA_reg_t1_timer                        = 2000;
+            nvram_ims_profile_ptr->ua_config.UA_reg_t2_timer                        = 16000;
+            nvram_ims_profile_ptr->ua_config.UA_reg_t4_timer                        = 17000;
+            
+            /* IMC */
+            nvram_ims_profile_ptr->imc_config.ussd_support                          = 1;
+            
+            /* Suggested value */
+            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.refer_dialog_to_server                 = 1;
+            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.subscribe_dialog_to_server             = 1;
+#ifdef __EVS_SUPPORT__            
+            nvram_ims_profile_ptr->ua_config.evs_support                            = 1;
+            nvram_ims_profile_ptr->ua_config.bw_end                                 = 2;
+            nvram_ims_profile_ptr->ua_config.bw_send_end                            = 2;
+            nvram_ims_profile_ptr->ua_config.bw_recv_end                            = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order1                   = 17;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order2                   = 2;
+            nvram_ims_profile_ptr->ua_config.UA_call_codec_order3                   = 1;
+#endif
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1;
+            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.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.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->imc_config.not_acquire_audio_rtcp                = 1;
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;
+
+            break;
+        }
+
+        case 413: /* Ufone/Pakistan */
+        {
+            
+            nvram_ims_profile_ptr->ua_config.operator_code                          = 0x019D; //operator_code = 413(Ufone/Pakistan)
+            set_conf_factory_uri_by_imsi(&nvram_ims_profile_ptr->ua_config.UA_conf_factory_uri[0], with_imsi_info, imsi_mnc_len, mccmnc, op_id, special_profile);
+            /* IMCB, Reg/Stack, UA internal configurations */
+            /* Call */
+            nvram_ims_profile_ptr->ua_config.always_use_sip_uri_for_mo_call         = 0;
+            nvram_ims_profile_ptr->ua_config.call_ringing_timer_timeout             = 90;
+            nvram_ims_profile_ptr->ua_config.call_ringback_timer_timeout            = 90;
+
+            nvram_ims_profile_ptr->ua_config.refer_dialog_to_server                 = 1;
+            nvram_ims_profile_ptr->ua_config.subscribe_dialog_to_server             = 1;
+            nvram_ims_profile_ptr->ua_config.early_media_when_rtp_coming            = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.asymmetric_payload_type_enable         = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.mod_session_cnf_timer_timeout          = 30; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_call_final_notify_timer_timeout   = 5; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.upgrade_cancel_feature                 = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.hold_unhold_send_eimscmode             = 1; // Suggestion value
+            nvram_ims_profile_ptr->ua_config.conf_participant_not_subscribe         = 1; // Suggestion value
+
+            /* Reg/Stack */
+            nvram_ims_profile_ptr->ua_config.UA_net_ipsec                           = 0;
+            nvram_ims_profile_ptr->ua_config.VoLTE_Setting_SIP_TCP_MTU_Size         = 1100;
+            nvram_ims_profile_ptr->imc_config.switch_prefer_rat_dereg               = 1;
+            nvram_ims_profile_ptr->ua_config.contact_with_transport                 = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.dereg_clear_ipsec                      = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.use_udp_on_tcp_fail                    = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.ipsec_fail_allowed                     = 0;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.tcp_connect_max_time_all               = 20;    // Suggestion value
+            nvram_ims_profile_ptr->ua_config.default_reg_retry_mechanism            = 1;     // Suggestion value
+            nvram_ims_profile_ptr->ua_config.pend_dereg_in_initial_reg              = 1;     // Suggestion value
+
+            /* IMCB */
+            nvram_ims_profile_ptr->imc_config.not_acquire_audio_rtcp                = 1;      // Suggestion value
+            nvram_ims_profile_ptr->imc_config.not_acquire_video_rtcp                = 1;      // Suggestion value
+            break;
+        }
+
         case 1001: /* Ericsson IMS IWLAN */
         {
             nvram_ims_profile_ptr->ua_config.operator_code           = 0x03E9;      //operator_code = 1001(Ericsson IMS IWLAN)
diff --git a/mcu/custom/protocol/common/ps/custom_iwlan_config.c b/mcu/custom/protocol/common/ps/custom_iwlan_config.c
old mode 100644
new mode 100755
index ca4b40b..8012766
--- a/mcu/custom/protocol/common/ps/custom_iwlan_config.c
+++ b/mcu/custom/protocol/common/ps/custom_iwlan_config.c
@@ -505,6 +505,12 @@
                     cfg->ipol_ans_cfg.ipol_ims_vops_setup_barring_enable = 0x00;
                     cfg->ipol_ans_cfg.ipol_ims_vops_barring_hplmn_enable = 0x00;
                     cfg->ipol_ans_cfg.loc_cfg.ipol_location_enable         = KAL_TRUE;
+                    /* Disable VoWiFi roaming */
+                    cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_TRUE;
+                    cfg->comm_ans_cfg.trtl_cfg.wlan_rove_in_trtl_time               = 120;
+                    cfg->comm_ans_cfg.trtl_cfg.cell_rove_in_trtl_time               = 120;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -74;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th   = -74;
                     break;
                 case 655: //South Africa
                     cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_rscp_poor_th = -110;
@@ -782,6 +788,7 @@
             /* IMS romaing Handover */
             cfg->ipol_ans_cfg.ipol_ims_roaming_incall_ho_enable = KAL_FALSE;
             cfg->ipol_ans_cfg.ipol_ims_roaming_ho_enable = KAL_TRUE;
+            cfg->ipol_ans_cfg.ipol_ims_roaming_rat_reselect_by_dreg_enable = KAL_TRUE;
 
             /* IMS cell prefer wlan dereg*/
             cfg->ipol_ans_cfg.ipol_ims_cs_pref_enable = KAL_FALSE;
@@ -1073,6 +1080,7 @@
         {
             cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable   = KAL_TRUE;
             cfg->ipol_ans_cfg.loc_cfg.ipol_location_enable = KAL_TRUE;
+			cfg->ipol_ans_cfg.ipol_ims_nr_wifi_rat_reselect_by_dreg_enable = KAL_TRUE;
             break;
         }
         case 103: /* SingTel */
@@ -1146,6 +1154,7 @@
         }
         case 110: /* FET */
         {
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
             break;
         }
         case 111: /*India VDF*/
@@ -1609,6 +1618,8 @@
             cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_rscp_fair_th = -103;
             cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_ecno_poor_th = -16;
             cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_ecno_fair_th = -7;
+
+            cfg->ipol_ans_cfg.ipol_ims_nr_wifi_rat_reselect_by_dreg_enable = KAL_TRUE;
             break;
         }
         case 154: /* Telia */
@@ -1906,6 +1917,7 @@
         }
         case 182: /* Proximus */
         {
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable      = KAL_FALSE;
             cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_TRUE;
             /* icap */
             cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0x0B;
@@ -1957,6 +1969,16 @@
             cfg->ipol_ans_cfg.ipol_ims_23G_setup_barring_enable = KAL_TRUE;
             break;
         }
+        case 191:
+        {
+            /* WiFI RSSI */
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th   = -75;
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th   = -70;
+
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -75;
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -70;
+            break;
+        }
         case 195: /*O2*/
         {
             /* WLAN signal strength threshold */
@@ -2106,12 +2128,39 @@
                 case 202: // Greece
                     /* icap */
                     cfg->ipol_ans_cfg.icap_cfg.sms_network_types = 0x04;
-                break;
-            default:
-                break;
+                    break;
+                case 222: // Italy
+                    /* WLAN signal strength threshold */
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -85;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -70;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th   = -85;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th   = -70;
+
+                    /* MD signal strength threshold */
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_poor_th   = -116;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_fair_th   = -110;
+                    break;
+                default:
+                    break;
             }
             break;
         }
+        case 228: /* Celcom/Malaysia */
+        {
+            /* Allow volte roaming and not allow Vowifi roaming */
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+	        cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_TRUE;
+            cfg->ipol_ans_cfg.loc_cfg.ipol_location_enable = KAL_TRUE;
+            /* WLAN signal strength threshold */
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -82;
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -76;
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th   = -82;
+            cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th   = -76;
+            /* MD signal strength threshold */
+            cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_poor_th = -110;
+            cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_fair_th = -100;
+            break;
+        }
         case 231: /* Maxis/Malaysia */
         {
 	        cfg->ipol_ans_cfg.ipol_ims_wlan_roaming_barring_enable = KAL_TRUE;
@@ -2136,6 +2185,11 @@
             cfg->comm_ans_cfg.trtl_cfg.wlan_rove_in_trtl_time  = 30;
             cfg->comm_ans_cfg.trtl_cfg.cell_trtl_enable  = BITMASK(IPOL_CFG_THROTTLING_ENABLE);
             cfg->comm_ans_cfg.trtl_cfg.cell_rove_in_trtl_time  = 30;
+
+            /* Enable VoLTE roaming */
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable              = KAL_FALSE;
+            cfg->ipol_ans_cfg.ipol_ims_roaming_rat_reselect_by_dreg_enable = KAL_TRUE;
+            cfg->ipol_ans_cfg.ipol_ims_roaming_incall_ho_enable            = KAL_FALSE;
             break;
         }
         case 235: /* VIP */
@@ -2248,6 +2302,11 @@
             cfg->ipol_ans_cfg.loc_cfg.ipol_location_enable = KAL_TRUE;
             break;
         }
+        case 261: /* ASTAC-United States */
+        {
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+            break;
+        }
 		case 267: /* GCI */
         {
             cfg->ipol_ans_cfg.ipol_ims_23g_wifi_rat_reselect_by_dreg_enable = KAL_TRUE;
@@ -2281,6 +2340,18 @@
                 case 410:
                     cfg->ipol_ans_cfg.ipol_ims_md_supporting_rat           = 0x40 | 0x3; // NR LTE&3G
                     cfg->ipol_ans_cfg.ipol_ims_23G_setup_barring_enable    = KAL_FALSE;
+		               /* WLAN signal strength threshold */
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_poor_th = -80;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_rove_fair_th = -60;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_poor_th = -78;
+                    cfg->ipol_ans_cfg.sig_cfg.wlan_sig_thr_cfg.ipol_wlan_rssi_ho_fair_th = -60;
+		                /* MD signal strength threshold */
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_poor_th = -110;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_lte_rsrp_fair_th = -100;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_rscp_poor_th = -114;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_umts_rscp_fair_th = -105;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_gsm_rssi_poor_th = -100;
+                    cfg->ipol_ans_cfg.sig_cfg.md_sig_thr_cfg.ipol_gsm_rssi_fair_th = -90;
                     break;
                 default :
                     break;
@@ -2594,6 +2665,12 @@
             cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
 			break;
         }
+        case 385: /* BH Mobile */
+        {
+            cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
+            cfg->ipol_ans_cfg.icap_cfg.sms_network_types      = 0x00;
+            break;
+        }
         case 387: /* West Central Wireless */
         {
             cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
@@ -2609,6 +2686,19 @@
             cfg->ipol_ans_cfg.ipol_ims_roaming_barring_enable = KAL_FALSE;
 			break;
         }
+        case 407: /* Americanet */
+        {
+            switch (atoi(sim_mcc)) {
+                case 724: /* Brazil */
+                    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 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_nras_config.c b/mcu/custom/protocol/common/ps/custom_nras_config.c
old mode 100644
new mode 100755
index 40b2213..e8e23d8
--- a/mcu/custom/protocol/common/ps/custom_nras_config.c
+++ b/mcu/custom/protocol/common/ps/custom_nras_config.c
@@ -63,6 +63,11 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -261,6 +266,60 @@
 
 /* Feature: Elevator Mode END */
 
+/* Feature: Better RAT detection custom threshold
+   [parameter setting] mininum RSRP for S-crit
+   [parameter setting] mininum RSRQ for S-crit
+*/
+kal_bool nras_custom_better_rat_detect_threshold_enable = KAL_FALSE;
+#define CUSTOM_BETTER_RAT_DETECT_MIN_RSRP -460  /* the unit is QdB */
+#define CUSTOM_BETTER_RAT_DETECT_MIN_RSRQ -172  /* the unit is QdB */
+
+/*****************************************************************************
+* FUNCTION
+*   nras_custom_get_better_rat_detect_threshold_enable
+* DESCRIPTION
+*   The function is check whether will use customize RSRP value for IR to NR 
+* RETURNS
+*  kal_bool
+* GLOBALS AFFECTED
+*   None
+*****************************************************************************/
+kal_bool nras_custom_get_better_rat_detect_threshold_enable()
+{
+    return nras_custom_better_rat_detect_threshold_enable;
+}
+
+/*****************************************************************************
+* FUNCTION
+*   nras_custom_get_better_rat_detect_min_rsrp
+* DESCRIPTION
+*   The function can be set for IR to NR cell min-RSRP camping criteria
+* RETURNS
+*  kal_int16
+* GLOBALS AFFECTED
+*   None
+*****************************************************************************/
+kal_int16 nras_custom_get_better_rat_detect_min_rsrp()
+{
+    return (kal_int16)CUSTOM_BETTER_RAT_DETECT_MIN_RSRP;
+}
+
+/*****************************************************************************
+* FUNCTION
+*   nras_custom_get_better_rat_detect_min_rsrq
+* DESCRIPTION
+*   The function can be set for IR to NR cell min-RSRQ camping criteria
+* RETURNS
+*  kal_int16
+* GLOBALS AFFECTED
+*   None
+*****************************************************************************/
+kal_int16 nras_custom_get_better_rat_detect_min_rsrq()
+{
+    return (kal_int16)CUSTOM_BETTER_RAT_DETECT_MIN_RSRQ;
+}  
+/* Feature: Better RAT detection custom threshold END */
+
 /*******************************************************************************
  * Allowed to customize NRAS partial supported band frequency by plmn
  *
diff --git a/mcu/custom/protocol/common/ps/custom_nras_config.h b/mcu/custom/protocol/common/ps/custom_nras_config.h
old mode 100644
new mode 100755
index caa6edb..f054323
--- a/mcu/custom/protocol/common/ps/custom_nras_config.h
+++ b/mcu/custom/protocol/common/ps/custom_nras_config.h
@@ -63,6 +63,11 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -167,6 +172,9 @@
 extern kal_int16 nras_custom_get_bgsrch_ping_pong_min_rsrq();
 extern kal_bool nras_custom_get_irtonr_ping_pong_enh_enable();        
 extern kal_int16 nras_custom_get_irtonr_ping_pong_enh_min_rsrp();
+extern kal_bool nras_custom_get_better_rat_detect_threshold_enable();
+extern kal_int16 nras_custom_get_better_rat_detect_min_rsrp();
+extern kal_int16 nras_custom_get_better_rat_detect_min_rsrq();
 
 extern kal_uint32* nras_custom_4g5_redir_fail_timestamp_context_get(void);
 extern kal_uint16 nras_custom_4g5_redir_fail_monitor_window_get(void);
diff --git a/mcu/custom/protocol/common/ps/custom_nwsel_config.c b/mcu/custom/protocol/common/ps/custom_nwsel_config.c
old mode 100644
new mode 100755
index 5ad65ab..e47d3d0
--- a/mcu/custom/protocol/common/ps/custom_nwsel_config.c
+++ b/mcu/custom/protocol/common/ps/custom_nwsel_config.c
@@ -65,6 +65,11 @@
  * removed!
  * removed!
  * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -1918,6 +1923,7 @@
                                      "502152", /* Adding Hungary Digi operator 21603*/
                                      "21603F",
                                      "51566F", /* Adding Philippines Dito operator 51566F*/
+                                     "46015F", /*Adding CBN NW operator 46015F*/
                                      INVALID_CUSTOM_WL_PLMN};
 
 const kal_uint32 CUSTOM_PS_ONLY_PLMN_NUM = sizeof(CUSTOM_PS_ONLY_PLMN)/sizeof(char *);
diff --git a/mcu/custom/protocol/common/ps/custom_sdm_utility.c b/mcu/custom/protocol/common/ps/custom_sdm_utility.c
old mode 100644
new mode 100755
index 6e1f0b4..548c092
--- a/mcu/custom/protocol/common/ps/custom_sdm_utility.c
+++ b/mcu/custom/protocol/common/ps/custom_sdm_utility.c
@@ -84,9 +84,6 @@
     /* Telefonica Spain */
     {"214", "05", 1}, {"214", "07", 1},
 
-    /* VDF Spain */
-    {"214", "01", 1},
-
     /* VDF Portugal */
     {"268", "01", 1},
 
@@ -539,6 +536,9 @@
 
     /* VDF/CyTa Cyprus */
     {"280", "01", 0},
+
+    /* BH Mobile/Bosnia and Herzegovina*/
+    {"218", "90", 0},
 };
 
 static const sdm_customized_plmn_table_entry sdm_cust_sms_over_cs_when_roaming_tbl[] =
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.c b/mcu/custom/protocol/common/ps/custom_ssds.c
old mode 100644
new mode 100755
index 43d073a..666e2a1
--- a/mcu/custom/protocol/common/ps/custom_ssds.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds.c
@@ -225,6 +225,7 @@
 		case 296:/* CWW-US */
 		case 306: /* CUHK-Hongkong */
 		case 314: /* Telepost-Greenland */
+        case 315: /* Tele2-Kazakhstan */
         case 318: /* Vianova/Italy */
         case 320: /* Coriolis/France */
 		case 334:/* Tashicell-Bhutan */
@@ -237,6 +238,8 @@
 		case 349:/*MTS-Armenia*/
 		case 353:/*We4G-Israel*/
         case 354: /* Poste Mobile/Italy */
+        case 366: /* Appalachian-US */
+        case 385: /* BH Mobile */
             *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
 			is_changed = KAL_TRUE;
             break;
@@ -291,6 +294,13 @@
             *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_NOT_SUPPORT;
             is_changed = KAL_TRUE;
             break;
+        case 6: /* VDF */
+            if(0 == strcmp(params_info->mcc, "655"))  /* VDF-South Africa */
+            {
+                *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+                is_changed = KAL_TRUE;
+            }
+            break;	
         default:
             break;
     }
@@ -1105,6 +1115,23 @@
                         break;
                 }
             }
+            else if(0 == strcmp(params_info->mcc, "612")) /* orange-Ivory Coast */
+            {
+                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+                switch(params_info->atcmd_type)
+                {
+                    case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+                    case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+                        atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+                        break;
+                    case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+                    case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+                        atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+                        break;						
+                    default:
+                        break;
+                }
+            }			
             break;
         }
         case 5: /* TMOEU */
@@ -3050,6 +3077,7 @@
             }
             else if(0 == strcmp(params_info->mcc, "240"))  /* Telenor SE*/
             {
+                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
                 switch(params_info->atcmd_type)
                 {
                     case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
@@ -3456,6 +3484,9 @@
                         case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR: 
                             atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
                             break;
+                        case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+                            atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+                            break;
                         default:
                             break;
                     }
@@ -4081,10 +4112,12 @@
             {
                 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;
+				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;
             }
@@ -4315,6 +4348,23 @@
             }
             break;
         }
+        case 255: /* Cellular one US */
+        {
+            if(params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC)
+            {
+                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 257: /* Viaero/US */
         {
             atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
@@ -5088,6 +5138,20 @@
             }
             break;
         }
+        case 346: /* Laotel-Lao */
+        {
+            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 348:/*Ncell-Nepal*/
 		{
 			atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
@@ -5313,6 +5377,22 @@
             }
             break;
         }
+        case 385: /* BH Mobile */
+        {
+            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 386: /* ENetworks/Guyana */
         {
             atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
@@ -5331,7 +5411,30 @@
 				atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
 			}			
             break;
-        }		
+        }
+        case 396: /* Thumb cellular -US */
+        {
+            switch(params_info->atcmd_type)
+            {
+                case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+                case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+                    atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+                    break;
+                default:
+                    break;
+            }
+            break;
+        }
+        case 408: /* Bitel -Peru */
+        {
+			atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+            break;
+        }
+		case 411: /* Evolve - Broadband */
+        {
+			atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+            break;
+        }
         case 1002: /* Nokia IODT */
         {
             /* default config */
diff --git a/mcu/custom/protocol/common/ps/custom_xcap_config.c b/mcu/custom/protocol/common/ps/custom_xcap_config.c
old mode 100644
new mode 100755
index 9492e6f..970d5a8
--- a/mcu/custom/protocol/common/ps/custom_xcap_config.c
+++ b/mcu/custom/protocol/common/ps/custom_xcap_config.c
@@ -1303,6 +1303,8 @@
         {
             update_str(cfg->gba_info.gba_url, "bsf.ims.mnc001.mcc206.pub.3gppnetwork.org");
             update_str(cfg->gba_info.gba_type, "GBA_ME");
+            cfg->xcap_info.xcap_port = 8086;
+            cfg->gba_info.gba_port = 8086;
             break;
         }
         case 184: /* Vietel - Vietnam  */