m2mb API docs  30.00.007
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_CAUSE_E;
148 
149 typedef struct
150 {
151  M2MB_SMS_ERR_CAUSE_E err;
153 
154 typedef struct
155 {
156  M2MB_SMS_ERR_CAUSE_E err;
157  UINT32 index;
158  M2MB_SMS_FORMAT_E format;
159  M2MB_SMS_TAG_E tag;
160  UINT16 pdu_size;
161  UINT8 *pdu;
163 
164 typedef struct
165 {
166  M2MB_SMS_ERR_CAUSE_E err;
167  UINT32 index;
169 
170 typedef struct
171 {
172  M2MB_SMS_ERR_CAUSE_E err;
173  UINT16 messageRef;
175 
176 typedef struct
177 {
178  M2MB_SMS_ERR_CAUSE_E err;
179  M2MB_SMS_ACK_FAILURE_CAUSE_E failCause;
181 
182 typedef struct
183 {
184  M2MB_SMS_ERR_CAUSE_E err;
185  UINT8 addr_type[M2MB_SMS_ADDRESS_TYPE_MAX + 1];
186  UINT16 sca_size;
187  UINT8 *sca;
189 
190 typedef struct
191 {
192  M2MB_SMS_ERR_CAUSE_E err;
193  M2MB_SMS_STORAGE_E stType;
194  UINT32 smsCounter;
195  UINT32 maxStorageSize;
197 
198 typedef struct
199 {
200  M2MB_SMS_ERR_CAUSE_E err;
201  M2MB_SMS_STORAGE_E stType;
202  UINT16 indexes_size;
203  UINT8 *indexes;
205 
206 typedef struct
207 {
208  M2MB_SMS_ERR_CAUSE_E err;
209  M2MB_RESULT_E response;
211 
212 typedef struct
213 {
214  M2MB_SMS_ERR_CAUSE_E err;
215  M2MB_SMS_FORMAT_E format;
216  M2MB_SMS_IMS_E mode;
217  M2MB_SMS_STORAGE_E storage;
218  INT32 transactionID; //transactionID starts from 0 if the incoming SMS must be acked, if index < 0 the incoming SMS has been already acked
219  INT32 index; //storage indexes start from 0, if index < 0 the message is not stored and it is forwarded in the pdu field
220  UINT16 pdu_size;
221  UINT8 *pdu;
223 
224 typedef struct
225 {
226  M2MB_SMS_ERR_CAUSE_E err;
227  M2MB_SMS_FORMAT_E format;
228  M2MB_SMS_STORAGE_E storage;
230 
231 typedef void ( *m2mb_sms_ind_callback )( M2MB_SMS_HANDLE h, M2MB_SMS_IND_E sms_event, UINT16 resp_size, void *resp_struct, void *userdata );
232 
233 /* Global functions =============================================================================*/
234 
235 /*-----------------------------------------------------------------------------------------------*/
275 /*-----------------------------------------------------------------------------------------------*/
276 M2MB_RESULT_E m2mb_sms_init( M2MB_SMS_HANDLE *h, m2mb_sms_ind_callback callback, void *userdata );
277 
278 /*-----------------------------------------------------------------------------------------------*/
310 /*-----------------------------------------------------------------------------------------------*/
311 M2MB_RESULT_E m2mb_sms_deinit( M2MB_SMS_HANDLE h );
312 
313 /*-----------------------------------------------------------------------------------------------*/
434 /*-----------------------------------------------------------------------------------------------*/
435 M2MB_RESULT_E m2mb_sms_conf( M2MB_SMS_HANDLE h, UINT8 argc, ... );
436 
437 /*-----------------------------------------------------------------------------------------------*/
476 /*-----------------------------------------------------------------------------------------------*/
477 M2MB_RESULT_E m2mb_sms_enable_ind( M2MB_SMS_HANDLE h, M2MB_SMS_IND_E ind, UINT8 enable );
478 
479 /*-----------------------------------------------------------------------------------------------*/
536 /*-----------------------------------------------------------------------------------------------*/
537 M2MB_RESULT_E m2mb_sms_send( M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu );
538 
539 /*-----------------------------------------------------------------------------------------------*/
597 /*-----------------------------------------------------------------------------------------------*/
598 M2MB_RESULT_E m2mb_sms_write( M2MB_SMS_HANDLE h, UINT32 pdu_len, UINT8 *pdu );
599 
600 /*-----------------------------------------------------------------------------------------------*/
667 /*-----------------------------------------------------------------------------------------------*/
668 M2MB_RESULT_E m2mb_sms_send_from_mem( M2MB_SMS_HANDLE h, UINT32 index );
669 
670 /*-----------------------------------------------------------------------------------------------*/
745 /*-----------------------------------------------------------------------------------------------*/
746 M2MB_RESULT_E m2mb_sms_ack( M2MB_SMS_HANDLE h, M2MB_SMS_ACK_RES_E res, UINT32 transactionID, UINT32 failureCause1, UINT32 failureCause2 );
747 
748 /*-----------------------------------------------------------------------------------------------*/
816 /*-----------------------------------------------------------------------------------------------*/
817 M2MB_RESULT_E m2mb_sms_read( M2MB_SMS_HANDLE h, UINT32 index );
818 
819 /*-----------------------------------------------------------------------------------------------*/
887 /*-----------------------------------------------------------------------------------------------*/
888 M2MB_RESULT_E m2mb_sms_delete( M2MB_SMS_HANDLE h, UINT32 index );
889 
890 /*-----------------------------------------------------------------------------------------------*/
949 /*-----------------------------------------------------------------------------------------------*/
950 M2MB_RESULT_E m2mb_sms_set_tag( M2MB_SMS_HANDLE h, UINT32 index, M2MB_SMS_TAG_E tag );
951 
952 /*-----------------------------------------------------------------------------------------------*/
1007 /*-----------------------------------------------------------------------------------------------*/
1008 M2MB_RESULT_E m2mb_sms_set_sca( M2MB_SMS_HANDLE h, UINT8 *sca );
1009 
1010 /*-----------------------------------------------------------------------------------------------*/
1062 M2MB_RESULT_E m2mb_sms_get_sca( M2MB_SMS_HANDLE h );
1063 
1064 /*-----------------------------------------------------------------------------------------------*/
1099 /*-----------------------------------------------------------------------------------------------*/
1100 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 );
1101 
1102 /*-----------------------------------------------------------------------------------------------*/
1139 /*-----------------------------------------------------------------------------------------------*/
1140 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 );
1141 
1142 /*-----------------------------------------------------------------------------------------------*/
1174 /*-----------------------------------------------------------------------------------------------*/
1175 M2MB_RESULT_E m2mb_sms_set_storage( M2MB_SMS_HANDLE h, M2MB_SMS_STORAGE_E stType );
1176 
1177 /*-----------------------------------------------------------------------------------------------*/
1229 M2MB_RESULT_E m2mb_sms_get_storage_stat( M2MB_SMS_HANDLE h );
1230 
1231 /*-----------------------------------------------------------------------------------------------*/
1288 M2MB_RESULT_E m2mb_sms_get_storage_indexes( M2MB_SMS_HANDLE h, M2MB_SMS_TAG_E tag );
1289 
1290 
1291 #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:224
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:182
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:198
M2MB_SMS_INCOMING_T
Definition: m2mb_sms.h:212
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:176
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:149
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:206
M2MB_SMS_WRITE_RESP_T
Definition: m2mb_sms.h:164
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:190
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:154
M2MB_SMS_SEND_RESP_T
Definition: m2mb_sms.h:170
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.