Files
banban/ql-kernel/threadx/common/include/telatci.h
T

937 lines
36 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*--------------------------------------------------------------------------------------------------------------------
(C) Copyright 2006, 2007 Marvell DSPC 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抯 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: telatci.h
*
* Description: Telephony AT2CI utilities header file
*
* History:
* May 19, 2006 - Creation of file
*
* Notes:
*
******************************************************************************/
/*------------ External include files ---------------------------------------*/
/*------------ Local include definitions ------------------------------------*/
/*--------- Local defines ---------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/*-------- Local macro definitions ------------------------------------------*/
/*-------- Local type definitions -------------------------------------------*/
/*--------- Global constants definitions ------------------------------------*/
/*--------- Local constants definitions -------------------------------------*/
/*--------- Global variables declarations ------------------------------------*/
/*-- local function prototypes --------------------------------------------*/
#ifndef __TELATCIUTL_H__
#define __TELATCIUTL_H__
/* General includes */
//#include "gbl_types.h"
#include "ci_cc.h"
#include "ci_ps.h"
#include "ci_ss.h"
#include "ci_dat.h"
#include "osa.h"
#include "teldef.h"
#include "stub.h"
#define CI_PS_MAX_CID 16
#define CI_PS_3G_ENUM_LOOKUP_END_ELEMENT (0xFF) //vcy: due to INT16, old value: (0xFFFF)
#define ERROR_RATIO_STRING_LEN (10)
#define SUBSCRIBED_VALUE (0)
#define MAX_BITRATE (8640)
#define MAX_SDU_SIZE (1520)
#define MAX_TRANSFER_DELAY (4000)
#define MCC_DIGIT_LENGTH (3)
#define MNC_DIGIT_LENGTH_MIN (2)
#define MNC_DIGIT_LENGTH_MAX (3)
#define DEFAULT_TGSEND_DATA_SIZE (1500)
#define TEL_GPRS_MIN_DIAL_STRING_SIZE (3)
#define NUM_GPRS_SC_DIGITS (2)
#define TEL_GPRS_SC_DIG_1 ('9')
#define TEL_GPRS_SC_DIG_2 TEL_GPRS_SC_DIG_1
#define TEL_GSM_SC_DIG_1 ('8')
#define TEL_GSM_SC_DIG_2 GSM_SC_DIG_1
#define NUM_ENTRIES(X) (sizeof(X)/sizeof(X[0]))
#define ATCI_DEFAULT_PARAM_VALUE 255
#define ATCI_IP_MTU 1500 /* Maximum Transmission Unit over GPRS */
#define ATCI_IP_LEN 20 /* IP header Length */
#define ATCI_UDP_LEN 8 /* UDP header Length */
#define ATCI_TCP_LEN 20 /* TCP header Length */
#define ATCI_FIRST_CID 0
#define ATCI_DEFAULT_CID ATCI_FIRST_CID
#define ATCI_MAX_PACKET_SIZE 10000
#define ATCI_MAX_PDU_SIZE ATCI_IP_MTU - ATCI_IP_LEN - ATCI_UDP_LEN
#define ATCI_DEFAULT_PDU_SIZE ATCI_MAX_PDU_SIZE
#define ATCI_DEFAULT_PDU_COUNT 20
#define ATCI_DEFAULT_UDP_PORT 9
#define ATCI_PS_ADDRESS_SIZE 40
#define ATCI_MAX_PPP_FRAME_SIZE 180
#define ATCI_MAX_FRAME_SIZE 180
#if !defined (min)
# define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#define ATCI_MAX_CMDSTR_LENGTH 40 /* maximum characters per AT command line */
#define ATCI_MAX_CISCC_PARAMETER_LENGTH 150
#define ATCI_NULL_TERMINATOR_LENGTH 1
#define ATCI_FACILITY_STR_LENGTH 2
/* PDP data compression, only applicable to SNDCP */
typedef enum ATCI_PSDCOMP
{
ATCI_PS_DCOMP_OFF = 0, /* off, default */
ATCI_PS_DCOMP_ON, /* on, manufacturer preferred compression */
ATCI_PS_DCOMP_V42bis, /* V.42 bis */
ATCI_PS_DCOMP_DCOMPS
} _ATCIPsDcomp;
/* PDP header compression */
typedef enum ATCIPSHCOMP
{
ATCI_PS_HCOMP_OFF=0, /* off, default */
ATCI_PS_HCOMP_TCPIP, /* RFC 1144 */// ON(1) mode in Spec doesn't supported by CI definition.
ATCI_PS_HCOMP_IP, /* RFC 2507 */
ATCI_PS_NUM_HCOMPS
} _ATCiPsHcomp;
/*
<h_comp>: a numeric parameter that controls PDP header compression (refer 3GPP TS 04.65 [59])
0 – off (default if value is omitted)
1 – on (manufacturer preferred compression)
2 – RFC1144
3 – RFC2507
Other values are reserved.
*/
#if 0
#define ATCI_PS_DCOMP_OFF 0
#define ATCI_PS_DCOMP_ON 1
#define ATCI_PS_DCOMP_V42bis 2 // CI_PS_DCOMP_V42bis
#define ATCI_PS_HCOMP_OFF 0
#define ATCI_PS_HCOMP_TCPIP 1
#define ATCI_PS_HCOMP_IP 2
#endif
#define ATCI_PB_STORAGE_STR_LENGTH 4
#define ATCI_MSG_STORAGE_STR_LENGTH 2
#define ATCI_PB_INVALID_INDEX 0 //-1 [Jerry] 0 is invalid PBK ID
/* Max long name length is 16 according to 3GPP 27.007 */
#define ATCI_PLMN_LONG_NAME_LENGTH 16
#define ATCI_PLMN_SHORT_NAME_LENGTH 8
#define ATCI_MAX_INDV_LIST_SIZE 20
#define ATCI_MAX_CI_NUMERIC_RANGE_LIST_SIZE 20
#define ATCI_MAX_QUEUE_SIZE 10
#define ATCI_MAX_SMS_TDPU_SIZE (232)
#define ATCI_SMS_DELIVER_MTI ( (UINT8) 0x00 )
#define ATCI_SMS_SUBMIT_MTI ( (UINT8) 0x01 )
#define ATCI_SMS_COMMAND_MTI ( (UINT8) 0x02 )
#define ATCI_SMS_STATUS_REPORT_MTI ( (UINT8) 0x02 )
#define ATCI_SMS_TP_RP 0x80 /* TP-RP, reply path */
#define ATCI_SMS_TP_UDHI 0x40 /* TP User Data Header Indicator */
#define ATCI_SMS_TP_SRI 0x20 /* TP Status Report Indication */
#define ATCI_SMS_TP_SRR 0x20 /* TP Status Report Request */
#define ATCI_SMS_TP_SRQ 0x20 /* TP Status Report Qualifier */
#define ATCI_SMS_TP_VPF 0x18 /* TP Validity Period Format */
#define ATCI_SMS_TP_MMS 0x04 /* TP More Messages to Send */
#define ATCI_SMS_TP_RD 0x04 /* TP Reject Duplicates */
#define ATCI_TP_MTI_MASK 0x03 /* SMS Message-Type Indicator mask */
#define ATCI_BCD_LOW_MASK 0x0F
#define ATCI_BCD_HIGH_MASK 0xF0
#define ATCI_BCD_FILLER 0x0F
#define ATCI_SMS_BCD_POS 2
//mengliang add 20120511
#define ATCI_SMS_VP_PRESENT 0x10
#define ATCI_SMS_MAX_MSG_LEN 160
#define ATCI_MSG_SUBMIT_FO_DEFAULT ((UINT8)0x21) /* Default first octet for SMS-SUBMIT PDU, status report required */ /* NOTE: Voyager cod suggests 17, but17 is NOT SMS-SUBMIT (?) */
#define ATCI_MSG_VP_DEFAULT ((UINT8)167) /* 24 hours - see 3GPP TS 23.040 */
#define ATCI_MSG_PID_DEFAULT ((UINT8)0) /* see 3GPP TS 23.040 */
#define ATCI_MSG_DCS_DEFAULT ((UINT8)0) /* should be 246 (0xF6), but SAC does not support 8-bit alphabet */
#define ATCI_MSG_REF_DEFAULT ((UINT8)0) /* Reference=0 means that msg ref is set in SAC */
#define ATCI_MSG_UDH_PRESENT ((UINT8)1)
#define ATCI_MSG_UDH_NOT_PRESENT ((UINT8)0)
enum _AtciFacilityTypeTag
{
ATCI_SS_FAC_MIN = 0,
ATCI_SS_FAC_CS = ATCI_SS_FAC_MIN,
ATCI_SS_FAC_PS,
ATCI_SS_FAC_PF,
ATCI_SS_FAC_SC,
ATCI_SS_FAC_AO,
ATCI_SS_FAC_OI,
ATCI_SS_FAC_OX,
ATCI_SS_FAC_AI,
ATCI_SS_FAC_IR,
ATCI_SS_FAC_AB,
ATCI_SS_FAC_AG,
ATCI_SS_FAC_AC,
ATCI_SS_FAC_FD,
ATCI_SS_FAC_NT,
ATCI_SS_FAC_NM,
ATCI_SS_FAC_NS,
ATCI_SS_FAC_NA,
ATCI_SS_FAC_PN,
ATCI_SS_FAC_PU,
ATCI_SS_FAC_PP,
ATCI_SS_FAC_PC,
/* Pin2 must ALWAYS be last! */
ATCI_SS_FAC_P2,
ATCI_SS_FAC_MAX
};
typedef UINT8 AtciFacilityType;
typedef struct _AtciFacilityDescriptorStruct
{
AtciFacilityType facTypeId;
CHAR facTypeStr[ATCI_FACILITY_STR_LENGTH + ATCI_NULL_TERMINATOR_LENGTH];
INT8 pswdLen;
} AtciFacilityDescriptor;
/*Michal Buaki - Modify this Struct for MEP&UDP support. Facility will divided to 3 logic group: CB, MEP, and all other*/
typedef struct _AtciFacTypeStruct
{
UINT8 facLogicGroup;
UINT8 facId;
} AtciFacType;
/* Modes for call forwarding (+CCFC) */
typedef enum ATCI_SS_CCFC_MODE {
ATCI_SS_MODE_DISABLE = 0,
ATCI_SS_MODE_ENABLE,
ATCI_SS_MODE_QUERY_STATUS,
ATCI_SS_MODE_REGISTER,
ATCI_SS_MODE_ERASE,
ATCI_SS_NUM_MODES
} _AtciSsCcfcMode;
typedef UINT8 AtciSsCcfcMode;
/*Michal Buaki - Add this enum for MEP&UDP support. Facility will divided to 3 logic group: CB, MEP, and all other*/
typedef enum ATCI_FAC_LOGIC_GROUP{
ATCI_FAC_MEP = 0,
ATCI_FAC_CB,
ATCI_FAC_OTHER
}_AtciFacilityLogicGroup;
typedef UINT8 AtciFacilityLogicGroup;
/*Michal Buaki - Add this enum for MEP&UDP support*/
typedef enum ATCI_MEP_MODE {
ATCI_MEP_MODE_ACTIVATE = 0,
ATCI_MEP_MODE_DEACTIVATE,
ATCI_MEP_MODE_DISABLE,
ATCI_MEP_MODE_READ,
ATCI_MEP_MODE_UNBLOCK,
ATCI_MEP_MODE_NUM_OPERS
} _AtciMEPMode;
typedef UINT8 AtciMEPMode;
/*Michal Buaki - Add this enum for MEP&UDP support*/
typedef enum ATCI_UDP_MODE {
ATCI_UDP_MODE_ACTIVATE = 0,
ATCI_UDP_MODE_DEACTIVATE,
ATCI_UDP_MODE_READ,
ATCI_UDP_MODE_NUM_OPERS
} _AtciUDPMode;
typedef UINT8 AtciUDPMode;
/*Michal Buaki - Add this enum for MEP&UDP support*/
typedef enum ATCI_UDP_CAT {
ATCI_UDP_CAT_UNAUTHERIZED_SIM_DETECTION = 0,
ATCI_UDP_CAT_INVALID_SIM_DETECTION,
ATCI_UDP_NUM_CATS
} _AtciUDPCat;
typedef UINT8 AtciUDPCat;
#define ATCI_SS_BS_EXT_ALL_SERVICES 0xFF
#define ATCI_CBST_DEFAULT_SPEED 6
#define ATCI_CBST_DEFAULT_NAME 0
#define ATCI_CBST_DEFAULT_CE 1
/* current USSD operation states */
typedef enum ATCI_USSD_STATE {
ATCI_USSD_IDLE = 0,
ATCI_USSD_MO_WAIT_NW_RSP,
ATCI_USSD_MT_WAIT_TE_RSP,
ATCI_USSD_MT_TE_RSP_SENT,
ATCI_USSD_ABORT_SENT,
ATCI_USSD_NUM_STATES
} _AtciUssdState;
typedef UINT8 AtciUssdState;
/* current USSD operation states */
typedef enum ATCI_DATA_MODE_TYPE {
ATCI_WAIT_PS_DEFINE_CTX,
ATCI_WAIT_PS_DEFAULT_CTX,
ATCI_WAIT_PS_ENTER_DATA,
ATCI_WAIT_PS_DATA_OK,
ATCI_WAIT_PS_DEACTIVATE,
ATCI_PS_CTX_DEFINED,
ATCI_PS_DATA,
ATCI_PS_PPP_DATA,
ATCI_PS_SINK_DATA,
ATCI_WAIT_CS_DATA_CONN,
ATCI_WAIT_CS_DATA_OK,
ATCI_CS_DATA,
ATCI_CS_PPP_DATA,
ATCI_CS_SINK_DATA,
ATCI_WAIT_CS_VOICE,
ATCI_CS_VOICE,
ATCI_NUMS_DATA
} _AtciDataConnType;
typedef UINT8 AtciDataConnType;
/* current USSD operation states */
typedef enum ATCI_PPP_STATE {
ATCI_PPP_OFF = 0,
ATCI_PPP_REQUESTED,
ATCI_PPP_ON
} _AtciPppState;
typedef UINT8 AtciPppState;
/* current CSCS character set enum */
typedef enum ATCI_CHARACTER_SET {
ATCI_CHSET_GSM = 0,
ATCI_CHSET_HEX,
ATCI_CHSET_IRA,
ATCI_CHSET_PCDN,
ATCI_CHSET_UCS2,
ATCI_CHSET_8859_N,
ATCI_CHSET_8859_C,
ATCI_CHSET_8859_A,
ATCI_CHSET_8859_G,
ATCI_CHSET_8859_H,
} _AtciCharacterSet;
typedef UINT8 AtciCharacterSet;
/*************************************************
** Data Structures
*/
typedef struct AtciSSCntx_Struct
{
UINT8 queryCallClassStatus;
UINT8 ussdMode;
AtciUssdState currentUssdState;
UINT8 localCwOption;
UINT8 localClipPresent;
}AtciSSCntx;
typedef struct ErrorRatioLookupTag
{
const INT16 mantissa;
const INT16 exponent;
const INT32 enumValue;
} ErrorRatioLookup;
typedef struct EnumParamLookupTag
{
const INT32 atParam;
const INT32 bgParam;
} EnumParamLookup;
typedef struct cgSend_struct{
UINT16 dataSize;
BOOL isUnackRlc;
UINT8 sapi;
UINT8 peakThroughput;
UINT8 radioPriorityLevel;
}CgSend;
typedef struct AtciQosQuery_Struct{
BOOL inProgress;
BOOL qosType;
UINT8 cid;
}AtciQosQuery;
typedef enum ATCIQOSTYPE
{
ATCI_QOSTYPE_MIN = 0, /* Minimum QoS */
ATCI_QOSTYPE_REQ, /* Requested QoS */
ATCI_QOSTYPE_NEG, /* Negotiated QoS */
ATCI_QOSTYPE_NUMTYPES
} _AtciQosType;
typedef struct AtciCurrentSetCntx_Struct{
BOOL bDefined;
UINT8 cid;
CiPsPdpType pdpType;
UINT8 pdpAddress[ CI_PS_PDP_IP_V6_SIZE ];
_AtciConnectionType connectionType;
CiRequestHandle reqHandle; /* CiRequestHanlde that the call is originated from */
} AtciCurrentSetCntx;
typedef struct AtciCurrentPsCntx_Struct{
UINT8 currCid;
void *reqMsg;
}AtciCurrentCntx;
typedef struct AtciCurrentPsCntxList_Struct{
AtciCurrentCntx currCntx[NUM_OF_TEL_ATP];
AtciCurrentSetCntx cInfo[CI_PS_MAX_MO_AND_MT_PDP_CTX_NUM];
#ifndef SINGLE_SIM
AtciCurrentSetCntx cInfo_1[CI_PS_MAX_MO_AND_MT_PDP_CTX_NUM];
#endif
}AtciCurrentPsCntxList;
/* Call Information structure */
typedef struct AtCiCcCallInfo_struct {
CiCcCallId CallId; /* Unique Call Identifier */
CiBoolean IsEmergency; /* Is this an Emergency Call? */
CiBoolean IsMPTY; /* Is this part of a Multiparty Call? */
CiCcCallDirection ReleaseDirection; /* Release Direction (MT/MO) Indicator */
CiCcCallDirection CallDirection; /* Call Direction (MT/MO) Indicator */
CiCcCurrentCState OldState; /* Previous Call State */
CiCcCurrentCState State; /* Current Call State */
CiCcCurrentCMode OldMode; /* Previous Call Mode */
CiCcCurrentCMode Mode; /* Current Call Mode */
UINT8 Digits[ CI_MAX_ADDRESS_LENGTH + ATCI_NULL_TERMINATOR_LENGTH ]; /* Number Digits */
UINT8 DigitsLength;
CiAddressType AddrType; /* Address Type */
CiOptNameInfo Name; /* Name Information */
CiBoolean SsNumberInfoReceived; /* Have received SS number indication or not, such as +CLIP/+COLP */
CiBoolean SsNameInfoReceived; /* Have received SS name indication or not, such as +CNAP */
CiRequestHandle reqHandle; /* CiRequestHanlde that the call is originated from */
CiCcCliValidity CliValidity; /* CLI Validity indicator*/
} AtCiCcCallInfo;
typedef struct AtciCurrentCall_Struct{
CiCcBasicCMode currBasicMode; /* Current Basic Call Mode */
CiCcCallId currCallId; /* Unique Call Identifier */
CiRequestHandle currHandle; /* CiRequestHanlde that the call is originated from */
}AtciCurrentCall;
typedef struct AtciCurrentCallsList_Struct{
AtciCurrentCall currCall[ NUM_OF_TEL_ATP ];
UINT8 NumCalls;
AtCiCcCallInfo callInfo[ CICC_MAX_CURRENT_CALLS ];
} AtciCurrentCallsList;
typedef struct _AtciFrameData
{
UINT8 dataLength;
CHAR data[ATCI_MAX_FRAME_SIZE];
} AtciFrameData;
typedef struct _AtciFramesQueue
{
UINT8 currentEntries;
UINT8 readIdx;
UINT8 writeIdx;
AtciFrameData frames[ATCI_MAX_QUEUE_SIZE];
} AtciFramesQueue;
typedef struct _AtciMsgInfo
{
UINT8 fo; /* First octet */
UINT8 vp; /* Validity Period */
UINT8 pid; /* Protocol Identifier */
UINT8 dcs; /* Data coding scheme */
UINT8 msgRef;
UINT8 udhPresent; /* User Data Header Present */
UINT8 addrType;
UINT8 addrPlan;
UINT16 maxMsgLen;
UINT8 stat; /* Message status, mainly used in +CMGW */
UINT8 destAddr[ CI_MAX_ADDRESS_LENGTH + ATCI_NULL_TERMINATOR_LENGTH ];
} AtciMsgInfo;
/*************************************************
** State Machine Enums
*/
typedef enum ATCI_CALL_STATE
{
CALL_IDLE,
CALL_IN_PROGRESS,
CALL_CONNECTED,
CALL_DISCONNECTED
} _AtciCallState;
typedef UINT8 AtciCallState;
typedef enum ATCI_GPRS_STATE
{
ATCI_GPRS_DETACH_REQ = 0,
ATCI_GPRS_ATTACH_REQ = 1
} _AtciGprsState;
typedef UINT8 AtciGprsState;
typedef enum ATCI_DIAL_NUMBER_TYPE
{
/* Number format as described in GSM 04.08 section 10.5.4.7 */
ATCI_DIAL_NUMBER_UNKNOWN = 129, /* Unknown type, IDSN format number */
ATCI_DIAL_NUMBER_RESTRICTED = 128, /* Unknown type, unknown number format */
ATCI_DIAL_NUMBER_NATIONAL = 161, /* National number type, IDSN format */
ATCI_DIAL_NUMBER_INTERNATIONAL = 145, /* International number type, ISDN format */
ATCI_DIAL_NUMBER_NET_SPECIFIC = 177, /* Network specific number, ISDN format */
/* Added by Michal Bukai*/
ATCI_DIAL_NUMBER_DEDICATED = 193,
ATCI_DIAL_NUMBER_EXTENSION = 241,
ATCI_DIAL_NUMBER_INVALID /* Added by EGOR for +CPBW command */
} _AtciDialNumberType;
typedef UINT8 AtciDialNumberType;
typedef enum ATCI_SMS_FORMAT_MODE
{
ATCI_SMS_FORMAT_PDU_MODE = 0, /* pdu mode - default */
ATCI_SMS_FORMAT_TXT_MODE = 1, /* text mode */
ATCI_SMS_FORMAT_NUM_MODE, /* invalid mode */
ATCI_SMS_FORMAT_TXT_MODE_SHOW = 0x10, /* text mode extended. This parameter is to keep show text mode for implementation AT+CSDH */
ATCI_SMS_FORMAT_TXT_MODE_SHOW_MASK = 0xF0
} _AtciSmsFormatMode;
typedef UINT8 AtciSmsFormatMode;
typedef enum ATCI_COPS_MODE
{
ATCI_AUTOMATIC_MODE = 0,
ATCI_MANUAL_OPERATOR_SELECTION,
ATCI_MANUAL_DEREGISTER,
ATCI_SET_FORMAT,
ATCI_MANUAL_THEN_AUTOMATIC,
ATCI_EXTENDED_NETWORK_SEARCH,
ATCI_MODE_NUMS
} _AtciCopsMode;
typedef UINT8 AtciCopsMode;
typedef enum ATCI_COPS_MODE_FORMAT
{
ATCI_OP_FORMAT_LONG = 0,
ATCI_OP_FORMAT_SHORT,
ATCI_OP_FORMAT_NUM,
ATCI_OP_FORMAT_NUMS
} _AtciCopsModeFormat;
typedef UINT8 AtciCopsModeFormat;
/*Added by Michal Bukai - at support for AccTchMode parameter*/
typedef enum ATCI_CPOL_ACT
{
ATCI_ACT_GSM = 0,
ATCI_ACT_GSM_COMPACT,
ATCI_ACT_UTRAN,
ACT_GSM_EGPRS, /**< GSM w/EGPRS */
ACT_UTRAN_HSDPA, /**< UTRAN w/HSDPA */
ACT_UTRAN_HSUPA, /**< UTRAN w/HSUPA */
ACT_UTRAN_HSPA, /**< UTRAN w/HSDPA and HSUPA */
ATCI_ACT_EUTRAN,//mengliang add for at+clop e_utran_act2011120412
ATCI_ACT_NUMS
} _AtciCpolAct;
typedef UINT8 AtciCpolAct;
//need to map this value to ATCI_CFUN_OP_DISABLE_SIM
#define ATCI_PLUS_CFUN_OP_DISABLE_SIM 5 //+CFUN=5
#define ATCI_PLUS_CFUN_OP_FULL_SECONDARY_RX_OFF 6//+CFUN=6
typedef enum ATCI_CFUN_OP_TYPE
{
ATCI_CFUN_OP_MIN_FUNC = 0, /* Minimum functionality */
ATCI_CFUN_OP_FULL_FUNC, /* Full functionality */
ATCI_CFUN_OP_DISABLE_RF_TX,
ATCI_CFUN_OP_DISABLE_RF_RX,
ATCI_CFUN_OP_DISABLE_RF_RXTX,
ATCI_CFUN_OP_UPDATE_NVM_MIN_FUNC, /* Minimum functionality */
ATCI_CFUN_OP_UPDATE_NVM_FULL_FUNC, /* Full functionality */
ATCI_CFUN_OP_MIN_FUNC_NO_IMSI_DETACH, /* Minimum functionality but without IMSI detach */
ATCI_CFUN_OP_DISABLE_SIM, /*disable SIM*/
ATCI_CFUN_OP_UPDATE_NVM_DISABLE_RF_RXTX = 9,
ATCI_CFUN_OP_FULL_SECONDARY_RX_OFF = 10,
ATCI_CFUN_OP_INIT_RF_3G, /**< Init 3G RF setting. Only used for 3G */
ATCI_CFUN_OP_PRI_ONLY_RF_3G, /**< Enable only primary RF (Pri TX + Pri RX). Only used for 3G */
ATCI_CFUN_OP_SEC_ONLY_RF_3G, /**< Enable only secondary RF (Pri TX + Sec RX). Only used for 3G */
ATCI_CFUN_OP_PRI_SEC_RF_3G, /**< Enable both primary and secondary RF (Pri TX + Pri RX + Sec RX). Only used for 3G */
ATCI_CFUN_NUM_OP
} _AtciCfunOpType;
typedef UINT8 AtciCfunOpType;
typedef enum ATCI_CHOLD_MODE_TYPE
{
ATCI_CHLD_MODE_0 = 0,
ATCI_CHLD_MODE_1,
ATCI_CHLD_MODE_2,
ATCI_CHLD_MODE_3,
ATCI_CHLD_MODE_4,
ATCI_CHLD_MODE_1X = 10,
ATCI_CHLD_MODE_2X = 20,
ATCI_CHLD_MODE_NUMS
} _AtciChldModeTypes;
typedef UINT8 AtciChldModeTypes;
/* Registration Mode indicators - as required */
typedef enum ATCI_REGMODE {
ATCI_REGMODE_AUTOMATIC = 0, /* Automatic Registration Request */
ATCI_REGMODE_MANUAL, /* Manual Registration Request */
ATCI_REGMODE_DEREGISTER, /* Deregistration Request */
ATCI_REGMODE_SETONLY,
ATCI_REGMODE_MANUAL_AUTO /* Manual Request, fallback to Automatic */
} _AtciRegMode;
typedef UINT8 AtciRegMode;
typedef enum ATCI_AOC_MODE {
ATCI_AOC_MODE_QUERY = 0,
ATCI_AOC_MODE_DEACTIVATE,
ATCI_AOC_MODE_ACTIVATE,
ATCI_AOC_NUM_MODES
} _AtciAocMode;
typedef UINT8 AtciAocMode;
typedef enum ATCI_CB_MODES {
ATCI_CB_MSG_ACCEPT = 0,
ATCI_CB_MSG_REJECT,
ATCI_CB_NUM_MODES
} _AtciCbMode;
typedef UINT8 AtciCbMode;
/* New message indication processing */
typedef enum ATCI_NMI_PROCESSING_MODES {
ATCI_NMI_BUFFER = 0, /* Buffer unsolicited result codes in the TA. */
/* If TA result code buffer is full, indications */
/* can be buffered in some other place or the */
/* oldest indications may be discarded and */
/* replaced with the new received indications */
ATCI_NMI_DISCARD_FWD, /* Discard indication and reject new received */
/* message unsolicited result codes when TA-TE */
/* link is reserved (e.g. in on-line data mode). */
/* Otherwise forward them directly to the TE */
ATCI_NMI_BUFFER_FWD, /* Buffer unsolicited result codes in the TA */
/* when TA-TE link is reserved (e.g. in on-line */
/* data mode) and flush them to the TE after */
/* reservation. Otherwise forward them directly */
/* to the TE */
ATCI_NMI_FORWARD, /* Forward unsolicited result codes directly to */
/* the TE. TA-TE link specific inband technique */
/* used to embed result codes and data when TA is */
/* in on-line data mode */
ATCI_NMI_PROCESSING_NUM_MODES
} _AtciNmiProcessingMode;
typedef UINT8 AtciNmiProcessingMode;
/* New message indication routing */
typedef enum ATCI_NMI_MODES {
ATCI_NMI_DISABLE = 0, /* Store received message at cellular side, */
/* disable indication of new message received */
ATCI_NMI_INDEX, /* Store received message at cellular side, */
/* indicate memory storage and memory location */
ATCI_NMI_MSG, /* Store received message at cellular side, */
/* forward message to application side directly */
ATCI_NMI_CLASS3_MSG, /* Store CLASS 3 message (SM/CBM) at */
/* cellular side - forward the message to */
/* application side directly */
ATCI_NMI_NUM_MODES
} _AtciNmiMode;
typedef UINT8 AtciNmiMode;
/* New message indicatio buffer behaviour */
typedef enum ATCI_NMI_BFR {
ATCI_NMI_BFR_FLUSH = 0, /* TA buffer of unsolicited result codes defined */
/* within this command is flushed to the TE when */
/* <mode> 1...3 is entered (OK response shall be */
/* given before flushing the codes) */
ATCI_NMI_BFR_CLEAR, /* TA buffer of unsolicited result codes defined */
/* within this command is cleared when <mode> */
/* 1...3 is entered */
ATCI_NMI_BFR_NUM_MODES
} _AtciNmiBfr;
typedef UINT8 AtciNmiBfr;
typedef enum ATCI_CLIR_MODES {
ATCI_CLIR_SUBSCRIPTION = 0,
ATCI_CLIR_INVOKE,
ATCI_CLIR_SUPPRESS,
ATCI_CLIR_NUM_MODES
} _AtciClirMode;
typedef UINT8 AtciClirMode;
typedef enum ATCI_SMS_CUR_CMD {
ATCI_SMS_CMD_NONE = 0,
ATCI_SMS_CMD_CMGS,
ATCI_SMS_CMD_CMGW,
ATCI_SMS_CMD_CMGC,
ATCI_SMS_NUM_CMD
} AtciSmsCurCmd;
typedef enum ATCI_SMS_DELETE_MODE {
ATCI_SMS_DEL_MODE_DEFAULT = 0,
ATCI_SMS_DEL_INDEX = 0, /* Delete only one message indicated by the index */
ATCI_SMS_DEL_RECV_READ, /* Delete all received read messages */
ATCI_SMS_DEL_RECV_READ_SENT, /* Delete all received read messages as well as sent MO messages */
ATCI_SMS_DEL_RECV_READ_MO, /* Delete received read messages and all MO messages - sent and unsent */
ATCI_SMS_DEL_ALL,
ATCI_SMS_NUM_DEL_MODES
} _AtciSmsDelMode;
#define CME_ERROR_CODE_MARVELL_PROPRIETARY 1000
#define CMEE_ERROR_CODE_CISS_BASE_MARVELL_PROPRIETARY CME_ERROR_CODE_MARVELL_PROPRIETARY
typedef enum ATCI_CME_ERROR
{
CME_PHONE_FAILURE = 0, //phone failure
CME_NO_CONNECTION = 1, //no connection to phone
CME_PHONE_ADP_LINK_RSVD = 2, //phone adaptor link reserved
CME_OPERATION_NOT_ALLOWED = 3, //operation not allowed
CME_OPERATION_NOT_SUPPORTED = 4, //operation not supported
CME_PH_SIM_PIN_REQUIRED = 5, //PH SIM PIN required
CME_PH_FSIM_PIN_REQUIRED = 6, //PH-FSIM PIN required
CME_PH_FSIM_PUK_REQUIRED = 7, //PH-FSIM PUK required
CME_NO_SIM = 10, //SIM not inserted
CME_SIM_PIN_REQUIRED = 11, //SIM PIN required
CME_SIM_PUK_REQUIRED = 12, //SIM PUK required
CME_SIM_FAILURE = 13, //SIM failure
CME_SIM_BUSY = 14, //SIM busy
CME_SIM_WRONG = 15, //SIM wrong
CME_INCORRECT_PASSWD = 16, //incorrect password
CME_SIM_PIN2_REQUIRED = 17, //SIM PIN2 required
CME_SIM_PUK2_REQUIRED = 18, //SIM PUK2 required
CME_MEMORY_FULL = 20, //memory full
CME_INVALID_INDEX = 21, //invalid index
CME_NOT_FOUND = 22, //not found
CME_MEMORY_FAILURE = 23, //memory failure
CME_TEXT_STRING_TOO_LONG = 24, //text string too long
CME_INVALID_CHAR_IN_STRING = 25, //invalid characters in text string
CME_DAIL_STRING_TOO_LONG = 26, //dial string too long
CME_INVALID_CHAR_IN_DIAL_STRING = 27, //invalid characters in dial string
CME_NO_NW_SERVICE = 30, //no network service
CME_NW_TIMEOUT = 31, //network timeout
CME_NW_NOT_ALLOWED = 32, //network not allowed - emergency calls only
CME_NW_PIN_REQUIRED = 40, //network personalization PIN required
CME_NW_PUK_REQUIRED = 41, //network personalization PUK required
CME_NW_SUB_PIN_REQUIRED = 42, //network subset personalization PIN required
CME_NW_SUB_PUK_REQUIRED = 43, //network subset personalization PUK required
CME_SP_PIN_REQUIRED = 44, //service provider personalization PIN required
CME_SP_PUK_REQUIRED = 45, //service provider personalization PUK required
CME_CP_PIN_REQUIRED = 46, //corporate personalization PIN required
CME_CP_PUK_REQUIRED = 47, //corporate personalization PUK required
CME_HD_KEY_REQUIRED = 48, //hidden key required
CME_INVALID_PARAM = 50, //Invalid Param
CME_FDN_FAILURE = 51, //FDN check failure
CME_UNKNOWN = 100, //unknown
CME_ILLEGAL_MS = 103, //Illegal MS (#3)
CME_ILLEGAL_ME = 106, //Illegal ME (#6)
CME_GPRS_NOT_ALLOWED = 107, //GPRS services not allowed (#7)
CME_PLMN_NOT_ALLOWED = 111, //PLMN not allowed (#11)
CME_LA_NOT_ALLOWED = 112, //Location area not allowed (#12)
CME_ROAMING_NOT_ALLOWED = 113, //Roaming not allowed in this location area (#13)
CME_SERVICE_OP_NOT_SUPPORTED = 132, //service option not supported (#32)
CME_SERVICE_OP_NOT_SUBSCRIBED = 133, //requested service option not subscribed (#33)
CME_SERVICE_OP_OUT_OF_ORDER = 134, //service option temporarily out of order (#34)
CME_PDP_AUTH_FAILURE = 149, //PDP authentication failure
CME_INVALID_MOBILE_CLASS = 150, //invalid mobile class
CME_UNSPECIFIED_GPRS_ERR = 148, //unspecified GPRS error
CME_COMMMAND_TIMEOUT_ERR = 151, //AT command timeout
CME_IMS_SRV_FAILURE = 170, //IMSSRV failure
CME_IMS_SRV_CAUSE_TERMINATE = 171,
CME_IMS_SRV_CAUSE_REDIAL = 172,
CME_IMS_SRV_CAUSE_WAIT_FOR_RESUMECNF = 173,
CMS_ME_FAILURE = 300, //ME failure
CMS_SMS_SERVICE_RESV = 301, //SMS service of ME reserved
CMS_OPERATION_NOT_ALLOWED = 302, //operation not allowed
CMS_OPERATION_NOT_SUPPORTED = 303, //operation not supported
CMS_INVALID_PDU_MODE_PARA = 304, //invalid PDU mode parameter
CMS_INVALID_TEXT_MODE_PARA = 305, //invalid text mode parameter
CMS_NO_SIM = 310, //(U)SIM not inserted
CMS_SIM_PIN_REQUIRED = 311, //(U)SIM PIN required
CMS_PH_SIM_PIN_REQUIRED = 312, //PH-(U)SIM PIN required
CMS_SIM_FAILURE = 313, //(U)SIM failure
CMS_SIM_BUSY = 314, //(U)SIM busy
CMS_SIM_WRONG = 315, //(U)SIM wrong
CMS_SIM_PUK_REQUIRED = 316, //(U)SIM PUK required
CMS_SIM_PIN2_REQUIRED = 317, //(U)SIM PIN2 required
CMS_SIM_PUK2_REQUIRED = 318, //(U)SIM PUK2 required
CMS_MEMORY_FAILURE = 320, //memory failure
CMS_INVALID_MEMORY_INDEX = 321, //invalid memory index
CMS_MEMORY_FULL = 322, //memory full
CMS_SMSC_ADDR_UNKNOWN = 330, //SMSC address unknown
CMS_NO_NW_SERVICE = 331, //no network service
CMS_NW_TIMEOUT = 332, //network timeout
CMS_NO_CNMA_ACK_EXPECTED = 340, //no +CNMA acknowledgement expected
CME_FILE_FAILED_TO_OPEN_FILE =410, //failed to open file")
CME_FILE_FAILED_TO_READ_FILE =411, //failed to read file")
CME_FILE_DELETE_FILE_FAIL = 418, //failed to delete file")
CMS_UNKNOWN_ERROR = 500, //unknown error
#ifdef AT_LABTOOL_CMNDS
CMS_WIFI_RETURN_ERROR = 501, //WIFI labtool return error
CMS_BT_RETURN_ERROR = 502, //BT labtool return error
CMS_FM_RETURN_ERROR = 503, //FM labtool return error
#endif
CMS_FILE_EXIST_ERROR = 504, //MRD file already exist
#ifdef AT_PRODUCTION_CMNDS
CMS_FILE_WITH_SAME_VERSION_EXIST_ERROR = 505, //MRD file with same version already exist
CMS_FILE_WITH_NEWER_VERSION_EXIST_ERROR = 506, //MRD file with newer version already exist
#ifdef SECURE_MRD
CME_AUTHORIZATION_FAILURE = 507, //MRD authorization failure
#endif
#endif
CME_SIM_PUK_BLOCKED = 508, //(U)SIM PUK blocked
CME_NON_PRODUCTION_MODE=606, //"Non-Production mode")
CME_ILLEGAL_OPERATION= CMEE_ERROR_CODE_CISS_BASE_MARVELL_PROPRIETARY + CiSS_ILLEGAL_OPERATION,// "ilegal operation")
}_AtciCmeError;
typedef UINT16 AtciCmeError;
#ifdef LWIP_IPNETBUF_SUPPORT
typedef enum ATCI_SYSINFO_SYSTEM_SUBMODE
{
ATCI_SYSINFO_SYSTEMO_SUBMODE_NO_SERVICE = 0,
ATCI_SYSINFO_SYSTEMO_SUBMODE_GSM = 1,
ATCI_SYSINFO_SYSTEMO_SUBMODE_GSM_EGPRS = 3,
ATCI_SYSINFO_SYSTEMO_SUBMODE_UTRAN_HSDPA = 5,
ATCI_SYSINFO_SYSTEMO_SUBMODE_UTRAN_HSUPA = 6,
ATCI_SYSINFO_SYSTEMO_SUBMODE_UTRAN_HSPA = 7,
ATCI_SYSINFO_SYSTEMO_SUBMODE_UTRAN = 8,
ATCI_SYSINFO_SYSTEMO_SUBMODE_EUTRAN = 17,
}_AtciSysinfoSystemSubMode;
#endif
typedef enum ATCI_RESULT_CODE
{
ATCI_RESULT_CODE_NULL, //Timer will not stop
ATCI_RESULT_CODE_OK, //Timer will stop, OK will be sent
ATCI_RESULT_CODE_ERROR, //Timer will stop, ERROR will be sent
ATCI_RESULT_CODE_CME_ERROR, //Timer will Stop, CME ERROR will be sent
ATCI_RESULT_CODE_CMS_ERROR, //Timer will Stop, CMS ERROR will be sent
ATCI_RESULT_CODE_SUPPRESS, //Timer will Stop, End of AT response without OK or ERROR string
#ifdef LWIP_IPNETBUF_SUPPORT
ATCI_RESULT_CODE_CME_ERROR_PROXY,
ATCI_RESULT_CODE_CMS_ERROR_PROXY,
ATCI_RESULT_CODE_CMUX_ERROR,
ATCI_RESULT_CODE_M2M_ERROR,
ATCI_RESULT_CODE_MAX
#endif
}_AtciResultCode;
typedef UINT8 AtciResultCode;
/* AT*CSG */
typedef enum ATCI_CSG_MODE
{
ATCI_CSG_MODE_AUTO = 0,
ATCI_CSG_MODE_MANUAL,
ATCI_CSG_MODE_REGISTER,
ATCI_CSG_MODE_CANCELL,
ATCI_NUM_CSG_MODE
} _AtciCsgMode;
typedef UINT8 AtciCsgMode;
/* telephony controller struct */
typedef struct telCurCallIdReqhandle_struct
{
CiCcCallId CallId; /* Unique Call Identifier */
CiRequestHandle reqHandle; /* CiRequestHanlde that the call is originated from */
}telCurCallIdReqhandle_t;
typedef enum {
MODEM_DATA_MODE,
MODEM_CONTROL_MODE
} MODEM_STATE;
enum
{
ATCI_CRTDCP_IND_DISABLE=0, /* off, default */
ATCI_CRTDCP_IND_ENABLE
};
void atciSvgFreeCnfMem ( CiServiceGroupID svgId, CiPrimitiveID primId, void* paras );
void atciSvgFreeIndMem ( CiServiceGroupID svgId, CiPrimitiveID primId, void* paras );
void ciRegisterClientApp(CiServiceGroupID dummy);
int handle_CMEE_code(UINT32 reqHandle, UINT16 errCode);
int handle_CMSE_code(UINT32 reqHandle, UINT16 errCode);
CiReturnCode MM_SetCellLOCK(UINT32 atHandle, UINT8 mode, UINT8 act, UINT8 band, INT32 freq, INT16 cellId);
int atRespStr_NW_REG(UINT32 reqHandle, int IMS_Flag, char *respString);
#endif /*AT_CICONV_H*/