22 #ifndef M2M_M2MB_ATP_API_H
23 #define M2M_M2MB_ATP_API_H
28 #define ATP_CMD_BUF_SIZE 7680
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 * 16)
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 #ifdef M2M_9607 // bug63097
50 #define ATP_EXTATP_THREAD_PRIORITY 150
52 #define ATP_EXTATP_THREAD_PRIORITY ATP_THREAD_PRIORITY
56 #define M2MB_ATP_NORML 0x0000 // Command accepted only if sim and pin inserted
57 #define M2MB_ATP_NOPIN 0x0001 // Command accepted even if pin enabled and not inserted yet
58 #define M2MB_ATP_NOSIM 0x0002 // Command accepted if sim not inserted
59 #define M2MB_ATP_SMLCK 0x0004 // Command accepted even if simlock enabled
60 #define M2MB_ATP_NOPAR 0x0200 // Marker for special AT+Cmd=<CR> handling
61 #define M2MB_ATP_CLACH 0x0080 // Hidden command, not listed in +CLAC
71 typedef HANDLE M2MB_ATP_HANDLE;
73 typedef INT16 SY_MESSAGE_ID;
82 M2MB_ATP_CMDTYP_NOPARAMS,
109 M2MB_ATP_CMD_CALLBACK_IND,
110 M2MB_ATP_CMD_DELEGATION_IND
111 } M2MB_ATP_CMD_IND_E;
115 M2MB_ATP_INPUT_MODE_NONE = 0,
116 M2MB_ATP_SMS_INPUT_MODE,
117 M2MB_ATP_EMAIL_INPUT_MODE,
118 M2MB_ATP_M2M_WRITE_INPUT_MODE,
119 M2MB_ATP_ONLINE_INPUT_MODE,
120 M2MB_ATP_SILENT_INPUT_MODE,
121 M2MB_ATP_RUNNING_INPUT_MODE,
122 M2MB_ATP_ONLINE_ASE_INPUT_MODE
123 } M2MB_ATP_INPUT_MODE;
127 M2MB_ATP_FRC_SILENT = -1,
130 M2MB_ATP_FRC_CME_ERROR,
131 M2MB_ATP_FRC_CMS_ERROR
136 M2MB_ATP_CME_PHONE_FAILURE = 0,
137 M2MB_ATP_CME_NO_CONNECTION_TO_PHONE = 1,
138 M2MB_ATP_CME_PHONE_LINK_RESERVED = 2,
139 M2MB_ATP_CME_OPERATION_NOT_ALLOWED = 3,
140 M2MB_ATP_CME_OPERATION_NOT_SUPPORTED = 4,
141 M2MB_ATP_CME_PHSIM_PIN_REQUIRED = 5,
142 M2MB_ATP_CME_PHFSIM_PIN_REQUIRED = 6,
143 M2MB_ATP_CME_SIM_NOT_INSERTED = 10,
144 M2MB_ATP_CME_SIM_PIN_REQUIRED = 11,
145 M2MB_ATP_CME_SIM_PUK_REQUIRED = 12,
146 M2MB_ATP_CME_SIM_FAILURE = 13,
147 M2MB_ATP_CME_SIM_BUSY = 14,
148 M2MB_ATP_CME_SIM_WRONG = 15,
149 M2MB_ATP_CME_INCORRECT_PASSWORD = 16,
150 M2MB_ATP_CME_SIM_PIN2_REQUIRED = 17,
151 M2MB_ATP_CME_SIM_PUK2_REQUIRED = 18,
152 M2MB_ATP_CME_MEMORY_FULL = 20,
153 M2MB_ATP_CME_INVALID_INDEX = 21,
154 M2MB_ATP_CME_NOT_FOUND = 22,
155 M2MB_ATP_CME_MEMORY_FAILURE = 23,
156 M2MB_ATP_CME_TEXT_TOO_LONG = 24,
157 M2MB_ATP_CME_INVALID_CHARS_IN_TEXT = 25,
158 M2MB_ATP_CME_DIAL_TOO_LONG = 26,
159 M2MB_ATP_CME_INVALID_CHARS_IN_DIAL = 27,
160 M2MB_ATP_CME_NO_NETWORK_SERVICE = 30,
161 M2MB_ATP_CME_NETWORK_TIMEOUT = 31,
162 M2MB_ATP_CME_NETWORK_NOT_ALLOWED = 32,
163 M2MB_ATP_CME_NCK_REQUIRED = 40,
164 M2MB_ATP_CME_NET_PERS_PUK_REQUIRED = 41,
165 M2MB_ATP_CME_NSCK_REQUIRED = 42,
166 M2MB_ATP_CME_NET_SUBSET_PERS_PUK_REQUIRED = 43,
167 M2MB_ATP_CME_SPCK_REQUIRED = 44,
168 M2MB_ATP_CME_SERV_PROV_PERS_PUK_EQUIRED = 45,
169 M2MB_ATP_CME_CPCK_REQUIRED = 46,
170 M2MB_ATP_CME_CORP_PERS_PUK_REQUIRED = 47,
171 M2MB_ATP_CME_HIDDEN_KEY_REQUIRED = 48,
172 M2MB_ATP_CME_UNKNOWN = 100,
173 M2MB_ATP_CME_ILLEGAL_MS = 103,
174 M2MB_ATP_CME_ILLEGAL_ME = 106,
175 M2MB_ATP_CME_GPRS_SERVICE_NOT_ALLW = 107,
176 M2MB_ATP_CME_PLMN_NOT_ALLW = 111,
177 M2MB_ATP_CME_LOC_AREA_NOT_ALLW = 112,
178 M2MB_ATP_CME_ROAM_NOT_ALW_IN_THIS_AREA = 113,
179 M2MB_ATP_CME_SERV_OPT_NOT_SUPPORTED = 132,
180 M2MB_ATP_CME_REQ_SERV_OPT_NOT_SUBSCRIBED = 133,
181 M2MB_ATP_CME_SERV_OPT_TEMP_OOF = 134,
182 M2MB_ATP_CME_UNSPECIFIED_GPRS_ERROR = 148,
183 M2MB_ATP_CME_PDP_AUTHENT_FAILURE = 149,
184 M2MB_ATP_CME_INVALID_MOBILE_CLASS = 150,
188 M2MB_ATP_CME_TEXT_PARAM_INSTEAD_OF_NUM_PARAM = 35,
189 M2MB_ATP_CME_NUM_PARAM_OUT_OF_BOUNDS = 36,
190 M2MB_ATP_CME_INVALID_PARAM_NUMBER = 277,
192 M2MB_ATP_CME_CONTEXT_NOT_OPENED = 556,
193 M2MB_ATP_CME_CANNOT_SETUP_SOCKET = 557,
194 M2MB_ATP_CME_CANNOT_RESOLVE_DN = 558,
195 M2MB_ATP_CME_TIMEOUT_IN_OPENING_SOCKET = 559,
196 M2MB_ATP_CME_CANNOT_OPEN_SOCKET = 560,
197 M2MB_ATP_CME_REMOTE_DISCONNECTED = 561,
198 M2MB_ATP_CME_CONNECTION_FAILED = 562,
199 M2MB_ATP_CME_TX_ERROR = 563,
200 M2MB_ATP_CME_ALREADY_LISTENING = 564,
201 M2MB_ATP_CME_EASY_SKT_ABORT = 565,
202 M2MB_ATP_CME_EASY_NO_SOCKET = 566,
203 M2MB_ATP_CME_IP_VERSION_TYPE_INCOMPATIBLE = 567,
204 M2MB_ATP_CME_IPV6_NOT_ENABLED = 568,
205 M2MB_ATP_CME_EASY_CONNECTION_ABORT = 569,
207 M2MB_ATP_CME_FTP_ALREADY_CONNECTED = 608,
208 M2MB_ATP_CME_CMDMODE = 613,
209 M2MB_ATP_CME_CMDMODE_NODATAPORT = 614,
210 M2MB_ATP_CME_FTP_NOT_CONNECTED = 615,
211 M2MB_ATP_CME_FTP_DISCONNECTED = 616,
212 M2MB_ATP_CME_FTP_READ_CMD_CLOSED = 617,
213 M2MB_ATP_CME_FTP_READ_CMD_ERROR = 618,
214 M2MB_ATP_CME_FTP_WRITE_CMD_CLOSED = 619,
215 M2MB_ATP_CME_FTP_WRITE_CMD_ERROR = 620,
216 M2MB_ATP_CME_FTP_READ_DATA_CLOSED = 621,
217 M2MB_ATP_CME_FTP_READ_DATA_ERROR = 622,
218 M2MB_ATP_CME_FTP_WRITE_DATA_CLOSED = 623,
219 M2MB_ATP_CME_FTP_WRITE_DATA_ERROR = 624,
220 M2MB_ATP_CME_FTP_HOST_NOT_FOUND = 625,
221 M2MB_ATP_CME_FTP_ACCEPT_FAIL = 626,
222 M2MB_ATP_CME_FTP_LISTEN_FAIL = 627,
223 M2MB_ATP_CME_FTP_BIND_FAIL = 628,
224 M2MB_ATP_CME_FTP_FILE_CREATE_FAIL = 629,
225 M2MB_ATP_CME_FTP_FILE_GET_COMPLETE = 630,
226 M2MB_ATP_CME_FTP_FILE_PUT_COMPLETE = 631,
227 M2MB_ATP_CME_FTP_FILE_NOT_FOUND = 632,
228 M2MB_ATP_CME_FTP_TIME_OUT = 633,
229 M2MB_ATP_CME_FTP_LOGIN_INCORRECT = 634,
230 M2MB_ATP_CME_FTP_CLOSE_ERROR = 635,
231 M2MB_ATP_CME_FTP_SERVER_NOT_READY = 636,
232 M2MB_ATP_CME_FTP_SERVER_SHUTDOWN = 637,
233 M2MB_ATP_CME_FTP_UNEXPECTED_REPLY = 638,
234 M2MB_ATP_CME_FTP_USERID_INVALID = 639,
235 M2MB_ATP_CME_FTP_PASSWD_INVALID = 640,
236 M2MB_ATP_CME_FTP_USER_ALREADY_LOGIN = 641,
237 M2MB_ATP_CME_FTP_OPEN_CHANNEL_TIMEOUT = 642,
238 M2MB_ATP_CME_FTP_COMM_TIMEOUT = 643,
239 M2MB_ATP_CME_FTP_UNKNOWN_ERROR = 644,
241 M2MB_ATP_CME_SER_WRITE_DATA_TIMEOUT = 808,
242 M2MB_ATP_CME_SER_WRITE_DRIVE_FULL = 809,
243 M2MB_ATP_CME_SER_WRITE_INVALID_PATH = 810,
245 M2MB_ATP_CME_SSL_SSL_NOT_ACTIVATED = 1000,
246 M2MB_ATP_CME_SSL_SSL_CERT_KEYS_WRONG = 1001,
247 M2MB_ATP_CME_SSL_SSL_GENERIC_ERROR = 1002,
248 M2MB_ATP_CME_SSL_SSL_ALREADY_ACTIVATED = 1003,
249 M2MB_ATP_CME_SSL_SSL_ERR_DURING_HANDSHAKE = 1004,
250 M2MB_ATP_CME_SSL_SSL_SOCKET_ERROR = 1005,
251 M2MB_ATP_CME_SSL_SSL_INVALID_STATE = 1006,
252 M2MB_ATP_CME_SSL_SSL_CAN_NOT_ACTIVATE = 1007,
253 M2MB_ATP_CME_SSL_SSL_NOT_CONNECTED = 1008,
254 M2MB_ATP_CME_SSL_SSL_ALREADY_CONNECTED = 1009,
255 M2MB_ATP_CME_SSL_SSL_ENC_DEC_DATA_ERROR = 1010,
256 M2MB_ATP_CME_SSL_SSL_DISCONNECTED = 1011,
258 M2MB_ATP_CME_MQTT_INIT_FAIL = 1100,
259 M2MB_ATP_CME_MQTT_DEINIT_FAIL = 1101,
260 M2MB_ATP_CME_MQTT_CONF_FAIL = 1102,
261 M2MB_ATP_CME_MQTT_CONNECT_FAIL = 1103,
262 M2MB_ATP_CME_MQTT_DISCONNECT_FAIL = 1104,
263 M2MB_ATP_CME_MQTT_PUBLISH_FAIL = 1105,
264 M2MB_ATP_CME_MQTT_SUBSCRIBE_FAIL = 1106,
265 M2MB_ATP_CME_MQTT_UNSUBSCRIBE_FAIL = 1107,
266 M2MB_ATP_CME_MQTT_SSL_CONFIG_FAIL = 1108,
268 M2MB_ATP_CME_GTP_TIMEOUT_ERROR = 1150,
269 M2MB_ATP_CME_GTP_PDP_ERROR = 1151,
270 M2MB_ATP_CME_GTP_DISABLED_ERROR = 1152,
271 M2MB_ATP_CME_GTP_ENA_CMD_NOT_SUPPORTED = 1153,
272 M2MB_ATP_CME_GTP_REBOOT_FAILED = 1154,
274 M2MB_ATP_CME_MQTTSN_INIT_FAIL = 1200,
275 M2MB_ATP_CME_MQTTSN_DEINIT_FAIL = 1201,
276 M2MB_ATP_CME_MQTTSN_CONF_FAIL = 1202,
277 M2MB_ATP_CME_MQTTSN_SOCK_FAIL = 1204,
278 M2MB_ATP_CME_MQTTSN_CONNECT_FAIL = 1205,
279 M2MB_ATP_CME_MQTTSN_DISCONNECT_FAIL = 1206,
280 M2MB_ATP_CME_MQTTSN_REGISTER_FAIL = 1207,
281 M2MB_ATP_CME_MQTTSN_PUBLISH_FAIL = 1208,
282 M2MB_ATP_CME_MQTTSN_SUBSCRIBE_FAIL = 1209,
283 M2MB_ATP_CME_MQTTSN_UNSUBSCRIBE_FAIL = 1210,
284 M2MB_ATP_CME_MQTTSN_WILLTUPDATE_FAIL = 1211,
285 M2MB_ATP_CME_MQTTSN_WILLMUPDATE_FAIL = 1212,
286 M2MB_ATP_CME_MQTTSN_STATECHANGE_FAIL = 1213,
287 M2MB_ATP_CME_MQTTSN_INVALID_CLIENT_STATUS = 1214,
289 M2MB_ATP_CME_REBOOT_IS_NEEDED = 1250,
294 M2MB_ATP_CMS_UNASSIGNED_NUMBER = 1,
295 M2MB_ATP_CMS_OPERATOR_BARRING = 8,
296 M2MB_ATP_CMS_CALL_BARRED = 10,
297 M2MB_ATP_CMS_SMS_TRANSFER_REJECTED = 21,
298 M2MB_ATP_CMS_OUT_OF_SERVICE_DEST = 27,
299 M2MB_ATP_CMS_UNIDENTIFIED_SUBSCRIBER = 28,
300 M2MB_ATP_CMS_FACILITY_REJECTED = 29,
301 M2MB_ATP_CMS_UNKNOWN_SUBSCRIBER = 30,
302 M2MB_ATP_CMS_OUT_OF_ORDER_NETWORK = 38,
303 M2MB_ATP_CMS_TEMP_FAILURE = 41,
304 M2MB_ATP_CMS_CONGESTION = 42,
305 M2MB_ATP_CMS_UNAVAILABLE_RESOURCE = 47,
306 M2MB_ATP_CMS_FACILTY_NOT_SUBSCRIBED = 50,
307 M2MB_ATP_CMS_FACILTY_NOT_IMPLEMENTED = 69,
308 M2MB_ATP_CMS_INVALID_SMS_MSG_REF = 81,
309 M2MB_ATP_CMS_INVALID_SMS = 95,
310 M2MB_ATP_CMS_INVALID_MANDAT_INFO = 96,
311 M2MB_ATP_CMS_MSG_TYPE_NOT_IMPLEMENTED = 97,
312 M2MB_ATP_CMS_MSG_TYPE_NOT_COMPATIBLE = 98,
313 M2MB_ATP_CMS_IE_NOT_IMPLEMENTED = 99,
314 M2MB_ATP_CMS_PROTOCOL_ERROR = 111,
315 M2MB_ATP_CMS_INTERWORKING = 127,
316 M2MB_ATP_CMS_TEL_INTERWORK_NOT_SUPPORTED = 128,
317 M2MB_ATP_CMS_SMTYPE0_NOT_SUPPORTED = 129,
318 M2MB_ATP_CMS_CANNOT_REPLACE_SMS = 130,
319 M2MB_ATP_CMS_UNSPECIFIED_PID_ERROR = 143,
320 M2MB_ATP_CMS_DCS_NOT_SUPPORTED = 144,
321 M2MB_ATP_CMS_UNSPECIFIED_DCS_ERROR = 159,
322 M2MB_ATP_CMS_TPDU_NOT_SUPPORTED = 176,
323 M2MB_ATP_CMS_SC_BUSY = 192,
324 M2MB_ATP_CMS_NO_SC_SUBSCRIPTION = 193,
325 M2MB_ATP_CMS_SC_SYSTEM_FAILURE = 194,
326 M2MB_ATP_CMS_INVALID_SME_ADDRESS = 195,
327 M2MB_ATP_CMS_DESTINATION_SME_BARRED = 196,
328 M2MB_ATP_CMS_SM_REJ_DUPL_SM = 197,
329 M2MB_ATP_CMS_VPF_NOT_SUPPORTED = 198,
330 M2MB_ATP_CMS_VP_NOT_SUPPORTED = 199,
331 M2MB_ATP_CMS_UNSPECIFIED_TPFCS_ERROR = 255,
332 M2MB_ATP_CMS_ME_FAILURE = 300,
333 M2MB_ATP_CMS_SMS_SERV_RESERVED = 301,
334 M2MB_ATP_CMS_OPERATION_NOT_ALLOWED = 302,
335 M2MB_ATP_CMS_OPERATION_NOT_SUPPORTED = 303,
336 M2MB_ATP_CMS_INVALID_PDU_MODE_PARAMETER = 304,
337 M2MB_ATP_CMS_INVALID_TEXT_MODE_PARAMETER = 305,
338 M2MB_ATP_CMS_SIM_NOT_INSERTED = 310,
339 M2MB_ATP_CMS_SIM_PIN_REQUIRED = 311,
340 M2MB_ATP_CMS_PHSIM_PIN_REQUIRED = 312,
341 M2MB_ATP_CMS_SIM_FAILURE = 313,
342 M2MB_ATP_CMS_SIM_BUSY = 314,
343 M2MB_ATP_CMS_SIM_WRONG = 315,
344 M2MB_ATP_CMS_SIM_PUK_REQUIRED = 316,
345 M2MB_ATP_CMS_SIM_PIN2_REQUIRED = 317,
346 M2MB_ATP_CMS_SIM_PUK2_REQUIRED = 318,
347 M2MB_ATP_CMS_MEMORY_FAILURE = 320,
348 M2MB_ATP_CMS_INVALID_INDEX = 321,
349 M2MB_ATP_CMS_MEMORY_FULL = 322,
350 M2MB_ATP_CMS_SMSC_ADDRESS_UNKNOWN = 330,
351 M2MB_ATP_CMS_NO_NETWORK_SERVICE = 331,
352 M2MB_ATP_CMS_NETWORK_TIMEOUT = 332,
353 M2MB_ATP_CMS_NO_CNMA_ACK_EXPECTED = 340,
354 M2MB_ATP_CMS_UNKNOWN = 500,
355 M2MB_ATP_CMS_FDN_NOT_ALLOWED_NUMBER = 512
360 M2MB_ATP_SLNT_NONE = -1,
361 M2MB_ATP_SLNT_COMPLETED = 0,
362 M2MB_ATP_SLNT_NO_CARRIER = 1,
363 M2MB_ATP_SLNT_NO_CARRIER_MODE = 2
368 M2MB_ATP_UNS_BUFFER_IF_BUSY=0,
369 M2MB_ATP_UNS_DISCARD_IF_BUSY,
370 } M2MB_ATP_UNS_MODE_E;
374 M2MB_ATP_HANDLE atpHandle;
375 M2MB_ATP_CMD_IND_E atpEvent;
378 void *atptaskUserdata;
385 M2MB_ATP_CMDTYPE_E type;
395 UINT16 instanceNumber;
415 M2MB_ATP_BUFFER_EMPTY_IND,
416 M2MB_ATP_CLOSE_CON_IND
417 } M2MB_ATP_DELEGATION_IND_E;
422 UINT16 instanceNumber;
423 M2MB_ATP_DELEGATION_IND_E event;
428 typedef void ( *m2mb_atp_ind_callback )( M2MB_ATP_HANDLE h, M2MB_ATP_IND_E atp_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
429 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 );
432 M2MB_ATP_HANDLE atpHandle;
436 m2mb_atp_cmd_ind_callback atpCallback;
489 M2MB_RESULT_E
m2mb_atp_init( M2MB_ATP_HANDLE *h, m2mb_atp_ind_callback callback,
void *userdata );
597 M2MB_RESULT_E
m2mb_atp_register( M2MB_ATP_HANDLE atpHandle, CHAR *atpCmdString, UINT16 atpFlags, m2mb_atp_cmd_ind_callback atpCallback,
void *atpUserdata );
775 M2MB_RESULT_E
m2mb_atp_msgout( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum, CHAR *msg );
852 M2MB_RESULT_E
m2mb_atp_release( M2MB_ATP_HANDLE h, UINT16 instanceNum, M2MB_ATP_FRC_E res, INT16 errorCode, CHAR *optionalErrString );
952 M2MB_ATP_INPUT_MODE mode );
1060 M2MB_ATP_INPUT_MODE *mode );
1138 INT32
m2mb_atp_rx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *rxBuffer, INT32 rxBufferSize );
1215 INT32
m2mb_atp_tx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *txBuffer, INT32 txBufferSize );
1382 M2MB_RESULT_E
m2mb_atp_at_command_conf( M2MB_ATP_HANDLE h, UINT16 instanceNum, CHAR *atCmdString, UINT8 argc, ... );
1496 void *data, UINT32 dataLen );