m2mb API docs  25.30.003
m2mb API sets documentation
m2mb_sms.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
22 #ifndef M2M_M2MB_SMS_API_H
23 #define M2M_M2MB_SMS_API_H
24 
25 
26 /* Global declarations ==========================================================================*/
27 
28 #define M2MB_SMS_PDU_LENGTH_MAX 255
29 #define M2MB_SMS_STORAGE_INDEXES_MAX 255
30 #define M2MB_SMS_ADDRESS_TYPE_MAX 3
31 #define M2MB_SMS_SCA_DIGIT_MAX 21
32 
33 /* Global typedefs ==============================================================================*/
34 
35 typedef HANDLE M2MB_SMS_HANDLE;
36 
37 typedef enum
38 {
39  M2MB_SMS_SUCCESS,
40  M2MB_SMS_GENERIC_FAILURE,
41  M2MB_SMS_RADIO_NOT_AVAILABLE,
42  M2MB_SMS_REQUEST_RAW_SEND_UNKNOWN_ERROR,
43  M2MB_SMS_REQUEST_RAW_SEND_NETWORK_TIMEOUT,
44  M2MB_SMS_SEND_FAIL_RETRY,
45  M2MB_SMS_FDN_CHECK_FAILURE
46 } M2MB_SMS_ERRNO_E;
47 
48 typedef enum
49 {
50  M2MB_SMS_STORAGE_NONE,
51  M2MB_SMS_STORAGE_SM,
52  M2MB_SMS_STORAGE_ME
53 } M2MB_SMS_STORAGE_E;
54 
55 typedef enum
56 {
57  M2MB_SMS_DISCARD,
58  M2MB_SMS_STORE_AND_ACK,
59  M2MB_SMS_FORWARD_ONLY,
60  M2MB_SMS_FORWARD_AND_ACK
61 } M2MB_SMS_INC_ACTION_E;
62 
63 typedef enum
64 {
65  M2MB_SMS_CLASS_0,
66  M2MB_SMS_CLASS_1,
67  M2MB_SMS_CLASS_2,
68  M2MB_SMS_CLASS_3,
69  M2MB_SMS_CLASS_NONE
70 } M2MB_SMS_CLASS_E;
71 
72 typedef enum
73 {
74  M2MB_SMS_NULL_RESP,
75  M2MB_SMS_SEND_RESP,
76  M2MB_SMS_WRITE_RESP,
77  M2MB_SMS_SEND_FROM_MEM_RESP,
78  M2MB_SMS_ACK_RESP,
79  M2MB_SMS_READ_RESP,
80  M2MB_SMS_DELETE_RESP,
81  M2MB_SMS_SET_TAG_RESP,
82  M2MB_SMS_SET_SCA_RESP,
83  M2MB_SMS_GET_SCA_RESP,
84  M2MB_SMS_GET_STORAGE_STAT_RESP,
85  M2MB_SMS_GET_STORAGE_INDEXES_RESP,
86  M2MB_SMS_INCOMING_IND,
87  M2MB_SMS_MEMORY_FULL_IND, /* event sent when every time the m2mb_sms_write fails due to memory full */
88  M2MB_SMS_MEMORY_FULL_REACHED_IND /* event sent when SMS memory is full (only once) */
89 } M2MB_SMS_IND_E;
90 
91 typedef enum
92 {
93  M2MB_SMS_SET_FORMAT,
94  M2MB_SMS_GET_FORMAT,
95  M2MB_SMS_SET_IMS_EN,
96  M2MB_SMS_GET_IMS_EN,
97  M2MB_SMS_SET_WRITE_TAG,
98  M2MB_SMS_GET_WRITE_TAG,
99  M2MB_SMS_SET_MORE_MSG_TO_SEND,
100  M2MB_SMS_GET_MORE_MSG_TO_SEND
101 } M2MB_SMS_ACTION_E;
102 
103 typedef enum
104 {
105  M2MB_SMS_FORMAT_3GPP,
106  M2MB_SMS_FORMAT_3GPP2
107 } M2MB_SMS_FORMAT_E;
108 
109 typedef enum
110 {
111  M2MB_SMS_MMTS_DISABLED,
112  M2MB_SMS_MMTS_ENABLED
113 } M2MB_SMS_MMTS_E;
114 
115 typedef enum
116 {
117  M2MB_SMS_TAG_MT_READ,
118  M2MB_SMS_TAG_MT_NOT_READ,
119  M2MB_SMS_TAG_MO_SENT,
120  M2MB_SMS_TAG_MO_NOT_SENT
121 } M2MB_SMS_TAG_E;
122 
123 typedef enum
124 {
125  M2MB_SMS_OVER_CS,
126  M2MB_SMS_OVER_IMS
127 } M2MB_SMS_IMS_E;
128 
129 typedef enum
130 {
131  M2MB_SMS_ACK_FAIL,
132  M2MB_SMS_ACK_SUCCESS
133 } M2MB_SMS_ACK_RES_E;
134 
135 typedef enum
136 {
137  M2MB_SMS_ACK_OK,
138  M2MB_SMS_ACK_FAIL_NO_NETWORK_RESPONSE,
139  M2MB_SMS_ACK_FAIL_NETWORK_RELEASED_LINK,
140  M2MB_SMS_ACK_FAIL_ACK_NOT_SENT
141 } M2MB_SMS_ACK_FAILURE_CAUSE_E;
142 
143 typedef enum
144 {
145  M2MB_SMS_ERR_OK,
146  M2MB_SMS_ERR_UNKNOWN,
147  M2MB_SMS_ERR_API_NOT_AVAILABLE
148 } M2MB_SMS_ERR_CAUSE_E;
149 
150 typedef struct
151 {
152  M2MB_SMS_ERR_CAUSE_E err;
154 
155 typedef struct
156 {
157  M2MB_SMS_ERR_CAUSE_E err;
158  UINT32 index;
159  M2MB_SMS_FORMAT_E format;
160  M2MB_SMS_TAG_E tag;
161  UINT16 pdu_size;
162  UINT8 *pdu;
164 
165 typedef struct
166 {
167  M2MB_SMS_ERR_CAUSE_E err;
168  UINT32 index;
170 
171 typedef struct
172 {
173  M2MB_SMS_ERR_CAUSE_E err;
174  UINT16 messageRef;
176 
177 typedef struct
178 {
179  M2MB_SMS_ERR_CAUSE_E err;
180  M2MB_SMS_ACK_FAILURE_CAUSE_E failCause;
182 
183 typedef struct
184 {
185  M2MB_SMS_ERR_CAUSE_E err;
186  UINT8 addr_type[M2MB_SMS_ADDRESS_TYPE_MAX + 1];
187  UINT16 sca_size;
188  UINT8 *sca;
190 
191 typedef struct
192 {
193  M2MB_SMS_ERR_CAUSE_E err;
194  M2MB_SMS_STORAGE_E stType;
195  UINT32 smsCounter;
196  UINT32 maxStorageSize;
198 
199 typedef struct
200 {
201  M2MB_SMS_ERR_CAUSE_E err;
202  M2MB_SMS_STORAGE_E stType;
203  UINT16 indexes_size;
204  UINT8 *indexes;
206 
207 typedef struct
208 {
209  M2MB_SMS_ERR_CAUSE_E err;
210  M2MB_RESULT_E response;
212 
213 typedef struct
214 {
215  M2MB_SMS_ERR_CAUSE_E err;
216  M2MB_SMS_FORMAT_E format;
217  M2MB_SMS_IMS_E mode;
218  M2MB_SMS_STORAGE_E storage;
219  INT32 transactionID; //transactionID starts from 0 if the incoming SMS must be acked, if index < 0 the incoming SMS has been already acked
220  INT32 index; //storage indexes start from 0, if index < 0 the message is not stored and it is forwarded in the pdu field
221  UINT16 pdu_size;
222  UINT8 *pdu;
224 
225 typedef struct
226 {
227  M2MB_SMS_ERR_CAUSE_E err;
228  M2MB_SMS_FORMAT_E format;
229  M2MB_SMS_STORAGE_E storage;
231 
232 typedef void ( *m2mb_sms_ind_callback )( M2MB_SMS_HANDLE h, M2MB_SMS_IND_E sms_event, UINT16 resp_size, void *resp_struct, void *userdata );
233 
234 /* Global functions =============================================================================*/
235 
236 /*-----------------------------------------------------------------------------------------------*/
276 /*-----------------------------------------------------------------------------------------------*/
277 M2MB_RESULT_E m2mb_sms_init( M2MB_SMS_HANDLE *h, m2mb_sms_ind_callback callback, void *userdata );
278 
279 /*-----------------------------------------------------------------------------------------------*/
311 /*-----------------------------------------------------------------------------------------------*/
312 M2MB_RESULT_E m2mb_sms_deinit( M2MB_SMS_HANDLE h );
313 
314 /*-----------------------------------------------------------------------------------------------*/
435 /*-----------------------------------------------------------------------------------------------*/
436 M2MB_RESULT_E m2mb_sms_conf( M2MB_SMS_HANDLE h, UINT8 argc, ... );
437 
438 /*-----------------------------------------------------------------------------------------------*/
477 /*-----------------------------------------------------------------------------------------------*/
478 M2MB_RESULT_E m2mb_sms_enable_ind( M2MB_SMS_HANDLE h, M2MB_SMS_IND_E ind, UINT8 enable );
479 
480 /*-----------------------------------------------------------------------------------------------*/
537 /*-----------------------------------------------------------------------------------------------*/
538 M2MB_RESULT_E m2mb_sms_send( M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu );
539 
540 /*-----------------------------------------------------------------------------------------------*/
598 /*-----------------------------------------------------------------------------------------------*/
599 M2MB_RESULT_E m2mb_sms_write( M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu );
600 
601 /*-----------------------------------------------------------------------------------------------*/
669 /*-----------------------------------------------------------------------------------------------*/
670 M2MB_RESULT_E m2mb_sms_send_from_mem( M2MB_SMS_HANDLE h, UINT32 index );
671 
672 /*-----------------------------------------------------------------------------------------------*/
747 /*-----------------------------------------------------------------------------------------------*/
748 M2MB_RESULT_E m2mb_sms_ack( M2MB_SMS_HANDLE h, M2MB_SMS_ACK_RES_E res, UINT32 transactionID, UINT32 failureCause1, UINT32 failureCause2 );
749 
750 /*-----------------------------------------------------------------------------------------------*/
818 /*-----------------------------------------------------------------------------------------------*/
819 M2MB_RESULT_E m2mb_sms_read( M2MB_SMS_HANDLE h, UINT32 index );
820 
821 /*-----------------------------------------------------------------------------------------------*/
889 /*-----------------------------------------------------------------------------------------------*/
890 M2MB_RESULT_E m2mb_sms_delete( M2MB_SMS_HANDLE h, UINT32 index );
891 
892 /*-----------------------------------------------------------------------------------------------*/
951 /*-----------------------------------------------------------------------------------------------*/
952 M2MB_RESULT_E m2mb_sms_set_tag( M2MB_SMS_HANDLE h, UINT32 index, M2MB_SMS_TAG_E tag );
953 
954 /*-----------------------------------------------------------------------------------------------*/
1009 /*-----------------------------------------------------------------------------------------------*/
1010 M2MB_RESULT_E m2mb_sms_set_sca( M2MB_SMS_HANDLE h, UINT8 *sca );
1011 
1012 /*-----------------------------------------------------------------------------------------------*/
1064 M2MB_RESULT_E m2mb_sms_get_sca( M2MB_SMS_HANDLE h );
1065 
1066 /*-----------------------------------------------------------------------------------------------*/
1101 /*-----------------------------------------------------------------------------------------------*/
1102 M2MB_RESULT_E m2mb_sms_set_route( M2MB_SMS_HANDLE h, M2MB_SMS_CLASS_E smClass, M2MB_SMS_STORAGE_E stType, M2MB_SMS_INC_ACTION_E stAct );
1103 
1104 /*-----------------------------------------------------------------------------------------------*/
1141 /*-----------------------------------------------------------------------------------------------*/
1142 M2MB_RESULT_E m2mb_sms_get_route( M2MB_SMS_HANDLE h, M2MB_SMS_CLASS_E smClass, M2MB_SMS_STORAGE_E *stType, M2MB_SMS_INC_ACTION_E *stAct );
1143 
1144 /*-----------------------------------------------------------------------------------------------*/
1176 /*-----------------------------------------------------------------------------------------------*/
1177 M2MB_RESULT_E m2mb_sms_set_storage( M2MB_SMS_HANDLE h, M2MB_SMS_STORAGE_E stType );
1178 
1179 /*-----------------------------------------------------------------------------------------------*/
1231 M2MB_RESULT_E m2mb_sms_get_storage_stat( M2MB_SMS_HANDLE h );
1232 
1233 /*-----------------------------------------------------------------------------------------------*/
1290 M2MB_RESULT_E m2mb_sms_get_storage_indexes( M2MB_SMS_HANDLE h, M2MB_SMS_TAG_E tag );
1291 
1292 
1293 #endif
m2mb_sms_ack
M2MB_RESULT_E m2mb_sms_ack(M2MB_SMS_HANDLE h, M2MB_SMS_ACK_RES_E res, UINT32 transactionID, UINT32 failureCause1, UINT32 failureCause2)
m2mb_sms_ack acknowledge an incoming SMS.
M2MB_SMS_MEMORY_FULL_T
Definition: m2mb_sms.h:225
m2mb_sms_get_storage_indexes
M2MB_RESULT_E m2mb_sms_get_storage_indexes(M2MB_SMS_HANDLE h, M2MB_SMS_TAG_E tag)
m2mb_sms_get_storage_indexes gets the index list of stored SMSs.
M2MB_SMS_GET_SCA_RESP_T
Definition: m2mb_sms.h:183
m2mb_sms_deinit
M2MB_RESULT_E m2mb_sms_deinit(M2MB_SMS_HANDLE h)
m2mb_sms_deinit deinitializes SMS service for current client.
m2mb_sms_set_sca
M2MB_RESULT_E m2mb_sms_set_sca(M2MB_SMS_HANDLE h, UINT8 *sca)
m2mb_sms_set_sca sets the Service Center Address.
m2mb_sms_send_from_mem
M2MB_RESULT_E m2mb_sms_send_from_mem(M2MB_SMS_HANDLE h, UINT32 index)
m2mb_sms_send_from_mem sends a SMS PDU from the current memory.
m2mb_sms_get_storage_stat
M2MB_RESULT_E m2mb_sms_get_storage_stat(M2MB_SMS_HANDLE h)
m2mb_sms_get_storage_stat gets the status of current storage.
m2mb_sms_set_storage
M2MB_RESULT_E m2mb_sms_set_storage(M2MB_SMS_HANDLE h, M2MB_SMS_STORAGE_E stType)
m2mb_sms_set_storage sets the current storage for SMSs.
M2MB_SMS_GET_STORAGE_INDEXES_RESP_T
Definition: m2mb_sms.h:199
M2MB_SMS_INCOMING_T
Definition: m2mb_sms.h:213
m2mb_sms_conf
M2MB_RESULT_E m2mb_sms_conf(M2MB_SMS_HANDLE h, UINT8 argc,...)
m2mb_sms_conf sets/gets some SMS parameters.
m2mb_sms_get_sca
M2MB_RESULT_E m2mb_sms_get_sca(M2MB_SMS_HANDLE h)
m2mb_sms_get_sca gets current Service Center Address.
M2MB_SMS_ACK_RESP_T
Definition: m2mb_sms.h:177
m2mb_sms_init
M2MB_RESULT_E m2mb_sms_init(M2MB_SMS_HANDLE *h, m2mb_sms_ind_callback callback, void *userdata)
m2mb_sms_init initializes SMS service for current client.
m2mb_sms_enable_ind
M2MB_RESULT_E m2mb_sms_enable_ind(M2MB_SMS_HANDLE h, M2MB_SMS_IND_E ind, UINT8 enable)
m2mb_sms_enable_ind enables SMS events.
M2MB_SMS_ERR_CAUSE_T
Definition: m2mb_sms.h:150
m2mb_sms_delete
M2MB_RESULT_E m2mb_sms_delete(M2MB_SMS_HANDLE h, UINT32 index)
m2mb_sms_delete deletes a SMS PDU from the current memory.
M2MB_SMS_GENERIC_RESP_T
Definition: m2mb_sms.h:207
M2MB_SMS_WRITE_RESP_T
Definition: m2mb_sms.h:165
m2mb_sms_read
M2MB_RESULT_E m2mb_sms_read(M2MB_SMS_HANDLE h, UINT32 index)
m2mb_sms_read reads a SMS PDU from the current memory.
m2mb_sms_write
M2MB_RESULT_E m2mb_sms_write(M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu)
m2mb_sms_write writes a SMS PDU into the current memory.
M2MB_SMS_GET_STORAGE_STAT_RESP_T
Definition: m2mb_sms.h:191
m2mb_sms_send
M2MB_RESULT_E m2mb_sms_send(M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu)
m2mb_sms_send sends a SMS PDU.
m2mb_sms_get_route
M2MB_RESULT_E m2mb_sms_get_route(M2MB_SMS_HANDLE h, M2MB_SMS_CLASS_E smClass, M2MB_SMS_STORAGE_E *stType, M2MB_SMS_INC_ACTION_E *stAct)
m2mb_sms_get_route gets the current behaviour of a specific SMS class.
m2mb_sms_set_route
M2MB_RESULT_E m2mb_sms_set_route(M2MB_SMS_HANDLE h, M2MB_SMS_CLASS_E smClass, M2MB_SMS_STORAGE_E stType, M2MB_SMS_INC_ACTION_E stAct)
m2mb_sms_set_route manages the behaviour of incoming SMS.
M2MB_SMS_READ_RESP_T
Definition: m2mb_sms.h:155
M2MB_SMS_SEND_RESP_T
Definition: m2mb_sms.h:171
m2mb_sms_set_tag
M2MB_RESULT_E m2mb_sms_set_tag(M2MB_SMS_HANDLE h, UINT32 index, M2MB_SMS_TAG_E tag)
m2mb_sms_set_tag changes the tag of a SMS PDU in the current memory.