diff src/g23m-aci/aci/aci_cmd.h @ 162:53929b40109c

src/g23m-aci: initial import from TCS3.2/LoCosto
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 11 Oct 2016 02:02:43 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-aci/aci/aci_cmd.h	Tue Oct 11 02:02:43 2016 +0000
@@ -0,0 +1,736 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  GSM-F&D (8411)
+|  Modul   :  ACI
++----------------------------------------------------------------------------- 
+|  Copyright 2002 Texas Instruments Berlin, AG 
+|                 All rights reserved. 
+| 
+|                 This file is confidential and a trade secret of Texas 
+|                 Instruments Berlin, AG 
+|                 The receipt of or possession of this file does not convey 
+|                 any rights to reproduce or disclose its contents or to 
+|                 manufacture, use, or sell anything it may describe, in 
+|                 whole, or in part, without the specific written consent of 
+|                 Texas Instruments Berlin, AG. 
++----------------------------------------------------------------------------- 
+|  Purpose :  Definitions for the AT Command Interpreter
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef ACI_CMD_H
+#define ACI_CMD_H
+
+#ifdef FF_ATI
+#include "ati_cmd.h"
+#endif /* FF_ATI */
+
+#define KEY       15   /* Length of "+CBLA: " for instance */
+#define LONG_LTH  10   /* Max length of a number of type long in a string */
+#define SHORT_LTH  5
+#define BYTE_LTH   3
+#define HEX_LTH    8
+
+typedef struct
+{
+  char *name;
+  T_ACI_SMS_STOR stor;
+} SMS_Memory;
+
+typedef struct
+{
+  char *name;
+  T_ACI_DBG_INFO stor;
+} DBG_Memory;
+
+#if (defined (ACI_CMD_C)) OR (defined (CMH_SIMF_C) AND !defined (FF_ATI))
+GLOBAL const T_ACI_LAN_SUP lngs [] =
+{
+  {"au",  CLAN_LNG_AUT},
+  {"en",  CLAN_LNG_ENG},
+  {"fr",  CLAN_LNG_FRE},
+  {"de",  CLAN_LNG_GER},
+  {"da",  CLAN_LNG_DUT},
+  {"it",  CLAN_LNG_ITA},
+  {"es",  CLAN_LNG_SPA},
+  {"sv",  CLAN_LNG_SWE},
+  {"pt",  CLAN_LNG_POR},
+  {"fi",  CLAN_LNG_FIN},
+  {"no",  CLAN_LNG_NOR},
+  {"el",  CLAN_LNG_GRE},
+  {"tr",  CLAN_LNG_TUR},
+  {"hu",  CLAN_LNG_HUN},
+  {"sl",  CLAN_LNG_SLO},
+  {"pl",  CLAN_LNG_POL},
+  {"ru",  CLAN_LNG_RUS},
+  {"in",  CLAN_LNG_IND},
+  {"cs",  CLAN_LNG_CZE},
+  {"zh",  CLAN_LNG_CHI},
+  {"ca",  CLAN_LNG_CAN},
+  {"mn",  CLAN_LNG_MAN},
+  {"tw",  CLAN_LNG_TAI},
+  {"ar",  CLAN_LNG_ARA},
+  {NULL,  CLAN_LNG_ENG}
+};
+#else 
+EXTERN const T_ACI_LAN_SUP lngs [];
+#endif 
+
+
+
+/*--- +CMEE -------------------------------------------------------*/
+
+typedef enum
+{
+  CMEE_MOD_NotPresent   = -1,
+  CMEE_MOD_Disable,
+  CMEE_MOD_Numeric,
+  CMEE_MOD_Verbose
+}
+T_ACI_CMEE_MOD;
+
+/*----------- +CSCS -----------------------------------------------*/
+
+typedef enum
+{
+  CSCS_CHSET_NotPresent = -1,
+  CSCS_CHSET_Ira        =  0,
+  CSCS_CHSET_Pcdn       =  1,
+  CSCS_CHSET_8859_1     =  2,
+  CSCS_CHSET_Pccp_437   =  3,
+  CSCS_CHSET_Gsm        =  4,
+  CSCS_CHSET_Hex        =  5,
+  CSCS_CHSET_Ucs2       =  6,
+  CSCS_CHSET_Tables     =  5
+}
+T_ACI_CSCS_CHSET;
+
+/*----------- alphabets -------------------------------------------*/
+
+typedef enum          /* see DCS in Rec. GSM 03.38 */
+{
+  CSCS_ALPHA_7_Bit    = 0,
+  CSCS_ALPHA_8_Bit    = 1,
+  CSCS_ALPHA_16_Bit   = 2,
+  CSCS_ALPHA_Reserved = 3
+}
+T_ACI_CSCS_ALPHA;
+
+typedef enum
+{
+  CSCS_DIR_GsmToIra   = 0,
+  CSCS_DIR_IraToGsm   = 1
+}
+T_ACI_CSCS_DIR;
+
+typedef enum
+{
+  GSM_ALPHA_Def,
+  GSM_ALPHA_Int
+}
+T_ACI_GSM_ALPHA;
+
+/*----------- +CNMI -----------------------------------------------*/
+
+typedef enum
+{
+  CNMI_MOD_NotPresent       = -1,
+  CNMI_MOD_Buffer,
+  CNMI_MOD_DiscardOrForward,
+  CNMI_MOD_BufferAndFlush
+}
+T_ACI_CNMI_MOD;
+
+typedef enum
+{
+  CNMI_BFR_NotPresent       = -1,
+  CNMI_BFR_Flush,
+  CNMI_BFR_Clear
+}
+T_ACI_CNMI_BFR;
+
+/*----------- other -----------------------------------------------*/
+
+typedef enum
+{
+    atOk                    = 0,
+    atConnect,
+    atRing,
+    atNoCarrier,
+    atError,
+    atNoDialtone,
+    atBusy,
+    atNoAnswer,
+    atConnect1
+} AtErrCode;
+
+typedef enum
+{
+    copsUnknown = 0,
+    copsAvail = 1,
+    copsCurrent = 2,
+    copsForbidden = 3
+} CopsState;
+
+typedef enum
+{
+    ppSimVerify = 1
+} PinPending;
+
+typedef struct
+{
+  struct
+  {
+    UBYTE  atV;
+    UBYTE  atL;
+    UBYTE  atM;
+  }s1415;
+  struct                  /* presentation flags */
+  {
+    UBYTE COLP_stat;
+    UBYTE CCWA_stat;
+    UBYTE CCBS_stat;
+  }flags;
+  UBYTE S[10+1];          /* Caution: for S[0..n] we need S[n+1] to be declared here!!! */
+
+  /* the following registers above 10 are not index based and only defined if needed */
+  UBYTE S30;
+#ifdef GPRS
+  UBYTE S99;              /* Rings until Automatic Context Rejection */
+#endif /* GPRS */
+
+  UBYTE CNMI_mode;
+  UBYTE CNMI_bfr;
+  struct                  /* ringing parameters */
+  {
+    UBYTE srcID_S0;
+#ifdef GPRS
+    char srcID_CGAUTO;
+#endif
+    UBYTE rngCnt;
+    UBYTE isRng;
+    T_ACI_CRING_MOD mode;
+    T_ACI_CRING_SERV_TYP type1;
+    T_ACI_CRING_SERV_TYP type2;
+  } rngPrms;
+  struct                  /* CLIP parameters */
+  {
+    T_ACI_CLIP_STAT stat;
+    CHAR            number[MAXIMUM(MNCC_MAX_CC_CALLING_NUMBER, MNCC_MAX_CC_REDIR_NUMBER)+1];
+    T_ACI_TOA       type;
+    U8              validity;
+    CHAR            subaddr[MNCC_SUB_LENGTH+1];
+    T_ACI_TOS       satype;
+#ifdef NO_ASCIIZ
+    T_ACI_PB_TEXT   alpha;
+#else
+    CHAR            alpha[MAX_PHB_NUM_LEN+1];
+#endif
+  }clipPrms;
+} AciCmdVars;
+
+
+/* sub structure concerning AT+CREG command in ATI */
+typedef enum
+{
+  CREG_MOD_NotPresent        = -1,
+  CREG_MOD_OFF               =  0,  /* disable network registration unsolicited result code */
+  CREG_MOD_ON                =  1,  /* enable network registration unsolicited result code */
+  CREG_MOD_LOC_INF_ON        =  2,  /* enable network registration and location information unsolicited result code */
+  CREG_MOD_LOC_INF_ON_CTXACT =  3   /* enable network registration and location information unsolicited result code 
+                                       and information about activated/deactivated PDP context(s) */
+}
+T_ATI_CREG_MOD   /* for +CREG / +CGREG / %CGREG */;
+
+typedef struct
+{
+  T_ATI_CREG_MOD  pres_mode;
+  USHORT          last_presented_lac;
+  USHORT          last_presented_cid;
+} T_ATI_REG_MOD_LAC_CID;
+
+typedef struct
+{
+  T_ATI_REG_MOD_LAC_CID  mod_lac_cid;
+  T_ACI_CREG_STAT        last_presented_state;
+} T_ATI_CREG;
+
+#define LOC_INFO_STRLTH (15)
+/* ACI-SPR-17218: enable the indication of GPRS info */
+#define GPRS_INFO_STRLTH (5)
+#define COVERAGE_INFO_STRLTH (5)
+
+typedef enum
+{
+  CMD_NotPresent = -1,
+  CREG_CMD,
+  PercentCREG_CMD
+#ifdef GPRS
+  ,
+  PlusCGREG_CMD,
+  PercentCGREG_CMD
+#endif /* GPRS */
+} T_ACI_CREG_CMD;
+
+typedef enum
+{
+  CNAP_DISABLED = 0,
+  CNAP_ENABLED = 1
+} T_ATI_CNAP_MODE;
+
+typedef struct
+{
+  UBYTE  atE;
+  UBYTE  atQ;
+  UBYTE  atX;
+
+  UBYTE CR_stat;
+  UBYTE CRC_stat;
+  UBYTE CLIP_stat;
+  UBYTE CDIP_stat;  
+    
+  UBYTE DR_stat;
+  UBYTE ILRR_stat;
+  UBYTE CSDH_stat;
+  UBYTE CSSI_stat;
+  BYTE  CSSU_stat;
+  UBYTE CUSD_stat;
+  UBYTE CPI_stat;
+  UBYTE CCWE_stat;
+  UBYTE CAOC_stat;
+  UBYTE CMEE_stat;  
+  UBYTE CTTY_stat;
+  UBYTE CSTAT_stat;
+  UBYTE SIMIND_stat;
+  T_ACI_CSCS_CHSET cscsChset;
+#ifdef GPRS
+  UBYTE Percent_CGEREP_stat;
+  UBYTE CGEREP_mode;
+  UBYTE CGEREP_bfr;
+#endif
+
+  T_ACI_CCWV_CHRG CCWV_charging;
+
+  T_ATI_CREG creg;
+  T_ATI_CREG percent_creg;
+  T_ATI_CNAP_MODE cnap_mode;
+  UBYTE CPRI_stat;           /* Holds the status of %CPRI */
+#ifdef FF_CPHS_REL4 
+  UBYTE MWI_stat;            /* Holds the status of %MWI  */
+#endif /* FF_CPHS_REL4 */
+
+}
+T_ATI_USER_OUTPUT_CFG;
+
+/* ACI-SPR-17218: Extended by gprs_ind paramter */
+EXTERN void r_plus_percent_CREG  ( UBYTE           srcId,
+                                   int             status,
+                                   USHORT          lac,
+                                   USHORT          cid,
+                                   T_ACI_CREG_CMD        cmd, 
+                                   T_ACI_P_CREG_GPRS_IND gprs_ind,
+                                   U8               rt,
+                                   BOOL                  bActiveContext );
+
+#define CPIN_MAX_LTH (12)
+/* all following lengths definitions include the null termination */
+#define MAX_PWD_LENGTH (32)    /* max length for passwords          */
+#define MAX_PPU_LENGTH (20)    /* max length for ppu                */
+#define MAX_CM_LENGTH  (7)     /* max length for call meter values  */
+
+/* To allow for: 'yyyy/MM/dd,hh:mm:ss+zz' or 'yyyy/MM/dd,hh:mm:ss-zz' date time format */
+/* To allow for:    'yy/MM/dd,hh:mm:ss+zz' or '    yy/MM/dd,hh:mm:ss-zz' date time format */
+#define DATE_TIME_LENGTH  (22)
+#ifdef FF_ATI
+EXTERN UBYTE aci_init (T_ATI_SRC_TYPE src_type);
+#endif /* FF_ATI */
+
+EXTERN void aci_finit (UBYTE src_id);
+
+EXTERN  void ati_cmd_init();
+EXTERN  void ati_creg_init( BYTE srcId, T_ACI_CREG_CMD cmd );
+
+BOOL aciCmdInit (AciCmdVars *v);
+
+#ifdef FF_ATI
+int cmdCommand (T_ATI_SRC_PARAMS *src_params);
+#endif /* FF_ATI */
+
+EXTERN void   utl_chsetToGsm      ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen,
+#ifdef REL99
+                                    USHORT           outBufLen,
+#endif /* REL99 */
+                                    T_ACI_GSM_ALPHA  gsm        );
+EXTERN void   utl_chsetToSim      ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm        );
+EXTERN void utl_ucs2ToSim         ( UBYTE*          in,
+                                    USHORT          inLen,
+                                    UBYTE*          out,
+                                    USHORT*         outLen,
+                                    T_ACI_GSM_ALPHA gsm,
+                                    T_ACI_CSCS_ALPHA alphabet   );
+EXTERN void utl_ConvUcs2ToGSM     ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm,
+                                    T_ACI_CSCS_ALPHA alphabet   );
+EXTERN void utl_Ucs2InFormat1     ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen     );
+EXTERN void utl_Ucs2InFormat2     ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen     );
+EXTERN void utl_hexFromUCS2       ( UBYTE  *in, 
+                                    UBYTE  *out, 
+                                    USHORT  maxOutlen, 
+                                    USHORT *outlen,
+                                    T_ACI_GSM_ALPHA  gsm );
+EXTERN USHORT   utl_chsetFromGsm    ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT           maxOutLen,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm        );
+EXTERN USHORT utl_ucs2FromGsm_ussd  ( UBYTE*           in,
+                                     USHORT           inLen,
+                                     UBYTE*           out,
+                                     USHORT           maxOutLen,
+                                     USHORT*          outLen,
+                                     T_ACI_GSM_ALPHA  gsm,
+                                     T_ACI_CSCS_ALPHA alphabet );
+EXTERN void   utl_chsetFromSim    ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT           maxOutLen,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm        );
+EXTERN void   utl_hexToGsm        ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm,
+                                    T_ACI_CSCS_ALPHA alphabet   );
+EXTERN void   utl_ucs2ToGsm        ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm,
+                                    T_ACI_CSCS_ALPHA alphabet   );
+EXTERN USHORT   utl_hexFromGsm      ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT           maxOutLen,
+                                    USHORT*          outLen,
+                                    T_ACI_GSM_ALPHA  gsm,
+                                    T_ACI_CSCS_ALPHA alphabet   );
+EXTERN BOOL   utl_cvtGsmIra       ( UBYTE*           in,
+                                    USHORT           inLen,
+                                    UBYTE*           out,
+                                    USHORT           outLen,
+                                    T_ACI_CSCS_DIR   dir        );
+EXTERN USHORT sprints             ( CHAR*   buf,
+                                    CHAR*   arg,
+                                    USHORT  len       );
+EXTERN USHORT sprintq             ( CHAR*   buf,
+                                    CHAR*   arg,
+                                    USHORT  len       );
+EXTERN void   utl_smDtaFromTe     ( UBYTE*  in,
+                                    USHORT  inLen,
+                                    UBYTE*  out,
+                                    USHORT* outLen,
+#ifdef REL99
+                                    USHORT  outBufLen, 
+#endif /* REL99 */
+                                    UBYTE   fo,
+                                    UBYTE   dcs       );
+EXTERN void   utl_smDtaToTe       ( UBYTE*  in,
+                                    USHORT  inLen,
+                                    UBYTE*  out,
+                                    USHORT  maxOutLen,
+                                    USHORT* outLen,
+                                    UBYTE   fo,
+                                    UBYTE   dcs       );
+EXTERN void   utl_cbmDtaToTe      ( UBYTE*  in,
+                                    USHORT  inLen,
+                                    UBYTE*  out,
+                                    USHORT  maxOutLen,
+                                    USHORT* outLen,
+                                    UBYTE   fo,
+                                    UBYTE   dcs       );
+EXTERN void   utl_ussdDtaFromTe   ( UBYTE*  in,
+                                    USHORT  inLen,
+                                    UBYTE*  out,
+                                    USHORT* outLen,
+#ifdef REL99
+                                    USHORT  outBufLen,
+#endif /* REL99 */
+                                    UBYTE   dcs       );
+EXTERN USHORT   utl_ussdDtaToTe     ( UBYTE*  in,
+                                    USHORT  inLen,
+                                    UBYTE*  out,
+                                    USHORT  maxOutLen,
+                                    USHORT* outLen,
+                                    UBYTE   dcs       );
+EXTERN void utl_binToHex          ( UBYTE*  in,
+                                    SHORT   inLen,
+                                    CHAR*   out );
+EXTERN USHORT utl_HexStrToBin (UBYTE*         in,
+                               USHORT         inLen,
+                               UBYTE*         out,
+                               USHORT         outLen);
+EXTERN void RetrieveLeftCmd       ( void );
+
+EXTERN void trace_cmd_line        ( char *prefix,
+                                    char *output,
+                                    UBYTE srcId,
+                                    USHORT output_len );
+
+#ifdef FF_ATI
+EXTERN void trace_cmd_state       ( UBYTE            srcId,
+                                    T_ATI_CMD_STATE  old_state,
+                                    T_ATI_CMD_STATE  new_state);
+#endif /* FF_ATI */
+
+EXTERN int utl_create_pco   (UBYTE*  buffer,
+                             USHORT* length,
+                             ULONG   content,
+                             UBYTE   config_prot,
+                             USHORT  auth_prot,
+                             UBYTE*  user_name,
+                             UBYTE*  password,
+                             ULONG   dns1,
+                             ULONG   dns2);
+EXTERN int utl_analyze_pco  (UBYTE* buffer,
+                             USHORT length,
+                             ULONG* dns1,
+                             ULONG* dns2,
+                             ULONG* gateway);
+GLOBAL int utl_strcasecmp (const char *s1, 
+                           const char *s2);
+
+#if defined (FF_ATI) || defined (FF_BAT)
+#define CONVERT_STRING TRUE
+GLOBAL void rci_display_USSD (UBYTE            srcId,
+                              T_ACI_CUSD_MOD   mode,
+                              UBYTE            *ussd_str,
+                              UBYTE            ussd_len,
+                              BOOL             cvtStr,
+                              SHORT            dcs );
+
+GLOBAL void utl_cb_percentKSIR (U8 srcId, T_ACI_KSIR *ksStat);
+#endif /* defined (FF_ATI) || defined (FF_BAT) */
+
+/*
+ *-------------------------------------------------------------------
+ * The following types, definitions and variables are needed for
+ * storing of new message indications while the serial interface is
+ * reserved for data transmission.
+ *-------------------------------------------------------------------
+ * START
+ *-------------------------------------------------------------------
+ */
+#define NONE_CALL      0
+#define SAT_CALL       1
+#define QAT_CALL       2
+#define TAT_CALL       3
+
+#define CNMI_NONE      0
+#define CNMI_CMT       1
+#define CNMI_CMTI      2
+#define CNMI_CBM       3
+#define CNMI_CDS       4
+
+#define CNMI_BUF_SIZE  4
+#define CIEV_BUF_SIZE  2
+
+#define T_CMT    T_MNSMS_MESSAGE_IND
+typedef struct /* new message indication AT+CMTI: */
+{
+  T_ACI_SMS_STOR mem;
+  UBYTE          index;
+}
+T_CMTI;
+#define T_CBM    T_MMI_CBCH_IND
+#define T_CDS    T_MNSMS_STATUS_IND
+
+typedef union /* used for the different messages indications */
+{
+  T_CMT  cmt;
+  T_CMTI cmti;
+  T_CBM  cbm;
+  T_CDS  cds;
+}
+T_CNMI_IND;
+
+/* Removed source ID from this structure to make
+   the bufferinf source independent */ /* Issue 25033 */
+typedef struct
+{
+  UBYTE         type;
+  T_CNMI_IND    indct;
+}
+T_CNMI_BUFFER_ELEMENT;
+
+typedef struct
+{
+  UBYTE                 next;
+  T_CNMI_BUFFER_ELEMENT sCnmiElement[CNMI_BUF_SIZE];
+}
+T_CNMI_BUFFER;
+
+typedef struct
+{
+  char*          name;
+  T_ACI_SMS_STAT stat;
+} SMS_Stat;
+
+#ifdef ACI_CMD_C
+GLOBAL const SMS_Stat sms_stat [] =
+{
+  {"REC UNREAD", SMS_STAT_RecUnread },
+  {"REC READ",   SMS_STAT_RecRead   },
+  {"STO UNSENT", SMS_STAT_StoUnsent },
+  {"STO SENT",   SMS_STAT_StoSent   },
+  {"ALL",        SMS_STAT_All       },
+  {NULL,         SMS_STAT_NotPresent}
+};
+#else
+EXTERN const SMS_Stat sms_stat [];
+#endif
+
+#ifdef DTI
+EXTERN void cmd_addCnmiNtry ( UBYTE type, T_CNMI_IND* newInd );
+#endif
+EXTERN void aci_encodeVpenh ( CHAR* vpenh_str, T_ACI_VP_ENH* vpenh );
+EXTERN void rCI_IoMode      ( void );
+
+#ifdef FF_ATI
+EXTERN UBYTE            cpmsCallType;
+#endif /* FF_ATI */
+EXTERN BOOL             cnmiFlushInProgress;
+
+EXTERN T_ACI_SMS_STAT cmglStat;
+
+typedef struct
+{
+  UBYTE                  uiLastIndex;
+  T_ACI_CIND_SIGNAL_TYPE asBufferValues[CIEV_BUF_SIZE];
+} T_CIEV_SIGNAL_BUFFER;
+
+typedef struct
+{
+  UBYTE                   uiLastIndex;
+  T_ACI_CIND_SMSFULL_TYPE asBufferValues[CIEV_BUF_SIZE];
+} T_CIEV_SMSFULL_BUFFER;
+
+typedef struct
+{
+  char*          name;
+  T_ACI_SMS_READ rdmode;
+} SMS_RdMode;
+
+#ifdef ACI_CMD_C
+GLOBAL const SMS_RdMode sms_rdmode [] =
+{
+  {"READ NORMAL",     SMS_READ_Normal },
+  {"READ PREVIEW",    SMS_READ_Preview   },
+  {"STATUS CHANGE",   SMS_READ_StatusChange },
+  {NULL,              SMS_READ_NotPresent}
+};
+#else
+EXTERN const SMS_RdMode sms_rdmode [];
+#endif
+
+/*
+ *-------------------------------------------------------------------
+ * END
+ *-------------------------------------------------------------------
+ */
+EXTERN void       aci_sendPString (UBYTE srcId, CHAR* buffer);
+EXTERN void       cmd_flushCnmiBuf(void);
+EXTERN void       cmd_flushCnmiBufOneByOne(void);
+EXTERN UINT16     cmd_getNumberOfCnmiEntrys(void);
+EXTERN T_CNMI_BUFFER_ELEMENT* cmd_getFirstCnmiMessage(void);
+EXTERN T_CNMI_BUFFER_ELEMENT* cmd_getCnmiMessage(UINT16 uiIndex);
+EXTERN BOOL       cmd_clearCnmiMessage(UINT16 uiIndex);
+EXTERN BOOL       cmd_clearFirstCnmiMessage(void);
+EXTERN BOOL       cmd_clearFirstMsgWithSrcIdInCnmiBuf(T_ACI_CMD_SRC srcId);
+EXTERN void       cmd_flushCievBuf(UBYTE srcId);
+EXTERN void       cmd_clearCievBuf(UBYTE srcId);
+EXTERN BOOL       cmd_storeNextCnmiBufMsgToSim();
+EXTERN void       cmd_clearCnmiBuf (void);
+EXTERN UBYTE      aci_timeout     (USHORT handle);
+EXTERN void       aciRingTimeout  (void);
+EXTERN void       aciCnmaTimeout  (void);
+EXTERN void       cmd_handleCnmaTimeout (void);
+EXTERN void       ci_remTrailCom  (CHAR* outLine, USHORT len);
+EXTERN UBYTE      toa_merge       (T_ACI_TOA type);
+EXTERN T_ACI_TOA  toa_demerge     (SHORT type);
+EXTERN T_ACI_TOA  toa_sms_demerge     (SHORT type);
+EXTERN SHORT      tos_merge       (T_ACI_TOS type);
+EXTERN T_ACI_TOS  tos_demerge     (SHORT type);
+EXTERN CHAR *     sms_status      (T_ACI_SMS_STAT stat);
+EXTERN void       cmd_PlusCOPN_CB ( UBYTE src_id );
+EXTERN BOOL       cmd_readCOPNBlock  ( SHORT startIdx, UBYTE src_id);
+EXTERN T_ACI_RETURN  cmd_readCPBRBlock (UBYTE srcId);
+EXTERN void       cmd_PlusCPBR_CB(UBYTE srcId);
+
+#define SMS_TEXT_MODE_NONE  0
+#define SMS_TEXT_MODE_CMGS  1
+#define SMS_TEXT_MODE_CMGW  2
+#define SMS_TEXT_MODE_CMGC  3
+#define SMS_PDU_MODE_CMGS   4
+#define SMS_PDU_MODE_CMGC   5
+#define SMS_PDU_MODE_CMGW   6
+#define SMS_PDU_MODE_CNMA   7
+#define SMS_TEXT_MODE_READ  8
+
+#ifdef ACI_CMD_C
+GLOBAL AciCmdVars at;
+/* next variable is aimed at containing the user defined configuration
+for the output format through AT interpreter
+(it will eventually replace "GLOBAL AciCmdVars at;")*/
+#ifdef FF_ATI
+GLOBAL T_ATI_USER_OUTPUT_CFG ati_user_output_cfg[CMD_SRC_MAX];
+#endif
+
+GLOBAL UBYTE SMS_TEXT_MODE;  /* +CMGS sets 1 - +CMGW sets 2 in PDU mode 4,5 or 6*/
+
+GLOBAL T_ACI_SMS_READ   smsReadMode = SMS_READ_Normal;
+#ifdef WIN32
+GLOBAL T_ACI_CPOL_MOD   cpolMode  = CPOL_MOD_NotPresent;
+GLOBAL SHORT            cpolIdx2  = ACI_NumParmNotPresent;
+#endif /* WIN32 */
+
+#else /* ACI_CMD_C */
+EXTERN AciCmdVars at;
+/* next variable is aimed at containing the user defined configuration
+for the output format through AT interpreter
+(it will eventually replace "GLOBAL AciCmdVars at;")*/
+
+#ifdef FF_ATI
+EXTERN T_ATI_USER_OUTPUT_CFG ati_user_output_cfg[CMD_SRC_MAX];
+#endif /* FF_ATI */
+
+EXTERN UBYTE SMS_TEXT_MODE;
+
+
+EXTERN T_ACI_SMS_READ   smsReadMode;
+#ifdef WIN32
+EXTERN T_ACI_CPOL_MOD   cpolMode;
+EXTERN SHORT            cpolIdx2;
+#endif /* WIN32 */
+#endif /* ACI_CMD_C */
+
+#endif
+
+