22 #ifndef M2M_M2MB_ATP_API_H
23 #define M2M_M2MB_ATP_API_H
28 #define ATP_CMD_BUF_SIZE 6144
29 #define M2MB_ATP_MAX_NUM_OF_PARAMETERS 32
30 #if !defined (M2M_INTERNAL_AT_PARSER_PLUS_ATI)
31 #define M2MB_ATP_FIRST_INSTANCE_ID 0
33 #define M2MB_ATP_FIRST_INSTANCE_ID 1
36 #define M2MB_ATP_MAX_PARAM_STRING_LEN 16
37 #define M2MB_ATP_MAX_PARAM_VALUE_LEN 128
38 #define M2MB_ATP_MAX_PARAM_FILE_LEN (1+2*M2MB_ATP_MAX_PARAM_VALUE_LEN)
39 #define M2MB_ATP_MAX_PARAM_FILE_PATH_LEN 128
40 #define M2MB_ATP_MAX_OPT_ERR_STR_SIZE 60
43 #define ATP_THREAD_STACK_SIZE (1024 * 32)
44 #define M2MB_ATP_THREAD_STACK_SIZE (1024 * 24)
45 #define ATP_THREAD_N_MSG 100
46 #define ATP_THREAD_PRIORITY 231
48 #define ATP_EXTATP_THREAD_STACK_SIZE (1024 * 4)
49 #define ATP_EXTATP_THREAD_PRIORITY ATP_THREAD_PRIORITY
52 #define M2MB_ATP_NORML 0x0000 // Command accepted only if sim and pin inserted
53 #define M2MB_ATP_NOPIN 0x0001 // Command accepted even if pin enabled and not inserted yet
54 #define M2MB_ATP_NOSIM 0x0002 // Command accepted if sim not inserted
55 #define M2MB_ATP_SMLCK 0x0004 // Command accepted even if simlock enabled
56 #define M2MB_ATP_NOPAR 0x0200 // Marker for special AT+Cmd=<CR> handling
57 #define M2MB_ATP_CLACH 0x0080 // Hidden command, not listed in +CLAC
67 typedef HANDLE M2MB_ATP_HANDLE;
69 typedef INT16 SY_MESSAGE_ID;
78 M2MB_ATP_CMDTYP_NOPARAMS,
105 M2MB_ATP_CMD_CALLBACK_IND,
106 M2MB_ATP_CMD_DELEGATION_IND
107 } M2MB_ATP_CMD_IND_E;
111 M2MB_ATP_INPUT_MODE_NONE = 0,
112 M2MB_ATP_SMS_INPUT_MODE,
113 M2MB_ATP_EMAIL_INPUT_MODE,
114 M2MB_ATP_M2M_WRITE_INPUT_MODE,
115 M2MB_ATP_WLAN_INPUT_MODE,
116 M2MB_ATP_BLE_INPUT_MODE,
117 M2MB_ATP_ONLINE_INPUT_MODE,
118 M2MB_ATP_SILENT_INPUT_MODE,
119 M2MB_ATP_RUNNING_INPUT_MODE
120 } M2MB_ATP_INPUT_MODE;
124 M2MB_ATP_FRC_SILENT = -1,
127 M2MB_ATP_FRC_CME_ERROR,
128 M2MB_ATP_FRC_CMS_ERROR
133 M2MB_ATP_CME_PHONE_FAILURE = 0,
134 M2MB_ATP_CME_NO_CONNECTION_TO_PHONE = 1,
135 M2MB_ATP_CME_PHONE_LINK_RESERVED = 2,
136 M2MB_ATP_CME_OPERATION_NOT_ALLOWED = 3,
137 M2MB_ATP_CME_OPERATION_NOT_SUPPORTED = 4,
138 M2MB_ATP_CME_PHSIM_PIN_REQUIRED = 5,
139 M2MB_ATP_CME_PHFSIM_PIN_REQUIRED = 6,
140 M2MB_ATP_CME_SIM_NOT_INSERTED = 10,
141 M2MB_ATP_CME_SIM_PIN_REQUIRED = 11,
142 M2MB_ATP_CME_SIM_PUK_REQUIRED = 12,
143 M2MB_ATP_CME_SIM_FAILURE = 13,
144 M2MB_ATP_CME_SIM_BUSY = 14,
145 M2MB_ATP_CME_SIM_WRONG = 15,
146 M2MB_ATP_CME_INCORRECT_PASSWORD = 16,
147 M2MB_ATP_CME_SIM_PIN2_REQUIRED = 17,
148 M2MB_ATP_CME_SIM_PUK2_REQUIRED = 18,
149 M2MB_ATP_CME_MEMORY_FULL = 20,
150 M2MB_ATP_CME_INVALID_INDEX = 21,
151 M2MB_ATP_CME_NOT_FOUND = 22,
152 M2MB_ATP_CME_MEMORY_FAILURE = 23,
153 M2MB_ATP_CME_TEXT_TOO_LONG = 24,
154 M2MB_ATP_CME_INVALID_CHARS_IN_TEXT = 25,
155 M2MB_ATP_CME_DIAL_TOO_LONG = 26,
156 M2MB_ATP_CME_INVALID_CHARS_IN_DIAL = 27,
157 M2MB_ATP_CME_NO_NETWORK_SERVICE = 30,
158 M2MB_ATP_CME_NETWORK_TIMEOUT = 31,
159 M2MB_ATP_CME_NETWORK_NOT_ALLOWED = 32,
160 M2MB_ATP_CME_NCK_REQUIRED = 40,
161 M2MB_ATP_CME_NET_PERS_PUK_REQUIRED = 41,
162 M2MB_ATP_CME_NSCK_REQUIRED = 42,
163 M2MB_ATP_CME_NET_SUBSET_PERS_PUK_REQUIRED = 43,
164 M2MB_ATP_CME_SPCK_REQUIRED = 44,
165 M2MB_ATP_CME_SERV_PROV_PERS_PUK_EQUIRED = 45,
166 M2MB_ATP_CME_CPCK_REQUIRED = 46,
167 M2MB_ATP_CME_CORP_PERS_PUK_REQUIRED = 47,
168 M2MB_ATP_CME_HIDDEN_KEY_REQUIRED = 48,
169 M2MB_ATP_CME_UNKNOWN = 100,
170 M2MB_ATP_CME_ILLEGAL_MS = 103,
171 M2MB_ATP_CME_ILLEGAL_ME = 106,
172 M2MB_ATP_CME_GPRS_SERVICE_NOT_ALLW = 107,
173 M2MB_ATP_CME_PLMN_NOT_ALLW = 111,
174 M2MB_ATP_CME_LOC_AREA_NOT_ALLW = 112,
175 M2MB_ATP_CME_ROAM_NOT_ALW_IN_THIS_AREA = 113,
176 M2MB_ATP_CME_SERV_OPT_NOT_SUPPORTED = 132,
177 M2MB_ATP_CME_REQ_SERV_OPT_NOT_SUBSCRIBED = 133,
178 M2MB_ATP_CME_SERV_OPT_TEMP_OOF = 134,
179 M2MB_ATP_CME_UNSPECIFIED_GPRS_ERROR = 148,
180 M2MB_ATP_CME_PDP_AUTHENT_FAILURE = 149,
181 M2MB_ATP_CME_INVALID_MOBILE_CLASS = 150,
185 M2MB_ATP_CME_TEXT_PARAM_INSTEAD_OF_NUM_PARAM = 35,
186 M2MB_ATP_CME_NUM_PARAM_OUT_OF_BOUNDS = 36,
187 M2MB_ATP_CME_INVALID_PARAM_NUMBER = 277,
189 M2MB_ATP_CME_CONTEXT_NOT_OPENED = 556,
190 M2MB_ATP_CME_CANNOT_SETUP_SOCKET = 557,
191 M2MB_ATP_CME_CANNOT_RESOLVE_DN = 558,
192 M2MB_ATP_CME_TIMEOUT_IN_OPENING_SOCKET = 559,
193 M2MB_ATP_CME_CANNOT_OPEN_SOCKET = 560,
194 M2MB_ATP_CME_REMOTE_DISCONNECTED = 561,
195 M2MB_ATP_CME_CONNECTION_FAILED = 562,
196 M2MB_ATP_CME_TX_ERROR = 563,
197 M2MB_ATP_CME_ALREADY_LISTENING = 564,
198 M2MB_ATP_CME_EASY_SKT_ABORT = 565,
199 M2MB_ATP_CME_EASY_NO_SOCKET = 566,
200 M2MB_ATP_CME_IP_VERSION_TYPE_INCOMPATIBLE = 567,
201 M2MB_ATP_CME_IPV6_NOT_ENABLED = 568,
202 M2MB_ATP_CME_EASY_CONNECTION_ABORT = 569,
204 M2MB_ATP_CME_FTP_ALREADY_CONNECTED = 608,
205 M2MB_ATP_CME_CMDMODE = 613,
206 M2MB_ATP_CME_CMDMODE_NODATAPORT = 614,
207 M2MB_ATP_CME_FTP_NOT_CONNECTED = 615,
208 M2MB_ATP_CME_FTP_DISCONNECTED = 616,
209 M2MB_ATP_CME_FTP_READ_CMD_CLOSED = 617,
210 M2MB_ATP_CME_FTP_READ_CMD_ERROR = 618,
211 M2MB_ATP_CME_FTP_WRITE_CMD_CLOSED = 619,
212 M2MB_ATP_CME_FTP_WRITE_CMD_ERROR = 620,
213 M2MB_ATP_CME_FTP_READ_DATA_CLOSED = 621,
214 M2MB_ATP_CME_FTP_READ_DATA_ERROR = 622,
215 M2MB_ATP_CME_FTP_WRITE_DATA_CLOSED = 623,
216 M2MB_ATP_CME_FTP_WRITE_DATA_ERROR = 624,
217 M2MB_ATP_CME_FTP_HOST_NOT_FOUND = 625,
218 M2MB_ATP_CME_FTP_ACCEPT_FAIL = 626,
219 M2MB_ATP_CME_FTP_LISTEN_FAIL = 627,
220 M2MB_ATP_CME_FTP_BIND_FAIL = 628,
221 M2MB_ATP_CME_FTP_FILE_CREATE_FAIL = 629,
222 M2MB_ATP_CME_FTP_FILE_GET_COMPLETE = 630,
223 M2MB_ATP_CME_FTP_FILE_PUT_COMPLETE = 631,
224 M2MB_ATP_CME_FTP_FILE_NOT_FOUND = 632,
225 M2MB_ATP_CME_FTP_TIME_OUT = 633,
226 M2MB_ATP_CME_FTP_LOGIN_INCORRECT = 634,
227 M2MB_ATP_CME_FTP_CLOSE_ERROR = 635,
228 M2MB_ATP_CME_FTP_SERVER_NOT_READY = 636,
229 M2MB_ATP_CME_FTP_SERVER_SHUTDOWN = 637,
230 M2MB_ATP_CME_FTP_UNEXPECTED_REPLY = 638,
231 M2MB_ATP_CME_FTP_USERID_INVALID = 639,
232 M2MB_ATP_CME_FTP_PASSWD_INVALID = 640,
233 M2MB_ATP_CME_FTP_USER_ALREADY_LOGIN = 641,
234 M2MB_ATP_CME_FTP_OPEN_CHANNEL_TIMEOUT = 642,
235 M2MB_ATP_CME_FTP_COMM_TIMEOUT = 643,
236 M2MB_ATP_CME_FTP_UNKNOWN_ERROR = 644,
238 M2MB_ATP_CME_SSL_SSL_NOT_ACTIVATED = 1000,
239 M2MB_ATP_CME_SSL_SSL_CERT_KEYS_WRONG = 1001,
240 M2MB_ATP_CME_SSL_SSL_GENERIC_ERROR = 1002,
241 M2MB_ATP_CME_SSL_SSL_ALREADY_ACTIVATED = 1003,
242 M2MB_ATP_CME_SSL_SSL_ERR_DURING_HANDSHAKE = 1004,
243 M2MB_ATP_CME_SSL_SSL_SOCKET_ERROR = 1005,
244 M2MB_ATP_CME_SSL_SSL_INVALID_STATE = 1006,
245 M2MB_ATP_CME_SSL_SSL_CAN_NOT_ACTIVATE = 1007,
246 M2MB_ATP_CME_SSL_SSL_NOT_CONNECTED = 1008,
247 M2MB_ATP_CME_SSL_SSL_ALREADY_CONNECTED = 1009,
248 M2MB_ATP_CME_SSL_SSL_ENC_DEC_DATA_ERROR = 1010,
249 M2MB_ATP_CME_SSL_SSL_DISCONNECTED = 1011,
251 M2MB_ATP_CME_MQTT_INIT_FAIL = 1100,
252 M2MB_ATP_CME_MQTT_DEINIT_FAIL = 1101,
253 M2MB_ATP_CME_MQTT_CONF_FAIL = 1102,
254 M2MB_ATP_CME_MQTT_CONNECT_FAIL = 1103,
255 M2MB_ATP_CME_MQTT_DISCONNECT_FAIL = 1104,
256 M2MB_ATP_CME_MQTT_PUBLISH_FAIL = 1105,
257 M2MB_ATP_CME_MQTT_SUBSCRIBE_FAIL = 1106,
258 M2MB_ATP_CME_MQTT_UNSUBSCRIBE_FAIL = 1107,
259 M2MB_ATP_CME_MQTT_SSL_CONFIG_FAIL = 1108,
261 M2MB_ATP_CME_GTP_TIMEOUT_ERROR = 1150,
262 M2MB_ATP_CME_GTP_PDP_ERROR = 1151,
263 M2MB_ATP_CME_GTP_DISABLED_ERROR = 1152,
264 M2MB_ATP_CME_GTP_ENA_CMD_NOT_SUPPORTED = 1153,
265 M2MB_ATP_CME_GTP_REBOOT_FAILED = 1154,
270 M2MB_ATP_CMS_UNASSIGNED_NUMBER = 1,
271 M2MB_ATP_CMS_OPERATOR_BARRING = 8,
272 M2MB_ATP_CMS_CALL_BARRED = 10,
273 M2MB_ATP_CMS_SMS_TRANSFER_REJECTED = 21,
274 M2MB_ATP_CMS_OUT_OF_SERVICE_DEST = 27,
275 M2MB_ATP_CMS_UNIDENTIFIED_SUBSCRIBER = 28,
276 M2MB_ATP_CMS_FACILITY_REJECTED = 29,
277 M2MB_ATP_CMS_UNKNOWN_SUBSCRIBER = 30,
278 M2MB_ATP_CMS_OUT_OF_ORDER_NETWORK = 38,
279 M2MB_ATP_CMS_TEMP_FAILURE = 41,
280 M2MB_ATP_CMS_CONGESTION = 42,
281 M2MB_ATP_CMS_UNAVAILABLE_RESOURCE = 47,
282 M2MB_ATP_CMS_FACILTY_NOT_SUBSCRIBED = 50,
283 M2MB_ATP_CMS_FACILTY_NOT_IMPLEMENTED = 69,
284 M2MB_ATP_CMS_INVALID_SMS_MSG_REF = 81,
285 M2MB_ATP_CMS_INVALID_SMS = 95,
286 M2MB_ATP_CMS_INVALID_MANDAT_INFO = 96,
287 M2MB_ATP_CMS_MSG_TYPE_NOT_IMPLEMENTED = 97,
288 M2MB_ATP_CMS_MSG_TYPE_NOT_COMPATIBLE = 98,
289 M2MB_ATP_CMS_IE_NOT_IMPLEMENTED = 99,
290 M2MB_ATP_CMS_PROTOCOL_ERROR = 111,
291 M2MB_ATP_CMS_INTERWORKING = 127,
292 M2MB_ATP_CMS_TEL_INTERWORK_NOT_SUPPORTED = 128,
293 M2MB_ATP_CMS_SMTYPE0_NOT_SUPPORTED = 129,
294 M2MB_ATP_CMS_CANNOT_REPLACE_SMS = 130,
295 M2MB_ATP_CMS_UNSPECIFIED_PID_ERROR = 143,
296 M2MB_ATP_CMS_DCS_NOT_SUPPORTED = 144,
297 M2MB_ATP_CMS_UNSPECIFIED_DCS_ERROR = 159,
298 M2MB_ATP_CMS_TPDU_NOT_SUPPORTED = 176,
299 M2MB_ATP_CMS_SC_BUSY = 192,
300 M2MB_ATP_CMS_NO_SC_SUBSCRIPTION = 193,
301 M2MB_ATP_CMS_SC_SYSTEM_FAILURE = 194,
302 M2MB_ATP_CMS_INVALID_SME_ADDRESS = 195,
303 M2MB_ATP_CMS_DESTINATION_SME_BARRED = 196,
304 M2MB_ATP_CMS_SM_REJ_DUPL_SM = 197,
305 M2MB_ATP_CMS_VPF_NOT_SUPPORTED = 198,
306 M2MB_ATP_CMS_VP_NOT_SUPPORTED = 199,
307 M2MB_ATP_CMS_UNSPECIFIED_TPFCS_ERROR = 255,
308 M2MB_ATP_CMS_ME_FAILURE = 300,
309 M2MB_ATP_CMS_SMS_SERV_RESERVED = 301,
310 M2MB_ATP_CMS_OPERATION_NOT_ALLOWED = 302,
311 M2MB_ATP_CMS_OPERATION_NOT_SUPPORTED = 303,
312 M2MB_ATP_CMS_INVALID_PDU_MODE_PARAMETER = 304,
313 M2MB_ATP_CMS_INVALID_TEXT_MODE_PARAMETER = 305,
314 M2MB_ATP_CMS_SIM_NOT_INSERTED = 310,
315 M2MB_ATP_CMS_SIM_PIN_REQUIRED = 311,
316 M2MB_ATP_CMS_PHSIM_PIN_REQUIRED = 312,
317 M2MB_ATP_CMS_SIM_FAILURE = 313,
318 M2MB_ATP_CMS_SIM_BUSY = 314,
319 M2MB_ATP_CMS_SIM_WRONG = 315,
320 M2MB_ATP_CMS_SIM_PUK_REQUIRED = 316,
321 M2MB_ATP_CMS_SIM_PIN2_REQUIRED = 317,
322 M2MB_ATP_CMS_SIM_PUK2_REQUIRED = 318,
323 M2MB_ATP_CMS_MEMORY_FAILURE = 320,
324 M2MB_ATP_CMS_INVALID_INDEX = 321,
325 M2MB_ATP_CMS_MEMORY_FULL = 322,
326 M2MB_ATP_CMS_SMSC_ADDRESS_UNKNOWN = 330,
327 M2MB_ATP_CMS_NO_NETWORK_SERVICE = 331,
328 M2MB_ATP_CMS_NETWORK_TIMEOUT = 332,
329 M2MB_ATP_CMS_NO_CNMA_ACK_EXPECTED = 340,
330 M2MB_ATP_CMS_UNKNOWN = 500,
331 M2MB_ATP_CMS_FDN_NOT_ALLOWED_NUMBER = 512
336 M2MB_ATP_SLNT_NONE = -1,
337 M2MB_ATP_SLNT_COMPLETED = 0,
338 M2MB_ATP_SLNT_NO_CARRIER = 1,
339 M2MB_ATP_SLNT_NO_CARRIER_MODE = 2
344 M2MB_ATP_UNS_BUFFER_IF_BUSY=0,
345 M2MB_ATP_UNS_DISCARD_IF_BUSY,
346 } M2MB_ATP_UNS_MODE_E;
350 M2MB_ATP_HANDLE atpHandle;
351 M2MB_ATP_CMD_IND_E atpEvent;
354 void *atptaskUserdata;
361 M2MB_ATP_CMDTYPE_E type;
371 UINT16 instanceNumber;
391 M2MB_ATP_BUFFER_EMPTY_IND,
392 M2MB_ATP_CLOSE_CON_IND
393 } M2MB_ATP_DELEGATION_IND_E;
398 UINT16 instanceNumber;
399 M2MB_ATP_DELEGATION_IND_E event;
404 typedef void ( *m2mb_atp_ind_callback )( M2MB_ATP_HANDLE h, M2MB_ATP_IND_E atp_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
405 typedef void ( *m2mb_atp_cmd_ind_callback )( M2MB_ATP_HANDLE h, M2MB_ATP_CMD_IND_E atp_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
408 M2MB_ATP_HANDLE atpHandle;
411 m2mb_atp_cmd_ind_callback atpCallback;
464 M2MB_RESULT_E
m2mb_atp_init( M2MB_ATP_HANDLE *h, m2mb_atp_ind_callback callback,
void *userdata );
572 M2MB_RESULT_E
m2mb_atp_register( M2MB_ATP_HANDLE atpHandle, CHAR *atpCmdString, UINT16 atpFlags, m2mb_atp_cmd_ind_callback atpCallback,
void *atpUserdata );
750 M2MB_RESULT_E
m2mb_atp_msgout( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum, CHAR *msg );
827 M2MB_RESULT_E
m2mb_atp_release( M2MB_ATP_HANDLE h, UINT16 instanceNum, M2MB_ATP_FRC_E res, INT16 errorCode, CHAR *optionalErrString );
927 M2MB_ATP_INPUT_MODE mode );
1035 M2MB_ATP_INPUT_MODE *mode );
1113 INT32
m2mb_atp_rx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *rxBuffer, INT32 rxBufferSize );
1190 INT32
m2mb_atp_tx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *txBuffer, INT32 txBufferSize );
1357 M2MB_RESULT_E
m2mb_atp_at_command_conf( M2MB_ATP_HANDLE h, UINT16 instanceNum, CHAR *atCmdString, UINT8 argc, ... );
1471 void *data, UINT32 dataLen );