ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
new file mode 100644
index 0000000..435642f
--- /dev/null
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
@@ -0,0 +1,5400 @@
+/******************************************************************************
+
+*(C) Copyright 2007 Marvell International Ltd.
+
+* All Rights Reserved
+
+******************************************************************************/
+/*--------------------------------------------------------------------------------------------------------------------
+ *  INTEL CONFIDENTIAL
+ *  Copyright 2006 Intel Corporation All Rights Reserved.
+ *  The source code contained or described herein and all documents related to the source code (?Material? are owned
+ *  by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or
+ *  its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of
+ *  Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and
+ *  treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted,
+ *  transmitted, distributed, or disclosed in any way without Intel?s prior express written permission.
+ *
+ *  No license under any patent, copyright, trade secret or other intellectual property right is granted to or
+ *  conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement,
+ *  estoppel or otherwise. Any license under such intellectual property rights must be express and approved by
+ *  Intel in writing.
+ *  -------------------------------------------------------------------------------------------------------------------
+ *
+ *  Filename: telcontroller.c
+ *
+ *  Authors:  Vincent Yeung
+ *
+ *  Description: Telephony Controller implementation
+ *
+ *  History:
+ *   May 19, 2006 - Creation of file
+ *
+ *  Notes:
+ *
+ ******************************************************************************/
+
+/******************************************************************************
+*   include files
+******************************************************************************/
+#include "ci_api.h"
+#include "ps_api.h"
+#include "telcontroller.h"
+#include "telatci.h"
+#include "telconfig.h"
+#include "telatparamdef.h"  //TEL_AT_CMDSTR_MAX_LEN
+#include "teldbg.h"
+#include "telcc.h"
+#include "telmm.h"
+#include "telps.h"
+#include "telpb.h"
+#include "telss.h"
+#include "teldev.h"
+#include "teldat.h"
+#include "telmsg.h"
+#include "msg_api.h"
+#include "telsim.h"
+#include "telaudio.h"
+#include "teldef.h"
+#ifdef WIFI_ATCMD
+#include "wifi_api.h"
+#endif
+#ifdef AT_PRODUCTION_CMNDS
+#include "telprod.h"
+#include "diag_al.h"
+#endif
+#ifdef AT_LABTOOL_CMNDS
+#include "telmisc.h"
+#endif
+#include "utlMalloc.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <termios.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/un.h>
+#include <string.h>
+#include "telutl.h"
+#include "utilities.h"
+#include <sys/prctl.h>
+#include "utlEventHandler.h"
+#include <cutils/properties.h>
+#include "telm2m.h"
+#if	 defined(ATCMD_1901_CI)	 || defined(ATCMD_1903_CI)
+#include "ursp.h"
+#endif
+
+/******************************************************************************
+*   Define
+******************************************************************************/
+#define TEL_ESP_AT_CMD_ATP TEL_AT_CMD_ATP_0
+
+/******************************************************************************
+*   Global Variable for Telephony Controller
+******************************************************************************/
+UINT32 PSRegOptionSaveFlag = TRUE;
+
+unsigned short gusXid = 10; //0 - 10 is reserved value
+struct termios savetio;
+extern BOOL ap_only;
+
+TelAtpCtrl gAtpCtrl[NUM_OF_TEL_ATP];
+
+
+utlAtParser_P aParser_p[ NUM_OF_TEL_ATP ];         /* AT parser */
+
+const char* const gAtpName[] =
+{
+	"ATP_0",
+	"ATP_SERIALATCMD"
+#ifdef AT_PRODUCTION_CMNDS
+	"ATP_PROD",
+#endif
+#ifndef PXA1826SPI_TELE
+	"ATP1_0",
+	"ATP_IMS_1",
+	"ATP_IMS_2",
+#endif
+};
+
+#define DEFINE_SIM1_NO_INDICATION_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, SIM1_ONLY, FALSE, ap_only}
+
+#define DEFINE_SIM2_NO_INDICATION_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, SIM2_ONLY, FALSE, ap_only}
+
+#define DEFINE_SHARED_NO_INDICATION_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, DUAL_SIM, FALSE, ap_only}
+
+#define DEFINE_MASTER_SIM_NO_INDICATION_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, MASTER_SIM,FALSE, ap_only}
+
+#define DEFINE_SIM1_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, SIM1_ONLY, TRUE, ap_only}
+
+#define DEFINE_SIM2_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, SIM2_ONLY, TRUE, ap_only}
+
+#define DEFINE_SHARED_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, DUAL_SIM, TRUE, ap_only}
+
+#define DEFINE_MASTER_SIM_CHANEL_DESC(atpId, path, ap_only) \
+	{atpId, path, MASTER_SIM, TRUE, ap_only}
+
+TelAtpDesc gTelAtpDescConfig[] = {
+	DEFINE_SIM1_NO_INDICATION_CHANEL_DESC(TEL_AT_CMD_ATP_0, BACKEND_NULL_DEVICE, FALSE),
+//	DEFINE_SIM1_CHANEL_DESC(TEL_SERIALATCMD_AT_CMD_ATP, BACKEND_SERIALATCMD_ATCMD_CHAN_DEVICE, TRUE),
+#ifdef AT_PRODUCTION_CMNDS
+	DEFINE_SHARED_NO_INDICATION_CHANEL_DESC(TEL_PROD_AT_CMD_ATP, PROD_SERIAL_PORT, TRUE),
+#endif
+/*pxa1826 no DSDS solution*/
+#ifdef BIONIC
+	DEFINE_SIM2_NO_INDICATION_CHANEL_DESC(TEL_AT_CMD_ATP_0_1, BACKEND_NULL_DEVICE, FALSE),
+#endif
+};
+
+static TelAtpDataEntry sTelAtpDataEntry = {
+	TEL_MSG_DATA_NONE,
+	0,
+	0,
+	0
+};
+
+char ATM_ID[ATM_MAX_ID_LENGTH] = "ASR";
+char ATM_MANUFACTURER_ID[ATM_MAX_ID_LENGTH] = "ASR";
+char ATM_MODEL_ID[ATM_MAX_ID_LENGTH] = "LINUX";
+
+extern UINT32 gServiceGroupRegistered;
+
+utlAtProxyCommand_P atProxyReq = NULL;
+utlAtProxyCommand_P atProxyInd = NULL;
+
+TelAtParserID gProxyChannelId = NUM_OF_TEL_ATP;
+TelAtParserID gOrigParserId = NUM_OF_TEL_ATP;
+
+UINT32 gCurrentProxyTrsXid; //the current XID of the command sent to proxy
+BOOL gCurrentPrxyFirstPhase = FALSE;
+
+TelMsgDataMode gCurrentSmsDataMode = TEL_MSG_DATA_NONE;
+BOOL ims_sms_data_invalid_report_error = FALSE;
+unsigned int gProxyTimeoutCounter=0;
+#define ATCMD_PROXY_TIMEOUT_COUNTER_MAX_VALUE 5 //the maximum value of the gProxyTimeoutCounter
+
+extern int gCurrentCgerepMode[NUM_OF_TEL_ATP];
+extern int gRequestCgerepMode[NUM_OF_TEL_ATP];
+
+char *gProxySmsSegment[8];
+char *gProxySmsSegment_1[8];
+
+UINT16 gProxySmsSegmentLen[8];
+UINT16 gProxySmsSegmentLen_1[8];
+
+extern BOOL gImsRegState;
+extern BOOL gImsRegState_1;
+
+extern AtciSmsFormatMode gSmsFormatMode[];
+extern AT_MSG_OPERATION gCurrOperation[];
+extern AT_MSG_OPERATION gCurrOperation_1[];
+
+extern CiMmSigExtendedQualityInfo gExtendedSignal;    
+extern CiMmSigExtendedQualityInfo gExtendedSignal_1;
+
+#ifdef AT_PRODUCTION_CMNDS
+static void start_at_cmd_srv(void);
+extern int get_bspflag_from_kernel_cmdline(void);
+extern int start_prod_at_cmd_srv(void);
+extern void loadPSRegOptionSetting(void);
+
+#endif
+
+#ifdef ATCMD_CONTINUOUS_TIMEOUT_RECOVERY
+int gTimeoutNum = 0;
+pthread_mutex_t gTimeoutLock = PTHREAD_MUTEX_INITIALIZER;
+#endif
+#ifdef AT_CONFIG_P701
+int gModemAtp = -1;
+#endif
+int gNumofAT = 0;
+
+pthread_mutex_t gProxyAccessLock = PTHREAD_MUTEX_INITIALIZER;
+AtciCharacterSet chset_type[NUM_OF_TEL_ATP];
+BOOL isGsmChset[NUM_OF_TEL_ATP];
+extern UINT32 gSendMsgReqHandle[];
+
+AtciCharacterSet chset_type_1[NUM_OF_TEL_ATP];
+BOOL isGsmChset_1[NUM_OF_TEL_ATP];
+extern UINT32 gSendMsgReqHandle_1[];
+
+#ifndef NO_AUDIO
+#ifdef ECALL_SUPPORT	
+//extern EallMsdMSDMessage_t gMsdCfg;
+#endif
+#endif
+
+/******************************************************************************
+*   Local Function Prototypes
+******************************************************************************/
+int getFd(TelAtParserID sAtpIndex);
+void ProcessAtChanThread(TelAtParserID sAtpIndex);
+void cinetThread();
+BOOL tcInitAtParser( TelAtParserID * sAtpIndex);
+BOOL tcOpenExtSerialPort(int *fd, char * serial_path, int flag );
+BOOL tcOpenDevice(int* fd, char * char_dev_path, int flag);
+BOOL tcOpenPsuedoMasterDevice(int *fd, char* char_dev_path);
+extern AtciSmsFormatMode getSmsFormatModeWithAtpIndex(UINT32 sAtpIndex);
+extern void initAtPara(void);
+
+utlReturnCode_T atParserShellReplyFunction(const char *string_p, void *arg_p);
+utlReturnCode_T atParserShellGetFunction(const utlAtParameterOp_T op,
+					 const char                      *command_name_p,
+					 const utlAtParameterValue_P2c parameter_values_p,
+					 const size_t num_parameters,
+					 const char                      *info_text_p,
+					 unsigned int                    *xid_p,
+					 void                            *arg_p);
+utlReturnCode_T atParserShellSetFunction(const utlAtParameterOp_T op,
+					 const char                      *command_name_p,
+					 const utlAtParameterValue_P2c parameter_values_p,
+					 const size_t num_parameters,
+					 const char                      *info_text_p,
+					 unsigned int                    *xid_p,
+					 void                            *arg_p);
+
+extern BOOL checkDataValidity(CHAR *pSmsData, INT32 smsDataLength, AtciCharacterSet *pchset_type);
+
+RETURNCODE_T  ciChannelDestSwitch(            const utlAtParameterOp_T op,
+				      const char                      *command_name_p,
+				      const utlAtParameterValue_P2c parameter_values_p,
+				      const size_t num_parameters,
+				      const char                      *info_text_p,
+				      unsigned int                    *xid_p,
+				      void                            *arg_p);
+
+unsigned int atParserGetAtcmdTimeoutValue(const char*  cmd_name_p, const utlAtAsyncOp_T op);
+int atParserAtcmdTimeoutError(unsigned int atHandle);
+#ifdef ATCMD_CONTINUOUS_TIMEOUT_RECOVERY
+void atParserAtcmdContinuousTimeout(void);
+#endif
+
+extern void PARSER_SET_AUTO_ANSWER_DELAY(void *arg_p, unsigned int delay_seconds);
+extern void PARSER_GET_AUTO_ANSWER_DELAY(void *arg_p, unsigned short *delay_seconds);
+
+extern utlReturnCode_T createStringToProxy(const char *command_name_p,const utlAtParameterOp_T op, const char *parameters_string_p,unsigned int *xid_p,void *arg_p);
+extern    void proxyEsc(void				*arg_p);
+extern    void clearSmsDataMode(void			  *arg_p);
+extern    void clearSmsoverNas(TelAtParserID	sAtpIndex);
+char *gProxySmsSegment[8];
+char *gProxySmsSegment_1[8];
+
+UINT16 gProxySmsSegmentLen[8];
+UINT16 gProxySmsSegmentLen_1[8];
+/*------------------------------------------------------------------------------*/
+static utlAtParameter_T A_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T D_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DIAL_STRING) };
+static utlAtParameter_T E_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T H_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T I_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T L_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T M_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T O_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T P_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T Q_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T T_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T V_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T X_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T Z_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T S0_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T ampC_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T ampD_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T ampF_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T ampS_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DECIMAL) };
+static utlAtParameter_T ampZ_params[] = { utlDEFINE_BASIC_AT_PARAMETER(utlAT_DATA_TYPE_DIAL_STRING) };
+static utlAtParameter_T eCHUPVT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusCTTY_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+                          utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusASTO_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DIAL_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusIPR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusICF_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusIFC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusIDSR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusEXAMPLE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCACM_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCAMM_params[] = { utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE,	    utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCCWE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCHLD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)    // for IMS only
+};
+
+static utlAtParameter_T plusCDU_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCMOD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCGREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCGATT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCGACT_params[] = {  utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCGDATA_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusZGDCONT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 #ifdef DEDICATED_FLAG_SUPPORT
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						#else
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						#endif
+						};
+
+static utlAtParameter_T starZGDCONT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						};
+
+static utlAtParameter_T plusZGDCONTEX_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+                                                utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+                                                utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+                                                utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusNETMASK_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starMTU_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusCGDCONT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+#if	 defined(ATCMD_1901_CI)	  || defined(ATCMD_1903_CI)						 
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+#endif						
+};
+
+static utlAtParameter_T plusCGQMIN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCGQREQ_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCGDSCONT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						  utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						  utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						  utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						  utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCGEQREQ_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCGEQMIN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/* Michal Bukai - AT+CGTFT support */
+static utlAtParameter_T plusCGTFT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						   utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						   utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						   utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCFUN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/*Michal Bukai - Add a generic comm. feature configuration option in
+   CI_DEV_PRIM_SET_FUNC_REQ*/
+static utlAtParameter_T starCFUN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusSysConfig_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCOPS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/*Modified by Michal Bukai - at support for AccTchMode parameter*/
+static utlAtParameter_T plusCPOL_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCSDH_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusCCFC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCCWA_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCOLP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T plusCOLR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+static utlAtParameter_T plusCNAP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+static utlAtParameter_T starREJCAUSE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCEDRXS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusCTZR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCCLK_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCUAD_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T plusCTZU_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCSSN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCUSD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+//static utlAtParameter_T plusCIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+
+static utlAtParameter_T plusCLIP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCDIP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T plusCLIR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCAOC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusVTS_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+static utlAtParameter_T plusVTD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+					     utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusCLCK_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCPWD_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCGMD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starCMGF_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+                                             utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCMGF_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCMSS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCMGS_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCMGC_params[] = { 	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+												utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+											};
+
+static utlAtParameter_T plusCMGR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCMGW_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCMGL_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T starCSCS_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCPIN_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusZSEC_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCPIN2_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T starSIMDETEC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCGSEND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCBST_params[] = {   utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusFCLASS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCSCS_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCPBS_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCPBR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCPBW_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     };
+
+//Added by Michal Bukai
+static utlAtParameter_T plusCPBF_params[] = { utlDEFINE_STRING_AT_PARAMETER(      utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCSVM_params[] = {
+						utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						};
+
+static utlAtParameter_T plusCSIM_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+//change by linda add path parameter
+static utlAtParameter_T plusCRSM_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+//Michal Bukai - ISIM/NFC support - START
+static utlAtParameter_T plusCRLA_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),	// session id
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),	// command
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),	// fieldid (optional only for STATUS command)
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	// p1
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	// p2
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	// p3
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	// data
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	// path
+};
+
+static utlAtParameter_T plusCardMode_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+static utlAtParameter_T plusCGLA_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusCCHO_params[] =
+    { utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusCCHC_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+//Michal Bukai - ISIM/NFC support - END
+
+static utlAtParameter_T plusMSTK_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusSPN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusCGSMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusLKSMSSTA_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T plusCVHU_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCRLP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCNMI_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCSCB_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL), //utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),};//utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCSMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCPMS_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), //for txt mode, no para required
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCNMA_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+static utlAtParameter_T plusCSMP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusCSCA_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusVECHO_params[] = { utlDEFINE_QSTRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusREPORTIP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED)};
+
+static utlAtParameter_T starRZGDCONT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+static utlAtParameter_T plusGETIP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+static utlAtParameter_T plusTGSINK_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusICSSink_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusATDB_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T starCIIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+#if 0
+/* Support to output engineering mode information */
+static utlAtParameter_T plusCGED_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+static utlAtParameter_T plusCCIREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+// support AT+CMMS
+static utlAtParameter_T plusCMMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+// support AT+VDUMP for controlling log level
+static utlAtParameter_T plusVDUMP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+// support AT+LOG for debuging use
+static utlAtParameter_T plusLOG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusAPLOG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusRDUP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+// support AT+VPDUS
+static utlAtParameter_T plusVPDUS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+// support AT+CMUT
+static utlAtParameter_T plusCMUT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+/* Michal Bukai - AT+CPUC support */
+static utlAtParameter_T plusCPUC_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+/* Michal Bukai - AT+CSTA support */
+static utlAtParameter_T plusCSTA_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+/* Michal Bukai - AT+CRC support */
+static utlAtParameter_T plusCRC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+/* Michal Bukai - AT+CR support */
+//static utlAtParameter_T plusCR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+/* Michal Bukai - AT+CMEE support */
+static utlAtParameter_T plusCMEE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+/* Michal Bukai - AT+CIND support: CIND will support the following (in that order) - "signal","service","message","call","roam"*/
+#if 0
+static utlAtParameter_T plusCIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+#endif
+
+/* Michal Bukai - AT+CMER support*/
+static utlAtParameter_T plusCMER_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/* AT+CMEC support*/
+static utlAtParameter_T plusCMEC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/* Michal Bukai - AT+CPLS support*/
+static utlAtParameter_T plusCPLS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+/* Michal Bukai - AT+CGCMOD support*/
+static utlAtParameter_T plusCGCMOD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+/* Michal Bukai - AT+DS support*/
+static utlAtParameter_T plusDS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusCNUM_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/*Michal Bukai - AT*CLCK support*/
+static utlAtParameter_T plusMEPCLCK_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+#ifdef CUSTZ
+
+static utlAtParameter_T plusZNCK_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusLOCKLEVEL_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusZSNT_params [] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZNLOCKBAND_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)	
+static utlAtParameter_T plusZNLOCKNRBAND_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) ,
+};
+#endif
+
+static utlAtParameter_T plusZSELM_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZSELI_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZBK_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZINKR_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZSYNCNITZ_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZDOGREF_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusZDHCPLEASE_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusGEFLAG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusZCFG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+};
+
+static utlAtParameter_T plusZROAM_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+
+static utlAtParameter_T plusZGDFLT_params[] = { 
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+ 	 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#endif
+
+/*Michal Bukai - AT*MEPCG support*/
+static utlAtParameter_T plusMEPCG_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+#if 0
+/*Michal Bukai - AT*ULCK support*/
+static utlAtParameter_T plusULCK_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+/*Michal Bukai - AT*UCPWD support*/
+static utlAtParameter_T plusUCPWD_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+/*Michal Bukai - AT*UASLM support*/
+static utlAtParameter_T plusUASLM_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					       utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE,   utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+
+/* Michal Bukai - AT*BAND support*/
+#if	 !defined(ATCMD_1901_CI) && 	    !defined(ATCMD_1903_CI)
+static utlAtParameter_T plusBAND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#else
+static utlAtParameter_T plusBAND_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),  
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),    
+};
+#endif
+/* Michal Bukai - AT*BANDIND support*/
+static utlAtParameter_T plusBANDIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+/* AT+WS46 support */
+static utlAtParameter_T plusWS46_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+/* Michal Bukai - AT*READ_CAL_STATUS support*/
+//static utlAtParameter_T plusCalStatus_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+/* Michal Bukai - AT*CNMA support*/
+static utlAtParameter_T plusNewMsgAck_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+static utlAtParameter_T plusPOWERIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T plusAPPOWERIND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+/*Michal Bukai - AT*AUTHReq - PAP_CHUP support (PDP Authentication)*/
+static utlAtParameter_T plusZAUTHReq_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusAUTHReq_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+static utlAtParameter_T starCELL_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+#endif	
+};
+
+/* Support to output engineering mode information */
+static utlAtParameter_T plusEEMOPT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusEEMGINFO_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	 utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusERGA_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+static utlAtParameter_T plusERTCA_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+static utlAtParameter_T plusLPNWUL_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+static utlAtParameter_T plusLPLOCVR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusLPOTDOAREQ_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+#ifdef AT_PRODUCTION_CMNDS
+
+static utlAtParameter_T starMRD_MIPS_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_ADF_params[] = { utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+
+static utlAtParameter_T starMRD_CDF_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_SN_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_IMEI_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starCALINFO_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_MEP_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),						 
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starLOCKNETLIST_params[] = { utlDEFINE_QSTRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T starINVERSESML_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T starLOCKLIST_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T starUnLockKEY_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#if defined(ATCMD_UNIFY_CI)	|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T OOSPP_params[] = {utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+static utlAtParameter_T starMRD_WIFIID_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_LANMAC_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					  utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_BTID_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMRD_VEND_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T starMRD_BAND_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T starPROD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T starSVC_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+						  utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starGPSTEST_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starTDTR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starGSMTR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starTGCTRL_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_HEXADECIMALL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starWBTR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starMaxPower_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+							utlDEFINE_DECIMAL_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+							utlDEFINE_DECIMAL_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T plusLTEPOWER_params[] = {
+							utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+							utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+							utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};	
+
+static utlAtParameter_T starLteTR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+							utlDEFINE_DECIMAL_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+							utlDEFINE_DECIMAL_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+							utlDEFINE_DECIMAL_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+#if defined(ATCMD_UNIFY_CI)	|| defined(ATCMD_1901_CI)  || defined(ATCMD_1903_CI)
+static utlAtParameter_T starCommTR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),					        
+					        utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starFdnCheck_params[] = { utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starMoreSms_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#endif
+
+#if defined(ATCMD_UNIFY_CI)
+
+static utlAtParameter_T SIMLOCK_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_QSTRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+static utlAtParameter_T SETLOCK_params[] = { utlDEFINE_QSTRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+static utlAtParameter_T MAXLCKTMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+static utlAtParameter_T TESTLOCK_params[] = { utlDEFINE_QSTRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+#endif
+
+
+
+static utlAtParameter_T starMRD_DUMP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+#ifdef MNV_SUPPORT
+static utlAtParameter_T starCPMRD_DUMP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+#endif
+
+#ifdef SECURE_MRD
+static utlAtParameter_T starMRD_AUTH_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+
+static utlAtParameter_T FUELGAIC_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+
+#endif
+
+static utlAtParameter_T starMODEMRESET_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+static utlAtParameter_T starSWITCHMODEM_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+#ifdef AT_LABTOOL_CMNDS
+static utlAtParameter_T plusMVWFTST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusMVWFIDRW_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusMVBTTST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusMVBTIDRW_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusMVFMTST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+#endif // AT_LABTOOL_CMNDS
+
+static utlAtParameter_T plusCKPD_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+static utlAtParameter_T starCGSN_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+static utlAtParameter_T dollarVTS_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T starHTCCTO_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+static utlAtParameter_T plusCMEMFULL_params[] = {
+		utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+static utlAtParameter_T starEHSDPA_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+	};
+/*loopback test mode*/
+static utlAtParameter_T LOOPTEST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE,      utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE,       utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T starFDY_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+#ifdef OPHONE
+/*Ophone monitor*/
+static utlAtParameter_T caretDCTS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T caretDEELS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T caretDEVEI_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T caretDNPR_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T caretDUSR_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+
+static utlAtParameter_T plusCIREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCEREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusCGEQOS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGCONTRDP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGSCONTRDP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGTFTRDP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGEQOSRDP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGEREP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCVMOD_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCEMODE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGPADDR_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGPIAF_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCGCLASS_params[] = { utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T plusCESQ_params[] = { utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+#if defined(ATCMD_UNIFY_CI)		|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T plusCSCON_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+#endif
+static utlAtParameter_T plusBGLTEPLMN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), };
+
+static utlAtParameter_T starDIALE_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+static utlAtParameter_T starCSCB_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE,  utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starCBMCS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starNASCHK_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T starUSBT_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starMOBILEDATA_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+static utlAtParameter_T starCGATT_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starGRIP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+#if defined(ATCMD_UNIFY_CI)
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+#else
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+#endif
+
+
+static utlAtParameter_T starCOMCFG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starCGDFLT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+						 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T starCGDFAUTH_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#ifdef OPERATOR_VERIZON
+
+static utlAtParameter_T starCGATTC_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+						utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+static utlAtParameter_T starVZWTESTAPP_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusVZWAPNE_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+#endif
+
+static utlAtParameter_T starLTEBAND_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+												 };
+
+static utlAtParameter_T starRFTEMP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starCSQ_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+
+#define TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), \
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+
+#define NINETY_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS \
+	TEN_OPTIONAL_DECIMAL_AT_PARAMETERS
+
+/*eMBMS function*/
+static utlAtParameter_T starMBMS_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	NINETY_OPTIONAL_DECIMAL_AT_PARAMETERS};
+
+static utlAtParameter_T starMBMSEv_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+/*eMBMS add end*/
+
+static utlAtParameter_T starLTECOEX_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starPSPG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCEN_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCNEM_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCISRVCC_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCEVDP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCVDP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCEUS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCAVIMS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCASIMS_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCMMIVT_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T plusCIREP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+#ifdef OPERATOR_ATT
+//
+// Other - AT&T specific
+//
+static utlAtParameter_T dollarCREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+static utlAtParameter_T dollarCCLK_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T starCSG_params[] ={
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starIGN_params[] ={
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	};
+
+static utlAtParameter_T starFRATLIST_params[] ={
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	};
+
+#endif
+
+static utlAtParameter_T starPWRPLMN_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T starAPCFG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T starCISCC_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+					     utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+static utlAtParameter_T starRANDFILL_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_WRITE_ONLY, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starPrxySet_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+	};
+
+
+
+static utlAtParameter_T starPrxyRsp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+
+	};
+
+
+static utlAtParameter_T starCHDSTST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+
+static utlAtParameter_T plusCsas_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	};
+
+static utlAtParameter_T plusCres_params[] = {
+		utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+		};
+static utlAtParameter_T starPSDC_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	};
+
+
+static utlAtParameter_T starTelMode_params[] = {
+		utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+		};
+
+static utlAtParameter_T starCBRAT_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starIMLCONFIG_params[]={
+		utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+		utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+
+
+  /* ADD NEW COMMON PRIMITIVES DEFINITIONS HERE */
+static utlAtParameter_T starPCO_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCSDF_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) };
+
+
+static utlAtParameter_T starCGDCONTL_params[] = { /* APPS Loopback*/
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),	/*CID*/
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	/*IP*/
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	/*mult*/
+};
+
+static utlAtParameter_T starSPIND_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCLAN_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+static utlAtParameter_T starCELLINFO_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+
+static utlAtParameter_T plusCPNER_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+static utlAtParameter_T plusCCUG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starIMSSRV_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*imsSrvType*/
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*imsSrvStatus*/
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*srvFailCause*/
+};
+
+
+/* STK / USAT related extdened begin */
+static utlAtParameter_T starSTKPROF_params[] =			/* AT*CATPROF */
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starCATEN_params[] = 			/* AT*CATEN */
+	{  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starRCATR_params[] = {			/* AT*RCATR */
+	utlDEFINE_QSTRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starCATTR_params[] =			/* AT*CATTR*/
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	  utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starCATENV_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	  utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starRCATE_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+/* STK / USAT related extdened end */
+#ifndef NO_AUDIO
+
+static utlAtParameter_T starAUDIOMODE_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starAUDIODEVICE_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*srvFailCause*/
+};
+
+static utlAtParameter_T starAUDIOVOL_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*srvFailCause*/
+};
+
+static utlAtParameter_T starAUDIOMUTE_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  /*srvFailCause*/
+};
+
+static utlAtParameter_T starAUDREC_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starAUDPLAY_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starAUDGAIN_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+#ifdef ECALL_SUPPORT		
+static utlAtParameter_T plusCECALLINSIDE_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T plusCECALL_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starECALLDATA_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starECALLVOICE_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starECALLCFG_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starECALLONLY_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starECALLREG_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starIMSECALLREG_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+    ,
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+#endif
+};
+
+static utlAtParameter_T starECALLMSD_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starECALLMSDCFG_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),    
+};
+
+static utlAtParameter_T starECALLMEDIAMSD_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starECALLOVERIMS_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starECALLSMSNUMCFG_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T starECALLSMS_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T starECALLSWITCHMODE_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T starECALLTMR_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,  
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) ,  
+};
+
+static utlAtParameter_T starECALLMUTESPK_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#endif
+#endif
+
+static utlAtParameter_T plusCACL_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) ,  /*simACLEnable*/
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) ,  /*psACLEnable*/
+};
+
+static utlAtParameter_T opercfg_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+
+
+static utlAtParameter_T starUdconf_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T starUCGCLASS_params[] =
+    { utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starCIWLANCID_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+#ifdef BT_SAP
+// params for BT SAP
+static utlAtParameter_T starBTSCNCT_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starBTSTAPDU_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starBTSCTRL_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starBTSTP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+#endif
+
+static utlAtParameter_T starPARK_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T startCheckEmer_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starTEMPTEST_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+
+static utlAtParameter_T plusACONFIG_params[] = {
+	utlDEFINE_QSTRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusIMSFUNC_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusSTRESSTEST_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL) ,		
+};
+
+static utlAtParameter_T plusSULOG_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+};
+
+static utlAtParameter_T plusMEDCR_params[] = {		
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) ,
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+#ifdef GPS_SUPPORT
+static utlAtParameter_T gpsInit_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T gpsSleep_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T agnssGet_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T agnssCfg_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), //server
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), //port
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), //username
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), //password
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), //day
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), //force
+};
+
+static utlAtParameter_T gpsSet_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#endif
+
+static utlAtParameter_T plusCMTLRA_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+};
+
+static utlAtParameter_T starIND_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#ifdef CMCC_IOT
+
+static utlAtParameter_T miplcreate_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+  
+static utlAtParameter_T mipldelete_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+  
+static utlAtParameter_T mipladdobj_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+
+static utlAtParameter_T mipldelobj_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+
+  };
+
+  
+static utlAtParameter_T miplopen_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+
+static utlAtParameter_T miplupdate_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+
+static utlAtParameter_T miplclose_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+
+static utlAtParameter_T mipldiscoverresp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+  
+static utlAtParameter_T miplreadrsp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+  };
+
+static utlAtParameter_T miplwritersp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+  
+static utlAtParameter_T miplexecutersp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+static utlAtParameter_T miplparameterrsp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+static utlAtParameter_T miplobserversp_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+  };
+
+static utlAtParameter_T miplnotify_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+  };
+#endif
+
+static utlAtParameter_T plusRSAPStat_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusRSAPSimSelect_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+
+static utlAtParameter_T plusAUTOAPN_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+        utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusVLAN_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+        utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusZVLAN_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusZVLANID_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusRSAPRsp_params[] =
+    { utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#if !defined(CI_RELEASE_FLAG) && (defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI))
+static utlAtParameter_T plusCWRITESIMEXT_params[] =
+    { utlDEFINE_HEXADECIMALL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+#endif
+
+static utlAtParameter_T plusSIMLOCKFUSE_params[] = { utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starSIMPOLL_params[] = { 
+		utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+		utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+		utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+		utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T plusCMRSS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+static utlAtParameter_T plusCMGSS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusciCSMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusCMGMS_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plusANTTUNER_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starWSTAT_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1903_CI) || (defined(ATCMD_1901_CI) && !defined(CI_RELEASE_FLAG))
+static utlAtParameter_T plusSELECTVSIM_params[]={
+    utlDEFINE_DECIMAL_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+#endif
+
+static utlAtParameter_T starAVSIM_params[]={
+    utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T plusDDRFREQ_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+
+#ifdef LPA_SUPPORT
+static utlAtParameter_T ctRspStrt_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T ctRspGetInfo_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+
+static utlAtParameter_T ctRspProfAct_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T ctRspNfyLeab_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+#endif
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T plusDELFBPLMN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T plusRESEDPARA_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+};
+
+static utlAtParameter_T plusCOMFEATURE_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),    
+	utlDEFINE_QSTRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#endif
+
+static utlAtParameter_T	starSECCAP_params[]={
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_HEXADECIMALL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_HEXADECIMALL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+
+
+static utlAtParameter_T plusL1DEBUG_params[] = { utlDEFINE_STRING_AT_PARAMETER( 	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),};
+
+static utlAtParameter_T	starZIPPASS_params[]={
+	utlDEFINE_HEXADECIMALL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)};
+
+#if  defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI) || defined(ATCMD_UNIFY_CI)
+static utlAtParameter_T	starDspInfo_params[]={
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
+#endif
+
+
+#if defined(ATCMD_1802S_CI) || defined(ATCMD_UNIFY_CI)	|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T starBandScan_params[] = {
+        utlDEFINE_STRING_AT_PARAMETER(	utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+        utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+};
+#endif
+
+static utlAtParameter_T starREJECTCAUSE_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+#if defined(ATCMD_1901_CI)   || defined(ATCMD_1903_CI) 
+#ifdef ENABLE_WIFI_SCAN
+static utlAtParameter_T starWifiCtrl_params[] = {
+       utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+       utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+       utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+       utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+       utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)
+       };
+#endif
+
+static utlAtParameter_T plusCRUEPOLICY_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T plusCSUEPOLICY_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)  
+};
+
+static utlAtParameter_T plusC5GREG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), };
+
+static utlAtParameter_T plusC5GQOS_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)    
+};
+
+static utlAtParameter_T starUTTest_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL), 
+};
+
+static utlAtParameter_T plusC5GNSSAI_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusC5GPNSSAI_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusC5GNSSAIRDP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starAPPSTART_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),	
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),				
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),				
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),				
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),				
+};
+
+static utlAtParameter_T starSETUEOSID_params[] = { 
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),		
+};
+
+static utlAtParameter_T plusC5GCAPA_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+};
+
+static utlAtParameter_T plusCWUS_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+};
+
+static utlAtParameter_T plusCLADN_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+};
+
+static utlAtParameter_T plusCMICO_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED), 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+};
+
+static utlAtParameter_T starOverheat_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starVoltageFreq_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T plus5GURSPQRY_params[] = {
+    utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(	   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#endif
+
+#if defined(ATCMD_UNIFY_CI)
+static utlAtParameter_T plusCFGRPMSWITCH_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED)
+};
+
+static utlAtParameter_T plusCFGRPMPARA_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),  
+};
+
+static utlAtParameter_T plusCFGRPMCLR_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+#endif
+
+static utlAtParameter_T plusBTMAC_params[] = { 
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#ifdef WIFI_ATCMD
+static utlAtParameter_T plusWIFI_params[] = { 
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+#endif
+
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T plusCDNID_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starCAG_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T plusC5GUSMS_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starLOCALURSP_params[] = {
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+static utlAtParameter_T starTSNCTRL_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#ifdef NR_POSITION_SUPPORT
+static utlAtParameter_T starPOSFUN_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+	utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),   
+};
+#endif
+
+#endif
+
+static utlAtParameter_T starSELECTSIMSLOT_params[] = {
+    utlDEFINE_DECIMAL_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_STRING_AT_PARAMETER(utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1802S_CI)|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T starBLACKCELL_params[] = { 
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+	utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),	
+	utlDEFINE_STRING_AT_PARAMETER(	  utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),		
+};
+	
+	
+static utlAtParameter_T starCSCO_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+
+
+#endif
+
+static utlAtParameter_T starEEH_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+static utlAtParameter_T starDEVTEST_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),			
+};
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1903_CI) || (defined(ATCMD_1901_CI) && !defined(CI_RELEASE_FLAG))
+static utlAtParameter_T plusRDNURI_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER( utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+#endif
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T starReg_params[] = { utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+					        utlDEFINE_STRING_AT_PARAMETER(     utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
+#endif
+
+static utlAtParameter_T starcgdataon_params[] = { 
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+};
+
+
+#ifdef CUSTQ
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+static utlAtParameter_T plusqnwprefcfg_params[] = {
+	utlDEFINE_STRING_AT_PARAMETER	(   utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),
+    utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),
+};
+#endif
+#endif
+
+
+static utlAtCommand_T shell_commands[] = {
+	utlDEFINE_BASIC_AT_COMMAND("E",			   E_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("I",			   I_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("L",			   L_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("M",			   M_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("O",			   O_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("P",			   P_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("Q",			   Q_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("T",			   T_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("V",			   V_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("X",			   X_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("Z",			   Z_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("&C",		   ampC_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("&D",		   ampD_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("&F",		   ampF_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("&S",		   ampS_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("&Z",		   ampZ_params,		atParserShellSetFunction),
+	utlDEFINE_BASIC_AT_COMMAND("S0",		   S0_params,		atParserShellSetFunction),
+
+
+	//
+	// General
+	//
+	// Built-in ACTION COMMAND
+	utlDEFINE_EXACTION_AT_COMMAND("+CGMI",		   NULL,		NULL,																																														     atParserShellGetFunction),
+	utlDEFINE_EXACTION_AT_COMMAND("+CGMM",		   NULL,		NULL,																																														     atParserShellGetFunction),
+	utlDEFINE_EXACTION_AT_COMMAND("+CGMR",		   NULL,		NULL,																																														     ciZVN),
+	utlDEFINE_EXACTION_AT_COMMAND("+CGSN",		   NULL,		NULL,																																														     ciCGSN),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CSCS",		   plusCSCS_params,	ciCSCS, ciCSCS, ciCSCS),   //27.007 rls14 5.5
+	utlDEFINE_EXACTION_AT_COMMAND("+CIMI",		   NULL,		NULL,																																														     ciGetImsi),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+ASTO",		   plusASTO_params,	"+ASTO: (0-" utlStringize(utlAT_MAX_STORED_DIAL_STRINGS) "),(" utlStringize(utlAT_MAX_STORED_DIAL_STRING_LENGTH) ")",																																	     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+GMI",		   NULL,		NULL,																																															     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+GMM",		   NULL,		NULL,																																															     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXACTION_AT_COMMAND("+GMR",		   NULL,		NULL,																																															     ciZVN),
+	utlDEFINE_EXACTION_AT_COMMAND("+GSN",		   NULL,		NULL,																																															     ciCGSN),
+	utlDEFINE_EXTENDED_AT_COMMAND("+GOI",		   NULL,		"+GOI",																																															     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+GCAP",		   NULL,		"+GCAP",																																														     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+GCI",		   NULL,		"+GCI",																																															     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+IPR",		   plusIPR_params,	"+IPR: (0,1200,9600),(0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,7200,9600,14400,19200,28800,38400,57600,76800,115200,230400)",																														     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ICF",		   plusICF_params,	"+ICF: (0-6),(0-3)",																																													     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+IFC",		   plusIFC_params,	"+IFC: (0-3),(0-2)",																																													     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXTENDED_AT_COMMAND("+IDSR",		   plusIDSR_params,	"+IDSR: (0-2)",																																														     atParserShellGetFunction,	    atParserShellSetFunction),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+EXAMPLE",	   plusEXAMPLE_params,	"+EXAMPLE: (0-9)",																																													     atParserShellGetFunction,	    atParserShellSetFunction),
+	utlDEFINE_EXACTION_AT_COMMAND("^HVER",	NULL, "^HVER", ciGetHVER),
+
+	/*For "AT" command  */
+	utlDEFINE_BASIC_AT_COMMAND(" ",			   NULL,		ciAT),
+
+	//
+	// Call Control
+	//
+	utlDEFINE_BASIC_AT_COMMAND("A",			   A_params,		ciAnswerCall),
+	utlDEFINE_BASIC_AT_COMMAND("D",			   D_params,		ciMakeCall),
+	utlDEFINE_BASIC_AT_COMMAND("H",			   H_params,		ciReleaseCall),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MVSYNAUD", NULL,		    NULL,                                                                                                                                                                                                        NULL,                  ciSyncAudio),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CDU",		   plusCDU_params,	"+CDU: \"sip\", \"tel\", \"urn\"", ciMakeCallU, ciMakeCallU),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMOD",		   plusCMOD_params,	ciCallModeReq,																																														     ciCallModeReq,		    ciCallModeReq),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CBST",	   plusCBST_params,	ciSelectBST,																																														     ciSelectBST,		    ciSelectBST),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CVHU",		   plusCVHU_params,	"+CVHU: (0-2)",																																														     ciCVHU,			    ciCVHU),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CRLP",	   plusCRLP_params,	ciSelRLP,																																														     ciSelRLP,			    ciSelRLP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMUT",	   plusCMUT_params,	ciMute,																																															     ciMute,			    ciMute),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ECHUPVT",	   eCHUPVT_params, "+ECHUPVT: (0-127)", ciHangupVT,ciHangupVT),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CTTY", plusCTTY_params, ciConfTTY, ciConfTTY, ciConfTTY),
+
+
+	//
+	// Network Service Related
+	//
+	utlDEFINE_EXTENDED_AT_COMMAND("+CREG",		   plusCREG_params,	"+CREG: (0-3)",																																														     ciRegStatus,		    ciRegStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CIND",		   NULL,	"+CIND: (\"signal\",(0-5))",   																																											ciIndStatus,		    ciIndStatus),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+COPS",	   plusCOPS_params,	ciOperSel,																																														     ciOperSel,			    ciOperSel),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPOL",		   plusCPOL_params,	"+CPOL: (1-254),(0-2),<oper string>,<GSM_AcT>,<GSM_Compact_AcT>,<UTRAN_AcT>",																																											     ciPrefOper,		    ciPrefOper),
+	utlDEFINE_EXACTION_AT_COMMAND("+COPN",		   NULL,		NULL,																																														     ciCOPN),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CLCK",		   plusCLCK_params,	"+CLCK: (\"CS\", \"PS\", \"PF\", \"SC\", \"AO\", \"OI\", \"OX\", \"AI\", \"IR\", \"NT\", \"NM\", \"NS\", \"NA\", \"AB\", \"AG\", \"AC\", \"FD\", \"PN\", \"PU\", \"PP\", \"PC\" )",																									     ciCLCK,			    ciCLCK),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPWD",	   plusCPWD_params,	ciPassword,																																														     ciPassword,			    ciPassword),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CLIP",		   plusCLIP_params,	"+CLIP: (0-1)",																																														     ciCLIP,			    ciCLIP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CLIR",		   plusCLIR_params,	"+CLIR: (0-2)",																																														     ciCallIDRes,		    ciCallIDRes),
+	utlDEFINE_EXTENDED_AT_COMMAND("+COLP",		   plusCOLP_params,	"+COLP: (0-1)",																																														     ciCOLP,			    ciCOLP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+COLR",		   plusCOLR_params,	"+COLR? ",																																														     ciCOLR,			    ciCOLR),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CNAP",		   plusCNAP_params,	"+CNAP: (0-1)",																																														     ciCNAP,			    ciCNAP),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CCFC",	   plusCCFC_params,	ciCallForward,																																														     ciCallForward,		    ciCallForward),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCWA",		   plusCCWA_params,	"+CCWA: (0-1)",																																												     ciCallWaiting,		    ciCallWaiting),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CHLD",		   plusCHLD_params,	"+CHLD:(0, 1, 1x, 2, 2x, 3, 4)[,<ect_number>]",																																											     ciHoldCall,		    ciHoldCall),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CUSD",		   plusCUSD_params,	"+CUSD: (0-2)",																																														     ciCUSD,			    ciCUSD),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CAOC",		   plusCAOC_params,	"+CAOC: (0-2)",																																														     ciAdviceOfCharge,		    ciAdviceOfCharge),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VTS",		   plusVTS_params,	"+VTS: <DTMF>, (300-600)",																																												     ciSendDTMF,		    ciSendDTMF),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VTD",          plusVTD_params,  "+VTD: (0-65535), (0-65535)",	ciVTD, ciVTD),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSSN",		   plusCSSN_params,	"+CSSN: (0-1), (0-1)",																																													     ciCSSN,			    ciCSSN),
+	utlDEFINE_EXACTION_AT_COMMAND("+CLCC",		   NULL,		NULL,		ciCallList),
+    utlDEFINE_EXTENDED_EXACTION_VSYNTAX_AT_COMMAND("+CEER", NULL, ciErrorReport, ciErrorReport, ciErrorReport),
+	utlDEFINE_EXACTION_AT_COMMAND("+PEER",		   NULL,		"+PEER:",																																														     ciPdpErrorReport),
+	utlDEFINE_EXACTION_AT_COMMAND("+CSQ",		   NULL,		"+CSQ: (0-31,99),(0-7,99)",																																													     ciSignalQuality),
+	utlDEFINE_EXTENDED_AT_COMMAND("*REJCAUSE",		   starREJCAUSE_params, "*REJCAUSE: (0-2)", 																																									cistarREJCAUSE,			cistarREJCAUSE),
+#if defined(ATCMD_1901_CI)	 || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("+CEDRXS",  plusCEDRXS_params, "+CEDRXS: (0-3),(1-9),<eDrx>", ciCEDRXS, ciCEDRXS),					//27.007 rls14 7.40
+#else
+	utlDEFINE_EXTENDED_AT_COMMAND("+CEDRXS",  plusCEDRXS_params, "+CEDRXS: (0-3),(1-5),<eDrx>", ciCEDRXS, ciCEDRXS),					//27.007 rls14 7.40
+#endif
+	utlDEFINE_EXACTION_AT_COMMAND("+CEDRXRDP",  NULL,   "+CEDRXRDP", ciCEDRXRDP), 											//27.007 rls14 7.41
+
+	//
+	// Mobile Control and Status
+	//
+	utlDEFINE_EXACTION_AT_COMMAND("+CPAS",		   NULL,		"+CPAS: (0,1,2,3,4,5,6)",																																													     ciDevStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CFUN",			plusCFUN_params,    "+CFUN: (0,1,3,4,5,6),(0-1)", ciFuncSet, ciFuncSet),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CFUN",		   starCFUN_params,	"*CFUN: (0,1,4,5,6,9),(0-1),(0,1),(0-63)",																																										     ciFuncCpConfig,		    ciFuncCpConfig),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPIN",		   plusCPIN_params,	"+CPIN: ",																																														     ciEnterPin,		    ciEnterPin),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZSEC",		   plusZSEC_params,	"+ZSEC: ",																																														     ciZSEC,		    ciZSEC),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPIN2",		   plusCPIN2_params,	"+CPIN2: ",																																														     ciEnterPin2,		    ciEnterPin2),
+	utlDEFINE_EXTENDED_AT_COMMAND("+EPIN",		   NULL,		"+EPIN: (0-3),(0-3),(0-10),(0-10)",																																											     ciGetPinRetryTimes,	    ciGetPinRetryTimes),
+	utlDEFINE_EXTENDED_AT_COMMAND("*SIMDETEC",		   starSIMDETEC_params, "*SIMDETEC: (1,2)",																																															 ciDetectSIM,			ciDetectSIM),
+	utlDEFINE_EXTENDED_AT_COMMAND("^SPN", plusSPN_params, "^SPN: (list of supported < spn_type >)",ciGetSpn, ciGetSpn),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTZR",		   plusCTZR_params,	"+CTZR: (0-2)",																																														     ciCTZR,			    ciCTZR),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTZU",		   plusCTZU_params,	"+CTZU:",																																														     ciCTZU,			    ciCTZU),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CTZR",		   plusCTZR_params, "*CTZR:",																																															 cistarCTZR,				cistarCTZR),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCLK",		   plusCCLK_params, "",																																															 ciCCLK,				ciCCLK),
+	utlDEFINE_EXACTION_AT_COMMAND("*PINCNT", 	   NULL, 			"", ciReadPINCNT),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CUAD", plusCUAD_params, "+CUAD: (0,1)", ciCUAD, ciCUAD),												//27.007 rls14 8.49
+
+	// PB
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPBS",	   plusCPBS_params,	ciSelectPBStorage,																																													     ciSelectPBStorage,		    ciSelectPBStorage),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPBR",	   plusCPBR_params,	ciReadPB,																																														     ciReadPB,			    ciReadPB),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPBW",	   plusCPBW_params,	ciWritePB,																																														     ciWritePB,			    ciWritePB),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CPBR",	   plusCPBR_params,	ciReadPBExt,																																														     ciReadPBExt,			    ciReadPBExt),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CPBS",	   plusCPBS_params,	ciStarSelectPBStorage,																																													     ciStarSelectPBStorage,		    ciStarSelectPBStorage),
+
+    /*utlDEFINE_EXACTION_AT_COMMAND("+CNUM",		   NULL,		"+CNUM: ",																																														     ciGetSubscriber),*/
+	//Added by Michal Bukai
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPBF",	   plusCPBF_params,	ciFindPBEntries,																																													     ciFindPBEntries,		    ciFindPBEntries),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSVM", plusCSVM_params, "+CSVM: <0-1>[,<number>[,<129,145,161,177,193,241>]]", ciCSVM, ciCSVM),
+
+	// SIM
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CSIM",	   plusCSIM_params,	ciGenericAccessSim,																																													     ciGenericAccessSim,	    ciGenericAccessSim),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CRSM",	   plusCRSM_params,	ciRestrictedAccessSIM,																																													     ciRestrictedAccessSIM,	    ciRestrictedAccessSIM),
+//Michal Bukai - ISIM/NFC support - START
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGLA", plusCGLA_params, "+CGLA: <sessionid>,<lengh>,<cmd>", ciCGLA, ciCGLA),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CRLA", plusCRLA_params,
+				      "+CRLA: <sessionid>,<cmd>[,<fieldid>[,<p1>,<p2>,<p3>[,<data>]]]", ciCRLA, ciCRLA),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCHO", plusCCHO_params, "+CCHO: <dfname>", ciCCHO, ciCCHO),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCHC", plusCCHC_params, "+CCHC: <sessionid>", ciCCHC, ciCCHC),
+//Michal Bukai - ISIM/NFC support - END
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MSTK",	   plusMSTK_params,	ciSTK,																																															     ciSTK,			    ciSTK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*EUICC", NULL,           "*EUICC:",	ciEUICC,																																															 ciEUICC),
+
+	// Call Meter
+	utlDEFINE_EXTENDED_AT_COMMAND("+CACM",		   plusCACM_params,	"+CACM:(0 - FFFFFF)",																																													     ciAccumReq,		    ciAccumReq),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CAMM",		   plusCAMM_params,	"+CAMM:(000000 - FFFFFF)",																																												     ciAccumMaxReq,		    ciAccumMaxReq),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCWE",		   plusCCWE_params, "+CCWE:(0,1)",																																																 ciCCWE,				ciCCWE),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ADMINDATA",  NULL, "*ADMINDATA?", ciADMINDATA, ciADMINDATA),
+
+	//
+	// Packet Domain
+	//
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGREG",		   plusCGREG_params,	"+CGREG: (0-3)",																																													     ciPSRegStatus,		    ciPSRegStatus),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGATT", plusCGATT_params, ciPSAttach, ciPSAttach, ciPSAttach),
+    utlDEFINE_EXTENDED_AT_COMMAND("+ZGACT",		   plusCGACT_params,	"+ZGACT: (0,1)",																																													     ciZPDPActivate,		    ciZPDPActivate),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGACT",		   plusCGACT_params,	"+CGACT: (0,1)",																																													     ciPDPActivate,		    ciPDPActivate),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGDATA",	   plusCGDATA_params,	"+CGDATA: (\"\"), ( 1-" utlStringize(CI_PS_MAX_PDP_CTX_NUM) ")",																																							     NULL,			    ciEnterData),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZGDCONT", plusZGDCONT_params,ciSetZContext, ciSetZContext, ciSetZContext),
+        utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*ZGDCONT", starZGDCONT_params, ciSetStarZContext, ciSetStarZContext, ciSetStarZContext),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZGDCONTEX", plusZGDCONTEX_params,ciSetZConfEx, ciSetZConfEx, ciSetZConfEx),
+        utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*NETMASK", plusNETMASK_params,ciSetNetmask, ciSetNetmask, ciSetNetmask),
+        utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*MTU", starMTU_params,ciMTUConfig, ciMTUConfig, ciMTUConfig),
+
+
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGDCONT", plusCGDCONT_params,ciSetContext, ciSetContext, ciSetContext),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGDSCONT", plusCGDSCONT_params, ciSetSContext,																																														     ciSetSContext,		    ciSetSContext),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGQMIN",   plusCGQMIN_params,	ciSetMinQOS,																																														     ciSetMinQOS,		    ciSetMinQOS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGQREQ",   plusCGQREQ_params,	ciSetReqQOS,																																														     ciSetReqQOS,		    ciSetReqQOS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGEQREQ",  plusCGEQREQ_params,	ciSet3GQOS,																																														     ciSet3GQOS,		    ciSet3GQOS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGEQMIN",  plusCGEQMIN_params,	ciSet3GminQOS,																																														     ciSet3GminQOS,		    ciSet3GminQOS),
+	utlDEFINE_EXTENDED_AT_COMMAND("*REPORTIP",		   plusREPORTIP_params,	NULL,																																															     ciReportIP,		    ciReportIP),
+	utlDEFINE_EXTENDED_AT_COMMAND("*RZGDCONT",        starRZGDCONT_params,	NULL,																																															     ciReportZgdcont,		    ciReportZgdcont),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+GETIP",		   plusGETIP_params,	NULL,																																															     ciReturnIp,		    ciReturnIp),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*TGSINK",   plusTGSINK_params,	ciGpTGSINK,																																														     ciGpTGSINK,		    ciGpTGSINK),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*TGSINK",   plusTGSINK_params,	ciGpTGSINK,																																														     ciGpTGSINK,		    ciGpTGSINK),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGSEND",	   plusCGSEND_params,	"+CGSEND: (0-20000)",																																													     ciCGSend,			    ciCGSend),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*ICSSINK",  plusICSSink_params,	ciCsDataSink,																																														     ciCsDataSink,		    ciCsDataSink),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZGPCOAUTH", plusZAUTHReq_params,ciZAUTHReq, ciZAUTHReq, ciZAUTHReq),
+	utlDEFINE_EXTENDED_AT_COMMAND("*AUTHReq", plusAUTHReq_params,"*AUTHReq: <cid>,<type>(0-None;1-PAP;2-CHAP),<UserName>,<Password>", ciAUTHReq, ciAUTHReq),//Michal Bukai - PAP_CHAP support (PDP Authentication)
+	// Commands from TIA IS 101
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+FCLASS",   plusFCLASS_params,	ciFaxClass,																																														     ciFaxClass,		    ciFaxClass),
+
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("+C5GREG",plusC5GREG_params, "+C5GREG:(0-3)", ciC5GREG, ciC5GREG),                                                    //rls16 10.1.47
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+C5GQOS",plusC5GQOS_params, ciC5GQOS, ciC5GQOS, ciC5GQOS),                                                    //rls16 10.1.49	
+	utlDEFINE_EXTENDED_AT_COMMAND("+CRUEPOLICY",plusCRUEPOLICY_params, "+CRUEPOLICY", ciCRUEPOLICY, ciCRUEPOLICY),                                                    //rls16 10.1.51
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSUEPOLICY",plusCSUEPOLICY_params, "+CSUEPOLICY", ciCSUEPOLICY, ciCSUEPOLICY),                                                    //rls16 10.1.52
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMICO",plusCMICO_params, "+CMICO:(0-2),(0,1)", ciCMICO, ciCMICO),                                                    //rls16 10.1.54		
+	utlDEFINE_EXTENDED_AT_COMMAND("+CLADN",plusCLADN_params, "+CLADN:(0,1)", ciCLADN, ciCLADN),                                                    //rls16 10.1.61	
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+C5GNSSAI",	plusC5GNSSAI_params, ciDefaultNssai, ciDefaultNssai, ciDefaultNssai),                                                    //rls16 10.1.62
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+C5GNSSAIRDP",  plusC5GNSSAIRDP_params, ciGetNssai, ciGetNssai, ciGetNssai),                                                    //rls16 10.1.63
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+C5GPNSSAI",  plusC5GPNSSAI_params, ciPreferredNssai, ciPreferredNssai, ciPreferredNssai),                                                    //rls16 10.1.64
+	
+	utlDEFINE_EXTENDED_AT_COMMAND("*APPSTART",		   starAPPSTART_params,	"*APPSTART", ciAPPSTART, ciAPPSTART),	
+	utlDEFINE_EXTENDED_AT_COMMAND("*SETUEOSID",		   starSETUEOSID_params, "*SETUEOSID", ciSETUEOSID, ciSETUEOSID),
+ 	utlDEFINE_EXTENDED_AT_COMMAND("*UTTEST",  starUTTest_params,	  "*UTTEST: <1,0>, <1,2>, <1-3>, <1-0x7FFFFFFF>", ciUTTest, ciUTTest),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+C5GCAPA",plusC5GCAPA_params, "+C5GCAPA:(0-14),(15-29),(0,1)", ciC5GCAPA, ciC5GCAPA),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+CWUS",plusCWUS_params, "+CWUS:(0-2),(0-255)", ciCWUS, ciCWUS),	
+	utlDEFINE_EXTENDED_AT_COMMAND("*overheat", starOverheat_params, "*overheat: (0-3)", ciOverheat, ciOverheat), 
+	utlDEFINE_EXTENDED_AT_COMMAND("*voltagefreq", starVoltageFreq_params, "*voltagefreq: (0-1)", ciVoltageFreq, ciVoltageFreq), 
+    utlDEFINE_EXTENDED_AT_COMMAND("+C5GURSPQRY",		   plus5GURSPQRY_params, "+C5GURSPQRY", ciC5GURSPQRY, ciC5GURSPQRY),	
+#ifdef CTCC_SLICING_FEATURE
+    utlDEFINE_EXTENDED_AT_COMMAND("+Z5GTD",		   plus5GURSPQRY_params, "+Z5GTD", ciZ5GTD, ciZ5GTD),		
+#endif
+
+#endif
+
+	//
+	// SMS
+	//
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMGF",		   plusCMGF_params,	"+CMGF: (0,1)",																																														     ciMsgFormat,		    ciMsgFormat),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CMGF",		   starCMGF_params,	"*CMGF:  proxyID[,0/1]",																																														     ciStarMsgFormat,		    ciStarMsgFormat),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CSCS", starCSCS_params, ciStarCSCS, ciStarCSCS, ciStarCSCS),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMSS",		   plusCMSS_params,	 NULL,																																														     ciSendStoredMsg,		    ciSendStoredMsg),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMGS",		   plusCMGS_params,	 NULL,																																														     ciSendMsg,			    ciSendMsg),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMGC",		   plusCMGC_params,	 NULL,		ciSendCommand, ciSendCommand),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMGR",		   plusCMGR_params,	 NULL,																																														     ciReadMsg,			    ciReadMsg),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMGW",		   plusCMGW_params,	 NULL,																																														     ciStoreMsg,		    ciStoreMsg),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSCA",		   plusCSCA_params,	 NULL,																																														     ciSrvCenterAddr,		    ciSrvCenterAddr),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSCB",		   plusCSCB_params,	"+CSCB:(0,1)",																																														     ciSelectCbMsgType,		    ciSelectCbMsgType),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CNMI",  plusCNMI_params, "+CNMI: (0-2),(0-3),(0,2,3),(0-1),(0-1)", ciNewMsgInd, ciNewMsgInd),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CGSMS",		   plusCGSMS_params,	"+CGSMS: (0-3)",																																													     ciSetMoService,		    ciSetMoService),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMMS",	   plusCMMS_params,	ciSetMoreMsgToSend,																																													     ciSetMoreMsgToSend,	    ciSetMoreMsgToSend),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMGD",	   plusCGMD_params,	ciDeleteMsg,																																														     ciDeleteMsg,		    ciDeleteMsg),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMGL",	   plusCMGL_params,	ciListMsg,																																														     ciListMsg,		    ciListMsg),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CSMS",	   plusCSMS_params,	ciSelectSmsSrv,																																														     ciSelectSmsSrv,		    ciSelectSmsSrv),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CPMS",	   plusCPMS_params,	ciPrefStorage,																																														     ciPrefStorage,		    ciPrefStorage),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSDH", plusCSDH_params, "+CSDH: (0,1)", ciShowTextParam, ciShowTextParam),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CNMA",	   plusCNMA_params,	ciNewMsgAck,																																														     ciNewMsgAck,		    ciNewMsgAck),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CSMP",	plusCSMP_params, ciSetTextModeParam, ciSetTextModeParam, ciSetTextModeParam),
+	utlDEFINE_EXACTION_AT_COMMAND("*RCACHEDSMS",	NULL, "*RCACHEDSMS", ciReportCachedSMS),
+	utlDEFINE_EXTENDED_AT_COMMAND("^LKSMSSTA",		   plusLKSMSSTA_params, "^LKSMSSTA: (0-1)",  ciLockSMSStatus,  ciLockSMSStatus),
+
+	// Non 3GPP ACTION COMMAND
+	utlDEFINE_EXACTION_AT_COMMAND("+CGCI",		   NULL,		"+CGCI",																																														     atParserShellGetFunction),
+	utlDEFINE_EXACTION_AT_COMMAND("+CGOI",		   NULL,		"+CGOI",																																														     atParserShellGetFunction),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+VDUMP",		   plusVDUMP_params,	"+VDUMP: (0-8)",																																													     vDump,			    vDump),
+	utlDEFINE_EXTENDED_AT_COMMAND("+LOG",		   plusLOG_params,	"+log: (0-255)",																																													     vLog,			    vLog),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VPDUS",		   plusVPDUS_params,		"+VPDUS:(0,1)",																																														     vPDUS,			    vPDUS),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VHDL",		   NULL,		"+VHDL: (Show Handle)",																																													     vHDL,			    vHDL),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VECHO",		   plusVECHO_params,	"+VECHO: ",																																														     vECHO,			    vECHO),
+    utlDEFINE_EXTENDED_AT_COMMAND("+APLOG",         plusAPLOG_params,       "+APLOG: (0-255)",      apLog,       apLog),
+    
+    utlDEFINE_EXTENDED_AT_COMMAND("+RDUP",         plusRDUP_params,       "+RDUP: (0-1)",      ciRdup,       ciRdup),
+
+	// debug atcommand for +cgsend *tgsink.
+	utlDEFINE_EXTENDED_AT_COMMAND("+ATDB",		   plusATDB_params,	"+ATDB: <fun:1-+CGSEND, 2-*TGSINK>, <value>",																																										     atdb,			    atdb),
+
+	// Enter the engineering mode
+	//utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGED",	   plusCGED_params,	ciCGED,																																															     ciCGED,			    ciCGED),
+
+	// ADDED BY Danfeng to deregister from CCI
+	utlDEFINE_EXTENDED_AT_COMMAND("*CCIREG",	   plusCCIREG_params,	"*CIREG: 0",																																													     cciReg,			    cciReg),
+
+	/*Start -  Michal Bukai */
+	//utlDEFINE_EXTENDED_AT_COMMAND("+CMUT",  plusCMUT_params, "+CMUT: (0,1)", ciCMUT, ciCMUT),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPUC",  plusCPUC_params, "+CPUC: <currency>, <ppu>, <PIN2>", ciCPUC, ciCPUC),
+	utlDEFINE_EXACTION_AT_COMMAND("+CHUP",		   NULL,		"+CHUP: ",																																														     ciCHUP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSTA",		   plusCSTA_params,	"+CSTA: (129,145,161,177)",																																											     ciCSTA,			    ciCSTA),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CRC",		   plusCRC_params,	"+CRC: (0,1)",																																														     ciCRC,			    ciCRC),
+	//utlDEFINE_EXTENDED_AT_COMMAND("+CR",   plusCR_params,     "+CR: (0,1)", ciCR, ciCR),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMEE", plusCMEE_params,  "+CMEE: (0-2)", ciCMEE, ciCMEE),
+	//utlDEFINE_EXTENDED_AT_COMMAND("+CIND",  plusCIND_params, "+CIND: (\"signal\",(0-5)),(\"service\",(0-1)),(\"message\",(0-1)),(\"call\",(0-1)),(\"roam\",(0-1))", ciCIND, ciCIND),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMER",  plusCMER_params, "+CMER: (3), (0), (0), (0), (0)", ciCMER, ciCMER),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMEC",  plusCMEC_params, "+CMEC: (0), (0), (0), (0)", ciCMEC, ciCMEC),
+	utlDEFINE_EXACTION_AT_COMMAND("+CLAC", NULL, "+CLAC: ", ciCLAC),/* APSE code for AT+CLAC command*/
+	//utlDEFINE_EXACTION_AT_COMMAND("+CEER", NULL, "+CEER: ", ciCEER),
+	utlDEFINE_EXACTION_AT_COMMAND("+CBC", NULL, "+CBC:(0-3),(0-100)", ciCBC),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CDIP",		   plusCDIP_params,	"+CDIP: (0-1)",																																														     ciCDIP,			    ciCDIP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPLS",		   plusCPLS_params,	"+CPLS: (0-2)",																																														     ciCPLS,			    ciCPLS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGCMOD",   plusCGCMOD_params,	ciModifyContext,																																													     ciModifyContext,		    ciModifyContext),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CNUM", plusCNUM_params,  ciCNUM, ciCNUM, ciCNUM),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+DS",	   plusDS_params,	ciDS,																																															     ciDS,			    ciDS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGTFT", plusCGTFT_params, ciCGTFT, ciCGTFT, ciCGTFT),
+	//utlDEFINE_EXACTION_AT_COMMAND("*CPRST", NULL, "*CPRST: ", ciSilentReset),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*BAND",	   plusBAND_params,	ciBAND,																																															     ciBAND,			    ciBAND),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BANDIND",	   plusBANDIND_params,	"*BANDIND: (0,1)",																																													     ciBANDIND,			    ciBANDIND),
+	utlDEFINE_EXTENDED_AT_COMMAND("+WS46",		   plusWS46_params,	"+WS46: (12,22,25,28,29,30,31)",																																														     ciWS46,			    ciWS46),
+	/*MEP and UDP property AT commands*/
+	//utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CLCK",  plusCLCK_params, ciCLCK, ciCLCK, ciCLCK),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CLCK",  plusMEPCLCK_params, ciMEPCLCK, ciMEPCLCK, ciMEPCLCK),
+	utlDEFINE_EXACTION_AT_COMMAND("+ZVN", NULL, NULL, ciZVN),
+	// Display operator
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZDON", NULL, "+ZDON?", ciZDON, ciZDON),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZPAS", NULL, "+ZPAS?", ciZPAS, ciZPAS),
+
+#ifdef CUSTZ
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LOCKLEVEL",  plusLOCKLEVEL_params, ciLOCKLEVEL, ciLOCKLEVEL, ciLOCKLEVEL),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZNCK",  plusZNCK_params, ciZNCK, ciZNCK, ciZNCK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ZAIRINFO",  NULL,		"*ZAIRINFO:", 																																														 ciZAIRINFO,				ciZAIRINFO),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ZCQI",  NULL,		"*ZCQI:", 																																														 ciZCQI,			ciZCQI),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ZFACTORY", NULL, "*ZFACTORY", ciZFactoryReset, ciZFactoryReset),
+	// Configuration of Network Selection Mode
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZSNT", plusZSNT_params, ciZSNT, ciZSNT, ciZSNT),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZCAINFO", NULL, ciZCAINFO, ciZCAINFO, ciZCAINFO),	
+	utlDEFINE_EXACTION_VSYNTAX_AT_COMMAND("+ZRSSI", plusCESQ_params, ciZRSSI, ciZRSSI),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZNLOCKBAND", plusZNLOCKBAND_params, "+ZNLOCKBAND=<lte_band_enable>,<gw_band_enable>,<lte_band_mask>,<gw_band_mask>", ciZNLOCKBAND, ciZNLOCKBAND),
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZNLOCKNRBAND", plusZNLOCKNRBAND_params, "+ZNLOCKNRBAND=<type>,<band>", ciZNLOCKNRBAND, ciZNLOCKNRBAND),
+#endif
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ZCELLINFO", NULL, ciZCELLINFO, ciZCELLINFO, ciZCELLINFO),	
+	utlDEFINE_EXACTION_AT_COMMAND("+ZSTM", NULL, NULL, ciZSTM),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZSELM", plusZSELM_params, "+ZSELM:<menu_item_id>", ciZSELM, ciZSELM),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZSELI", plusZSELI_params, "+ZSELI:<item_id>", ciZSELI, ciZSELI),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZBK", plusZBK_params, "+ZBK:<id>", ciZBK, ciZBK),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZINKR", plusZINKR_params, "+ZINKR:<input_dcs>,<input_text>", ciZINKR, ciZINKR),		
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZINPR", plusZINKR_params, "+ZINPR:<input_dcs>,<input_text>", ciZINPR, ciZINPR),		
+	utlDEFINE_EXACTION_AT_COMMAND("+ZDISTR", NULL, NULL, ciZDISTR),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZNITZ", NULL, "+ZNITZ:", ciZNITZ, ciZNITZ),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZSYNCNITZ", plusZSYNCNITZ_params, "+ZSYNCNITZ:(0,1)", ciZSYNCNITZ, ciZSYNCNITZ),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZDOGREF", plusZDOGREF_params, "+ZDOGREF:(0-65535)", ciZDOGREF, ciZDOGREF),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZATNUM", NULL, "+ZATNUM:", ciZATNUM, ciZATNUM),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZDHCPLEASE",  	plusZDHCPLEASE_params,	  "+ZDHCPLEASE",   ciZDHCPLEASE, 	ciZDHCPLEASE),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+GEFLAG",  plusGEFLAG_params,	  "+GEFLAG", ciGEFLAG, ciGEFLAG),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZCFG",  	plusZCFG_params,	  "+ZCFG", 	   ciZCFG, 	 ciZCFG),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZROAM",  	plusZROAM_params,	  "+ZROAM",   ciZROAM, 	ciZROAM),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZVMAIL",  	NULL,	  "+ZVMAIL?",   ciZVMAIL, 	ciZVMAIL),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZGDFLT", plusZGDFLT_params, "+ZGDFLT: <mode:0/1>,[<PDP_type:ip/ipv6/ipv4v6>,[<Roming_PDP_type:ip/ipv6/ipv4v6>,[<APN>,[<emg_ind:0/1>,[<ipcp_req:0/1>,[<pcscf_v6:0/1>,[<imcn_sig:0/1>,[<dns_v6:0/1>,[<nw_bear:0/1>,[<dsm_v6_ha:0/1>,[<dsm_v6_pref:0/1>,[<dsm_v6_ha_v4:0/1>,[<ip_via_nas:0/1>,[<ip_via_dhcp::0/1>,[<pcscf_v4:0/1>,[<dns_v4:0/1>,[<msisdn:0/1>,[<ifom:0/1>,[<v4mtu:0/1>,[<local_tft:0/1>, [<etifFlag>]]]]]]]]]]]]]]]]]", ciZGDFLT, ciZGDFLT),
+	utlDEFINE_EXACTION_AT_COMMAND("*ZCGMR",  NULL,   "*ZCGMR", ciZCGMR),
+#endif
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*MEPCG",  plusMEPCG_params, ciMEPCG, ciMEPCG, ciMEPCG),
+	//utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*ULCK",  plusULCK_params, ciULCK, ciULCK, ciULCK),
+	//utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*UCPWD",  plusUCPWD_params, ciUCPWD, ciUCPWD, ciUCPWD),
+	//utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*UASLM",  plusUASLM_params, ciUASLM, ciUASLM, ciUASLM),
+	utlDEFINE_EXTENDED_EXACTION_AT_COMMAND("*ENVSIM",  NULL,		"*ENVSIM:",																																														     ciEnVsim,			    ciEnVsim),
+	//utlDEFINE_EXACTION_AT_COMMAND("*RST", NULL, "*RST: ", ciRST),
+	//utlDEFINE_EXTENDED_AT_COMMAND("*CalStatus", plusCalStatus_params,"*READ_CAL_STATUS:(0,1)", ciCalStatus, ciCalStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CNMA", plusNewMsgAck_params,"*CNMA:(0-2)", ciNewMsgAckStar, ciNewMsgAckStar),
+	/*End -  Michal Bukai */
+	utlDEFINE_EXTENDED_AT_COMMAND("*POWERIND",	   plusPOWERIND_params,	"*POWERIND: (0-31)",																																													     ciPOWERIND,			    ciPOWERIND),
+	utlDEFINE_EXTENDED_AT_COMMAND("*APPOWERIND",	   plusAPPOWERIND_params,	"*APPOWERIND: (0-1)",																																													     ciAPPOWERIND,			    ciAPPOWERIND),
+
+	utlDEFINE_EXACTION_AT_COMMAND("*FASTDORM", 	NULL, 		"*FASTDORM: ",																																														ciFastDormancy),
+	// Enter the engineering mode
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+EEMOPT",	   plusEEMOPT_params,	ciEEMOPT,																																															     ciEEMOPT,			    ciEEMOPT),
+	utlDEFINE_EXTENDED_AT_COMMAND("+EEMGINFO",  plusEEMGINFO_params,		"+EEMGINFO:", 																																														 ciEEMGINFO,				ciEEMGINFO),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ERGA",	   plusERGA_params,	ciRunGSMAlgorithm,																																															     ciRunGSMAlgorithm,			    ciRunGSMAlgorithm),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+ERTCA",	   plusERTCA_params,	ciRunTContextAuth,																																															     ciRunTContextAuth,			    ciRunTContextAuth),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LPNWUL",	   plusLPNWUL_params,	ciLPNWUL,																																															     ciLPNWUL,			    ciLPNWUL),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LPLOCVR",	   plusLPLOCVR_params,	ciLPLOCVR,																																																 ciLPLOCVR,				ciLPLOCVR),
+	utlDEFINE_EXACTION_AT_COMMAND("+LPECID", NULL, "+LPECID: ", ciLPECID),
+	utlDEFINE_EXACTION_AT_COMMAND("+LPOTDOAABORT", NULL, "+LPOTDOAABORT: ", ciLPOTDOAABORT),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LPOTDOAREQ", plusLPOTDOAREQ_params, ciLPOTDOAREQ, ciLPOTDOAREQ, ciLPOTDOAREQ),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CELL", starCELL_params, "*CELL:<mode>,<act>,<band>,<freq>,<cellId>,<scs>", ciCellLock, ciCellLock),
+#ifdef AT_PRODUCTION_CMNDS
+	// Add in here Production Mode commands only
+	utlDEFINE_EXACTION_AT_COMMAND("*SYSSLEEP", NULL, "*SYSSLEEP: ", SysSleep),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CP_MIPS", starMRD_MIPS_params, "*CP_MIPS=<a>,<f>[,<v>,<d>]", AtMrdMips, AtMrdMips),  // store or delete a communication data file (CDF) to the MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_ADF", starMRD_ADF_params, "*MRD_ADF=<a>,<f>[,<v>,<d>]", AtMrdAdf, AtMrdAdf),  // store or delete a communication data file (CDF) to the MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_CDF", starMRD_CDF_params, "*MRD_CDF=<a>,<f>[,<v>,<d>]", AtMrdCdf, AtMrdCdf),  // store or delete a communication data file (CDF) to the MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_SN", starMRD_SN_params, "*MRD_SN=<a>,[<v>,<d>,<s>]", AtMrdSn, AtMrdSn),  // write, read or  delete the serial number to/from the MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_IMEI", starMRD_IMEI_params, "*MRD_IMEI=<a>[,<v>,<d>,<s>,<n>]", AtMrdImei, AtMrdImei), // write, read or delete the IMEI number.
+	utlDEFINE_EXTENDED_AT_COMMAND("*CALINFO", starCALINFO_params, "*CALINFO=<a>,[<type>,<value>]", AtCalInfo, AtCalInfo),
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_MEP", starMRD_MEP_params, "*MRD_MEP=<a>[,<v>,<d>,<cat>,<s1>[,<s2>[,<s3>,<s4>[,<s5>,<s6>,<s7>[,<s8>,<s9>[,<n>]]]]]]", AtMrdMep, AtMrdMep), // write, read or delete the MEP data.
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_WIFIID", starMRD_WIFIID_params, "*MRD_WIFIID=<a>[,<v>,<d>,<s>]", AtMrdWifiId, AtMrdWifiId), // write, read or delete the Wifi MAC address.
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_BTID", starMRD_BTID_params, "*MRD_BTID=<a>[,<v>,<d>,<s>]", AtMrdBtId, AtMrdBtId), // write, read or delete the bluetooth ID.
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*MRD_VEND", starMRD_VEND_params, AtMrdVend, AtMrdVend, AtMrdVend), // write, read or delete the PS_VENDOR_SPECIFIC_FEATURE in COMCfg.csv
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*MRD_BAND", starMRD_BAND_params, AtMrdBand, AtMrdBand, AtMrdBand), // write, read or delete band configuration in COMCfg.csv
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_LANMAC", starMRD_LANMAC_params, "*MRD_LANMAC=<a>[,<v>,<d>,<s>]", AtMrdLanMAC, AtMrdLanMAC), // write, read or delete the LAN MAC address.
+    utlDEFINE_EXACTION_AT_COMMAND("*MRDBACKUP",  NULL, "*MRDBACKUP", ATMRDBACKUP),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*PROD", starPROD_params, "*PROD=(0-2)", AtProd, AtProd), // enable/disable production mode
+	utlDEFINE_EXTENDED_AT_COMMAND("*SVC", starSVC_params, "*SVC=<a>,<s>", AtSvc, AtSvc), // burn svc state in Bit132~131 of bank0
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LOCKNETLIST", starLOCKNETLIST_params, AtLockNetList, AtLockNetList, AtLockNetList), // Download lock net list.
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+INVERSESML", starINVERSESML_params, AtINVERSESML, AtINVERSESML, AtINVERSESML), // Download lock net list.
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+LOCKLIST", starLOCKLIST_params, AtLockList, AtLockList, AtLockList), // Read lock net list.
+	utlDEFINE_EXTENDED_AT_COMMAND("+UNLOCKKEY", starUnLockKEY_params, "+UNLOCKKEY=<a>[,<s>]", AtUnLockKey, AtUnLockKey),  // write, read or  delete the serial number to/from the MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*SYNC", NULL, "*SYNC", AtSync, AtSync),
+	utlDEFINE_EXTENDED_AT_COMMAND("*REBOOT", NULL, "*REBOOT", AtReboot, AtReboot),
+	utlDEFINE_EXTENDED_AT_COMMAND("*POWEROFF", NULL, "*POWEROFF", AtPoweroff, AtPoweroff),
+	utlDEFINE_EXTENDED_AT_COMMAND("*FASTBOOT", NULL, "*FASTBOOT", AtFastboot, AtFastboot),
+#if defined(ATCMD_UNIFY_CI)		|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("+OOSPP", OOSPP_params, NULL, AtOospp, AtOospp),
+#endif
+
+#if 0//ndef PXA1826SPI_TELE
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+GPSSTEST", starGPSTEST_params, AtGnssTest, AtGnssTest, AtGnssTest),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*GPSTEST", starGPSTEST_params, AtGpsTest, AtGpsTest, AtGpsTest),
+	utlDEFINE_EXACTION_AT_COMMAND("*GPSRST", NULL, "*GPSRST: ", GpsReset),
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("*TGCTRL", starTGCTRL_params, "*TGCTRL=<nw>,<op>,<value>[,<addr>]", ciTGCTRL, ciTGCTRL),
+	utlDEFINE_EXACTION_AT_COMMAND("*RFC", NULL, "*RFC", DiagCommand),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_DUMP", starMRD_DUMP_params, "*MRD_DUMP=<partition>,<path>", AtMrdDump, AtMrdDump), // dump MRD image
+#ifdef MNV_SUPPORT
+	utlDEFINE_EXTENDED_AT_COMMAND("*CPMRD_DUMP", starCPMRD_DUMP_params, "*CPMRD_DUMP=<partition>,<path>", AtCpMrdDump, AtCpMrdDump), // dump CPMRD image
+#endif
+#ifdef SECURE_MRD
+	utlDEFINE_EXTENDED_AT_COMMAND("*MRD_AUTH", starMRD_AUTH_params, "*MRD_AUTH[=<r>,<pke>,<sm>]", AtMrdAuth, AtMrdAuth),
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("+FUELGAIC", FUELGAIC_params, "+FUELGAIC:(0-1)", AtFuelGaic, AtFuelGaic),
+	utlDEFINE_EXACTION_AT_COMMAND("*MRD_LIST", NULL, "*MRD_LIST: ", AtMrdList),
+
+   //TX/RX power
+	utlDEFINE_EXTENDED_AT_COMMAND("*TDTR", starTDTR_params, "*TDTR=<op>[,<gain>,<freq>]", ciTDTR, ciTDTR), /* request to set Tx/Rx on TD */
+	utlDEFINE_EXTENDED_AT_COMMAND("*GSMTR", starGSMTR_params, "*GSMTR=<op>[,<band>,<arfcn>,<afcDac>[,<txRampScale>,<rxGainCode>]]", ciGSMTR, ciGSMTR), /* request to set Tx/Rx on GSM */
+	utlDEFINE_EXTENDED_AT_COMMAND("*WBTR", starWBTR_params, "*WBTR=<op>[,<dlUarfcn>,<ulUarfcn>[,<paMode>[,<apcDac>[,<afcDac>]]]]", ciWBTR, ciWBTR), /* request to set Tx/Rx on WCDMA */
+	utlDEFINE_EXTENDED_AT_COMMAND("*MAXPOWER", starMaxPower_params, "*MAXPOWER=<op>,<para1>,<para2>", ciGsmWcdmaMaxPower, ciGsmWcdmaMaxPower), /* request to set Tx max power on GSM or WCDMA */
+	utlDEFINE_EXTENDED_AT_COMMAND("+LTEPOWER", plusLTEPOWER_params, "+LTEPOWER:<op>,<band>,<power>", ciLTEMaxPower, ciLTEMaxPower),
+	utlDEFINE_EXTENDED_AT_COMMAND("*LTETR", starLteTR_params, "*LTETR=<op>,<channel>,<power>,<bandwidth>", ciLTETR, ciLTETR), /* request to set Tx/RX on LTE */
+#if defined(ATCMD_UNIFY_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("^SIMLOCK",SIMLOCK_params, NULL, AtSimLock, AtSimLock),
+	utlDEFINE_EXTENDED_AT_COMMAND("^SETLOCK",SETLOCK_params, NULL, AtSetLock, AtSetLock),
+	utlDEFINE_EXTENDED_AT_COMMAND("^MAXLCKTMS", MAXLCKTMS_params, "^MAXLCKTMS:(0-10)", AtMAXLCKTMS, AtMAXLCKTMS),
+	utlDEFINE_EXTENDED_AT_COMMAND("^TESTLOCK",TESTLOCK_params, NULL, AtTestLock, AtTestLock),
+#endif
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("*COMMTR", starCommTR_params, "*COMMTR=<nwMode>,<option>,<band>,<power>,<arfcn>,<bandWidth>,<slot>", ciCOMMTR, ciCOMMTR), /* request to set Tx/RX on LTE */
+	utlDEFINE_EXTENDED_AT_COMMAND("*FDNCHECK",		   starFdnCheck_params,	"*FDNCHECK: <dial_str>",	ciFdnCheck, ciFdnCheck),     
+	utlDEFINE_EXTENDED_AT_COMMAND("*MORESMS",		   starMoreSms_params,	"*MORESMS: (0,1)",	ciMoreSms, ciMoreSms),    
+#endif
+
+#endif
+
+#ifdef AT_LABTOOL_CMNDS
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MVWFTST",  plusMVWFTST_params,  ciMVWFTST,  ciMVWFTST,  ciMVWFTST),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MVWFIDRW", plusMVWFIDRW_params, ciMVWFIDRW, ciMVWFIDRW, ciMVWFIDRW),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MVBTTST",  plusMVBTTST_params,  ciMVBTTST,  ciMVBTTST,  ciMVBTTST),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MVBTIDRW", plusMVBTIDRW_params, ciMVBTIDRW, ciMVBTIDRW, ciMVBTIDRW),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+MVFMTST",  plusMVFMTST_params,  ciMVFMTST,  ciMVFMTST,  ciMVFMTST),
+#endif // AT_LABTOOL_CMNDS
+
+	utlDEFINE_EXACTION_AT_COMMAND("+CKPD", plusCKPD_params, "", ciCKPD),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CGSN",  starCGSN_params,  ciStarCGSN,  ciStarCGSN,  ciStarCGSN),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*MODEMTYPE",  NULL,  ciStarMODEMTYPE,  ciStarMODEMTYPE,  ciStarMODEMTYPE),
+	utlDEFINE_EXTENDED_AT_COMMAND("$VTS",              dollarVTS_params,    "$VTS: <DTMF>, (0,1)",      ciSendLongDTMF,                 ciSendLongDTMF),
+	utlDEFINE_EXTENDED_AT_COMMAND("*MODEMRESET", starMODEMRESET_params, "*MODEMRESET:<resetInfo>,(0,1)",  ciStarMODEMRESET,  ciStarMODEMRESET),
+	utlDEFINE_EXTENDED_AT_COMMAND("*SWITCHMODEM", starSWITCHMODEM_params, "*SWITCHMODEM:(3,4)",  ciStarSWITCHMODEM,  ciStarSWITCHMODEM),
+	utlDEFINE_EXTENDED_AT_COMMAND("*HTCCTO", starHTCCTO_params, "*HTCCTO: <AT command>, (1-7), <timeout>", ciStarHTCCTO, ciStarHTCCTO),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMEMFULL", plusCMEMFULL_params, "+CMEMFULL: (0,1)", ciCMEMFULL, ciCMEMFULL),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*EHSDPA", starEHSDPA_params, ciStarEHSDPA, ciStarEHSDPA, ciStarEHSDPA),
+
+#ifdef OPHONE
+	//
+	// Ohone monitor
+	//	
+	utlDEFINE_EXTENDED_AT_COMMAND("^DCTS", caretDCTS_params, "^DCTS: (0),(16,96)", ciDCTS, ciDCTS), /* mode switch of the MT between normal mode and test mode */
+	utlDEFINE_EXTENDED_AT_COMMAND("^DEELS", caretDEELS_params, "^DEELS: (0,1)", ciDEELS, ciDEELS), /* controls the presentation of the protocol status unsolicited result code  ^DEELSI: <status>*/
+	utlDEFINE_EXTENDED_AT_COMMAND("^DEVEI", caretDEVEI_params, "^DEVEI: (0,1)", ciDEVEI, ciDEVEI), /* enable/disable the unsolicited result code "^DEVEI: <timestamp>,<operation type>,<id>" during the MMI cell test mode*/
+	utlDEFINE_EXTENDED_AT_COMMAND("^DNPR", caretDNPR_params, "^DNPR: (0,1),(0,65535)", ciDNPR, ciDNPR), /* enable/disable the unsolicited result code about wireless parameter to the TE*/
+	utlDEFINE_EXTENDED_AT_COMMAND("^DUSR", caretDUSR_params, "^DNPR: (0,1),(0,1)", ciDUSR, ciDUSR), /* enables or disables the presentation of unsolicited result response ^DUSRI: <signaling> when receiving the air interface signal from lower layer. */
+#endif
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CIREG", plusCIREG_params, "+CIREG: (0-2)", ciIRegStatus, ciIRegStatus),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGEQOS",plusCGEQOS_params, ciSet4GQOS, ciSet4GQOS, ciSet4GQOS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CEREG",plusCEREG_params, ciERegStatus, ciERegStatus, ciERegStatus),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGCONTRDP",plusCGCONTRDP_params, ciCGCONTRDP,ciCGCONTRDP,ciCGCONTRDP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGSCONTRDP",plusCGSCONTRDP_params, ciCGSCONTRDP, ciCGSCONTRDP, ciCGSCONTRDP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGTFTRDP",plusCGTFTRDP_params, ciCGTFTRDP, ciCGTFTRDP, ciCGTFTRDP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGEQOSRDP",plusCGEQOSRDP_params, ciCGEQOSRDP, ciCGEQOSRDP, ciCGEQOSRDP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGEREP",plusCGEREP_params, ciCGEREP, ciCGEREP, ciCGEREP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CVMOD",plusCVMOD_params, ciCVMOD, ciCVMOD, ciCVMOD),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CEMODE",plusCEMODE_params, ciCEMODE, ciCEMODE, ciCEMODE),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGPADDR",plusCGPADDR_params, ciCGPADDR, ciCGPADDR, ciCGPADDR),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGPIAF",plusCGPIAF_params, ciCGPIAF, ciCGPIAF, ciCGPIAF),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("^CACAP", NULL, ciCACAP, ciCACAP, ciCACAP),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CGCLASS", plusCGCLASS_params, ciCGCLASS, ciCGCLASS, ciCGCLASS),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CESQ", plusCESQ_params, ciExtendedSignalQuality, ciExtendedSignalQuality, ciExtendedSignalQuality),
+    utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CESQ", plusCESQ_params, ciStarExtendedSignalQuality, ciStarExtendedSignalQuality, ciStarExtendedSignalQuality),
+#if defined(ATCMD_UNIFY_CI)		|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSCON",  plusCSCON_params, "+CSCON: (0-3)", ciCSCON, ciCSCON),                                                    //rls16 10.1.30
+#endif
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+BGLTEPLMN",	plusBGLTEPLMN_params,	ciOperSelLte, ciOperSelLte, ciOperSelLte),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*FDY", starFDY_params, "*FDY:(1),(1-2147483647),(1-2147483647),(1-2147483647),(1-2147483647)", ciStarFDY, ciStarFDY),
+	utlDEFINE_EXACTION_AT_COMMAND("^SYSINFO",  NULL,	"^SYSINFO:", ciSysInfo),
+
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*DIALE",    starDIALE_params, "*DIALE: <number>, (0-31)", ciDialEmergency,ciDialEmergency),
+	utlDEFINE_EXACTION_AT_COMMAND("*CPBC",  			NULL, 			"*CPBC", ciGetPhoneBookCapacity),
+	utlDEFINE_EXACTION_AT_COMMAND("*FDNBYPASS", 	   NULL,		"*FDNBYPASS: ", ciFdnBypass),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSTMEMFULL",	   NULL,		"*RSTMEMFULL: ", ciRSTMemFull),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CSCB", starCSCB_params, "*CSCB:(0,1)", ciSelectCbMsgType, ciSelectCbMsgType),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CBMCS", starCBMCS_params, "*CBMCS:(0,1),[<disablecb:0/1>]", ciCbmChannelStatus, ciCbmChannelStatus),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*NASCHK", starNASCHK_params, "*NASCHK:(0,1)", ciStarNASCHK, ciStarNASCHK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*USBT", 	 starUSBT_params, "*USBT:(0,1)", ciUsbTether, ciUsbTether),
+	utlDEFINE_EXTENDED_AT_COMMAND("*MOBILEDATA", starMOBILEDATA_params, "*MOBILEDATA:(0,1),(0,1)", ciMobileData, ciMobileData),
+	utlDEFINE_EXACTION_AT_COMMAND("*GATR",  NULL,	"*GATR:", ciGetATR),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CGATT", starCGATT_params, "*CGATT:(0,1)", ciPsPowerOnAutoAttach, ciPsPowerOnAutoAttach),
+#if defined(ATCMD_UNIFY_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("*GRIP", starGRIP_params, "*GRIP:<type>,[<value>,nwmode,band,[bandwidth]]", ciGRIP, ciGRIP),
+#else
+	utlDEFINE_EXTENDED_AT_COMMAND("*GRIP", starGRIP_params, "*GRIP:<type>,[<value>,nwmode,band]", ciGRIP, ciGRIP),
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("*PSPG", starPSPG_params, "*PSPG:(0,1)", ciPsPlusPaging, ciPsPlusPaging),
+	utlDEFINE_EXACTION_AT_COMMAND("*CGMR",  NULL,   "*CGMR", ciCGMR),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*COMCFG", starCOMCFG_params, "*COMCFG:<mode>,<tokens> or \
+	<UMTS_WB_AMR>,<GSM_WB_AMR>,<VENDOR>,<MANUFACTURE>,<LTE_CATEGORY>,<MULTISLOT_POWERPROFILE>,<LTE_SMS_ONLY>,<EC_SUPPORTED>,<EPCO_SUPPORTED>,<HCCP_SUPPORTED>,<MDRB_SUPPORTED>,<CP_BACKOFF>,<NSLP>,<EAB>,<ROHC>", ciCOMCFG, ciCOMCFG),
+
+#ifdef OPERATOR_VERIZON
+	//
+	// Operator - verizon specific
+	//
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CGATTC", starCGATTC_params, ciPSAttachWithCause, ciPSAttachWithCause, ciPSAttachWithCause),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+VZWRSRP", NULL, "+VZWRSRP?", ciVZWRSRP, ciVZWRSRP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VZWRSRQ", NULL, "+VZWRSRQ?", ciVZWRSRQ, ciVZWRSRQ),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*VZWTESTAPP",	starVZWTESTAPP_params,  ciVZWTESTAPP, ciVZWTESTAPP,ciVZWTESTAPP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VZWAPNE", plusVZWAPNE_params, "+VZWAPNE:<wapn>,<apncl>,<apnni>,<apntype>,<apnb>,<apned>,<apntime>", ciVZWAPNE, ciVZWAPNE),
+
+#endif
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*CGDFLT", starCGDFLT_params, "*CGDFLT: <mode:0/1>,[<PDP_type:ip/ipv6/ipv4v6>,[<APN>,[<emg_ind:0/1>,[<ipcp_req:0/1>,[<pcscf_v6:0/1>,[<imcn_sig:0/1>,[<dns_v6:0/1>,[<nw_bear:0/1>,[<dsm_v6_ha:0/1>,[<dsm_v6_pref:0/1>,[<dsm_v6_ha_v4:0/1>,[<ip_via_nas:0/1>,[<ip_via_dhcp::0/1>,[<pcscf_v4:0/1>,[<dns_v4:0/1>,[<msisdn:0/1>,[<ifom:0/1>,[<v4mtu:0/1>,[<local_tft:0/1>, [<etifFlag>]]]]]]]]]]]]]]]]]", ciCGDFLT, ciCGDFLT),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CGDFAUTH", starCGDFAUTH_params, "*CGDFAUTH:<mode>,<authProt>[,<username>,<password>]", ciCGDFAUTH, ciCGDFAUTH),
+	utlDEFINE_EXTENDED_AT_COMMAND("*LTEBAND", starLTEBAND_params, "*LTEBAND:", ciSetLTEBand, ciSetLTEBand),	
+	utlDEFINE_EXTENDED_AT_COMMAND("*RFTEMP", starRFTEMP_params, "*RFTEMP:(0-3)", ciRFTemperatureRead, ciRFTemperatureRead),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CSQ", starCSQ_params, "*CSQ:(0-2),(0-65535)", ciCSQConfig, ciCSQConfig),
+	utlDEFINE_EXTENDED_AT_COMMAND("*LTECOEX", starLTECOEX_params, "*LTECOEX:", ciLteCoex, ciLteCoex),
+	/*eMBMS function*/
+        utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("%MBMSCMD", starMBMS_params, ciMBMS, ciMBMS, ciMBMS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("%MBMSEV", starMBMSEv_params, ciMBMSEv, ciMBMSEv, ciMBMSEv),
+	/*eMBMS add end*/
+	utlDEFINE_EXTENDED_AT_COMMAND("+CEN", plusCEN_params, "+CEN: <reporting:0/1>", ciEmergencyNumbers, ciEmergencyNumbers),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CNEM", plusCNEM_params, "+CNEM: <reporting:0/1>", ciNwEmergencyBearerServices, ciNwEmergencyBearerServices),
+	utlDEFINE_EXACTION_AT_COMMAND("*SINR", 	   NULL,		"*SINR: ", ciSINR),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSSI", 	   NULL,		"*RSSI: ", ciRSSI),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRP", 	   NULL,		"*RSRP: ", ciRSRP),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRPP", 	   NULL,		"*RSRPP: ", ciRSRPP),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRPS", 	   NULL,		"*RSRPS: ", ciRSRPS),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRQ", 	   NULL,		"*RSRQ: ", ciRSRQ),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRQP", 	   NULL,		"*RSRQP: ", ciRSRQP),
+	utlDEFINE_EXACTION_AT_COMMAND("*RSRQS", 	   NULL,		"*RSRQS: ", ciRSRQS),
+	utlDEFINE_EXACTION_AT_COMMAND("*CQI", 	   NULL,		"*CQI: ", ciCQI),
+	utlDEFINE_EXACTION_AT_COMMAND("*URSLCT", NULL, "*URSLCT", ciURSLCT),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CISRVCC", plusCISRVCC_params, "+CISRVCC: (0,1)", ciSrvccSupport, ciSrvccSupport),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CEVDP", plusCEVDP_params, "+CEVDP: (1-4)", ciEutranVoiceDomainPreference, ciEutranVoiceDomainPreference),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CVDP", plusCVDP_params, "+CVDP: (1-3)", ciUtranVoiceDomainPreference, ciUtranVoiceDomainPreference),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CEUS", plusCEUS_params, "+CEUS: (0, 1)", ciEpsUsageSetting, ciEpsUsageSetting),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CAVIMS", plusCAVIMS_params, "+CAVIMS: (0, 1)", ciImsVoiceCallAvailability, ciImsVoiceCallAvailability),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CASIMS", plusCASIMS_params, "+CASIMS: (0, 1)", ciImsSmsAvailability, ciImsSmsAvailability),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CMMIVT", plusCMMIVT_params, "+CMMIVT: (1, 2)", ciMmImsVoiceTermination, ciMmImsVoiceTermination),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CIREP", plusCIREP_params, "+CIREP: (0, 1)", ciImsNwReportMode, ciImsNwReportMode),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSSAC",  NULL,   "+CSSAC", ciSsacStatus,ciSsacStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("*DONOF", NULL, "*DONOF", ciStarDONOF, ciStarDONOF),
+	utlDEFINE_EXTENDED_AT_COMMAND("*PWRPLMN", starPWRPLMN_params, "*PWRPLMN: (0-2)", ciPowerUpPlmnMode, ciPowerUpPlmnMode),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CISCC", starCISCC_params, "*CISCC: [<call1>[,<call2>[,...]]] ", ciSetCurrentCalls, ciSetCurrentCalls),
+	utlDEFINE_EXTENDED_AT_COMMAND("*RANDFILL", starRANDFILL_params, "*RANDFILL:(0,1)", ciL2RandFill, ciL2RandFill),
+
+#ifdef OPERATOR_ATT
+//
+// Operator - AT&T specific
+//
+	utlDEFINE_EXACTION_AT_COMMAND("$CSQ",		   NULL,		"$CSQ: (0-31,99),(0-7,99)[,(0,-24db)]",																																													     ciATTSignalQuality),
+	utlDEFINE_EXTENDED_AT_COMMAND("$CREG", 			dollarCREG_params, "$CREG: (0-3)", ciRegStatus, ciRegStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("$CCLK",		   dollarCCLK_params, "$CCLK:",																																															 ciCCLK,				ciCCLK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CSG",  starCSG_params, "*CSG: (0,1,2,3)", ciCSG, ciCSG),
+	utlDEFINE_EXTENDED_AT_COMMAND("*IGN", starIGN_params, "*IGN: (0-1) [,(1-600),(1-600)]", ciIGNSwitch, ciIGNSwitch),
+	utlDEFINE_EXTENDED_AT_COMMAND("*FRATLIST", starFRATLIST_params, "*FRATLIST: (0-2) [,PLMN String]", ciFRATLISTSwitch, ciFRATLISTSwitch),
+	utlDEFINE_EXTENDED_AT_COMMAND("+RSRP", NULL, "+RSRP?", ciPlusRSRP, ciPlusRSRP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+RSRQ", NULL, "+RSRQ?", ciPlusRSRQ, ciPlusRSRQ),
+	utlDEFINE_EXTENDED_AT_COMMAND("+RSCP", NULL, "+RSCP?", ciPlusRSCP, ciPlusRSCP),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ECNO", NULL, "+ECNO?", ciPlusECNO, ciPlusECNO),
+#endif
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*APCFG", starAPCFG_params, "*APCFG: (0, 1)", ciNotifyApConfig, ciNotifyApConfig),
+	utlDEFINE_EXACTION_AT_COMMAND("*ISIMAID",  NULL,   "*ISIMAID", ciISIMAID),
+	utlDEFINE_EXACTION_AT_COMMAND("+MPBK",  NULL,   "+MPBK", ciMPBK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CIIND", starCIIND_params, "*CIIND: (0-256)", ciNotifyImsRegState, ciNotifyImsRegState),
+	//proxy channel AT commands
+	utlDEFINE_EXTENDED_AT_COMMAND("*PRXYSET",starPrxySet_params,"*PROXYSET: (0-1),commands list,indications list", ciProxySet,ciProxySet),
+	utlDEFINE_EXTENDED_AT_COMMAND("*PRXYRSP",starPrxyRsp_params,"*PROXY: (XID),command String,intermedeate indication flag", ciProxyRsp,ciProxyRsp),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CHDSTST", starCHDSTST_params, "*CHDSTST: (0,1)", ciChannelDestSwitch, ciChannelDestSwitch),
+	utlDEFINE_EXACTION_AT_COMMAND("+CNMPSD", 	NULL, "+CNMPSD:",ciFastDormancy),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSAS",plusCsas_params, "+CSAS: 0-255",ciCsas,ciCsas),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CRES",plusCres_params, "+CRES: (0)",ciCres,ciCres),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*TELMODE", starTelMode_params, ciTelMode, ciTelMode, ciTelMode),
+	utlDEFINE_EXTENDED_AT_COMMAND("*PSDC", starPSDC_params, "*PSDC:(0,1)", ciPsDomainConfig, ciPsDomainConfig),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CBRAT", starCBRAT_params, "*CBRAT: (0-6)", ciSelectCbRat, ciSelectCbRat),
+	utlDEFINE_EXTENDED_AT_COMMAND("*IMLCONFIG", starIMLCONFIG_params, "*IMLCONFIG:<IMLTYPE>[,<data>]", ciIMLCONFIG, ciIMLCONFIG),
+
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*PCO", starPCO_params, "*PCO:(0-15)", ciPsGetPCO, ciPsGetPCO),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CSDF", plusCSDF_params, "+CSDF:(1-255),(1-2)", ciCSDF, ciCSDF),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CLAN", plusCLAN_params, ciCLAN, ciCLAN, ciCLAN),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CELLINFO", starCELLINFO_params, ciCELLINFO, ciCELLINFO, ciCELLINFO),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CCUG", plusCCUG_params, "", ciCCUG, ciCCUG),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CPNER", plusCPNER_params, "+CPNER: (0-1)", ciCPNER, ciCPNER),
+
+/* STK / USAT related extdened begin */
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CATPROF", starSTKPROF_params,ciStarCATPROF,ciStarCATPROF,ciStarCATPROF),
+  	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CATEN", starCATEN_params,ciStarCaten,ciStarCaten,ciStarCaten),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*RCATR", starRCATR_params,ciStarRCATR, ciStarRCATR, ciStarRCATR),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CATTR", starCATTR_params,ciStarCATTR ,ciStarCATTR,ciStarCATTR),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*CATENV", starCATENV_params, ciStarCATENV,ciStarCATENV,ciStarCATENV),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("*RCATE", starRCATE_params, ciStarRCATE, ciStarRCATE, ciStarRCATE),
+/* STK / USAT related extdened end */
+
+#ifndef NO_AUDIO
+/* audio atcmds: */
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDIOMODE",starAUDIOMODE_params, "*AUDIOMODE: (0-4)",ubusAudioMode, ubusAudioMode),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDIODEVICE",starAUDIODEVICE_params, "*AUDIODEVICE: (0-2)",ubusAudioDevice, ubusAudioDevice),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDIOVOL",starAUDIOVOL_params, "*AUDIOVOL: (0-100)",ubusAudioVolume, ubusAudioVolume),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDIOMUTE",starAUDIOMUTE_params, "*AUDIOMUTE: (0-1)",ubusAudioMute, ubusAudioMute),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDREC", starAUDREC_params,"*AUDREC: <***.wav>[,<time>[,<rate>[,<mode>]]]", ciAudioRec, ciAudioRec),
+    utlDEFINE_EXACTION_AT_COMMAND("*AUDRECSTOP", NULL, "*AUDRECSTOP", ciAudioRecStop),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDPLAY", starAUDPLAY_params,"*AUDPLAY: <***.wav>[,<pos>,[<combine>]]", ciAudioPlay, ciAudioPlay),
+    utlDEFINE_EXACTION_AT_COMMAND("*AUDPLAYSTOP", NULL, "*AUDPLAYSTOP", ciAudioPlayStop),
+    utlDEFINE_EXTENDED_AT_COMMAND("*AUDGAIN", starAUDGAIN_params,"*AUDGAIN: <db>,<mode>", ciAudioGain, ciAudioGain),
+
+#ifdef ECALL_SUPPORT
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CECALLINSIDE", plusCECALLINSIDE_params, ciCeCallInside, ciCeCallInside, ciCeCallInside),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CECALL", plusCECALL_params, ciCeCall, ciCeCall, ciCeCall),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ECALLDATA", starECALLDATA_params, "*ECALLDATA: (0-7),(0-1|00000000-FFFFFFFF),(DataString)", ubusEcallData, ubusEcallData),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ECALLVOICE", starECALLVOICE_params, "*ECALLVOICE: (0-4),(0-1),(0-1)", ubusEcallVoice, ubusEcallVoice),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ECALLCFG", starECALLCFG_params,"*ECALLCFG: <time>,<inactivity_time1>,<inactivity_time2>", ciStartEcallCfg, ciStartEcallCfg),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ECALLONLY", starECALLONLY_params,"*ECALLONLY: <active>[,<testnum>[,<reconfignum>]]", ciStarEcallOnly, ciStarEcallOnly),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ECALLREG", starECALLREG_params,"*ECALLREG: <active>", ciStarEcallReg, ciStarEcallReg),
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+    utlDEFINE_EXTENDED_AT_COMMAND("*IMSECALLREG", starIMSECALLREG_params,"*IMSECALLREG: <active>[,<callType>]", ciStarIMSEcallReg, ciStarIMSEcallReg),
+#else
+    utlDEFINE_EXTENDED_AT_COMMAND("*IMSECALLREG", starIMSECALLREG_params,"*IMSECALLREG: <active>", ciStarIMSEcallReg, ciStarIMSEcallReg),
+#endif
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLONLYSIM", NULL,"*ECALLONLYSIM: (0-1)", ciEcallOnlySim, ciEcallOnlySim),
+    utlDEFINE_EXACTION_AT_COMMAND("*ECALLMSDGEN", NULL,"*ECALLMSDGEN", ciEcallMsdGen),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLMSD", starECALLMSD_params,"*ECALLMSD: <msd_data>", ciEcallMsd, ciEcallMsd),
+    utlDEFINE_EXACTION_AT_COMMAND("*ECALLPUSH", NULL,"*ECALLPUSH", ciEcallPush),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLMSDCFG", starECALLMSDCFG_params,"*ECALLMSDCFG: <item>,<config>[,<persistent>]", ciEcallMsdCfg, ciEcallMsdCfg),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLSMSNUM", starECALLSMSNUMCFG_params,"*ECALLSMSNUM: <sms_number>", ciEcallSmsNumCfg, ciEcallSmsNumCfg),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLSMS", starECALLSMS_params, "*ECALLSMS: <smsFlag>", ciEcallSmsMsdAct, ciEcallSmsMsdAct),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLMODE", starECALLSWITCHMODE_params,"*ECALLMODE: <ecall_mode>", ciEcallSwitchMode, ciEcallSwitchMode),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLTIMER", starECALLTMR_params,"*ECALLTIMER: <name>[,<value>]", ciEcallTimer, ciEcallTimer),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLMUTESPK", starECALLMUTESPK_params,"*ECALLMUTESPK: <mute>", ciEcallMuteSpk, ciEcallMuteSpk),
+   //internal AT
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLMEDIAMSD", starECALLMEDIAMSD_params,"*ECALLMEDIAMSD: <msd_data>", ciEcallMediaMsd, ciEcallMediaMsd),
+	utlDEFINE_EXTENDED_AT_COMMAND("*IMSECALLSUPT", NULL,"*IMSECALLSUPT?", ciImsEcallSupt, ciImsEcallSupt),
+    utlDEFINE_EXACTION_AT_COMMAND("*ECALLONLYREG", NULL,"*ECALLONLYREG", ciEcallOnlyReg),
+    utlDEFINE_EXTENDED_AT_COMMAND("*ECALLOVERIMS", starECALLOVERIMS_params,"*ECALLOVERIMS: <mode>", ciEcalloverIms, ciEcalloverIms),
+#endif
+
+/* audio atcmds end */
+#endif // NO_AUDIO
+	utlDEFINE_EXACTION_AT_COMMAND("*SIMPLUG", NULL, "*SIMPLUG", ciSimHotPlug),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CGDCONTL", starCGDCONTL_params, "*CGDCONTL: <cid>,<addr>,<mult>", ciSetContextLoopBack, ciSetContextLoopBack),
+	utlDEFINE_EXTENDED_AT_COMMAND("*SPIND", starSPIND_params, "*SPIND: (0, 1)", ciSetSerialPortIndicationState, ciSetSerialPortIndicationState),
+	utlDEFINE_EXACTION_AT_COMMAND("*ECCLIST", NULL, "*ECCLIST", ciEccList),
+	utlDEFINE_EXTENDED_AT_COMMAND("*IMSSRV", starIMSSRV_params, "*IMSSRV:(0-255),(0-255),(0-255)", ciPsSetImsSrv, ciPsSetImsSrv),
+	utlDEFINE_EXACTION_AT_COMMAND("+CPLMNS",	NULL, "+CPLMNS", ciCancelPlmnSearch),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CACL", plusCACL_params, "+CACL:(0, 1),(0, 1)", ciCacl, ciCacl),
+	utlDEFINE_EXTENDED_AT_COMMAND("*DCONF", starUdconf_params,
+			"*DCONF: 20,(0,1)\r\n*DCONF: 31,(0,1)\r\n*DCONF: 32,(0-127)\r\n*DCONF: 40,(0-3),(0-3)\r\n*DCONF: 50,(0,1)\r\n*DCONF: 51,(0,1)\r\n*DCONF: 60,(0-2)\r\n*DCONF: 61,(0-2)\r\n*DCONF: 62,(0,1)\r\n*DCONF: 70,(0-7)\r\n*DCONF: 81,(0,1)\r\n*DCONF: 100,(0,1)",
+			ciUdconf, ciUdconf),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CGCLASS", starUCGCLASS_params, "*CGCLASS:(\"B\",\"CC\")", ciStarUCGCLASS, ciStarUCGCLASS),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CIWLANCID", starCIWLANCID_params, "*CIWLANCID:(1-15),(0-1)", ciReserveCid, ciReserveCid),
+
+	// Add for BT SAP
+#ifdef BT_SAP	
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSCNCT", starBTSCNCT_params, "*BTSCNCT:(0-65535)", ciBTSConnect, ciBTSConnect),
+	utlDEFINE_EXACTION_AT_COMMAND("*BTSDISSCNCT", NULL, "*BTSDISSCNCT: ", ciBTSDisconnect),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSTAPDU", starBTSTAPDU_params, "*BTSTAPDU:(0,1)", ciBTSTransferAPDU, ciBTSTransferAPDU),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSTATR", NULL, "*BTSTATR: ", ciBTSTATR, ciBTSTATR),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSCTRL", starBTSCTRL_params, "*BTSCTRL:(0-2)", ciBTSSimControl, ciBTSSimControl),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSCRSTAT", NULL, "*BTSCRSTAT: ", ciBTSCardStatus, ciBTSCardStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("*BTSTP", starBTSTP_params, "*BTSTP:(0,1)", ciBTSTransportProtocol, ciBTSTransportProtocol),
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("+OPERCFG", opercfg_params, "+OPERCFG=<feature1>,<value1>[,<feature2>,<value2>,....]", ciSetOperCfg, ciSetOperCfg),
+	utlDEFINE_EXTENDED_AT_COMMAND("*ICCID", NULL,   "*ICCID:",	ciICCID,	ciICCID),
+	utlDEFINE_EXTENDED_AT_COMMAND("*PARK", starPARK_params,   "*PARK:",	ciPARK,	ciPARK),
+	utlDEFINE_EXTENDED_AT_COMMAND("*CHECKEMER", startCheckEmer_params, "*CHECKEMER: <Emergency Call Number>", CheckEmergNumber, CheckEmergNumber),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("*TEMPTEST", starTEMPTEST_params, "*TEMPTEST:(0,1)", ciTEMPTEST, ciTEMPTEST),
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+ACONFIG", plusACONFIG_params, "+ACONFIG", ciACONFIG, ciACONFIG),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+IMSFUNC", plusIMSFUNC_params, "+IMSFUNC", ciIMSFUNC, ciIMSFUNC),	
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+STRESS", plusSTRESSTEST_params, "+STRESS:<p1,p2>", ciSTRESS, ciSTRESS),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+SULOG", plusSULOG_params, "+SULOG:(0,1)", ciSULOG, ciSULOG),		
+	utlDEFINE_EXTENDED_AT_COMMAND("+MEDCR",  plusMEDCR_params,	  "+MEDCR", ciMEDCR, ciMEDCR),	
+
+#ifdef GPS_SUPPORT
+    utlDEFINE_EXTENDED_AT_COMMAND("+GPSINIT",     gpsInit_params, "+GPSINIT: (1,2)", ciGPSInit, ciGPSInit),
+    utlDEFINE_EXTENDED_AT_COMMAND("+GPSSLEEP",    gpsSleep_params, "+GPSSLEEP: (0,1)", ciGPSSleep, ciGPSSleep),
+    utlDEFINE_EXACTION_AT_COMMAND("+GPSPF",       NULL,    NULL,  ciGPSPF),
+    utlDEFINE_EXTENDED_AT_COMMAND("+AGNSSGET",    agnssGet_params, "+AGNSSGET: <supl_server_addr>", ciAGnssGet, ciAGnssGet),
+    //utlDEFINE_EXTENDED_AT_COMMAND("+AGNSSCFG",    agnssCfg_params, "+AGNSSCFG: <server>,<port>,<user>,<pass>,<day>,<force>", ciAGnssCfg, ciAGnssCfg),
+    utlDEFINE_EXACTION_AT_COMMAND("+AGNSSSET",    NULL,    NULL,  ciAGnssSet),
+    utlDEFINE_EXACTION_AT_COMMAND("+GPSST",       NULL,    NULL,  ciGPSState),
+    utlDEFINE_EXTENDED_AT_COMMAND("+GPSSETTING",  gpsSet_params, "+GPSSETTING: <string>", ciGPSSetting, ciGPSSetting),
+#endif
+
+    utlDEFINE_EXTENDED_AT_COMMAND("*FACTORY", NULL, "*FACTORY", ciFactoryReset, ciFactoryReset),
+    //utlDEFINE_EXTENDED_AT_COMMAND("+CMTLR",  plusCMTLR_params, "+CMTLR: (0-3)", ciCMTLR, ciCMTLR),
+    utlDEFINE_EXTENDED_AT_COMMAND("+CMTLRA",  plusCMTLRA_params, "+CMTLRA: (0-1),(0-255)", ciCMTLRA, ciCMTLRA),      //27.007(rls14) 8.58
+    utlDEFINE_EXTENDED_AT_COMMAND("*IND",  starIND_params, "*IND: <dataStr>", ciSENDIND, ciSENDIND),      
+
+#ifdef CMCC_IOT
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLVER",  NULL,	"+MIPLVER?", miplVersion, miplVersion),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLCREATE",  miplcreate_params,	"+MIPLCREATE:<totalsize>,<config>,<index>,<currentsize>,<flag>", miplCreate, miplCreate),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLDELETE",  mipldelete_params,	"+MIPLDELETE:<ref>", miplDelete, miplDelete),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLADDOBJ",  mipladdobj_params,	"+MIPLADDOBJ:<ref>,<objectid>,<instancecount>,<instancebitmap>,<attributecount>,<actioncount>", miplAddobj, miplAddobj),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLDELOBJ",  mipldelobj_params,	"+MIPLDELOBJ:<ref>,<objectid>", miplDelobj, miplDelobj),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLOPEN",	  miplopen_params,		  "+MIPLOPEN:<ref>,<lifetime>[,<timeout>]", miplOpen, miplOpen),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLUPDATE",	miplupdate_params,		  "+MIPLUPDATE:<ref>,<lifetime>,<withObjectFlag>", miplUpdate, miplUpdate),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLCLOSE",    miplclose_params,		"+MIPLCLOSE:<ref>", miplClose, miplClose),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLDISCOVERRSP",	 mipldiscoverresp_params,		 "+MIPLDISCOVERRSP:<ref>,<msgid>,<result>,<length>,<valuestring>", miplDiscoverresp, miplDiscoverresp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLREADRSP",	 miplreadrsp_params,	   
+			"+MIPLREADRSP:<ref>,<msgid>,<result>[,<objectid>,<instanceid>,<resourceid>,<valuetype>,<len>,<value>,<index>,<flag>]", miplReadrsp, miplReadrsp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLWRITERSP",	  miplwritersp_params,		  "+MIPLWRITERSP:<ref>,<msgid>,<result>", miplWritersp, miplWritersp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLEXECUTERSP",	miplexecutersp_params,		  "+MIPLWRITERSP:<ref>,<msgid>,<result>", miplExecutersp, miplExecutersp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLPARAMETERRSP",	  miplparameterrsp_params,		  "+MIPLPARAMETERRSP:<ref>,<msgid>,<result>", miplParameterrsp, miplParameterrsp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLOBSERVERSP",	miplobserversp_params,		  "+MIPLOBSERVERSP:<ref>,<msgid>,<result>", miplObserversp, miplObserversp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+MIPLNOTIFY",	miplnotify_params,		 
+			"+MIPLNOTIFY:<ref>,<msgid>,<objectid>,<instanceid>,<resourceid>,<valuetype>,<len>,<value>,<index>,<flag>[,<ackid>]", miplNotify, miplNotify),
+#endif
+
+	utlDEFINE_EXTENDED_AT_COMMAND("+CWRITESIM",  	NULL,	  "+CWRITESIM?",   ATCWRITESIM, 	ATCWRITESIM),
+#if !defined(CI_RELEASE_FLAG) && (defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI))
+	utlDEFINE_EXTENDED_AT_COMMAND("+CWRITESIMEXT",  	plusCWRITESIMEXT_params,	  "+CWRITESIMEXT",   ciWriteSimExt, 	ciWriteSimExt),		
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("*SIMPOLL", starSIMPOLL_params, "*SIMPOLL:(0-1),(0-1),(0-1),(1-65535)", ciSimPoll,	   ciSimPoll),
+	utlDEFINE_EXTENDED_AT_COMMAND("*RSAPSTAT", plusRSAPStat_params,
+				      "*RSAPSTAT:<status>(0-Err,1-Card reset,2-Card not accessible,3-Card Removed,4-Card inserted,5-Card recovered)",
+				      ciRSAPStatus, ciRSAPStatus),
+	utlDEFINE_EXTENDED_AT_COMMAND("*RSAPSIMSELECT", plusRSAPSimSelect_params,
+				      "*RSAPSIMSELECT:<service>(0-Reconnect,1-Disconnect),<sim type>(0-local,1-remote)",
+				      ciRSAPSimSelect, ciRSAPSimSelect),
+	utlDEFINE_EXTENDED_AT_COMMAND("*RSAPRSP", plusRSAPRsp_params,
+				      "*RSAPRSP:<rsp type>(0-CONN_REQ,1-DISCONN_REQ,2-ATR_REQ,3-TP_REQ,4-SIM_CTRL_REQ,5-APDU_REQ),<ret code>(0-success,>0-failur),<conn status>(0-OK,1-UNABLE_TO_ESTABLISH_CONNECTION,2-MAX_MESSAGE_SIZE_NOT_SUPPORTED,3-MAX_MESSAGE_SIZE_TOO_SMALL,4-CI_SIM_BTSAP_ONGOING_CALL),<rsp data>",
+				      ciRSAPRsp, ciRSAPRsp),
+	utlDEFINE_EXTENDED_AT_COMMAND("+SIMLOCKFUSE", plusSIMLOCKFUSE_params, "+SIMLOCKFUSE=<s>", ciSIMLOCKFUSE, ciSIMLOCKFUSE),
+	utlDEFINE_EXTENDED_AT_COMMAND("+AUTOAPN", plusAUTOAPN_params, "+AUTOAPN: <mode:0/1>[,<PDP_type:IP/IPV6/IPV4V6>,<APN>[,<auth_type:0-None/1-PAP/2-CHAP>[,<username>,<password>]]]", AtDialAutoApn, AtDialAutoApn),
+	utlDEFINE_EXTENDED_AT_COMMAND("+VLAN", plusVLAN_params, "+VLAN: <enable:0/1>[,<  base-id>,[default_pdp_vlan]]", AtVlanConfig, AtVlanConfig),			
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZVLAN", plusZVLAN_params, "+ZVLAN: <enable:0/1>", AtZVlan, AtZVlan),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZVLANID", plusZVLANID_params, "+ZVLANID: <cid:1-8>,<vlan_id:0-4095>", AtZVlanID, AtZVlanID),
+
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMRSS",plusCMRSS_params, ciCMRSS, ciCMRSS, ciCMRSS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMGSS",plusCMGSS_params, ciCMGSS, ciCMGSS, ciCMGSS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMSMS",plusciCSMS_params, ciCMSMS, ciCMSMS, ciCMSMS),
+	utlDEFINE_EXTENDED_VSYNTAX_AT_COMMAND("+CMGMS",plusCMGMS_params, ciCMGMS, ciCMGMS, ciCMGMS),
+	utlDEFINE_EXACTION_AT_COMMAND("*SMSSTATUS", NULL, "*SMSSTATUS", ciSMSSTATUS),
+	utlDEFINE_EXTENDED_AT_COMMAND("*SSGLPC",  NULL,	  "*SSGLPC", ciSSGLPC, ciSSGLPC),	
+	utlDEFINE_EXTENDED_AT_COMMAND("*ANTTUNER",			plusANTTUNER_params,    "*ANTTUNER: (0-3)", ciAntennaTuner, ciAntennaTuner),
+    utlDEFINE_EXTENDED_AT_COMMAND("*WSTAT", starWSTAT_params,  "*WSTAT: (1-16)", ciGetWanStatistics, ciGetWanStatistics),
+    utlDEFINE_EXTENDED_AT_COMMAND("*WIFRATE", starWSTAT_params,  "*WIFRATE: (1-16)", ciGetWanIFRate, ciGetWanIFRate),
+    utlDEFINE_EXTENDED_AT_COMMAND("*WIFCONTIME", starWSTAT_params,  "*WIFCONTIME: (1-16)", ciGetWanConTime, ciGetWanConTime),
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1903_CI) || (defined(ATCMD_1901_CI) && !defined(CI_RELEASE_FLAG))
+    utlDEFINE_EXTENDED_AT_COMMAND("*SELECTVSIM", plusSELECTVSIM_params,    "*SELECTVSIM: <selectVsim(0-1)>[,resevered:(0-1)]", ciSelectVsim, ciSelectVsim),
+#endif
+    utlDEFINE_EXTENDED_AT_COMMAND("*AVSIM", starAVSIM_params,    "*AVSIM: <iccid>,<imsi>,<para1>,<para2>", cistarAVSIM, cistarAVSIM),
+    utlDEFINE_EXTENDED_AT_COMMAND("*DDRFREQ",			plusDDRFREQ_params,    "*DDRFREQ: (0,1)", ciDdrFreq, ciDdrFreq),
+    utlDEFINE_EXTENDED_AT_COMMAND("*L1DEBUG",  plusL1DEBUG_params,    "*L1DEBUG:<info>", ciL1Debug, ciL1Debug),
+	utlDEFINE_EXTENDED_AT_COMMAND("+ZIPPASS",  starZIPPASS_params,    "+ZIPPASS: <enable:0/1>", atZIPPASS, atZIPPASS),
+#if  defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI) || defined(ATCMD_UNIFY_CI)
+    utlDEFINE_EXTENDED_AT_COMMAND("*DSPINFO",  starDspInfo_params,    "*DSPINFO:(0-255), <dataStr>, (0-255)", ciDspInfo, ciDspInfo),
+#endif
+
+#if defined(ATCMD_1802S_CI) || defined(ATCMD_UNIFY_CI)	|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+    utlDEFINE_EXACTION_AT_COMMAND("+AOPS", NULL, "+AOPS: ", ciBandScan),
+    utlDEFINE_EXTENDED_AT_COMMAND("+AOPSCFG", starBandScan_params, "+AOPSCFG:\"scancontrol\",<RAT>,<gsmBand>,<umtsBand>,<lteBandL>,<lteBandH>,<lteBandExt>", ciBandScanCFG, ciBandScanCFG),
+#endif
+
+#ifdef LPA_SUPPORT
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTRSPSTRT", ctRspStrt_params, "+CTRSPSTRT:SMDP_ADDR,MATCHID[,FLAG]", atCtRspStrt, atCtRspStrt),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTRSPGETINFO", ctRspGetInfo_params, "+CTRSPGETINFO:QUERY_TYPE[,ICCID]", atCtRspGetInfo, atCtRspGetInfo),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTRSPPROFACT", ctRspProfAct_params, "+CTRSPPROFACT:ICCID", atCtRspProfAct, atCtRspProfAct),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CTRSPNTFYLEAB", ctRspNfyLeab_params, "+CTRSPNTFYLEAB:ICCID", atCtRspNtfyLeab, atCtRspNtfyLeab),
+	utlDEFINE_EXACTION_AT_COMMAND("+CTRSPSVN",	NULL, "+CTRSPSVN", atCtRspSvn),
+#endif
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+    utlDEFINE_EXTENDED_AT_COMMAND("*DELFBPLMN", plusDELFBPLMN_params, "at*delfbplmn: (1-3)", ciDelFbPlmn, ciDelFbPlmn),
+    utlDEFINE_EXTENDED_AT_COMMAND("*RESENDPARA", plusRESEDPARA_params, "at*resendpara:<tr1mTime>,<retramTime>,<retryNum>,<isRetryRpError>", ciResendPara, ciResendPara),
+	utlDEFINE_EXTENDED_AT_COMMAND("*COMFEATURE", plusCOMFEATURE_params, "*COMFEATURE: (0-4),(0-14), <data_string>, (1-65535), <string>", ciComFeature, ciComFeature),
+#endif
+	utlDEFINE_EXTENDED_AT_COMMAND("*SECCAP", starSECCAP_params, "*SECCAP=<nasSeccap>,<umtsRrcCAPCap>,<umtsRrcIPCcap>", ciStarSECCAP, ciStarSECCAP),
+	utlDEFINE_EXTENDED_AT_COMMAND("*REJECTCAUSE", starREJECTCAUSE_params, "*REJECTCAUSE: <cid>", ciRejectCauseReq, ciRejectCauseReq),
+	utlDEFINE_EXACTION_AT_COMMAND("*SOCTEMP", NULL, "*SOCTEMP", ciSocTemp),
+#if defined(ATCMD_UNIFY_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("*RPM", NULL, "*RPM", ciRpm, ciRpm),
+	utlDEFINE_EXTENDED_AT_COMMAND("+CFGRPMSWITCH", plusCFGRPMSWITCH_params, "+CFGRPMSWITCH: (0,1)", ciCfgRpmSwitch, ciCfgRpmSwitch),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+CFGRPMPARA", plusCFGRPMPARA_params, "+CFGRPMPARA: (0-255),(0-255),(0-255),(0-255),(0-255),(0-255)", ciCfgRpmPara, ciCfgRpmPara),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+CFGRPMCOUNTER", NULL, "+CFGRPMCOUNTER", ciCfgRpmCounter, ciCfgRpmCounter),	
+	utlDEFINE_EXTENDED_AT_COMMAND("+CFGRPMCLR", plusCFGRPMCLR_params, "+CFGRPMCLR: (0-255),(0-255),(0-255)", ciCfgRpmClr, ciCfgRpmClr),	
+#endif
+#if 0
+	utlDEFINE_EXTENDED_AT_COMMAND("+BTMAC", plusBTMAC_params, "+BTMAC=<a>[,<s>]", AtBtMAC, AtBtMAC), // write, read or delete the bluetooth MAC.
+#endif
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1802S_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("*ASRCOPS", NULL, "*ASRCOPS:", ciASRCOPS, ciASRCOPS),
+#endif
+
+#if defined(ATCMD_1901_CI)  || defined(ATCMD_1903_CI)
+#ifdef ENABLE_WIFI_SCAN
+    utlDEFINE_EXTENDED_AT_COMMAND("*WIFICTRL", starWifiCtrl_params,  "*WIFICTRL:(0-3),(1-255),(4-255),(0-255),(0-255)", ciWifiCtrl, ciWifiCtrl),
+#endif
+
+    utlDEFINE_EXTENDED_AT_COMMAND("*CDNID", plusCDNID_params, "*CDNID: (<cid>), (<DN_id>)\r\n", ciSetSmPduDnReqContainer, ciSetSmPduDnReqContainer),
+    utlDEFINE_EXTENDED_AT_COMMAND("*CAG", starCAG_params, "*CAG: (0,1,2,3)", ciCAG, ciCAG),
+    utlDEFINE_EXTENDED_AT_COMMAND("+C5GUSMS", plusC5GUSMS_params, "+C5GUSMS:(0-2),(0-1)", ciC5GUSMS, ciC5GUSMS),
+    utlDEFINE_EXTENDED_AT_COMMAND("*LOCALURSP", starLOCALURSP_params, "*LOCALURSP:(0-2),\"ursp stream\"", ciLocalUrsp, ciLocalUrsp),
+    utlDEFINE_EXTENDED_AT_COMMAND("*TSNCTRL", starTSNCTRL_params, "*TSNCTRL: <0-1>, <0,1>, <0-0xFFFFFFFF>,[<0-1>,<5,10,20,60,120,300,600>]", ciTsnCtrl, ciTsnCtrl),
+#ifdef NR_POSITION_SUPPORT
+	utlDEFINE_EXTENDED_AT_COMMAND("*POSFUN", starPOSFUN_params, "*POSFUN: (0-1),(0-3),(0-7),(1-10),(1-10),<data_string>", ciPositionFunc, ciPositionFunc),
+#endif
+#endif
+
+    utlDEFINE_EXTENDED_AT_COMMAND("*SELECTSIMSLOT", starSELECTSIMSLOT_params, "*SELECTSIMSLOT: (0,1)[,<reserved>]", ciSELECTSIMSLOT, ciSELECTSIMSLOT),
+
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1802S_CI)|| defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	utlDEFINE_EXTENDED_AT_COMMAND("*BLACKCELL", starBLACKCELL_params, "*BLACKCELL: (0-3),(0-3),<cell_info>", ciBLACKCELL, ciBLACKCELL),
+    utlDEFINE_EXTENDED_AT_COMMAND("*CSCO", starCSCO_params, "*CSCO=<offset_scell>,<offset_scell_qual>,<offset_ncell_lte>,<offset_ncell_lte_qual>,<offset_ncell_umts>,<offset_ncell_umts_qual>,<offset_ncell_gsm>", ciCSCO, ciCSCO), /* request to set cell select offest */
+#endif	
+
+#ifdef WIFI_ATCMD
+	utlDEFINE_EXTENDED_AT_COMMAND("+WIFI", plusWIFI_params, "AT+WIFI=cmdline", ciWifiCmd, ciWifiCmd), 	
+#endif
+	utlDEFINE_EXACTION_AT_COMMAND("*READVER",	NULL,  "*READVER", ciREADVER),
+    utlDEFINE_EXTENDED_AT_COMMAND("*EEH", starEEH_params, "*EEH: (0,1)", ciEEH, ciEEH),
+    utlDEFINE_EXTENDED_AT_COMMAND("*DEVTEST", starDEVTEST_params, "*DEVTEST: (0,1)", ciDevTest, ciDevTest),
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1903_CI) || (defined(ATCMD_1901_CI) && !defined(CI_RELEASE_FLAG))
+    utlDEFINE_EXTENDED_AT_COMMAND("+RDNURI", plusRDNURI_params, "AT+RDNURI=filetype,record", ciRDNURI, ciRDNURI),
+#endif    
+#if defined(ATCMD_UNIFY_CI) || defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+    utlDEFINE_EXTENDED_AT_COMMAND("*REGRW", starReg_params, "*REGRW: <op>,<mem address>[,<mem value>]", AtRegRW, AtRegRW),
+#endif    
+    utlDEFINE_EXTENDED_AT_COMMAND("*CGDATAON", starcgdataon_params, "*CGDATAON: <0-1>", ciDataON, ciDataON),
+
+#ifdef CUSTQ
+#if defined(ATCMD_1903_CI) || defined(ATCMD_1901_CI)
+#if !defined(CI_RELEASE_FLAG)
+	utlDEFINE_EXTENDED_AT_COMMAND("+QNWPREFCFG", plusqnwprefcfg_params, "+QNWPREFCFG: \"ue redcap setting\"[,(0-2)]", ciQnwPrefCfg, ciQnwPrefCfg),
+#endif
+#endif
+#endif
+
+};
+
+const utlAtCommand_T * const pshell_commands = shell_commands;
+const unsigned int shell_commands_num = utlNumberOf(shell_commands);
+
+const utlAtCommand_T proxyUnknownCmd = utlDEFINE_EXTENDED_AT_COMMAND("*PRXYUNKOWN",NULL,NULL, NULL,NULL);
+
+ATCMD_TimeOut atcmd_timeout_table[utlNumberOf(shell_commands)]={
+										{"+CCFC",	{155, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CCWA",	{155, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CGLA",	{150, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CSIM",	{150, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},										
+										{"+CFUN",	{120, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CGDATA",	{155, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CLIR",	{utlAT_AWAIT_ASYNC_TIMEOUT_TIME, 155, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CMGS",	{120, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CMGC",	{120, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CMGW",	{50, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+COPN",	{100, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+COPS",	{250, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, 250}},
+										{"+BGLTEPLMN",	{utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, 250}},
+										{"*BAND",	{60, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CGATT",	{120, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"*PSDC",	{80, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"*CGATTC",	{80, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"*CSG",	{100, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, 250}},
+										{" ",	{60, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"D",	{120, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},										
+										{"*DIALE",	{60, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}}, 									
+										{"CPLMNS",	{15, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+ZSNT",	{60, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+CNUM",	{60, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+STRESS",	{0x7fffffff, 0x7fffffff, 0x7fffffff}},
+										{"*IMSCFG",	{100, 100, 100}},
+										{"*CAG",	{100, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										{"+AOPS",	{300, 300, 300}},	
+										{"+CLCK",	{155, utlAT_AWAIT_ASYNC_TIMEOUT_TIME, utlAT_AWAIT_ASYNC_TIMEOUT_TIME}},
+										
+};
+pthread_mutex_t gTimeoutTableLock = PTHREAD_MUTEX_INITIALIZER;
+
+
+/*------------------------------------------------------------------------------*/
+int getFd(TelAtParserID sAtpIndex)
+{
+	F_ENTER(getFd);
+	if (sAtpIndex < NUM_OF_TEL_ATP)
+		return gAtpCtrl[sAtpIndex].iFd;
+	else
+		return 0;  //return to stdout
+
+	F_LEAVE(getFd1);
+}
+
+int notifyAtParser(TelAtParserID sAtpIndex, unsigned char cmd)
+{
+	int ret = -1;
+	if (sAtpIndex < NUM_OF_TEL_ATP && gAtpCtrl[sAtpIndex].iNotifyWriteEnd > 0
+		&& cmd < TEL_ATP_CMD_NUM)
+	{
+		do
+		{
+			ret = write(gAtpCtrl[sAtpIndex].iNotifyWriteEnd, &cmd, sizeof(cmd));
+		}while (ret < 0 && errno == EINTR);
+		if(ret > 0)
+			WARNMSG(notifyAtParser, "notifyAtParser: send message %d to parser_p %d\n", cmd, sAtpIndex);
+	}
+	return ret;
+}
+
+int triggerAtParser(const utlAtParser_P parser_p)
+{
+	TelAtParserID sAtpIndex;
+	int ret = -1;
+	if(parser_p == NULL)
+	{
+		ERRMSG(triggerAtParser, "triggerAtParser NULL parser pointer\n");
+		return ret;
+	}
+	sAtpIndex = *(TelAtParserID *)(parser_p->call_backs.arg_p);
+	ret = notifyAtParser(sAtpIndex, TEL_ATP_CMD_TRIGGER_PARSER);
+	return ret;
+}
+
+
+void writeATcmd2file(char *atcmd)
+{
+#if 0
+    FILE *fp = NULL;
+	static pthread_mutex_t lockfile = PTHREAD_MUTEX_INITIALIZER;
+	if (atcmd == NULL)
+		return;
+
+	pthread_mutex_lock(&lockfile);
+    fp = fopen("/tmp/atcmdrec", "w");
+    if (!fp){
+		pthread_mutex_unlock(&lockfile);
+        return;
+    }
+    
+    fprintf(fp, "%s\n", atcmd);
+    fclose(fp);
+	pthread_mutex_unlock(&lockfile);
+#endif
+}
+
+/*******************************************************************
+*  FUNCTION: atChanThread()
+*
+*  PARAMETERS:     None
+*
+*  DESCRIPTION:    This function is used to handle the AT Command Channel
+*
+*  RETURNS:
+*
+*******************************************************************/
+int  SmsMsgLen[NUM_OF_TEL_ATP] = {0};
+CHAR* SmsMsgData[NUM_OF_TEL_ATP];
+
+void ProcessAtChanThread(TelAtParserID sAtpIndex)
+{
+
+	int received = -1, fd, i = 0;
+	char buffer[TEL_AT_CMDSTR_MAX_LEN];
+	int rc;
+
+	fd_set fds;
+	int nfds = -1;
+	unsigned char ctrl_msg = 0xff;
+	int ret = -1;
+
+	/* Detach itself */
+	pthread_detach(pthread_self());
+	/* Set thread name */
+	if (sAtpIndex < TEL_SOCKET_AT_CMD_ATP_BEGIN) {
+		WARNMSG(ProcessAtChanThread10, "ProcessAtChanThread: create thread of %s							\r\n", gAtpName[sAtpIndex]);
+		prctl(PR_SET_NAME, "atcmdsrv");
+	    //prctl(PR_SET_NAME, gAtpName[sAtpIndex]);
+		/*pthread_setname_np(pthread_self(), gAtpName[sAtpIndex]);*/
+	} else {
+		char thread_name[16];
+		snprintf(thread_name, sizeof(thread_name), "%s:ATP_%d", getTelAtpDesc(sAtpIndex)->path, sAtpIndex);
+		WARNMSG(ProcessAtChanThread11, "ProcessAtChanThread: create thread of %s							\r\n", thread_name);
+		prctl(PR_SET_NAME, "atcmdsrv");
+		/*pthread_setname_np(pthread_self(), thread_name);*/
+		//prctl(PR_SET_NAME, thread_name);
+	}
+
+	fd = getFd(sAtpIndex);
+
+	// Init PS status veriables
+	gAtpCtrl[sAtpIndex].psQueryAllCid = FALSE;
+	gAtpCtrl[sAtpIndex].psCurrCid = CI_PS_MAX_MO_AND_MT_PDP_CTX_NUM;
+	
+	// make sure notify pipe is empty before entering loop
+	do
+	{
+		ret = read(gAtpCtrl[sAtpIndex].iNotifyReadEnd, &ctrl_msg, sizeof(ctrl_msg));
+	}while ((ret > 0) || (ret < 0 && errno == EINTR));
+
+	while (1)
+	{
+		received = -1;
+		nfds = -1;
+
+		/*
+		 * Receive message
+		 */
+		//DBGMSG(ProcessAtChanThread, "ProcessAtChanThread reading handle: %d, parser_p: %d.\n",  fd, sAtpIndex);
+		FD_ZERO(&fds);
+		FD_SET(fd, &fds);
+		if(fd > nfds)
+			nfds = fd;
+
+		FD_SET(gAtpCtrl[sAtpIndex].iNotifyReadEnd, &fds);
+		if(gAtpCtrl[sAtpIndex].iNotifyReadEnd > nfds)
+			nfds = gAtpCtrl[sAtpIndex].iNotifyReadEnd;
+
+		rc = select(nfds + 1, &fds, NULL, NULL, NULL); // block until a byte is received
+		if (rc <= 0)
+		{
+			WARNMSG(ProcessAtChanThread1, "****Select returned %d atp=%d\r\n", rc, sAtpIndex);
+		}
+
+		ctrl_msg = 0xff;
+
+		if(FD_ISSET(gAtpCtrl[sAtpIndex].iNotifyReadEnd, &fds))
+		{
+			do
+			{
+				ret = read(gAtpCtrl[sAtpIndex].iNotifyReadEnd, &ctrl_msg, sizeof(ctrl_msg));
+			}while (ret < 0 && errno == EINTR);
+
+			if(ret > 0)
+			{
+				//DBGMSG(ProcessAtChanThread2, "ProcessAtChanThread: parser_p %d receive control message: %d\n", sAtpIndex, ctrl_msg);
+			}
+		}
+
+		if((ctrl_msg == TEL_ATP_CMD_EXIT_CHAN)
+#ifdef AT_PRODUCTION_CMNDS
+			|| (ctrl_msg == TEL_ATP_CMD_EXIT_CHAN_AND_START_DIAG)
+#endif
+		  ) // exit channel
+		{
+			break;
+		}
+		else if(ctrl_msg == TEL_ATP_CMD_TRIGGER_PARSER && !FD_ISSET(fd, &fds))
+		{
+			unsigned char null_buf[1];
+
+			//DBGMSG(ProcessAtChanThread3, "ProcessAtChanThread: parser_p %d run atparser to process next command\n", sAtpIndex);
+			utlAtParse(aParser_p[sAtpIndex], null_buf, 0);
+			continue;
+		}
+		else if(!FD_ISSET(fd, &fds))
+		{
+			// incorrect message, ignore it
+			continue;
+		}
+
+		memset(buffer, 0x00, TEL_AT_CMDSTR_MAX_LEN);
+		received = read(fd, buffer, TEL_AT_CMDSTR_MAX_LEN);
+		ERRMSG(ProcessAtChanThread4, "ATP %d receveid: %d:\n", sAtpIndex, received);
+
+		//dbg_dump_string("AT CMD (string)", buffer, received);
+		//dbg_dump_buffer("AT CMD (buffer)", buffer, received);
+		/*
+		 * Send bytes and check for more incoming data in loop
+		 */
+		if (received > 0)
+		{
+			if ( gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode != TEL_MSG_DATA_NONE )
+			{
+				ERRMSG(ProcessAtChanThread5, "Currently in SmsDataEntryMode.\n");
+				// loop thru the buffer
+				if(!SmsMsgData[sAtpIndex])
+				{
+					//INFOMSG(ProcessAtChanThread5, "%s:sAtpIndex[%d] enter SmsDataEntryMode,need malloc buffer", __func__, sAtpIndex);
+					SmsMsgData[sAtpIndex] = malloc(TEL_AT_CMDSTR_MAX_LEN + 2);
+					if(!SmsMsgData[sAtpIndex])
+					{
+						INFOMSG(ProcessAtChanThread60, "%s:sAtpIndex[%d] enter SmsDataEntryMode, malloc buffer failed", __func__, sAtpIndex);
+                        gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode = TEL_MSG_DATA_NONE;
+						continue;
+					}
+					memset(SmsMsgData[sAtpIndex], 0, TEL_AT_CMDSTR_MAX_LEN + 2);
+				}
+				
+				for (i = 0; i < received; i++)
+				{
+					if((SmsMsgData[sAtpIndex] == NULL) && (gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_NONE))
+					{
+						ERRMSG(ProcessAtChanThread9, "%s:buffer was freed,need exit sms data mode.", __func__);
+						break;
+					}
+						
+					switch (buffer[i])
+					{
+
+					case 0x1a:   //control-z
+//					case 'z': //[Jerry] temp test
+					{
+						if ((gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CMGS) ||
+							(gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CMGC) ||
+							(gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CMGW))
+						{
+                                CHAR *convertBuf = NULL;
+                                UINT16 convertBufLength = 0;
+								AtciCharacterSet *pchset_type = NULL;
+								UINT32 reqHandle = gSendMsgReqHandle[sAtpIndex];
+								int phoneNum = 0;
+								BOOL *pImsRegState = NULL;
+								
+
+								
+								if (!isTelAtpCurrentForSIM2(sAtpIndex)) {
+									reqHandle = gSendMsgReqHandle[sAtpIndex];									
+									pchset_type = &chset_type[sAtpIndex];
+									pImsRegState = &gImsRegState;
+								}
+								else{
+									reqHandle = gSendMsgReqHandle_1[sAtpIndex];										
+									pchset_type = &chset_type_1[sAtpIndex];
+									pImsRegState = &gImsRegState_1;
+								}
+
+								AtciSmsFormatMode smsFormatMode = gSmsFormatMode[sAtpIndex] & (~ATCI_SMS_FORMAT_TXT_MODE_SHOW_MASK);
+								if((smsFormatMode == ATCI_SMS_FORMAT_TXT_MODE) && (checkDataValidity(SmsMsgData[sAtpIndex], SmsMsgLen[sAtpIndex], pchset_type) == FALSE) )
+								{
+									//ERRMSG(ProcessAtChanThread6,"%s:pImsRegState %d", __func__, *pImsRegState);
+
+									if((*pImsRegState == TRUE) && (gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode != TEL_MSG_DATA_CMGW))
+									{
+										ims_sms_data_invalid_report_error = TRUE;
+										ciSendMsgAfterEsc(sAtpIndex, gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode); /* Cancel data mode in proxy interface */
+									}
+									else
+									    ATRESP( reqHandle, ATCI_RESULT_CODE_CMS_ERROR, CMS_INVALID_TEXT_MODE_PARA, NULL);
+
+									//ERRMSG(ProcessAtChanThread7,"%s: pSendMsgReqHandle %d, sim%d", __func__, reqHandle, (sAtpIndex > TEL_AT_CMD_ATP_36) ); 				
+
+		        					memcpy(&(gAtpCtrl[sAtpIndex].pTelAtpDataEntry), &sTelAtpDataEntry, sizeof(TelAtpDataEntry));
+									gCurrentSmsDataMode = TEL_MSG_DATA_NONE;
+	        						SmsMsgLen[sAtpIndex] = 0;
+									if(SmsMsgData[sAtpIndex] != NULL)
+									{
+										free(SmsMsgData[sAtpIndex]);
+										SmsMsgData[sAtpIndex] = NULL;
+									}
+	                                memset(buffer, 0, TEL_AT_CMDSTR_MAX_LEN);	
+									
+									continue;
+								}					
+                                convertBuf =  MSG_ConvertfromCscsStr(sAtpIndex, SmsMsgData[sAtpIndex], SmsMsgLen[sAtpIndex], (UINT16*)&convertBufLength);
+                                if(convertBuf == NULL)
+        						    ciSendMsgAfterCtrlZ( sAtpIndex, SmsMsgData[sAtpIndex], SmsMsgLen[sAtpIndex], gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode );
+                                else
+                                {
+									//update SmsMsgLen and SmsMsgData with converted str 
+									SmsMsgLen[sAtpIndex] = convertBufLength;
+									memset(SmsMsgData[sAtpIndex], 0, TEL_AT_CMDSTR_MAX_LEN);
+									memcpy(SmsMsgData[sAtpIndex], convertBuf, convertBufLength);
+                                    ciSendMsgAfterCtrlZ( sAtpIndex, convertBuf, convertBufLength, gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode);
+                                }
+        						gCurrentSmsDataMode = TEL_MSG_DATA_NONE;
+							
+								memcpy(&(gAtpCtrl[sAtpIndex].pTelAtpDataEntry), &sTelAtpDataEntry, sizeof(TelAtpDataEntry));
+                                if(convertBuf != NULL)
+                                {
+                                    free(convertBuf);
+                                    convertBuf = NULL;
+                                }
+								
+                                memset(buffer, 0, TEL_AT_CMDSTR_MAX_LEN);
+        					    i = received;
+						}
+						else if (gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CNMA)
+						{
+							ciNewMsgAckAfterCtrlZ( gAtpCtrl[sAtpIndex].pTelAtpDataEntry.reqHandle, SmsMsgData[sAtpIndex], SmsMsgLen[sAtpIndex],
+								gAtpCtrl[sAtpIndex].pTelAtpDataEntry.cnmaReply, gAtpCtrl[sAtpIndex].pTelAtpDataEntry.cnmaFlag);
+							memcpy(&(gAtpCtrl[sAtpIndex].pTelAtpDataEntry), &sTelAtpDataEntry, sizeof(TelAtpDataEntry));
+							SmsMsgLen[sAtpIndex] = 0;
+							gCurrentSmsDataMode = TEL_MSG_DATA_NONE;
+							if(SmsMsgData[sAtpIndex] != NULL)
+							{
+								free(SmsMsgData[sAtpIndex]);
+								SmsMsgData[sAtpIndex] = NULL;
+							}
+							memset(buffer, 0, TEL_AT_CMDSTR_MAX_LEN);
+							i = received;
+						}
+						break;
+					}
+
+					case 0x1b:  //escape
+					{
+						//if ((gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CMGS) ||
+							//(gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode == TEL_MSG_DATA_CMGW))
+						{
+							ciSendMsgAfterEsc(sAtpIndex, gAtpCtrl[sAtpIndex].pTelAtpDataEntry.smsDataEntryMode);
+							memcpy(&(gAtpCtrl[sAtpIndex].pTelAtpDataEntry), &sTelAtpDataEntry, sizeof(TelAtpDataEntry));
+							SmsMsgLen[sAtpIndex] = 0;
+							free(SmsMsgData[sAtpIndex]);
+							SmsMsgData[sAtpIndex] = NULL;
+							memset(buffer, 0, TEL_AT_CMDSTR_MAX_LEN);
+							i = received;
+						}
+						break;
+					}
+					/* only skip "\r\n" for SMS PDU mode */
+					case 0x0a:
+                    case 0x0d:
+                        if (getSmsFormatModeWithAtpIndex(sAtpIndex) == ATCI_SMS_FORMAT_PDU_MODE)
+                            break;
+					default:
+    					{
+							if(SmsMsgLen[sAtpIndex] < (TEL_AT_CMDSTR_MAX_LEN-1))
+							{
+    							/* Copy SMS PDU one byte each time */
+    							memcpy(SmsMsgData[sAtpIndex] + SmsMsgLen[sAtpIndex], buffer + i, 1);
+    							SmsMsgLen[sAtpIndex]++;
+							}
+
+    						break;
+    					}
+					}       // end switch
+				}               // end for loop
+			}
+			else
+			{
+
+				
+				/*
+				 *  Parse the Data to AT parser
+				 */
+#ifdef AT_CONFIG_P701
+				if(gModemAtp < 0) {
+					char *p = strstr(buffer, "AT*APPOWERIND=1;+CMEE=2");
+					if (p)
+						gModemAtp = sAtpIndex;
+				} else {
+					if (gModemAtp == sAtpIndex)
+						gNumofAT++;
+				}
+#endif				
+				writeATcmd2file(buffer);
+				ERRMSG(ProcessAtChanThread8, "[ProcessAtChanThread](length=%d):%s\n", received, buffer);
+				ret = utlAtParse(aParser_p[sAtpIndex], (unsigned char *)buffer, received);
+				if(utlSUCCESS != ret)
+				{
+					ERRMSG(ProcessAtChanThread10, "[AT FAIL][%d] %s failed, ret %d",sAtpIndex,buffer,ret);
+
+					//uart_printf("[AT FAIL][%d] %s failed, ret %d\r\n",sAtpIndex,buffer,ret);
+				}
+
+				memset(buffer, 0, TEL_AT_CMDSTR_MAX_LEN);
+			}
+
+		} else if (sAtpIndex >= TEL_SOCKET_AT_CMD_ATP_BEGIN) {
+			if (received == 0 || !(errno == EAGAIN || errno == EINTR))
+				break;
+		}
+	}
+	clearPdpContextOwner(sAtpIndex);
+	close(gAtpCtrl[sAtpIndex].iFd);
+	gAtpCtrl[sAtpIndex].iFd = -1;
+	gAtpCtrl[sAtpIndex].bEnable = FALSE;
+
+   //reset channel ID for IMS
+	if(sAtpIndex == gProxyChannelId)
+		gProxyChannelId = NUM_OF_TEL_ATP;	
+	
+#ifdef AT_PRODUCTION_CMNDS
+	if(sAtpIndex == TEL_PROD_AT_CMD_ATP)
+	{
+		//DBGMSG(ProcessAtChanThread7, "ProcessAtChanThread: production at channel closed\n");
+		if(ctrl_msg == TEL_ATP_CMD_EXIT_CHAN_AND_START_DIAG)
+			diagStartFromAT(start_at_cmd_srv);
+	}
+#endif
+}
+
+TelAtpDesc* TelAtpId2Desc(TelAtParserID atpId)
+{
+	unsigned int i;
+	for(i = 0; i < sizeof(gTelAtpDescConfig) / sizeof(gTelAtpDescConfig[0]); i++)
+	{
+		if(gTelAtpDescConfig[i].index == atpId)
+			return (gTelAtpDescConfig + i);
+	}
+	return NULL;
+}
+
+TelAtpDesc* getTelAtpDesc(TelAtParserID atpId)
+{
+	return gAtpCtrl[atpId].pTelAtpDesc;
+}
+
+SIMID getSharedTelAtpCurrentTargetSIM(TelAtParserID atpId)
+{
+	TelAtpCtrl *atp = &gAtpCtrl[atpId];
+	TelAtpDesc *pTelAtpDesc = atp->pTelAtpDesc;
+	if(pTelAtpDesc == NULL)
+		return SIMID_NUM;
+	if(pTelAtpDesc->targetSim != DUAL_SIM)
+		return SIMID_NUM;
+	return atp->currentTargetSim;
+}
+
+int setSharedTelAtpCurrentTargetSIM(TelAtParserID atpId, SIMID simId)
+{
+	if(simId != SIM1 && simId != SIM2)
+		return -1;
+
+	TelAtpCtrl *atp = &gAtpCtrl[atpId];
+	TelAtpDesc *pTelAtpDesc = atp->pTelAtpDesc;
+	if(pTelAtpDesc == NULL)
+		return -1;
+
+	if(pTelAtpDesc->targetSim != DUAL_SIM)
+		return -1;
+
+	atp->currentTargetSim = simId;
+	return 0;
+}
+
+BOOL isTelAtpCurrentForSIM2(TelAtParserID atpId)
+{
+	return gAtpCtrl[atpId].currentTargetSim == SIM2;
+}
+
+int switchMasterAtpCurrentSim(SIMID simId)
+{
+	int i;
+	for(i = 0; i < NUM_OF_TEL_ATP; i++)
+	{
+		TelAtpCtrl *atp = &gAtpCtrl[i];
+		TelAtpDesc *pTelAtpDesc = atp->pTelAtpDesc;
+		if(pTelAtpDesc && pTelAtpDesc->targetSim == MASTER_SIM)
+			atp->currentTargetSim = simId;
+	}
+	return 0;
+}
+
+static SIMID getInitialSimId(AtpSimType atpSimType)
+{
+	switch (atpSimType) {
+		case SIM2_ONLY:
+			return SIM2;
+		case MASTER_SIM:
+			return isSim2Master() ? SIM2 : SIM1;
+		default:
+			return SIM1;
+	}
+}
+
+static utlReturnCode_T acceptClient(const utlEventHandlerType_T handler_type UNUSED,
+			      const utlEventHandlerType_T event_type UNUSED,
+			      const int sock,
+			      const utlRelativeTime_P2c period_p UNUSED,
+			      void                  *arg_p UNUSED)
+{
+	struct sockaddr addr;
+	socklen_t alen = sizeof(addr);
+	int fd = accept(sock, &addr, &alen);
+	if (fd < 0) {
+		ERRMSG(acceptClient, "Fail to accept Socket: %s", strerror(errno));
+		return utlFAILED;
+	}
+	if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) {
+		ERRMSG(acceptClient1, "Error setting O_NONBLOCK errno:%s", strerror(errno));
+	}
+
+	TelAtpCtrl* atp = NULL;
+	int i;
+	for (i = TEL_SOCKET_AT_CMD_ATP_BEGIN; i < NUM_OF_TEL_ATP; i++) {
+		atp = &gAtpCtrl[i];
+		if (!atp->bEnable && atp->iFd < 0)
+			break;
+	}
+	if (i >= NUM_OF_TEL_ATP) {
+		ERRMSG(acceptClient2, "No free ATP to accept socket\n");
+		close(fd);
+		return utlFAILED;
+	}
+	atp->pTelAtpDesc = (TelAtpDesc *)arg_p;
+	atp->currentTargetSim = getInitialSimId(atp->pTelAtpDesc->targetSim);
+	atp->iFd = fd;
+
+    if (aParser_p[atp->index] == NULL)
+        tcInitAtParser(&atp->index);
+
+	int status  = pthread_create(&atp->taskRef, NULL,
+				(void *)ProcessAtChanThread, (void *)(long)i);
+	if (status)
+	{
+		close(atp->iFd);
+		atp->iFd = -1;
+		ERRMSG(acceptClient3, "Thread Create Error!\n");
+		return utlFAILED;
+	}
+
+	atp->bEnable = TRUE;
+	
+	return utlSUCCESS;
+}
+
+void initAtPara(void)
+{
+    WARNMSG(initAtPara1,"%s: enter\n", __FUNCTION__);
+    int i=0;
+
+    memset(chset_type, ATCI_CHSET_IRA, NUM_OF_TEL_ATP);
+    memset(chset_type_1, ATCI_CHSET_IRA, NUM_OF_TEL_ATP);
+
+    memset(isGsmChset, 0, NUM_OF_TEL_ATP);
+    memset(isGsmChset_1, 0, NUM_OF_TEL_ATP);
+
+    for(i=0; i<8; i++)
+    {
+        gProxySmsSegment[i] = NULL;
+        gProxySmsSegment_1[i] = NULL;
+
+        memset(gProxySmsSegmentLen, 0, 8);
+        memset(gProxySmsSegmentLen_1, 0, 8);        
+    }
+
+	gExtendedSignal.Rxlev = 99;
+	gExtendedSignal.Ber = 99;
+	gExtendedSignal.Rscp = 255;
+	gExtendedSignal.Ecno = 255;
+	gExtendedSignal.Rsrp = 255;
+	gExtendedSignal.Rsrq = 255;
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)
+	gExtendedSignal.ssRSRP = 255;
+	gExtendedSignal.ssRSRQ = 255;
+	gExtendedSignal.ssSINR = 255;
+#endif
+
+	gExtendedSignal_1.Rxlev = 99;
+	gExtendedSignal_1.Ber = 99;
+	gExtendedSignal_1.Rscp = 255;
+	gExtendedSignal_1.Ecno = 255;
+	gExtendedSignal_1.Rsrp = 255;
+	gExtendedSignal_1.Rsrq = 255;
+#if defined(ATCMD_1901_CI) || defined(ATCMD_1903_CI)			
+	gExtendedSignal_1.ssRSRP = 255;
+	gExtendedSignal_1.ssRSRQ = 255;
+	gExtendedSignal_1.ssSINR = 255;	
+#endif	
+	for(i=0; i<NUM_OF_TEL_ATP; i++)
+	{
+        SmsMsgData[i] = NULL;
+		SmsMsgLen[i] = 0;
+
+		gCurrOperation[i] = AT_MSG_OPERATION_NULL;
+		gCurrOperation_1[i] = AT_MSG_OPERATION_NULL;		
+
+		gSmsFormatMode[i] = ATCI_SMS_FORMAT_PDU_MODE;		
+	}
+}
+
+static int createSocket(const char *name)
+{
+	struct sockaddr_un addr;
+	int fd, ret;
+	char *secon;
+
+	fd = socket(AF_UNIX, SOCK_STREAM, 0);
+	if (fd < 0) {
+		ERRMSG(createSocket, "Failed to open socket '%s': %s\n", name, strerror(errno));
+		return -1;
+	}
+
+	memset(&addr, 0 , sizeof(addr));
+	addr.sun_family = AF_UNIX;
+	snprintf(addr.sun_path, sizeof(addr.sun_path), "/tmp/%s", name);
+
+	ret = unlink(addr.sun_path);
+	if (ret != 0 && errno != ENOENT) {
+		ERRMSG(createSocket1, "Failed to unlink old socket '%s': %s\n", name, strerror(errno));
+		goto out_close;
+	}
+
+	ret = bind(fd, (struct sockaddr *) &addr, sizeof (addr));
+	if (ret) {
+		ERRMSG(createSocket2, "Failed to bind socket '%s': %s\n", name, strerror(errno));
+		goto out_unlink;
+	}
+
+	ret = listen(fd, 4);
+	if (ret < 0) {
+		ERRMSG(createSocket3, "Failed to listen on socket '%s': %s", name, strerror(errno));
+		goto out_unlink;
+	}
+	ret = chmod(addr.sun_path, 0666);
+	if (ret < 0) {
+		ERRMSG(createSocket4, "Failed to chmod on socket '%s': %s", name, strerror(errno));
+		goto out_unlink;
+	}
+
+	//DBGMSG(createSocket5, "Created socket '%s' ", addr.sun_path);
+
+	return fd;
+
+out_unlink:
+	unlink(addr.sun_path);
+out_close:
+	close(fd);
+	return -1;
+}
+
+static void startSocketListeners(void)
+{
+	static TelAtpDesc disc[] = {
+		DEFINE_SIM1_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmd", FALSE),
+		DEFINE_SIM1_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdni", FALSE),
+		DEFINE_SIM1_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdni1", FALSE),
+		DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdm", FALSE),
+#ifndef BIONIC	/* No DSDS in NZ3*/
+		DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdmni", FALSE),
+#else
+		DEFINE_MASTER_SIM_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdmni", FALSE),
+#endif /* BIONIC */
+
+#ifndef BIONIC	// No DSDS in NZ3
+        DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "gsmtty4", FALSE),
+#else
+        DEFINE_MASTER_SIM_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "gsmtty4", FALSE),
+#endif // BIONIC 
+
+#ifdef ADDITIONAL_MODEM_DEVICE
+                DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdmni1", FALSE),
+#endif
+#ifdef UART2_AT
+		DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdttyS1", FALSE),
+#endif
+
+#ifdef PPP_PSEUDO_DEVICE
+                DEFINE_MASTER_SIM_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdpts", FALSE),
+#endif
+                DEFINE_MASTER_SIM_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdtest", FALSE),
+#ifdef LPA_SUPPORT
+                DEFINE_SIM1_NO_INDICATION_CHANEL_DESC(TEL_SOCKET_AT_CMD_ATP_BEGIN, "atcmdLpa", FALSE),
+#endif
+	};
+
+	unsigned int i;
+	for (i = 0; i < sizeof(disc) / sizeof(disc[0]); i++) {
+		TelAtpDesc* pd = &disc[i];
+		int sock = createSocket(pd->path);
+		if (sock >= 0) {
+			(void)utlSetFdEventHandler(utlEVENT_HANDLER_TYPE_READ,
+					utlEVENT_HANDLER_PRIORITY_MEDIUM,
+					sock, acceptClient, pd);
+		}
+	}
+}
+
+BOOL tcInit( char * ext_serial_path)
+{
+	int status;
+	int i, j, k,imsChannel;
+	void *taskStack;
+	BOOL bIsDualSim = isDualSimSolution();
+	BOOL bIsSim2Master = isSim2Master();
+	TelAtpDesc *pTelAtpDesc;
+
+	F_ENTER(tcInit0);
+
+	//
+	// Init Variable
+	//
+	utlUpdateTelModeFromProperty();
+	uci_AT_ctx_get();
+
+	for ( i = 0; i < NUM_OF_TEL_ATP; i++)
+	{
+		int fd[2];
+		gAtpCtrl[i].bEnable = FALSE;
+		gAtpCtrl[i].iFd = -1;
+		gAtpCtrl[i].index = i;
+		gAtpCtrl[i].AtpIndEnable = 1;
+		memcpy(&(gAtpCtrl[i].pTelAtpDataEntry), &sTelAtpDataEntry, sizeof(TelAtpDataEntry));
+		if (i < TEL_SOCKET_AT_CMD_ATP_BEGIN) {
+			gAtpCtrl[i].pTelAtpDesc = TelAtpId2Desc(gAtpCtrl[i].index);
+			if(gAtpCtrl[i].pTelAtpDesc == NULL)
+			{
+				ERRMSG(tcInit, "tcInit: !!!!!!!!fail to get AT channel desc, %d", i);
+				return FALSE;
+			}
+			gAtpCtrl[i].currentTargetSim = getInitialSimId(gAtpCtrl[i].pTelAtpDesc->targetSim);
+		}
+		if(pipe(fd) < 0)
+		{
+			ERRMSG(tcInit1, "tcInit: create pipe error: %s", strerror(errno));
+			return FALSE;
+		}
+
+		gCurrentCgerepMode[i] = 2;
+		gRequestCgerepMode[i] = 2;
+		
+		gAtpCtrl[i].iNotifyReadEnd = fd[0];
+		gAtpCtrl[i].iNotifyWriteEnd = fd[1];
+		(void)fcntl(gAtpCtrl[i].iNotifyReadEnd, F_SETFL, O_NONBLOCK);
+	}
+	getTelAtpDesc(TEL_ESP_AT_CMD_ATP)->path = ext_serial_path;
+
+	/*
+	 *  Create thread to read each port, 40 means "(null)"
+	 */
+	for(i = 0; i < TEL_SOCKET_AT_CMD_ATP_BEGIN; i++)
+	{
+		char *path;
+		pTelAtpDesc = getTelAtpDesc(i);
+
+
+#ifdef AT_PRODUCTION_CMNDS
+		if((i == TEL_PROD_AT_CMD_ATP) || (ap_only && pTelAtpDesc->apOnly == FALSE) ||
+#else
+		if((ap_only && pTelAtpDesc->apOnly == FALSE) ||
+#endif
+			(!bIsDualSim && pTelAtpDesc->targetSim == SIM2_ONLY))
+			continue;
+
+		path = pTelAtpDesc->path;
+		if(path == NULL || path[0] == 40)
+			continue;
+		//DBGMSG(tcInit2, "Setting up for AT Command Channel: %d,%s\n", i, gAtpName[i]);
+
+		if (i == TEL_ESP_AT_CMD_ATP)
+			tcOpenExtSerialPort(&gAtpCtrl[i].iFd, path, O_RDWR | O_NOCTTY);
+		else
+			tcOpenDevice(&gAtpCtrl[i].iFd, path, O_RDWR | O_NOCTTY );
+
+		if (gAtpCtrl[i].iFd <= 0)
+			return FALSE;
+
+		tcInitAtParser(&gAtpCtrl[i].index);
+
+		status  = pthread_create(&gAtpCtrl[i].taskRef, NULL,
+					(void *)ProcessAtChanThread, (void *)(long)i);
+		if (status)
+		{
+			ERRMSG(tcInit3, "Thread Create Error!\n");
+			return FALSE;
+		}
+
+		gAtpCtrl[i].bEnable = TRUE;
+	}
+
+      loadPSRegOptionSetting();
+	initAtPara();
+	
+#ifndef NO_AUDIO
+#ifdef ECALL_SUPPORT	   
+	//restoreMsd(&gMsdCfg);
+#endif
+#endif
+	startSocketListeners();
+	F_LEAVE(tcInit4);
+	return TRUE;
+}
+
+BOOL tcInitAtParser( TelAtParserID * sAtpIndex )
+{
+
+	F_ENTER(tcInitAtParser0);
+	int index = *sAtpIndex;
+	//DBGMSG(tcInitAtParser, "ATP Index: %d.\n", index);
+
+#if defined (BIONIC)
+	property_get("ro.atm.id", ATM_ID, "ASR");
+	property_get("ro.atm.manufacturer.id", ATM_MANUFACTURER_ID, "ASR");
+	property_get("ro.product.device", ATM_MODEL_ID, "LINUX");
+#endif
+
+	/* Enable AT Parser*/
+	/*
+	 *  Opens a new AT command parser with the array of utlAtCommand_T structures
+	 */
+	if ((aParser_p[index] = utlOpenAtParser(shell_commands,
+						utlNumberOf(shell_commands), sAtpIndex)) == NULL)
+	{
+		ERRMSG(tcInitAtParser1, "tcInitAtParser: utlOpenAtParser(%d) failed\n", index);
+		return FALSE;
+	}
+
+	//
+	//  Set the reply handler function
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_REPLY_HANDLER, atParserShellReplyFunction) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser2, "Cannot set reply handler\n");
+		return FALSE;
+	}
+
+	//
+	//  Set the AT command timeout value setting handler function
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_GET_ATCMD_TIMEOUT_VALUE_HANDLER, atParserGetAtcmdTimeoutValue) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser3, "Cannot set get AT command timeout value handler\n");
+		return FALSE;
+	}
+
+	//
+	//  Set the AT command tineout error handler function
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_ATCMD_TIMEOUT_ERROR_HANDLER, atParserAtcmdTimeoutError) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser4, "Cannot set AT command timeout error handler\n");
+		return FALSE;
+	}
+
+#ifdef ATCMD_CONTINUOUS_TIMEOUT_RECOVERY
+	//
+	//  Set the AT command continuous tineout handler function
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_ATCMD_CONTINUOUS_TIMEOUT_HANDLER, atParserAtcmdContinuousTimeout) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser5, "Cannot set AT command continuous timeout value handler\n");
+		return FALSE;
+	}
+#endif
+	//
+	//  Set the AT parser trigger handler function
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_AT_PARSER_TRIGGER_HANDLER, triggerAtParser) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser6, "Cannot set AT parser trigger handler\n");
+		return FALSE;
+	}
+
+	/*
+	   //
+	   // Set the sParameter Function
+	   //
+	   if (utlAtParserOp(aParser_p[*sAtpIndex], utlAT_PARSER_OP_SET_S_PARAMETER_HANDLER, sParameterFunction) != utlSUCCESS) {
+	   fprintf(stderr, "atParserShell: utlAtParserOp(1.2) failed\n");
+	   return false;
+	   }
+
+	   //
+	   // Set the Driver Request handler
+	   //
+	   if (utlAtParserOp(aParser_p[*sAtpIndex], utlAT_PARSER_OP_SET_DRIVER_REQUEST_HANDLER, driverRequestFunction) != utlSUCCESS) {
+	   fprintf(stderr, "atParserShell: utlAtParserOp(1.3) failed\n");
+	   return false;
+	   }
+	 */
+
+	//
+	// Set ECHO mode
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_ECHO_OFF) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser7, "Cannot turn off ECHO\n");
+		return FALSE;
+	}
+
+	//
+	// Set the AT Parser ID Name
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_ID, ATM_ID) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser8, "Set AT Parser ID Name Error\n");
+		return FALSE;
+	}
+
+	//
+	// Set the Manufacturer ID
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_MANUFACTURER, ATM_MANUFACTURER_ID) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser9, "Set Manufacturer ID Error\n");
+		return FALSE;
+	}
+
+	//
+	// Set Model ID
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_MODEL, ATM_MODEL_ID) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser10, "Set Model ID Error\n");
+		return FALSE;
+	}
+
+	//
+	// Set Revision ID
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_REVISION, ATM_REVISION_ID) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser11, "Set Revision ID Error\n");
+		return FALSE;
+	}
+
+	//
+	// Set serial number
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_SERIAL_NUMBER, ATM_SERIAL_NUMBER) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser12, "Set Serial Number Error\n");
+		return FALSE;
+	}
+
+	//
+	// Set the object ID
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_OBJECT_ID, ATM_OBJ_ID) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser13, "utlAtParserOp(1.10) failed\n");
+		return FALSE;
+	}
+
+	//
+	// Set Country Code
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_COUNTRY_CODE, ATM_COUNTRY_CODE) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser14, "Set Country Code Error\n");
+		return FALSE;
+	}
+
+	//
+	// Get auto answer delay
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_GET_AUTO_ANSWER_DELAY, PARSER_GET_AUTO_ANSWER_DELAY) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser15, "Get auto answer delay error\n");
+		return FALSE;
+	}
+
+	//
+	// Set auto answer delay
+	//
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_AUTO_ANSWER_DELAY, PARSER_SET_AUTO_ANSWER_DELAY) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser16, "Set auto answer delay error\n");
+		return FALSE;
+	}
+
+	//
+	// Update auto answer setting in global variable
+	//
+// #if defined (BIONIC)
+	{
+		char prop_auto_answare[PROPERTY_VALUE_MAX]  = {'\0'};
+
+		if(isTelAtpCurrentForSIM2(index))
+		{
+			property_get("persist.radio.sim2.auto_answer",prop_auto_answare,"false");
+		}
+		else
+		{
+			property_get("persist.radio.sim1.auto_answer",prop_auto_answare,"false");
+		}
+
+		if ( strcmp(prop_auto_answare, "true") == 0)
+		{
+			if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_S_PARAMETER_VALUE, utlAT_AUTO_ANSWER, 1) != utlSUCCESS)
+			{
+				ERRMSG(tcInitAtParser17, "Set auto answer delay error\n");
+				return FALSE;
+			}
+		}
+	}
+// #endif
+
+	//set proxy call back function
+
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_AT_PARSER_PROXY_CB, createStringToProxy) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser18, "Set sendToProxy CB error\n");
+		return FALSE;
+	}
+
+	//set call back function to find if proxy request
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_IS_PROXY_REQ_CB, utlIsProxyReq) != utlSUCCESS)
+	{
+	  ERRMSG(tcInitAtParser19, "Set isProxy CB error\n");
+	  return FALSE;
+	}
+
+	//set proxy call back function for timeout counter handling
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_INC_PROXY_TO_COUNTER_CB, utlIncProxyTimeoutCounter) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser20, "Set INC_PROXY_TO_COUNTER_CB error\n");
+		return FALSE;
+	}
+
+	//set ptr to cmd struct handling proxy unknown cmds
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_PRXY_ONLY_CMD_PTR, &proxyUnknownCmd) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser21, "Set SET_PRXY_ONLY_CMD_PTR  error\n");
+		return FALSE;
+	}
+
+	//set callback function to proxy esc
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_PRXY_ESC_CB, &proxyEsc) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser22, "Set proxy_esc_CB    				  error\n");
+		return FALSE;
+	}
+
+	//callback function to clear sms datamode
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_CLEAR_SMS_DATDAMODE_CB, &clearSmsDataMode) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser23, "set clear_sms_datamode_CB     				  error\n");
+		return FALSE;
+	}
+
+	//callback function to clear sms_over_nas
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_CLEAR_SMS_OVER_NAS_CB, &clearSmsoverNas) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser24, "set sms_over_nas_CB     				  error\n");
+		return FALSE;
+	}
+	
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_SET_CHECK_SMS_PARA_CB, &checkSmsPara) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser25, "Set checkSmsPara CB error\n");
+		return FALSE;
+	}
+
+	if (utlAtParserOp(aParser_p[index], utlAT_PARSER_OP_CONVERT_ATCMD_STR_CB, &convertAtcmdStr) != utlSUCCESS)
+	{
+		ERRMSG(tcInitAtParser25, "Set checkSmsPara CB error\n");
+		return FALSE;
+	}
+
+	F_LEAVE(tcInitAtParser24);
+	return TRUE;
+}
+
+BOOL tcOpenExtSerialPort(int *fd, char * serial_path, int flag )
+{
+
+	F_ENTER(tcOpenExtSerialPort0);
+
+	tcOpenDevice(fd, serial_path, flag);
+
+	if (*fd < 0)
+	{
+		F_LEAVE(tcOpenExtSerialPort);
+		return FALSE;
+	}
+
+
+	/*
+	 *  The following will handle the physical serial port setting
+	 */
+
+	struct termios tio;       //place for old and new port settings for serial port
+
+	memset(&tio, 0x0, sizeof(tio));
+
+	// Make the file descriptor asynchronous (the manual page says only
+	// O_APPEND and O_NONBLOCK, will work with F_SETFL...)
+	(void)fcntl(*fd, F_SETFL, 0);
+
+	tcgetattr(*fd, &savetio); // save current port settings
+
+	// set new port settings for canonical input processing
+	tio.c_cflag = BAUD | CRTSCTS | DATABITS | STOPBITS | PARITYON | PARITY | CLOCAL | CREAD;
+	tio.c_iflag = IGNPAR;
+	tio.c_oflag = 0;
+	tio.c_lflag =  0;       //ICANON;
+
+	/*special contrrl character are listed below, for others:
+	VINTR(Ctrl-c) VQUIT(Ctrl-\) VKILL(@) VTIME(inter-character timer unused)
+	VSWTC('\0') VSTART(Ctrl-q) VSTOP(Ctrl-s) VSUSP(Ctrl-z)
+	VREPRINT(Ctrl-r) VDISCARD(Ctrl-u) VWERASE(Ctrl-w) VLNEXT(Ctrl-v) VEOL2('\0')
+	are set to 0.
+	*/
+	tio.c_cc[VERASE]   = 0x8;      /* del */
+	tio.c_cc[VEOF]     = 4;      /* Ctrl-d */
+	tio.c_cc[VMIN]     = 1;      /* blocking read until 1 character arrives */
+	tio.c_cc[VEOL]     = 0xD;      /* '\0' */
+
+	tcflush(*fd, TCIFLUSH);
+	tcsetattr(*fd, TCSANOW, &tio);
+
+	F_LEAVE(tcOpenExtSerialPort1);
+
+	return TRUE;
+}
+
+BOOL tcOpenDevice(int* fd, char * char_dev_path, int flag)
+{
+	F_ENTER(tcOpenDevice0);
+	/*open the device(com port) to be non-blocking (read will return immediately) */
+	*fd = open(char_dev_path, flag  );
+
+	if (*fd < 0)
+	{
+		ERRMSG(tcOpenDevice, "Error opening device %s\n", char_dev_path);
+		return FALSE;
+	}
+
+	//DBGMSG(tcOpenDevice1, "Opened %s, fd is: %d.\n", char_dev_path, *fd);
+
+	F_LEAVE(tcOpenDevice2);
+	return TRUE;
+}
+
+
+int tcWriteParser(TelAtParserID sAtpIndex, char * string, int len)
+{
+	F_ENTER(tcWriteParser0);
+
+	int fd;
+	ssize_t size;
+	int cur;
+	int retry = 10;
+	fd = getFd(sAtpIndex);
+
+	if (fd <= 0)
+	{
+		ERRMSG(tcWriteParser, "Wrong AT Parser ID- sAtpIndex: %d, fd: %d\n", sAtpIndex, fd);
+		return -1;
+	}
+
+	cur = 0;
+	while(cur < len)
+	{
+		do
+		{
+			size = write(fd, string + cur, len - cur);
+		}while(size < 0 && errno == EINTR);
+
+		if (size > 0)
+			cur += (int)size;
+		else if (size == 0)
+		{
+			if (retry)
+			{
+				retry--;
+				usleep(1000);
+				continue;
+			}
+			else
+				break;
+		}
+		else
+		{
+			if ((!strcmp(gAtpCtrl[sAtpIndex].pTelAtpDesc->path, BACKEND_SERIALATCMD_ATCMD_CHAN_DEVICE)) )
+			{
+				WARNMSG(tcWriteParser1, "tcWriteParser: write %s warning %d(%s)\n",
+					gAtpCtrl[sAtpIndex].pTelAtpDesc->path, errno, strerror(errno));
+			}
+			else
+			{
+				ERRMSG(tcWriteParser2, "tcWriteParser: write %s error %d(%s)\n",
+					gAtpCtrl[sAtpIndex].pTelAtpDesc->path, errno, strerror(errno));
+			}
+			break;
+		}
+	}
+
+	WARNMSG(tcWriteParser3, "tcWriteParser: writing to device (index=%d) %s %d bytes\n", sAtpIndex, gAtpCtrl[sAtpIndex].pTelAtpDesc->path, cur);
+	fsync(fd);
+
+	F_LEAVE(tcWriteParser4);
+	return (int)cur;
+}
+
+/******************************************************************************
+*   AT Parser Callback function
+******************************************************************************/
+utlReturnCode_T atParserShellReplyFunction(const char *string_p, void *arg_p)
+{
+
+	/*
+	 *  Dumping the reply to stdout
+	 */
+	TelAtParserID * sATP_p = arg_p;
+
+	WARNMSG(atParserShellReplyFunction, "ShellReply: %s on index: %d\n", string_p, *sATP_p);
+
+	/*
+	 *  If there is socket attached, dump it to the socket as well
+	 */
+
+	tcWriteParser(*sATP_p, (char *)string_p, strlen(string_p));
+	return utlSUCCESS;
+}
+
+utlReturnCode_T atParserShellGetFunction(const utlAtParameterOp_T op,
+					 const char                      *command_name_p,
+					 const utlAtParameterValue_P2c parameter_values_p,
+					 const size_t num_parameters,
+					 const char                      *info_text_p,
+					 unsigned int                    *xid_p,
+					 void                            *arg_p)
+{
+	UNUSEDPARAM(op)
+	UNUSEDPARAM(command_name_p)
+	UNUSEDPARAM(parameter_values_p)
+	UNUSEDPARAM(num_parameters)
+
+	char tempBuf[200];
+	*xid_p = MAKE_AT_HANDLE(*(TelAtParserID *)arg_p);
+
+	//DBGMSG(atParserShellGetFunction, "atParserShellGetFunction: %s\n", command_name_p);
+	//DBGMSG(atParserShellGetFunction1, "\t*info_text_p = %s\n", info_text_p);
+	if(NULL != info_text_p)
+	{
+		strncpy(tempBuf, info_text_p, sizeof(tempBuf));
+		tempBuf[sizeof(tempBuf) - 1] = '\0';
+	}
+	else tempBuf[0] = '\0';
+
+	ATRESP(*xid_p, ATCI_RESULT_CODE_OK, 0, tempBuf);
+	return utlSUCCESS;
+}
+
+/*------------------------------------------------------------------------------*/
+utlReturnCode_T atParserShellSetFunction(const utlAtParameterOp_T op,
+					 const char                      *command_name_p,
+					 const utlAtParameterValue_P2c parameter_values_p,
+					 const size_t num_parameters,
+					 const char                      *info_text_p,
+					 unsigned int                    *xid_p,
+					 void                            *arg_p)
+{
+	UNUSEDPARAM(op)
+	UNUSEDPARAM(command_name_p)
+	UNUSEDPARAM(parameter_values_p)
+	UNUSEDPARAM(num_parameters)
+	UNUSEDPARAM(info_text_p)
+
+	* xid_p = MAKE_AT_HANDLE(*(TelAtParserID *)arg_p);
+	char tempBuf[400];
+	//DBGMSG(atParserShellSetFunction, "Set command: %s\n", command_name_p);
+	//DBGMSG(atParserShellSetFunction1, "\t*info_text_p = %s\n", info_text_p);
+	if(NULL != info_text_p)
+	{
+		strncpy(tempBuf, info_text_p, sizeof(tempBuf));
+		tempBuf[sizeof(tempBuf) - 1] = '\0';
+	}
+	else tempBuf[0] = '\0';
+
+	ATRESP(*xid_p, ATCI_RESULT_CODE_OK, 0, tempBuf);
+	return utlSUCCESS;
+}
+
+/*------------------------------------------------------------------------------*/
+unsigned int atParserGetAtcmdTimeoutValue(const char*  cmd_name_p, const utlAtAsyncOp_T op)
+{
+	ATCMD_TimeOut *timeout_p = atcmd_timeout_table;
+	int index = -1;
+	switch(op)
+	{
+	case utlAT_ASYNC_OP_SET:
+	case utlAT_ASYNC_OP_ACTION:
+	case utlAT_ASYNC_OP_EXEC:
+            index = 0;
+            break;
+	case utlAT_ASYNC_OP_GET:
+	    index = 1;
+	    break;
+	case utlAT_ASYNC_OP_SYNTAX:
+	    index = 2;
+	    break;
+	case utlAT_ASYNC_OP_NULL:
+	case utlAT_ASYNC_OP_UNKNOWN:
+	default:
+	    break;
+	}
+	if(index >= 0)
+	{
+		while(timeout_p->name_p != NULL)
+		{
+			if(strcmp(timeout_p->name_p, cmd_name_p) == 0)
+				return timeout_p->time_second[index];
+			timeout_p++;
+		}
+	}
+	return utlAT_AWAIT_ASYNC_TIMEOUT_TIME;
+}
+
+int atParserAtcmdTimeoutError(unsigned int atHandle)
+{
+	return handle_CMEE_code(atHandle, CME_COMMMAND_TIMEOUT_ERR);
+}
+
+#ifdef ATCMD_CONTINUOUS_TIMEOUT_RECOVERY
+#define MAX_TIMEOUT_NUM 5
+void atParserAtcmdContinuousTimeout(void)
+{
+	char resetInfo[256];
+	pthread_mutex_lock(&gTimeoutLock);
+	if(++gTimeoutNum >= MAX_TIMEOUT_NUM)
+	{
+		sprintf(resetInfo, "timeout nums is %d, reach limit\n", gTimeoutNum);
+		if(cp_silent_reset_on_req(resetInfo, 0) == 0)
+			gTimeoutNum = 0;
+	}
+	pthread_mutex_unlock(&gTimeoutLock);
+}
+#endif
+
+bool utlAtCommandTimeoutModify(const char *commandName, int mode, int timeout)
+{
+	utlAtCommand_P2c command_p = pshell_commands;
+	utlAtCommand_P2c term_command_p = command_p + shell_commands_num;
+	ATCMD_TimeOut *timeout_p;
+	ATCMD_TimeOut *term_timeout_p = atcmd_timeout_table + shell_commands_num;
+	bool cmdValid = false;
+	unsigned int j;
+	if((commandName == NULL) || ((term_timeout_p - 1)->name_p != NULL))
+		return false;
+	/*--- for each command... ---*/
+	for (; command_p < term_command_p; command_p++)
+	{
+		if(strcasecmp(command_p->name_p, commandName) == 0)
+		{
+			if((command_p->type == utlAT_COMMAND_TYPE_BASIC) && (mode != TEL_AT_HTCCTO_2_MODE_SET))
+				cmdValid = false;
+			else
+				cmdValid = true;
+			break;
+		}
+	}
+	if(cmdValid)
+	{
+		pthread_mutex_lock(&gTimeoutTableLock);
+		timeout_p = atcmd_timeout_table;
+		while(timeout_p->name_p != NULL)
+		{
+			if(strcasecmp(command_p->name_p, timeout_p->name_p) == 0)
+			{
+				for(j = 0; j < 3; j++)
+				{
+					if(((mode >> j) & 1UL) != 0)
+					{
+						timeout_p->time_second[j] = timeout;
+					}
+				}
+				break;
+			}
+			timeout_p++;
+		}
+		if(timeout_p->name_p == NULL)
+		{
+			for(j = 0; j < 3; j++)
+			{
+				if(((mode >> j) & 1UL) != 0)
+				{
+					timeout_p->time_second[j] = timeout;
+				}
+				else
+				{
+					timeout_p->time_second[j] = utlAT_AWAIT_ASYNC_TIMEOUT_TIME;
+				}
+			}
+			timeout_p->name_p = command_p->name_p;
+		}
+		pthread_mutex_unlock(&gTimeoutTableLock);
+		return true;
+	}
+	return false;
+}
+/************************************************************************************
+ * F@: ciAT - Process the command "AT"
+ *
+ */
+utlReturnCode_T ciAT(            const utlAtParameterOp_T op,
+				 const char                      *command_name_p,
+				 const utlAtParameterValue_P2c parameter_values_p,
+				 const size_t num_parameters,
+				 const char                      *info_text_p,
+				 unsigned int                    *xid_p,
+				 void                            *arg_p)
+{
+	UNUSEDPARAM(op)
+	UNUSEDPARAM(command_name_p)
+	UNUSEDPARAM(parameter_values_p)
+	UNUSEDPARAM(num_parameters)
+	UNUSEDPARAM(info_text_p)
+
+	TelAtParserID sAtpIndex = *(TelAtParserID *)arg_p;
+
+	UINT32 atHandle = AT_RESV_HANDLE(sAtpIndex, 3);
+
+	*xid_p = atHandle;
+
+	//DBGMSG(ciAT, "ciAT: atHandle:%d, gServiceGroupRegistered:%d\n", atHandle, gServiceGroupRegistered);
+
+	if (gServiceGroupRegistered > CI_SG_NUMIDS || ap_only)
+		ATRESP(atHandle, ATCI_RESULT_CODE_OK, 0, NULL);
+	else
+		ATRESP(atHandle, ATCI_RESULT_CODE_ERROR, 0, NULL);
+
+	return utlSUCCESS;
+}
+
+utlReturnCode_T ciCLAC(            const utlAtParameterOp_T op,
+				 const char                      *command_name_p,
+				 const utlAtParameterValue_P2c parameter_values_p,
+				 const size_t num_parameters,
+				 const char                      *info_text_p,
+				 unsigned int                    *xid_p,
+				 void                            *arg_p)
+{
+	UNUSEDPARAM(command_name_p)
+	UNUSEDPARAM(parameter_values_p)
+	UNUSEDPARAM(num_parameters)
+	UNUSEDPARAM(info_text_p)
+
+	RETURNCODE_T rc = INITIAL_RETURN_CODE;
+	CiReturnCode ret = CIRC_FAIL;
+
+	utlAtCommand_P2c command_p = pshell_commands;
+	utlAtCommand_P2c term_command_p = command_p + shell_commands_num;
+	char* commands_buf_p;
+	char* commands_temp_p;
+
+	UINT32 atHandle = MAKE_AT_HANDLE(*(TelAtParserID *)arg_p);
+	*xid_p = atHandle;
+
+	//DBGMSG(ciCLAC, "ciCLAC: atHandle:%d\n", atHandle);
+
+	switch(op)
+	{
+	case TEL_EXT_ACTION_CMD:
+	{
+		commands_buf_p = (char *)malloc(20*shell_commands_num);  //reserve 20 bytes for each command
+		if(commands_buf_p == NULL)
+		{
+			ret = ATRESP(atHandle, ATCI_RESULT_CODE_ERROR, 0, NULL);
+			break;
+		}
+		else
+			commands_temp_p = commands_buf_p;
+		/*--- for each command... ---*/
+		for (; command_p < term_command_p; command_p++)
+		{
+			commands_temp_p += sprintf(commands_temp_p, "AT%s\r\n", command_p->name_p);
+		}
+		ret = ATRESP(atHandle, ATCI_RESULT_CODE_OK, 0, commands_buf_p);
+		free(commands_buf_p);
+		break;
+	}
+	case TEL_EXT_TEST_CMD:
+	default:
+	{
+		ret = ATRESP(atHandle, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL);
+		break;
+	}
+	}
+
+	rc = HANDLE_RETURN_VALUE(ret);
+	return(rc);
+}
+
+#ifdef AT_PRODUCTION_CMNDS
+#define ATMODE_NOTIFICATION_STR "AT COMMAND OK"
+int start_prod_at_cmd_srv(void)
+{
+	int status;
+	struct termios tio;
+	memset(&tio, 0x0, sizeof(tio));
+	if(tcOpenDevice(&gAtpCtrl[TEL_PROD_AT_CMD_ATP].iFd, gAtpCtrl[TEL_PROD_AT_CMD_ATP].pTelAtpDesc->path, O_RDWR) == FALSE)
+	{
+		ERRMSG(start_prod_at_cmd_srv, "open path: %s error\n", gAtpCtrl[TEL_PROD_AT_CMD_ATP].pTelAtpDesc->path);
+		return FALSE;
+	}
+
+	memset(&tio, 0, sizeof(tio));
+
+	/* Configure termios */
+	tio.c_cflag = BAUD | CS8 | CLOCAL | CREAD;
+	tio.c_iflag = 0;
+	//tio.c_iflag = IGNPAR;
+	tio.c_oflag = 0;
+	tio.c_lflag = 0;
+	tio.c_cc[VMIN] = 1;
+	tio.c_cc[VTIME]= 0;
+	tcflush(gAtpCtrl[TEL_PROD_AT_CMD_ATP].iFd, TCIOFLUSH); //flush both data received but not read and data written but not transmitted.
+	tcsetattr(gAtpCtrl[TEL_PROD_AT_CMD_ATP].iFd, TCSANOW, &tio); //the change shall occur immediately
+
+	status  = pthread_create(&gAtpCtrl[TEL_PROD_AT_CMD_ATP].taskRef, NULL,
+				(void *)ProcessAtChanThread, (void *)TEL_PROD_AT_CMD_ATP);
+
+	if (status)
+	{
+		ERRMSG(start_prod_at_cmd_srv1, "Thread for PROD Create Error!\n");
+		return FALSE;
+	}
+
+	//DBGMSG(start_prod_at_cmd_srv2, "start_prod_at_cmd_srv: %s\n", ATMODE_NOTIFICATION_STR);
+	gAtpCtrl[TEL_PROD_AT_CMD_ATP].bEnable = TRUE;
+	tcWriteParser(gAtpCtrl[TEL_PROD_AT_CMD_ATP].index, ATMODE_NOTIFICATION_STR, strlen(ATMODE_NOTIFICATION_STR));
+	return TRUE;
+}
+
+static void start_at_cmd_srv(void)
+{
+	if(gAtpCtrl[TEL_PROD_AT_CMD_ATP].bEnable == FALSE)
+	{
+		start_prod_at_cmd_srv();
+	}
+}
+
+int stop_prod_at_cmd_srv(int b_start_diag)
+{
+	unsigned char cmd;
+
+	if(b_start_diag)
+		cmd = TEL_ATP_CMD_EXIT_CHAN_AND_START_DIAG;
+	else
+		cmd = TEL_ATP_CMD_EXIT_CHAN;
+
+	if(notifyAtParser(TEL_PROD_AT_CMD_ATP, cmd) < 0)
+		return FALSE;
+	else
+		return TRUE;
+}
+#endif
+
+unsigned int utlIsAtpForSimCard(unsigned int parserId, SIMID simId)
+{
+	return gAtpCtrl[parserId].currentTargetSim == simId;
+}
+
+
+unsigned int utlIsAtpForMasterCard(unsigned int parserId)
+{
+	char buf[PROPERTY_VALUE_MAX] = {'\0'};
+	unsigned int forMasterSim = 0;
+	BOOL bIsSim2Master = isSim2Master();
+
+	VDBGMSG(utlIsAtpForMasterCard, "PROXY_DEBUG -utlIsAtpForMasterCard,%d- Check if for master SIM - parserID %d, sim2Flag %d\n",
+		__LINE__, parserId, bIsSim2Master);
+
+	if(bIsSim2Master)
+		forMasterSim = utlIsAtpForSimCard(parserId, SIM2);
+	else
+		forMasterSim = utlIsAtpForSimCard(parserId, SIM1);
+
+	VDBGMSG(utlIsAtpForMasterCard1, "PROXY_DEBUG -utlIsAtpForMasterCard,%d- forMastSim flag for parserID %d, sim2Flag %d is %d\n",
+		__LINE__, parserId, bIsSim2Master, forMasterSim);
+
+	return forMasterSim;
+}
+
+unsigned int utlIsReqForAtp(unsigned int handle, unsigned int parserId)
+{
+	unsigned int ret = 0;
+	if(handle == IND_REQ_HANDLE)
+		ret = utlIsAtpForSimCard(parserId, SIM1);
+	else if(handle == IND_REQ_HANDLE_1)
+		ret = utlIsAtpForSimCard(parserId, SIM2);
+	else if(!GET_SIM1_FLAG(handle))
+		ret = utlIsAtpForSimCard(parserId, SIM1);
+	else if(GET_SIM1_FLAG(handle))
+		ret = utlIsAtpForSimCard(parserId, SIM2);
+	return ret;
+}
+
+
+
+unsigned int utlIsProxyReq(const char *cmdName, utlAtParameterOp_T cmdOp, unsigned int parserId)
+{
+	//go through the list of requests to check if it is a proxy request
+	utlAtProxyCommand_P pProxyCommand;
+	unsigned int result = 0;
+	UINT32 		atHandleForSimTest;
+
+	if((cmdName ==NULL) ||(parserId >= NUM_OF_TEL_ATP)) {
+		//DBGMSG(utlIsProxyReq, "PROXY_DEBUG -utlIsProxyReq,%d- param error\n", __LINE__);
+		return result;
+	}
+
+	if(gProxyChannelId == NUM_OF_TEL_ATP)
+	{
+		//DBGMSG(utlIsProxyReq, "PROXY_DEBUG -utlIsProxyReq,%d- proxy not set\n", __LINE__);
+		return result;
+	}
+
+	//VDBGMSG(utlIsProxyReq1, "PROXY_DEBUG -utlIsProxyReq,%d- check if cmd %s, operation %d, parser ID %d is proxy\n",
+	//	__LINE__, cmdName, (int)cmdOp, (int)parserId );
+
+	//check that the AT channel the command was received on is not the proxy chanel
+	//find the parser first
+
+	if((aParser_p[gAtpCtrl[parserId].index] != NULL)&&
+		(aParser_p[gAtpCtrl[parserId].index]->isProxy)){
+		WARNMSG(utlIsProxyReq2, "PROXY_DEBUG -utlIsProxyReq,%d- Message received from proxy - handle as standard command\n",
+			__LINE__);
+
+		return result;
+	}
+
+	//check if request is for master SIM
+	if(!utlIsAtpForMasterCard(parserId)) {
+		VDBGMSG(utlIsProxyReq3, "PROXY_DEBUG -utlIsProxyReq,%d- request NOT for master SIM, do NOT proxy\n",
+			__LINE__);
+		return result;
+	}
+	pthread_mutex_lock(&gProxyAccessLock);
+	pProxyCommand = atProxyReq;
+
+	while(pProxyCommand != NULL)
+	{
+		if(!(strcasecmp(cmdName,pProxyCommand->commandName))) {
+			//match operation
+
+			result = pProxyCommand->operation & (0x1<<cmdOp);
+			break;
+		}
+		pProxyCommand = pProxyCommand->next_p;
+	}
+	pthread_mutex_unlock(&gProxyAccessLock);
+	
+	WARNMSG(utlIsProxyReq4, "PROXY_DEBUG -utlIsProxyReq,%d- proxy flag for checking req %s, op %d is %d\n",
+		__LINE__, cmdName, (int)cmdOp, result);
+
+	return result;
+}
+
+//check if the indication is proxy, and if it should be forwarded
+//to proxy client or sent to all channels
+unsigned int utlIsProxyInd(const char *indName,unsigned int indHandle)
+
+{
+	unsigned int result = 0;
+	utlAtProxyCommand_P pProxyInd;
+	utlAtParser_P parser_p;
+	BOOL bIsSim2Master = isSim2Master();
+
+	if((bIsSim2Master && indHandle == IND_REQ_HANDLE) ||
+		(!bIsSim2Master && indHandle == IND_REQ_HANDLE_1))
+		return result;
+
+	if(indName ==NULL){
+		DBGMSG(utlIsProxyInd, "PROXY_DEBUG -utlIsProxyInd,%d- param error\n", __LINE__);
+		return result;
+	}
+
+	//VDBGMSG(utlIsProxyInd1, "PROXY_DEBUG -utlIsProxyInd,%d- check if ind %s, \n",
+	//	__LINE__, indName);
+
+	 if(strcasecmp(indName,"+CBM")==0 || strcasecmp(indName,"+CDS")==0 || strcasecmp(indName,"+CMT")==0){
+        	return result;
+    	}
+
+	pthread_mutex_lock(&gProxyAccessLock);
+	//check that the indication is a proxy indication
+	pProxyInd = atProxyInd;
+	while(pProxyInd != NULL)
+	{
+		//look for the indication name in the receievd string
+		if(strcasestr(indName,pProxyInd->commandName)) {
+			//match operation
+			result = 1;
+			break;
+		}
+		pProxyInd = pProxyInd->next_p;
+	}
+	pthread_mutex_unlock(&gProxyAccessLock);
+
+	VDBGMSG(utlIsProxyInd2, "PROXY_DEBUG -utlIsProxyInd,%d- result for ind %s is %d, \n",
+		__LINE__, indName, result);
+
+	return result;
+}
+
+//Increment or reset Proxy timeout counter. This function is a parser
+//call back function, which is operated when the timeout for a command
+//that was proxied expires
+//if the counter exceeds the maximum value - an indication is sent to
+//the proxy channel
+void utlIncProxyTimeoutCounter(unsigned int incValue)
+{
+	char msgToProxy[20];
+	UINT32 atHandleForProxyChannel;
+
+	if(incValue)
+	{
+		gProxyTimeoutCounter = gProxyTimeoutCounter + incValue;
+
+		WARNMSG(utlIncProxyTimeoutCounter, "PROXY_DEBUG -utlIncProxyTimeoutCounter,%d- counter value after inc with %d  is %d \n",
+			__LINE__, incValue, gProxyTimeoutCounter);
+		if((gProxyTimeoutCounter >=ATCMD_PROXY_TIMEOUT_COUNTER_MAX_VALUE)
+			&&(gProxyChannelId != NUM_OF_TEL_ATP))
+		{
+			//send indication to proxy channel
+			memset(msgToProxy,0, sizeof(msgToProxy));
+
+			sprintf(msgToProxy,"*PRXYRST");
+
+			atHandleForProxyChannel = MAKE_AT_HANDLE(gProxyChannelId);
+
+			ERRMSG(utlIncProxyTimeoutCounter1, "Error - Proxy Timeout - send PRXYRST indication to proxy channel \r\n");
+
+			ATRESP(atHandleForProxyChannel , ATCI_RESULT_CODE_NULL, 0, msgToProxy);
+
+			//reset counter
+			gProxyTimeoutCounter = 0;
+			aParser_p[gAtpCtrl[gProxyChannelId].index]->isProxy = FALSE;
+			gProxyChannelId = NUM_OF_TEL_ATP;
+			pthread_mutex_lock(&gProxyAccessLock);
+			clearProxyLists(&atProxyReq);
+			clearProxyLists(&atProxyInd);
+			pthread_mutex_unlock(&gProxyAccessLock);
+		}
+	}
+	else
+	{
+		//reset counter
+		WARNMSG(utlIncProxyTimeoutCounter2, "PROXY_DEBUG -utlIncProxyTimeoutCounter,%d- reset counter \n", __LINE__);
+		gProxyTimeoutCounter = 0;
+	}
+}
+
+unsigned int utlIsProxySmsTrs(const char *cmdName)
+{
+	unsigned int onGoingTrsFalg = 0;
+
+	if(!strcasecmp("+CMGS", (char*)cmdName))
+	{
+		onGoingTrsFalg = 1;
+		gCurrentSmsDataMode = TEL_MSG_DATA_CMGS;
+	}
+	else if(!strcasecmp("+CMGC", (char*)cmdName))
+	{
+		onGoingTrsFalg = 1;
+		gCurrentSmsDataMode = TEL_MSG_DATA_CMGC;	
+	}
+	else if(!strcasecmp("+CMGW", (char*)cmdName))
+	{
+		onGoingTrsFalg = 1;
+		gCurrentSmsDataMode = TEL_MSG_DATA_CMGW;	
+	}
+	else if(!strcasecmp("+CNMA", (char*)cmdName))
+	{
+		onGoingTrsFalg = 1;
+		gCurrentSmsDataMode = TEL_MSG_DATA_CNMA;	
+	}
+
+	   
+	return onGoingTrsFalg;
+}
+
+bool utlIsReqForPPP(unsigned int atHandle)
+{
+	unsigned int sAtpIndex = GET_ATP_INDEX(atHandle);
+
+	ERRMSG(utlIsReqForPPP, "utlIsReqForPPP: athandle = 0x%x, sAtpIndex = %d, bEnable = %d, path = %s\n",
+	       atHandle, sAtpIndex, gAtpCtrl[sAtpIndex].bEnable, gAtpCtrl[sAtpIndex].pTelAtpDesc->path);
+	
+	if(sAtpIndex < NUM_OF_TEL_ATP && gAtpCtrl[sAtpIndex].bEnable) {
+		if (gAtpCtrl[sAtpIndex].pTelAtpDesc->path && strcmp(gAtpCtrl[sAtpIndex].pTelAtpDesc->path, "atcmdmni") == 0)
+			return true;
+
+		if (gAtpCtrl[sAtpIndex].pTelAtpDesc->path && strcmp(gAtpCtrl[sAtpIndex].pTelAtpDesc->path, "atcmdtest") == 0)
+			return true;
+#ifdef ADDITIONAL_MODEM_DEVICE
+		if (gAtpCtrl[sAtpIndex].pTelAtpDesc->path && strcmp(gAtpCtrl[sAtpIndex].pTelAtpDesc->path, "atcmdmni1") == 0)
+			return true;
+#endif
+#ifdef UART2_AT
+		if (gAtpCtrl[sAtpIndex].pTelAtpDesc->path && strcmp(gAtpCtrl[sAtpIndex].pTelAtpDesc->path, "atcmdttyS1") == 0)
+			return true;
+#endif
+	}
+		
+	return false;
+}
+
+/************************************************************************************
+ * F@: ciChannelDestSwitch - GLOBAL API for AT*CHDSTST-command
+ *
+ */
+RETURNCODE_T  ciChannelDestSwitch(            const utlAtParameterOp_T op,
+				      const char                      *command_name_p,
+				      const utlAtParameterValue_P2c parameter_values_p,
+				      const size_t num_parameters,
+				      const char                      *info_text_p,
+				      unsigned int                    *xid_p,
+				      void                            *arg_p)
+{
+	UNUSEDPARAM(command_name_p)
+	UNUSEDPARAM(num_parameters)
+	UNUSEDPARAM(info_text_p)
+
+	RETURNCODE_T rc = INITIAL_RETURN_CODE;
+	CiReturnCode ret = CIRC_FAIL;
+	int sAtpIndex = *(TelAtParserID *)arg_p;
+	UINT32 atHandle = MAKE_AT_HANDLE(sAtpIndex);
+
+	*xid_p = atHandle;
+	//DBGMSG(ciChannelDestSwitch, "ciChannelDestSwitch: atHandle = %d.\n", atHandle);
+
+	/*
+	**  Check the operation type.
+	*/
+	switch ( op )
+	{
+	case TEL_EXT_GET_CMD:              /* AT*CHDSTST? */
+	{
+		char buf[32];
+		SIMID simId = getSharedTelAtpCurrentTargetSIM(sAtpIndex);
+		if(simId != SIM1 && simId != SIM2)
+			ret = ATRESP( atHandle, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL);
+		else
+		{
+		    memset(buf, 0x00, sizeof(buf));
+			snprintf(buf, sizeof(buf)-1, "*CHDSTST:%d", simId);
+			ret = ATRESP( atHandle, ATCI_RESULT_CODE_OK, 0, buf);
+		}
+		break;
+	}
+
+	case TEL_EXT_SET_CMD:              /* AT*CHDSTST= */
+	{
+		int dest;
+		if ( getExtValue( parameter_values_p, 0, &dest, 0, 1, 0 ) == TRUE )
+		{
+			if(setSharedTelAtpCurrentTargetSIM(sAtpIndex, (SIMID)dest) == 0)
+				ret = ATRESP( atHandle, ATCI_RESULT_CODE_OK, 0, NULL);
+			else
+				ret = ATRESP( atHandle, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL);
+		}
+		else
+		{
+			ret = ATRESP( atHandle, ATCI_RESULT_CODE_CME_ERROR, CME_INVALID_PARAM, NULL);
+		}
+
+		break;
+	}
+
+	default:
+	{
+		ret = ATRESP( atHandle, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL);
+		break;
+	}
+	}
+
+
+	/* handle the return value */
+	rc = HANDLE_RETURN_VALUE(ret);
+	return(rc);
+}