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