le_sms_interface.h

Go to the documentation of this file.
1 
2 
3 /*
4  * ====================== WARNING ======================
5  *
6  * THE CONTENTS OF THIS FILE HAVE BEEN AUTO-GENERATED.
7  * DO NOT MODIFY IN ANY WAY.
8  *
9  * ====================== WARNING ======================
10  */
11 
12 /**
13  * @page c_sms SMS
14  *
15  * @ref le_sms_interface.h "API Reference"
16  *
17  * <HR>
18  *
19  * This file contains data structures and prototypes definitions for high level SMS APIs.
20  *
21  * SMS is a common way to communicate in the M2M world.
22  *
23  * It's an easy, fast way to send a small amount of data (e.g., sensor values for gas telemetry).
24  * Usually, the radio module requests small power resources to send or receive a message.
25  * It's often a good way to wake-up a device that was disconnected from the network or that was
26  * operating in low power mode.
27  *
28  * @section le_sms_binding IPC interfaces binding
29  *
30  * All the functions of this API are provided by the @b modemService.
31  *
32  * Here's a code sample binding to modem services:
33  * @verbatim
34  bindings:
35  {
36  clientExe.clientComponent.le_sms -> modemService.le_sms
37  }
38  @endverbatim
39  *
40  * @section le_sms_ops_creating_msg Creating a Message object
41  * There are 3 kinds of supported messages: text messages, binary messages, and PDU messages.
42  *
43  * You must create a Message object by calling @c le_sms_Create() before using the message
44  * APIs. It automatically allocates needed resources for the Message object, which is referenced by
45  * @c le_sms_MsgRef_t type.
46  *
47  * When the Message object is no longer needed, call @c le_sms_Delete() to free all
48  * allocated resources associated with the object.
49  *
50  * @section le_sms_ops_deleting_msg Deleting a Message object
51  * To delete a Message object, call le_sms_Delete(). This frees all the
52  * resources allocated for the Message object. If several users own the Message object
53  * (e.g., several handler functions registered for SMS message reception), the
54  * Message object will be deleted only after the last user deletes the Message object.
55  *
56  * @section le_sms_ops_sending Sending a message
57  * To send a message, create an @c le_sms_MsgRef_t object by calling the
58  * @c le_sms_Create() function. Then, set all the needed parameters for the message:
59  * - Destination telephone number with le_sms_SetDestination();
60  * - Text content with le_sms_SetText(), the total length are set as well with this API, maximum
61  * 160 characters as only the 7-bit alphabet is supported.
62  * - Binary content with le_sms_SetBinary(), total length is set with this API, maximum 140 bytes.
63  * - PDU content with le_sms_SetPDU(), total length is set with this API, max 36 (header) + 140
64  * (payload) bytes long.
65  * - UCS2 content (16-bit format) with le_sms_SetUCS2(), total length is set with this API, maximum
66  * 70 characters (140 bytes).
67  *
68  * - A specific timeout value can be used with le_sms_SetTimeout() API.
69  *
70  * After the Msg object is ready, call @c le_sms_Send().
71  *
72  * @c le_sms_Send() is a blocking function, it will return once the Modem has given back a
73  * positive or negative answer to the sending operation. The return of @c le_sms_Send() API
74  * provides definitive status of the sending operation.
75  * TP-Validity-Period(TP-VP) parameter value indicates the time period for which the short message
76  * is valid, i.e. for how long the Service Center (SC) shall guarantee its existence in the SC
77  * memory before delivery to the recipient has been carried out. The default validity period(TP-VP)
78  * is set to 7 days for MO SMS.
79  *
80  * When a message sending has failed and returned LE_FAULT, call le_sms_GetErrorCode() to retrieve
81  * the 3GPP message error code or le_sms_Get3GPP2ErrorCode() to retrieve the 3GPP2 message error
82  * code. If LE_SMS_ERROR_3GPP_PLATFORM_SPECIFIC or LE_SMS_ERROR_3GPP2_PLATFORM_SPECIFIC values is
83  * returned, call le_sms_GetPlatformSpecificErrorCode() to retrieve the platform specific error
84  * code.
85  *
86  * Please refer to @ref c_smsSampleMO page to get an example of SMS message sending.
87  *
88  * @section le_sms_ops_async_sending Sending asynchronously a message
89  *
90  * To send an asynchronous message, le_sms_SendAsync() API can be called instead of le_sms_Send()
91  * and a specific timeout value can be used with le_sms_SetTimeout() API.
92  * The default validity period(TP-VP) is set to 7 days for MO SMS.
93  *
94  * A text message can be sent with one simple function: le_sms_SendText(). You only have to pass
95  * the three following parameters:
96  * - the destination telephone number.
97  * - the text message, the total length are set as well with this function, maximum 160
98  * characters as only the 7-bit alphabet is supported.
99  * - the callback function to get a notification indicating the sending result: LE_SMS_SENT,
100  * LE_SMS_SENDING_FAILED or LE_SMS_SENDING_TIMEOUT.
101  * The default validity period(TP-VP) is set to 7 days for MO SMS.
102  *
103  * A PDU message can be sent using the le_sms_SendPdu() functions. The parameters to give are:
104  * - the PDU content, total length is set with this API, maximum 176 bytes long = 36 (header) +
105  * 140 (payload).
106  * - the callback function to get a notification indicating the sending result: LE_SMS_SENT,
107  * LE_SMS_SENDING_FAILED or LE_SMS_SENDING_TIMEOUT.
108  * The default validity period(TP-VP) is set to 7 days for MO SMS.
109  *
110  * When a message sending has failed, call le_sms_GetErrorCode() to retrieve the 3GPP message error
111  * code or le_sms_Get3GPP2ErrorCode() to retrieve the 3GPP2 message error code.
112  * If LE_SMS_ERROR_3GPP_PLATFORM_SPECIFIC or LE_SMS_ERROR_3GPP2_PLATFORM_SPECIFIC values is
113  * returned, call le_sms_GetPlatformSpecificErrorCode() to retrieve the platform specific error
114  * code.
115  *
116  * Message object is never deleted regardless of the sending result. Caller has to
117  * delete it. Message object once used for sending the message can not be reused to
118  * send another message regardless of success or failure. New object has to be created
119  * for new message.
120  *
121  * @section le_sms_ops_receiving Receiving a message
122  * To receive SMS messages, register a handler function to obtain incoming
123  * messages. Use @c le_sms_AddRxMessageHandler() to register that handler.
124  *
125  * The handler must satisfy the following prototype:
126  * @c typedef void (*le_sms_RxMessageHandlerFunc_t)(le_sms_MsgRef_t msg).
127  *
128  * When a new incoming message is received, a Message object is automatically created and the
129  * handler is called. This Message object is Read-Only, any calls of a le_sms_SetXXX API will
130  * return a LE_NOT_PERMITTED error.
131  *
132  * Use the following APIs to retrieve message information and data from the Message
133  * object:
134  * - le_sms_GetFormat() - determine if it is a binary or a text message.
135  * - le_sms_GetSenderTel() - get the sender's Telephone number.
136  * - le_sms_GetTimeStamp() - get the timestamp sets by the Service Center.
137  * - le_sms_GetUserdataLen() - get the message content (text, binary or UCS2) length.
138  * - le_sms_GetPDULen() - get the PDU message length.
139  * - le_sms_GetText() - get the message text.
140  * - le_sms_GetUCS2() - get the UCS2 message content (16-bit format).
141  * - le_sms_GetBinary() - get the message binary content.
142  * - le_sms_GetPDU() - get the message PDU data.
143  * - le_sms_GetType() - get the message type.
144  *
145  * @note - If two (or more) registered handler functions exist, they are
146  * all called and get a different message object reference.
147  *
148  * @note - For incoming SMS, if the returned format is LE_SMS_FORMAT_PDU, the PDU length can be
149  * retrieved by calling le_sms_GetPDULen() and the content can be read by le_sms_GetPDU().
150  *
151  * If a succession of messages is received, a new Message object is created for each, and
152  * the handler is called for each new message.
153  *
154  * Uninstall the handler function by calling @c le_sms_RemoveRxMessageHandler().
155  * @note @c le_sms_RemoveRxMessageHandler() API does not delete the Message Object.
156  * The caller has to delete it.
157  *
158  * Please refer to @ref c_smsSampleMT page to get an example of SMS message reception handling.
159  *
160  * @section le_sms_ops_sms_storage Receiving a full SMS storage indication
161  * To receive a SMS full storage status, the application has to register a handler function.
162  * Use @c le_sms_AddFullStorageEventHandler() to register that handler.
163  *
164  * The handler must satisfy the following prototype:
165  * @c typedef void (*le_sms_FullStorageEventFunc_t)(le_sms_Storage_t storage).
166  *
167  * Uninstall the handler function by calling @c le_sms_RemoveFullStorageEventHandler().
168  *
169  * Please refer to @ref c_smsSampleMT page to get an example of SMS storage indication
170  * handling.
171  *
172  * @section le_sms_ops_listing Listing messages recorded in storage area
173  *
174  * Call @c le_sms_CreateRxMsgList() to create a List object that lists the received
175  * messages present in the storage area, which is referenced by @c le_sms_MsgListRef_t
176  * type.
177  *
178  * If messages are not present, the le_sms_CreateRxMsgList() returns NULL.
179  *
180  * Once the list is available, call @c le_sms_GetFirst() to get the first
181  * message from the list, and then call @c le_sms_GetNext() API to get the next message.
182  *
183  * Call @c le_sms_DeleteList() to free all allocated
184  * resources associated with the List object.
185  *
186  * Call @c le_sms_GetStatus() to read the status of a message (Received
187  * Read, Received Unread).
188  *
189  * To finish, you can also modify the received status of a message with
190  * @c le_sms_MarkRead() and @c le_sms_MarkUnread().
191  *
192  * @section le_sms_ops_deleting Deleting a message from the storage area
193  *
194  * @c le_sms_DeleteFromStorage() deletes the message from the storage area. Message is
195  * identified with @c le_sms_MsgRef_t object. The API returns an error if the message is not found
196  * in the storage area.
197  *
198  * @note If several users own the Message object on new reception
199  * (e.g., several handler functions registered for SMS message reception), the
200  * Message will be deleted from the storage area only after the last user deletes
201  * the Message object reference (not necessary from storage). API returns always LE_OK in this case.
202  *
203  * @note If one client creates a list and deletes all sms from storage, other clients won’t see sms
204  * stored If they have not created a sms list too. Sms List creation locks and
205  * delays sms deletion from storage until all references have been deleted.
206  *
207  * @section le_sms_ops_broadcast SMS Cell Broadcast
208  *
209  * The Cell Broadcast service permits a number of unacknowledged general messages to be broadcast
210  * to all receivers within a particular region. Cell Broadcast messages are broadcast to defined
211  * geographical areas known as cell broadcast areas. These areas may comprise of one or more cells,
212  * or may comprise the entire PLMN.
213  *
214  * GSM or UMTS SMS cell broadcast service can be activated or deactivated with
215  * le_sms_ActivateCellBroadcast() and le_sms_DeactivateCellBroadcast() APIs.
216  *
217  * CDMA cell broadcast service can be activated or deactivated with
218  * le_sms_ActivateCdmaCellBroadcast() and le_sms_DeactivateCdmaCellBroadcast() APIs.
219  *
220  * Cell broadcast message receptions are notify by the SMS handler like a SMS message reception,
221  * but there are neither stored in SIM nor in the modem. So le_sms_DeleteFromStorage()
222  * can't be used but the message reference shall be delete with le_sms_Delete().
223  *
224  * - le_sms_GetFormat() - determine if it is a binary or a text message.
225  * - le_sms_GetUserdataLen() - get the message content (text, binary or UCS2) length.
226  * - le_sms_GetPDULen() - get the PDU message received length.
227  * - le_sms_GetText() - get the message text.
228  * - le_sms_GetBinary() - get the message binary content.
229  * - le_sms_GetUCS2() - get the UCS2 message content (16-bit format).
230  * - le_sms_GetPDU() - get the message PDU data received length.
231  * - le_sms_GetCellBroadcastId() - get the message identifier received (3GPP 23.41).
232  * - le_sms_GetCellBroadcastSerialNumber() get the message Serial Number received (3GPP 23.41).
233  *
234  * A sample code that implements a function for SMS Cell Broadcast reception can be found in
235  * \b smsCBTest.c file (please refer to @ref c_smsCbSample page).
236  *
237  * @b Serial @b Number
238  *
239  * Cell Broadcast Serial Number parameter is a 16-bit integer which identifies a particular
240  * CBS message from the source and type indicated by the Message Identifier and is altered every
241  * time the CBS message with a given Message Identifier is changed.
242  *
243  * The two bytes of the Serial Number field are divided into a 2-bit Geographical Scope (GS)
244  * indicator, a 10-bit Message Code and a 4-bit Update Number as shown below:
245  *
246  * - GS code (bit 14 and 15): The Geographical Scope (GS) indicates the geographical area over
247  * which the Message Code is unique, and the display mode.
248  *
249  * - Message Code (bit 4 to 13) : The Message Code differentiates between CBS messages from
250  * the same source and type (i.e. with the same Message Identifier). Message Codes are for
251  * allocation by PLMN operators. The Message Code identifies different message themes.
252  * For example, let the value for the Message Identifier be "Automotive Association" (= source),
253  * "Traffic Reports" (= type). Then "Crash on A1 J5" could be one value for the message code,
254  * "Cow on A32 J4" could be another, and "Slow vehicle on M3 J3" yet another.
255  *
256  * - Update Number (bit 0 to 3) : The Update Number indicates a change of the message content of
257  * the same CBS message, i.e. the CBS message with the same Message Identifier, Geographical
258  * Scope, and Message Code.
259  *
260  * Serial Number fields meaning are defined in the 3GPP 23.041 (9.4.1.2.1 Serial Number).
261  *
262  * @b Message @b Identifier
263  *
264  * Message Identifier parameter identifies the source and type of the CBS message. For example,
265  * "Automotive Association" (= source), "Traffic Reports" (= type) could correspond to one value.
266  * A number of CBS messages may originate from the same source and/or be of the same type.
267  * These will be distinguished by the Serial Number.
268  *
269  * Message identifier meaning ranges are defined in the 3GPP 23.041 (9.4.1.2.2 Message Identifier).
270  *
271  * @section le_sms_ops_broadcast_configuration SMS Cell Broadcast configuration
272  *
273  * GSM or UMTS Cell broadcast Message identifiers range can be added or removed with
274  * le_sms_AddCellBroadcastIds() and le_sms_RemoveCellBroadcastIds() APIs. All Message identifiers
275  * can be removed with le_sms_ClearCellBroadcastIds() API.
276  *
277  * CDMA Cell broadcast Service categories can be added or removed with
278  * le_sms_AddCdmaCellBroadcastServices() and le_sms_RemoveCdmaCellBroadcastServices() APIs. All
279  * Service categories can be removed with le_sms_ClearCdmaCellBroadcastServices() API.
280  *
281  * @section le_sms_ops_configuration SMS configuration
282  *
283  * Modem SMS Center Address can be set or get with le_sms_SetSmsCenterAddress() and
284  * le_sms_GetSmsCenterAddress() functions
285  *
286  * @section le_sms_ops_storage_configuration Preferred SMS storage configuration
287  *
288  * Preferred SMS storage for incoming messages can be set or get with le_sms_SetPreferredStorage()
289  * and le_sms_GetPreferredStorage() functions.
290  *
291  * @section le_sms_ops_statistics SMS statistics
292  *
293  * The number of SMS successfully sent or received through the Legato API can be counted.
294  * This feature is activated by default. le_sms_GetCount() allows retrieving the message count
295  * for each SMS type (cf. @ref le_sms_Type_t).
296  *
297  * le_sms_StopCount() stops the message counting and le_sms_StartCount() restarts it.
298  * le_sms_ResetCount() can be used to reset the message counters.
299  *
300  * @note The activation state of this feature is persistent even after a reboot of the platform.
301  *
302  * @section le_sms_ops_samples Sample codes
303  * A sample code that implements a function for Mobile Originated SMS message can be found in
304  * \b smsMO.c file (please refer to @ref c_smsSampleMO page).
305  *
306  * A sample code that implements a function for Mobile Terminated SMS message can be found in
307  * \b smsMT.c file (please refer to @ref c_smsSampleMT page).
308  *
309  * These two samples can be easily compiled and run into the \b sms app, to install and use
310  * this app:
311  *
312  * @verbatim
313  $ make ar7
314  $ bin/instapp build/ar7/bin/samples/sms.ar7 <ipaddress>
315  @endverbatim
316  * where ipaddress is the address of your target device.
317  *
318  * Then on your target, just run:
319  * @verbatim
320  $ app start sms
321  @endverbatim
322  *
323  * The sample replies to the sender by the message "Message from <phone number> received". Where
324  * "phone number" is the sender's phone number.
325  *
326  * Sample code for that application can be seen in the following pages:
327  * - @subpage c_smsSampleMO <br>
328  * - @subpage c_smsSampleMT
329  *
330  * <HR>
331  *
332  * Copyright (C) Sierra Wireless Inc.
333  */
334 /**
335  * @file le_sms_interface.h
336  *
337  * Legato @ref c_sms include file.
338  *
339  * Copyright (C) Sierra Wireless Inc.
340  */
341 /**
342  * @page c_smsSampleMO Sample code for Mobile Originated SMS message
343  *
344  * @include "apps/sample/sms/smsClient/smsMO.c"
345  */
346 /**
347  * @page c_smsSampleMT Sample code for Mobile Terminated SMS message
348  *
349  * @include "apps/sample/sms/smsClient/smsMT.c"
350  */
351 /**
352  * @page c_smsCbSample Sample code for SMS Cell Broadcast reception
353  *
354  * @include "apps/test/modemServices/sms/smsIntegrationTest/smsCBTest/smsCBTest.c"
355  */
356 
357 #ifndef LE_SMS_INTERFACE_H_INCLUDE_GUARD
358 #define LE_SMS_INTERFACE_H_INCLUDE_GUARD
359 
360 
361 #include "legato.h"
362 
363 // Interface specific includes
364 #include "le_mdmDefs_interface.h"
365 
366 
367 //--------------------------------------------------------------------------------------------------
368 /**
369  * Type for handler called when a server disconnects.
370  */
371 //--------------------------------------------------------------------------------------------------
372 typedef void (*le_sms_DisconnectHandler_t)(void *);
373 
374 //--------------------------------------------------------------------------------------------------
375 /**
376  *
377  * Connect the current client thread to the service providing this API. Block until the service is
378  * available.
379  *
380  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
381  * called before any other functions in this API. Normally, ConnectService is automatically called
382  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
383  *
384  * This function is created automatically.
385  */
386 //--------------------------------------------------------------------------------------------------
388 (
389  void
390 );
391 
392 //--------------------------------------------------------------------------------------------------
393 /**
394  *
395  * Try to connect the current client thread to the service providing this API. Return with an error
396  * if the service is not available.
397  *
398  * For each thread that wants to use this API, either ConnectService or TryConnectService must be
399  * called before any other functions in this API. Normally, ConnectService is automatically called
400  * for the main thread, but not for any other thread. For details, see @ref apiFilesC_client.
401  *
402  * This function is created automatically.
403  *
404  * @return
405  * - LE_OK if the client connected successfully to the service.
406  * - LE_UNAVAILABLE if the server is not currently offering the service to which the client is
407  * bound.
408  * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).
409  * - LE_COMM_ERROR if the Service Directory cannot be reached.
410  */
411 //--------------------------------------------------------------------------------------------------
413 (
414  void
415 );
416 
417 //--------------------------------------------------------------------------------------------------
418 /**
419  * Set handler called when server disconnection is detected.
420  *
421  * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants
422  * to continue without exiting, it should call longjmp() from inside the handler.
423  */
424 //--------------------------------------------------------------------------------------------------
426 (
427  le_sms_DisconnectHandler_t disconnectHandler,
428  void *contextPtr
429 );
430 
431 //--------------------------------------------------------------------------------------------------
432 /**
433  *
434  * Disconnect the current client thread from the service providing this API.
435  *
436  * Normally, this function doesn't need to be called. After this function is called, there's no
437  * longer a connection to the service, and the functions in this API can't be used. For details, see
438  * @ref apiFilesC_client.
439  *
440  * This function is created automatically.
441  */
442 //--------------------------------------------------------------------------------------------------
444 (
445  void
446 );
447 
448 
449 //--------------------------------------------------------------------------------------------------
450 /**
451  * Time stamp string length.
452  * The string format is "yy/MM/dd,hh:mm:ss+/-zz" (Year/Month/Day,Hour:Min:Seconds+/-TimeZone).
453  * One extra byte is added for the null character.
454  */
455 //--------------------------------------------------------------------------------------------------
456 #define LE_SMS_TIMESTAMP_MAX_LEN 20
457 
458 //--------------------------------------------------------------------------------------------------
459 /**
460  * Time stamp string length (including the null-terminator).
461  */
462 //--------------------------------------------------------------------------------------------------
463 #define LE_SMS_TIMESTAMP_MAX_BYTES 21
464 
465 //--------------------------------------------------------------------------------------------------
466 /**
467  * The text message can be up to 160 characters long.
468  * One extra byte is added for the null character.
469  */
470 //--------------------------------------------------------------------------------------------------
471 #define LE_SMS_TEXT_MAX_LEN 160
472 
473 //--------------------------------------------------------------------------------------------------
474 /**
475  * Test message string length (including the null-terminator).
476  */
477 //--------------------------------------------------------------------------------------------------
478 #define LE_SMS_TEXT_MAX_BYTES 161
479 
480 //--------------------------------------------------------------------------------------------------
481 /**
482  * The raw binary message can be up to 140 bytes long.
483  */
484 //--------------------------------------------------------------------------------------------------
485 #define LE_SMS_BINARY_MAX_BYTES 140
486 
487 //--------------------------------------------------------------------------------------------------
488 /**
489  * The UCS2 message can be up to 140 bytes long (70 characters).
490  */
491 //--------------------------------------------------------------------------------------------------
492 #define LE_SMS_UCS2_MAX_BYTES 140
493 
494 //--------------------------------------------------------------------------------------------------
495 /**
496  * The UCS2 message can be up to 70 characters (140 bytes long).
497  */
498 //--------------------------------------------------------------------------------------------------
499 #define LE_SMS_UCS2_MAX_CHARS 70
500 
501 //--------------------------------------------------------------------------------------------------
502 /**
503  * The PDU payload bytes long.
504  */
505 //--------------------------------------------------------------------------------------------------
506 #define LE_SMS_PDU_MAX_PAYLOAD 140
507 
508 //--------------------------------------------------------------------------------------------------
509 /**
510  * The PDU message can be up to 36 (header) + 140 (payload) bytes long.
511  */
512 //--------------------------------------------------------------------------------------------------
513 #define LE_SMS_PDU_MAX_BYTES 176
514 
515 //--------------------------------------------------------------------------------------------------
516 /**
517  * Message Format.
518  */
519 //--------------------------------------------------------------------------------------------------
520 typedef enum
521 {
523  ///< PDU message format.
525  ///< Text message format.
527  ///< Binary message format.
529  ///< UCS2 message format.
531  ///< Unknown message format.
532 }
534 
535 
536 //--------------------------------------------------------------------------------------------------
537 /**
538  * Message Type.
539  */
540 //--------------------------------------------------------------------------------------------------
541 typedef enum
542 {
544  ///< SMS mobile terminated message.
546  ///< SMS mobile originated message.
548  ///< SMS Cell Broadcast message.
549 }
551 
552 
553 //--------------------------------------------------------------------------------------------------
554 /**
555  * Message Status.
556  */
557 //--------------------------------------------------------------------------------------------------
558 typedef enum
559 {
561  ///< Message present in the message storage has been read.
563  ///< Message present in the message storage has not been read.
565  ///< Message saved in the message storage has been sent.
567  ///< Message saved in the message storage has not been sent.
569  ///< Message has been sent.
571  ///< Message has been in the sending pool.
573  ///< Message has not been sent.
575  ///< Message sending has Failed.
577  ///< Message sending has Failed due to timeout.
579  ///< Unknown message status.
580 }
582 
583 
584 //--------------------------------------------------------------------------------------------------
585 /**
586  * CDMA Cell broadcast message languages.
587  */
588 //--------------------------------------------------------------------------------------------------
589 typedef enum
590 {
592  ///< Unknow or Unspecified language.
594  ///< English language.
596  ///< French language.
598  ///< Spanish language.
600  ///< Japanese language.
602  ///< Korean language.
604  ///< Chinese language.
606  ///< Hebrew language.
607  LE_SMS_LANGUAGE_MAX = 8
608  ///<
609 }
611 
612 
613 //--------------------------------------------------------------------------------------------------
614 /**
615  * CDMA Cell broadcast Service Categories.
616  */
617 //--------------------------------------------------------------------------------------------------
618 typedef enum
619 {
621  ///< Unknown or Unspecified.
623  ///< Emergency Broadcast.
625  ///< Administrative.
627  ///< Maintenance.
629  ///< General News Local.
631  ///< General News Regional.
633  ///< General News National.
635  ///< General News International.
637  ///< Business News Local.
639  ///< Business News Regional.
641  ///< Business News National.
643  ///< Business News International.
645  ///< Sports News Local.
647  ///< Sports News Regional.
649  ///< Sports News National.
651  ///< Sports News International.
653  ///< Entertainment News Local.
655  ///< Entertainment News Regional.
657  ///< Entertainment News National.
659  ///< Entertainment News International.
661  ///< Local weather.
663  ///< Area Traffic Reports.
665  ///< Local Airplane Flight Schedules.
667  ///< Restaurants.
669  ///< Lodgings.
671  ///< Retail Directory.
673  ///< Advertisements.
675  ///< Stock Quotes.
677  ///< Employment Opportunities.
679  ///< Medical/Health/Hospitals.
681  ///< Technology News.
683  ///< Multicategory.
685  ///< Card Application Toolkit Protocol Teleservice.
686  LE_SMS_CDMA_SVC_CAT_MAX = 33
687  ///<
688 }
690 
691 
692 //--------------------------------------------------------------------------------------------------
693 /**
694  * SMS storage area.
695  */
696 //--------------------------------------------------------------------------------------------------
697 typedef enum
698 {
700  ///< Non volatile memory storage.
702  ///< Sim SMS storage.
704  ///< Undefined storage.
705 }
707 
708 
709 //--------------------------------------------------------------------------------------------------
710 /**
711  * 3GPP2 Message Error code when the message sending has failed.
712  */
713 //--------------------------------------------------------------------------------------------------
714 typedef enum
715 {
717  ///< The SMS Destination Address is valid but is not.
718  ///< currently allocated to an SMS terminal.
720  ///< The SMS Destination Address is invalid.
722  ///< The network transmission failed due to lack of
723  ///< a network resource or link capacity.
725  ///< A network node failed, a link failed, or a
726  ///< required operation failed.
728  ///< The SMS_TeleserviceIdentifier is not known, is
729  ///< not supported, or is not authorized by an
730  ///< addressed functional entity.
732  ///< A network problem other than identified above.
734  ///< The addressed MS-based SME is known, but it
735  ///< does not respond to a page.
737  ///< The destination MS-based SME is SMS capable,
738  ///< but is currently engaged in a call, a service,
739  ///< or a call mode that precludes the use of SMS,
740  ///< or the destination SME is congested.
742  ///< The destination SME does not acknowledge receipt
743  ///< of the SMS delivery.
745  ///< A required terminal resource is not available to
746  ///< process this message.
748  ///< Delivery is not currently possible.
750  ///< The addressed destination is out of
751  ///< service for an extended period of time.
753  ///< The MS-based SME is no longer at the
754  ///< temporary SMS routing address.
756  ///< A terminal problem other than described above.
758  ///< There is no channel available or there is
759  ///< radio congestion at this time.
761  ///< The MS for an MS-based SME is operating in a
762  ///< mode that does not support SMS at this time.
764  ///< A radio interface problem to an MS-based SME
765  ///< other than described above.
767  ///< The size of a parameter or field is not
768  ///< what is expected.
770  ///< The originating MIN is not recognized.
772  ///< The destination is not authorized to receive
773  ///< the SMS message.
775  ///< The originating supplementary service is
776  ///< not known or supported.
778  ///< The originating supplementary service is
779  ///< not known or supported.
781  ///< An optional parameter that is required
782  ///< for a particular function.
784  ///< A parameter is missing that is mandatory.
785  ///< for a particular message.
787  ///< A known parameter has an unknown or
788  ///< unsupported value.
790  ///< A known parameter has a known but unexpected
791  ///< value.
793  ///< The User Data size is too large for access
794  ///< technology, transport network, or call
795  ///< mode, etc
797  ///< Other general problems.
799  ///< Platform specific code.
801  ///< Undefined reason.
802 }
804 
805 
806 //--------------------------------------------------------------------------------------------------
807 /**
808  * Message Error code when the message sending has failed.
809  */
810 //--------------------------------------------------------------------------------------------------
811 typedef enum
812 {
814  ///< Unassigned (unallocated) number
816  ///< Operator determined barring
818  ///< Call barred
820  ///< Reserved
822  ///< Short message transfer rejected
824  ///< Memory capacity exceeded
826  ///< Destination out of order
828  ///< Unidentified subscriber
830  ///< Facility rejected
832  ///< Unknown subscriber
834  ///< Network out of order
836  ///< Temporary failure
838  ///< Congestion
840  ///< Resources unavailable, unspecified
842  ///< Resources facility not subscribed
844  ///< Resources facility not implemented
846  ///< Invalid short message transfer
847  ///< reference value
849  ///< Sementically incorect message
851  ///< Invalid mandatory information
853  ///< Message type nonexistent or not implemented
855  ///< Message not compatible with short message
856  ///< protocol state
858  ///< Information element nonexistent
859  ///< or not implemented
861  ///< Protocol error, unspecified
863  ///< Interworking, unspecified
865  ///< Telematic interworking not supported
867  ///< Short Message Type 0 not supported
869  ///< Cannot replace short message
871  ///< Unspecified TP-PID error
873  ///< Data coding scheme (alphabet)
874  ///< not supported
876  ///< Message class not supported
878  ///< Unspecified TP-DCS error
880  ///< Command cannot be actioned
882  ///< Command unsupported
884  ///< Unspecified TP-Command error
886  ///< TPDU not supported
888  ///< SC busy
890  ///< No SC subscription
892  ///< SC system failure
894  ///< Invalid SME address
896  ///< Destination SME barred
898  ///< SM Rejected-Duplicate SM
900  ///< TP-VPF not supported
902  ///< TP-VP not supporte
904  ///< (U)SIM SMS storage full
906  ///< No SMS storage capability in (U)SIM
908  ///< Error in MS
910  ///< Memory capacity exceeded
912  ///< (U)SIM Application Toolkit busy
914  ///< (U)SIM data download error
916  ///< Unspecified error cause
918  ///< Platform specific code.
920  ///< Undefined reason.
921 }
923 
924 
925 //--------------------------------------------------------------------------------------------------
926 /**
927  * Declare a reference type for referring to SMS Message objects.
928  */
929 //--------------------------------------------------------------------------------------------------
930 typedef struct le_sms_Msg* le_sms_MsgRef_t;
931 
932 
933 //--------------------------------------------------------------------------------------------------
934 /**
935  * Opaque type for SMS Message Listing.
936  */
937 //--------------------------------------------------------------------------------------------------
938 typedef struct le_sms_MsgList* le_sms_MsgListRef_t;
939 
940 
941 //--------------------------------------------------------------------------------------------------
942 /**
943  * Reference type used by Add/Remove functions for EVENT 'le_sms_RxMessage'
944  */
945 //--------------------------------------------------------------------------------------------------
946 typedef struct le_sms_RxMessageHandler* le_sms_RxMessageHandlerRef_t;
947 
948 
949 //--------------------------------------------------------------------------------------------------
950 /**
951  * Reference type used by Add/Remove functions for EVENT 'le_sms_FullStorageEvent'
952  */
953 //--------------------------------------------------------------------------------------------------
954 typedef struct le_sms_FullStorageEventHandler* le_sms_FullStorageEventHandlerRef_t;
955 
956 
957 //--------------------------------------------------------------------------------------------------
958 /**
959  * Handler for Sending result.
960  */
961 //--------------------------------------------------------------------------------------------------
962 typedef void (*le_sms_CallbackResultFunc_t)
963 (
964  le_sms_MsgRef_t msgRef,
965  ///< Reference to the message object.
966  le_sms_Status_t status,
967  ///< Status result.
968  void* contextPtr
969  ///<
970 );
971 
972 //--------------------------------------------------------------------------------------------------
973 /**
974  * Handler for New Message.
975  *
976  */
977 //--------------------------------------------------------------------------------------------------
978 typedef void (*le_sms_RxMessageHandlerFunc_t)
979 (
980  le_sms_MsgRef_t msgRef,
981  ///< Message reference.
982  void* contextPtr
983  ///<
984 );
985 
986 //--------------------------------------------------------------------------------------------------
987 /**
988  * Handler for full storage indication.
989  *
990  */
991 //--------------------------------------------------------------------------------------------------
992 typedef void (*le_sms_FullStorageHandlerFunc_t)
993 (
994  le_sms_Storage_t storage,
995  ///< storage parameter.
996  void* contextPtr
997  ///<
998 );
999 
1000 //--------------------------------------------------------------------------------------------------
1001 /**
1002  * Add handler function for EVENT 'le_sms_RxMessage'
1003  *
1004  * This event provides information on new received messages.
1005  *
1006  */
1007 //--------------------------------------------------------------------------------------------------
1009 (
1010  le_sms_RxMessageHandlerFunc_t handlerPtr,
1011  ///< [IN]
1012  void* contextPtr
1013  ///< [IN]
1014 );
1015 
1016 //--------------------------------------------------------------------------------------------------
1017 /**
1018  * Remove handler function for EVENT 'le_sms_RxMessage'
1019  */
1020 //--------------------------------------------------------------------------------------------------
1022 (
1023  le_sms_RxMessageHandlerRef_t handlerRef
1024  ///< [IN]
1025 );
1026 
1027 //--------------------------------------------------------------------------------------------------
1028 /**
1029  * Add handler function for EVENT 'le_sms_FullStorageEvent'
1030  *
1031  * This event provides information on full storage indication.
1032  *
1033  */
1034 //--------------------------------------------------------------------------------------------------
1036 (
1038  ///< [IN]
1039  void* contextPtr
1040  ///< [IN]
1041 );
1042 
1043 //--------------------------------------------------------------------------------------------------
1044 /**
1045  * Remove handler function for EVENT 'le_sms_FullStorageEvent'
1046  */
1047 //--------------------------------------------------------------------------------------------------
1049 (
1051  ///< [IN]
1052 );
1053 
1054 //--------------------------------------------------------------------------------------------------
1055 /**
1056  * Create an SMS Message data structure.
1057  *
1058  * @return Reference to the new Message object.
1059  *
1060  * @note
1061  * On failure, the process exits, so you don't have to worry about checking the returned
1062  * reference for validity.
1063  */
1064 //--------------------------------------------------------------------------------------------------
1066 (
1067  void
1068 );
1069 
1070 //--------------------------------------------------------------------------------------------------
1071 /**
1072  * Set the timeout to send a SMS Message.
1073  *
1074  * @return
1075  * - LE_FAULT Message is not in UNSENT state or is Read-Only.
1076  * - LE_OK Function succeeded.
1077  *
1078  * @note
1079  * On failure, the process exits, so you don't have to worry about checking the returned
1080  * reference for validity.
1081  */
1082 //--------------------------------------------------------------------------------------------------
1084 (
1085  le_sms_MsgRef_t msgRef,
1086  ///< [IN] Reference to the message object.
1087  uint32_t timeout
1088  ///< [IN] Timeout in seconds.
1089 );
1090 
1091 //--------------------------------------------------------------------------------------------------
1092 /**
1093  * Set the Telephone destination number.
1094  *
1095  * Telephone number is defined in ITU-T recommendations E.164/E.163.
1096  * E.164 numbers can have a maximum of fifteen digits and are usually written with a '+' prefix.
1097  *
1098  * @return LE_NOT_PERMITTED Message is Read-Only.
1099  * @return LE_BAD_PARAMETER Telephone destination number length is equal to zero.
1100  * @return LE_OK Function succeeded.
1101  *
1102  * @note If telephone destination number is too long is too long (max LE_MDMDEFS_PHONE_NUM_MAX_LEN
1103  * digits), it is a fatal error, the function will not return.
1104  *
1105  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1106  * function will not return.
1107  */
1108 //--------------------------------------------------------------------------------------------------
1110 (
1111  le_sms_MsgRef_t msgRef,
1112  ///< [IN] Reference to the message object.
1113  const char* LE_NONNULL dest
1114  ///< [IN] Telephone number string.
1115 );
1116 
1117 //--------------------------------------------------------------------------------------------------
1118 /**
1119  * This function must be called to set the Text Message content.
1120  *
1121  * @return LE_NOT_PERMITTED Message is Read-Only.
1122  * @return LE_BAD_PARAMETER Text message length is equal to zero.
1123  * @return LE_OK Function succeeded.
1124  *
1125  * @note Text Message is encoded in ASCII format (ISO8859-15) and characters have to exist in
1126  * the GSM 23.038 7 bit alphabet.
1127  *
1128  * @note If message is too long (max LE_SMS_TEXT_MAX_LEN digits), it is a fatal error, the
1129  * function will not return.
1130  *
1131  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1132  * function will not return.
1133  */
1134 //--------------------------------------------------------------------------------------------------
1136 (
1137  le_sms_MsgRef_t msgRef,
1138  ///< [IN] Reference to the message object.
1139  const char* LE_NONNULL text
1140  ///< [IN] SMS text.
1141 );
1142 
1143 //--------------------------------------------------------------------------------------------------
1144 /**
1145  * Set the binary message content.
1146  *
1147  * @return LE_NOT_PERMITTED Message is Read-Only.
1148  * @return LE_BAD_PARAMETER Length of the data is equal to zero.
1149  * @return LE_OK Function succeeded.
1150  *
1151  * @note If length of the data is too long (max LE_SMS_BINARY_MAX_BYTES bytes), it is a fatal
1152  * error, the function will not return.
1153  *
1154  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1155  * function will not return.
1156  */
1157 //--------------------------------------------------------------------------------------------------
1159 (
1160  le_sms_MsgRef_t msgRef,
1161  ///< [IN] Reference to the message object.
1162  const uint8_t* binPtr,
1163  ///< [IN] Binary data.
1164  size_t binSize
1165  ///< [IN]
1166 );
1167 
1168 //--------------------------------------------------------------------------------------------------
1169 /**
1170  * Set the UCS2 message content (16-bit format).
1171  *
1172  * @return
1173  * - LE_NOT_PERMITTED Message is Read-Only.
1174  * - LE_BAD_PARAMETER Length of the data is equal to zero.
1175  * - LE_OK Function succeeded.
1176  *
1177  * @note If length of the data is too long (max LE_SMS_UCS2_MAX_CHARS), it is a fatal
1178  * error, the function will not return.
1179  *
1180  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1181  * function will not return.
1182  */
1183 //--------------------------------------------------------------------------------------------------
1185 (
1186  le_sms_MsgRef_t msgRef,
1187  ///< [IN] Reference to the message object.
1188  const uint16_t* ucs2Ptr,
1189  ///< [IN] UCS2 message.
1190  size_t ucs2Size
1191  ///< [IN]
1192 );
1193 
1194 //--------------------------------------------------------------------------------------------------
1195 /**
1196  * Set the PDU message content.
1197  *
1198  * @return LE_NOT_PERMITTED Message is Read-Only.
1199  * @return LE_BAD_PARAMETER Length of the data is equal to zero.
1200  * @return LE_OK Function succeeded.
1201  *
1202  * @note If length of the data is too long (max LE_SMS_PDU_MAX_BYTES bytes), it is a fatal error,
1203  * the function will not return.
1204  *
1205  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1206  * function will not return.
1207  */
1208 //--------------------------------------------------------------------------------------------------
1210 (
1211  le_sms_MsgRef_t msgRef,
1212  ///< [IN] Reference to the message object.
1213  const uint8_t* pduPtr,
1214  ///< [IN] PDU message.
1215  size_t pduSize
1216  ///< [IN]
1217 );
1218 
1219 //--------------------------------------------------------------------------------------------------
1220 /**
1221  * Send an SMS message.
1222  *
1223  * Verifies first if the parameters are valid, then it checks the modem state can support
1224  * message sending.
1225  *
1226  * @return LE_FORMAT_ERROR Message content is invalid.
1227  * @return LE_FAULT Function failed to send the message.
1228  * @return LE_OK Function succeeded.
1229  * @return LE_TIMEOUT Timeout before the complete sending.
1230  *
1231  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1232  * function will not return.
1233  */
1234 //--------------------------------------------------------------------------------------------------
1236 (
1237  le_sms_MsgRef_t msgRef
1238  ///< [IN] Reference to the message object.
1239 );
1240 
1241 //--------------------------------------------------------------------------------------------------
1242 /**
1243  * Send an asynchronous SMS message.
1244  *
1245  * Verifies first if the parameters are valid, then it checks the modem state can support
1246  * message sending.
1247  *
1248  * @return LE_FORMAT_ERROR Message content is invalid.
1249  * @return LE_FAULT Function failed to send the message.
1250  * @return LE_OK Function succeeded.
1251  * @return LE_TIMEOUT Timeout before the complete sending.
1252  *
1253  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1254  * function will not return.
1255  */
1256 //--------------------------------------------------------------------------------------------------
1258 (
1259  le_sms_MsgRef_t msgRef,
1260  ///< [IN] Reference to the message object.
1261  le_sms_CallbackResultFunc_t handlerPtr,
1262  ///< [IN] CallBack for sending result.
1263  void* contextPtr
1264  ///< [IN]
1265 );
1266 
1267 //--------------------------------------------------------------------------------------------------
1268 /**
1269  * Get the error code when a 3GPP2 message sending has Failed.
1270  *
1271  * @return The error code
1272  *
1273  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1274  * function will not return.
1275  *
1276  * @note It is only applicable for 3GPP2 message sending failure, otherwise
1277  * LE_SMS_ERROR_3GPP2_MAX is returned.
1278  */
1279 //--------------------------------------------------------------------------------------------------
1281 (
1282  le_sms_MsgRef_t msgRef
1283  ///< [IN] Reference to the message object.
1284 );
1285 
1286 //--------------------------------------------------------------------------------------------------
1287 /**
1288  * Get the Radio Protocol and the Transfer Protocol error code when a 3GPP message sending has
1289  * failed.
1290  *
1291  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1292  * function will not return.
1293  *
1294  * @note It is only applicable for 3GPP message sending failure, otherwise
1295  * LE_SMS_ERROR_3GPP_MAX is returned.
1296  */
1297 //--------------------------------------------------------------------------------------------------
1299 (
1300  le_sms_MsgRef_t msgRef,
1301  ///< [IN] Reference to the message object.
1302  le_sms_ErrorCode_t* rpCausePtr,
1303  ///< [OUT] Radio Protocol cause code.
1304  le_sms_ErrorCode_t* tpCausePtr
1305  ///< [OUT] Transfer Protocol cause code.
1306 );
1307 
1308 //--------------------------------------------------------------------------------------------------
1309 /**
1310  * Called to get the platform specific error code.
1311  *
1312  * @return The platform specific error code.
1313  *
1314  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1315  * function will not return.
1316  */
1317 //--------------------------------------------------------------------------------------------------
1319 (
1320  le_sms_MsgRef_t msgRef
1321  ///< [IN] Reference to the message object.
1322 );
1323 
1324 //--------------------------------------------------------------------------------------------------
1325 /**
1326  * Create and asynchronously send a text message.
1327  *
1328  * @return
1329  * - le_sms_Msg Reference to the new Message object pooled.
1330  * - NULL Not possible to pool a new message.
1331  *
1332  * @note If telephone destination number is too long is too long (max LE_MDMDEFS_PHONE_NUM_MAX_LEN
1333  * digits), it is a fatal error, the function will not return.
1334  * @note If message is too long (max LE_SMS_TEXT_MAX_LEN digits), it is a fatal error, the
1335  * function will not return.
1336  */
1337 //--------------------------------------------------------------------------------------------------
1339 (
1340  const char* LE_NONNULL destStr,
1341  ///< [IN] Telephone number string.
1342  const char* LE_NONNULL textStr,
1343  ///< [IN] SMS text.
1344  le_sms_CallbackResultFunc_t handlerPtr,
1345  ///< [IN] CallBack for sending result.
1346  void* contextPtr
1347  ///< [IN]
1348 );
1349 
1350 //--------------------------------------------------------------------------------------------------
1351 /**
1352  * Create and asynchronously send a PDU message.
1353  *
1354  * @return
1355  * - le_sms_Msg Reference to the new Message object pooled.
1356  * - NULL Not possible to pool a new message.
1357  *
1358  */
1359 //--------------------------------------------------------------------------------------------------
1361 (
1362  const uint8_t* pduPtr,
1363  ///< [IN] PDU message.
1364  size_t pduSize,
1365  ///< [IN]
1366  le_sms_CallbackResultFunc_t handlerPtr,
1367  ///< [IN] CallBack for sending result.
1368  void* contextPtr
1369  ///< [IN]
1370 );
1371 
1372 //--------------------------------------------------------------------------------------------------
1373 /**
1374  * Delete a Message data structure.
1375  *
1376  * It deletes the Message data structure and all the allocated memory is freed. If several
1377  * users own the Message object (e.g., several handler functions registered for
1378  * SMS message reception), the Message object will only be deleted if one User
1379  * owns the Message object.
1380  *
1381  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1382  * function will not return.
1383  */
1384 //--------------------------------------------------------------------------------------------------
1385 void le_sms_Delete
1386 (
1387  le_sms_MsgRef_t msgRef
1388  ///< [IN] Reference to the message object.
1389 );
1390 
1391 //--------------------------------------------------------------------------------------------------
1392 /**
1393  * Get the message format.
1394  *
1395  * @return Message format.
1396  *
1397  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1398  * function will not return.
1399  *
1400  */
1401 //--------------------------------------------------------------------------------------------------
1403 (
1404  le_sms_MsgRef_t msgRef
1405  ///< [IN] Reference to the message object.
1406 );
1407 
1408 //--------------------------------------------------------------------------------------------------
1409 /**
1410  * Get the message type.
1411  *
1412  * @return Message type.
1413  *
1414  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1415  * function will not return.
1416  */
1417 //--------------------------------------------------------------------------------------------------
1419 (
1420  le_sms_MsgRef_t msgRef
1421  ///< [IN] Reference to the message object.
1422 );
1423 
1424 //--------------------------------------------------------------------------------------------------
1425 /**
1426  * Get the Cell Broadcast Message Identifier.
1427  *
1428  * @return
1429  * - LE_FAULT Message is not a cell broadcast type.
1430  * - LE_OK Function succeeded.
1431  *
1432  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1433  * function will not return.
1434  */
1435 //--------------------------------------------------------------------------------------------------
1437 (
1438  le_sms_MsgRef_t msgRef,
1439  ///< [IN] Reference to the message object.
1440  uint16_t* messageIdPtr
1441  ///< [OUT] Cell Broadcast Message Identifier.
1442 );
1443 
1444 //--------------------------------------------------------------------------------------------------
1445 /**
1446  * Get the Cell Broadcast Message Serial Number.
1447  *
1448  * @return
1449  * - LE_FAULT Message is not a cell broadcast type.
1450  * - LE_OK Function succeeded.
1451  *
1452  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1453  * function will not return.
1454  */
1455 //--------------------------------------------------------------------------------------------------
1457 (
1458  le_sms_MsgRef_t msgRef,
1459  ///< [IN] Reference to the message object.
1460  uint16_t* serialNumberPtr
1461  ///< [OUT] Cell Broadcast Serial Number.
1462 );
1463 
1464 //--------------------------------------------------------------------------------------------------
1465 /**
1466  * Get the Sender Telephone number.
1467  *
1468  * Output parameter is updated with the Telephone number. If the Telephone number string exceeds
1469  * the value of 'len' parameter, LE_OVERFLOW error code is returned and 'tel' is filled until
1470  * 'len-1' characters and a null-character is implicitly appended at the end of 'tel'.
1471  *
1472  * @return LE_NOT_PERMITTED Message is not a received message.
1473  * @return LE_OVERFLOW Telephone number length exceed the maximum length.
1474  * @return LE_OK Function succeeded.
1475  *
1476  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1477  * function will not return.
1478  */
1479 //--------------------------------------------------------------------------------------------------
1481 (
1482  le_sms_MsgRef_t msgRef,
1483  ///< [IN] Reference to the message object.
1484  char* tel,
1485  ///< [OUT] Telephone number string.
1486  size_t telSize
1487  ///< [IN]
1488 );
1489 
1490 //--------------------------------------------------------------------------------------------------
1491 /**
1492  * Get the Service Center Time Stamp string.
1493  *
1494  * Output parameter is updated with the Time Stamp string. If the Time Stamp string exceeds the
1495  * value of 'len' parameter, a LE_OVERFLOW error code is returned and 'timestamp' is filled until
1496  * 'len-1' characters and a null-character is implicitly appended at the end of 'timestamp'.
1497  *
1498  * @return LE_NOT_PERMITTED Message is not a received message.
1499  * @return LE_OVERFLOW Timestamp number length exceed the maximum length.
1500  * @return LE_OK Function succeeded.
1501  *
1502  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1503  * function will not return.
1504  */
1505 //--------------------------------------------------------------------------------------------------
1507 (
1508  le_sms_MsgRef_t msgRef,
1509  ///< [IN] Reference to the message object.
1510  char* timestamp,
1511  ///< [OUT] Message time stamp (in text mode).
1512  ///< string format: "yy/MM/dd,hh:mm:ss+/-zz"
1513  ///< (Year/Month/Day,Hour:Min:Seconds+/-TimeZone)
1514  ///< The time zone indicates the difference, expressed
1515  ///< in quarters of an hours between the local time
1516  ///< and GMT.
1517  size_t timestampSize
1518  ///< [IN]
1519 );
1520 
1521 //--------------------------------------------------------------------------------------------------
1522 /**
1523  * Get the message Length value.
1524  *
1525  * @return Number of characters for text and UCS2 messages, or the length of the data in bytes for
1526  * raw binary messages.
1527  *
1528  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1529  * function will not return.
1530  */
1531 //--------------------------------------------------------------------------------------------------
1532 size_t le_sms_GetUserdataLen
1533 (
1534  le_sms_MsgRef_t msgRef
1535  ///< [IN] Reference to the message object.
1536 );
1537 
1538 //--------------------------------------------------------------------------------------------------
1539 /**
1540  * Get the text Message.
1541  *
1542  * Output parameter is updated with the text string encoded in ASCII format. If the text string
1543  * exceeds the value of 'len' parameter, LE_OVERFLOW error code is returned and 'text' is filled
1544  * until 'len-1' characters and a null-character is implicitly appended at the end of 'text'.
1545  *
1546  * @return LE_OVERFLOW Message length exceed the maximum length.
1547  * @return LE_OK Function succeeded.
1548  *
1549  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1550  * function will not return.
1551  */
1552 //--------------------------------------------------------------------------------------------------
1554 (
1555  le_sms_MsgRef_t msgRef,
1556  ///< [IN] Reference to the message object.
1557  char* text,
1558  ///< [OUT] SMS text.
1559  size_t textSize
1560  ///< [IN]
1561 );
1562 
1563 //--------------------------------------------------------------------------------------------------
1564 /**
1565  * Get the binary Message.
1566  *
1567  * Output parameters are updated with the binary message content and the length of the raw
1568  * binary message in bytes. If the binary data exceed the value of 'len' input parameter, a
1569  * LE_OVERFLOW error code is returned and 'raw' is filled until 'len' bytes.
1570  *
1571  * @return LE_FORMAT_ERROR Message is not in binary format
1572  * @return LE_OVERFLOW Message length exceed the maximum length.
1573  * @return LE_OK Function succeeded.
1574  *
1575  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1576  * function will not return.
1577  */
1578 //--------------------------------------------------------------------------------------------------
1580 (
1581  le_sms_MsgRef_t msgRef,
1582  ///< [IN] Reference to the message object.
1583  uint8_t* binPtr,
1584  ///< [OUT] Binary message.
1585  size_t* binSizePtr
1586  ///< [INOUT]
1587 );
1588 
1589 //--------------------------------------------------------------------------------------------------
1590 /**
1591  * Get the UCS2 Message (16-bit format).
1592  *
1593  * Output parameters are updated with the UCS2 message content and the number of characters. If
1594  * the UCS2 data exceed the value of the length input parameter, a LE_OVERFLOW error
1595  * code is returned and 'ucs2Ptr' is filled until of the number of chars specified.
1596  *
1597  * @return
1598  * - LE_FORMAT_ERROR Message is not in binary format
1599  * - LE_OVERFLOW Message length exceed the maximum length.
1600  * - LE_OK Function succeeded.
1601  *
1602  */
1603 //--------------------------------------------------------------------------------------------------
1605 (
1606  le_sms_MsgRef_t msgRef,
1607  ///< [IN] Reference to the message object.
1608  uint16_t* ucs2Ptr,
1609  ///< [OUT] UCS2 message.
1610  size_t* ucs2SizePtr
1611  ///< [INOUT]
1612 );
1613 
1614 //--------------------------------------------------------------------------------------------------
1615 /**
1616  * Get the PDU message.
1617  *
1618  * Output parameters are updated with the PDU message content and the length of the PDU message
1619  * in bytes. If the PDU data exceed the value of 'len' input parameter, a LE_OVERFLOW error code is
1620  * returned and 'pdu' is filled until 'len' bytes.
1621  *
1622  * @return LE_FORMAT_ERROR Unable to encode the message in PDU (only for outgoing messages).
1623  * @return LE_OVERFLOW Message length exceed the maximum length.
1624  * @return LE_OK Function succeeded.
1625  *
1626  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1627  * function will not return.
1628  */
1629 //--------------------------------------------------------------------------------------------------
1631 (
1632  le_sms_MsgRef_t msgRef,
1633  ///< [IN] Reference to the message object.
1634  uint8_t* pduPtr,
1635  ///< [OUT] PDU message.
1636  size_t* pduSizePtr
1637  ///< [INOUT]
1638 );
1639 
1640 //--------------------------------------------------------------------------------------------------
1641 /**
1642  * Get the message Length value.
1643  *
1644  * @return Length of the data in bytes of the PDU message.
1645  *
1646  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1647  * function will not return.
1648  */
1649 //--------------------------------------------------------------------------------------------------
1650 size_t le_sms_GetPDULen
1651 (
1652  le_sms_MsgRef_t msgRef
1653  ///< [IN] Reference to the message object.
1654 );
1655 
1656 //--------------------------------------------------------------------------------------------------
1657 /**
1658  * Delete an SMS message from the storage area.
1659  *
1660  * Verifies first if the parameter is valid, then it checks the modem state can support
1661  * message deleting.
1662  *
1663  * @return LE_FAULT Function failed to perform the deletion.
1664  * @return LE_NO_MEMORY Message storage is not available.
1665  * @return LE_OK Function succeeded.
1666  *
1667  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1668  * function will not return.
1669  */
1670 //--------------------------------------------------------------------------------------------------
1672 (
1673  le_sms_MsgRef_t msgRef
1674  ///< [IN] Reference to the message object.
1675 );
1676 
1677 //--------------------------------------------------------------------------------------------------
1678 /**
1679  * Create an object's reference of the list of received messages
1680  * saved in the SMS message storage area.
1681  *
1682  * @return
1683  * Reference to the List object. Null pointer if no messages have been retrieved.
1684  */
1685 //--------------------------------------------------------------------------------------------------
1687 (
1688  void
1689 );
1690 
1691 //--------------------------------------------------------------------------------------------------
1692 /**
1693  * Delete the list of the Messages retrieved from the message
1694  * storage.
1695  *
1696  * @note
1697  * On failure, the process exits, so you don't have to worry about checking the returned
1698  * reference for validity.
1699  */
1700 //--------------------------------------------------------------------------------------------------
1701 void le_sms_DeleteList
1702 (
1703  le_sms_MsgListRef_t msgListRef
1704  ///< [IN] Messages list.
1705 );
1706 
1707 //--------------------------------------------------------------------------------------------------
1708 /**
1709  * Get the first Message object reference in the list of messages
1710  * retrieved with le_sms_CreateRxMsgList().
1711  *
1712  * @return NULL No message found.
1713  * @return Msg Message object reference.
1714  *
1715  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1716  * function will not return.
1717  */
1718 //--------------------------------------------------------------------------------------------------
1720 (
1721  le_sms_MsgListRef_t msgListRef
1722  ///< [IN] Messages list.
1723 );
1724 
1725 //--------------------------------------------------------------------------------------------------
1726 /**
1727  * Get the next Message object reference in the list of messages
1728  * retrieved with le_sms_CreateRxMsgList().
1729  *
1730  * @return NULL No message found.
1731  * @return Msg Message object reference.
1732  *
1733  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1734  * function will not return.
1735  */
1736 //--------------------------------------------------------------------------------------------------
1738 (
1739  le_sms_MsgListRef_t msgListRef
1740  ///< [IN] Messages list.
1741 );
1742 
1743 //--------------------------------------------------------------------------------------------------
1744 /**
1745  * Read the Message status (Received Read, Received Unread, Stored
1746  * Sent, Stored Unsent).
1747  *
1748  * @return Status of the message.
1749  *
1750  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1751  * function will not return.
1752  */
1753 //--------------------------------------------------------------------------------------------------
1755 (
1756  le_sms_MsgRef_t msgRef
1757  ///< [IN] Messages list.
1758 );
1759 
1760 //--------------------------------------------------------------------------------------------------
1761 /**
1762  * Mark a message as 'read'.
1763  *
1764  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1765  * function will not return.
1766  */
1767 //--------------------------------------------------------------------------------------------------
1768 void le_sms_MarkRead
1769 (
1770  le_sms_MsgRef_t msgRef
1771  ///< [IN] Messages list.
1772 );
1773 
1774 //--------------------------------------------------------------------------------------------------
1775 /**
1776  * Mark a message as 'unread'.
1777  *
1778  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
1779  * function will not return.
1780  */
1781 //--------------------------------------------------------------------------------------------------
1782 void le_sms_MarkUnread
1783 (
1784  le_sms_MsgRef_t msgRef
1785  ///< [IN] Messages list.
1786 );
1787 
1788 //--------------------------------------------------------------------------------------------------
1789 /**
1790  * Get the SMS center address.
1791  *
1792  * Output parameter is updated with the SMS Service center address. If the Telephone number string exceeds
1793  * the value of 'len' parameter, LE_OVERFLOW error code is returned and 'tel' is filled until
1794  * 'len-1' characters and a null-character is implicitly appended at the end of 'tel'.
1795  *
1796  * @return
1797  * - LE_FAULT Service is not available.
1798  * - LE_OVERFLOW Telephone number length exceed the maximum length.
1799  * - LE_OK Function succeeded.
1800  *
1801  */
1802 //--------------------------------------------------------------------------------------------------
1804 (
1805  char* tel,
1806  ///< [OUT] SMS center address number string.
1807  size_t telSize
1808  ///< [IN]
1809 );
1810 
1811 //--------------------------------------------------------------------------------------------------
1812 /**
1813  * Set the SMS center address.
1814  *
1815  * SMS center address number is defined in ITU-T recommendations E.164/E.163.
1816  * E.164 numbers can have a maximum of fifteen digits and are usually written with a '+' prefix.
1817  *
1818  * @return
1819  * - LE_FAULT Service is not available..
1820  * - LE_OK Function succeeded.
1821  *
1822  * @note If the SMS center address number is too long (max LE_MDMDEFS_PHONE_NUM_MAX_LEN digits), it
1823  * is a fatal error, the function will not return.
1824  */
1825 //--------------------------------------------------------------------------------------------------
1827 (
1828  const char* LE_NONNULL tel
1829  ///< [IN] SMS center address number string.
1830 );
1831 
1832 //--------------------------------------------------------------------------------------------------
1833 /**
1834  * Set the preferred SMS storage for incoming messages.
1835  * @return
1836  * - LE_FAULT Function failed.
1837  * - LE_OK Function succeeded.
1838  */
1839 //--------------------------------------------------------------------------------------------------
1841 (
1842  le_sms_Storage_t prefStorage
1843  ///< [IN] storage parameter.
1844 );
1845 
1846 //--------------------------------------------------------------------------------------------------
1847 /**
1848  * Get the preferred SMS storage for incoming messages.
1849  * @return
1850  * - LE_FAULT Function failed.
1851  * - LE_OK Function succeeded.
1852  */
1853 //--------------------------------------------------------------------------------------------------
1855 (
1856  le_sms_Storage_t* prefStoragePtr
1857  ///< [OUT] storage parameter.
1858 );
1859 
1860 //--------------------------------------------------------------------------------------------------
1861 /**
1862  * Activate Cell Broadcast message notification
1863  *
1864  * @return
1865  * - LE_FAULT Function failed.
1866  * - LE_OK Function succeeded.
1867  */
1868 //--------------------------------------------------------------------------------------------------
1870 (
1871  void
1872 );
1873 
1874 //--------------------------------------------------------------------------------------------------
1875 /**
1876  * Deactivate Cell Broadcast message notification
1877  *
1878  * @return
1879  * - LE_FAULT Function failed.
1880  * - LE_OK Function succeeded.
1881  */
1882 //--------------------------------------------------------------------------------------------------
1884 (
1885  void
1886 );
1887 
1888 //--------------------------------------------------------------------------------------------------
1889 /**
1890  * Activate CDMA Cell Broadcast message notification
1891  *
1892  * @return
1893  * - LE_FAULT Function failed.
1894  * - LE_OK Function succeeded.
1895  */
1896 //--------------------------------------------------------------------------------------------------
1898 (
1899  void
1900 );
1901 
1902 //--------------------------------------------------------------------------------------------------
1903 /**
1904  * Deactivate CDMA Cell Broadcast message notification
1905  *
1906  * @return
1907  * - LE_FAULT Function failed.
1908  * - LE_OK Function succeeded.
1909  */
1910 //--------------------------------------------------------------------------------------------------
1912 (
1913  void
1914 );
1915 
1916 //--------------------------------------------------------------------------------------------------
1917 /**
1918  * Add Cell Broadcast message Identifiers range.
1919  *
1920  * @return
1921  * - LE_FAULT Function failed.
1922  * - LE_OK Function succeeded.
1923  */
1924 //--------------------------------------------------------------------------------------------------
1926 (
1927  uint16_t fromId,
1928  ///< [IN] Starting point of the range of cell broadcast message identifier.
1929  uint16_t toId
1930  ///< [IN] Ending point of the range of cell broadcast message identifier.
1931 );
1932 
1933 //--------------------------------------------------------------------------------------------------
1934 /**
1935  * Remove Cell Broadcast message Identifiers range.
1936  *
1937  * @return
1938  * - LE_FAULT Function failed.
1939  * - LE_OK Function succeeded.
1940  */
1941 //--------------------------------------------------------------------------------------------------
1943 (
1944  uint16_t fromId,
1945  ///< [IN] Starting point of the range of cell broadcast message identifier.
1946  uint16_t toId
1947  ///< [IN] Ending point of the range of cell broadcast message identifier.
1948 );
1949 
1950 //--------------------------------------------------------------------------------------------------
1951 /**
1952  * Clear Cell Broadcast message Identifiers.
1953  *
1954  * @return
1955  * - LE_FAULT Function failed.
1956  * - LE_OK Function succeeded.
1957  */
1958 //--------------------------------------------------------------------------------------------------
1960 (
1961  void
1962 );
1963 
1964 //--------------------------------------------------------------------------------------------------
1965 /**
1966  * Add CDMA Cell Broadcast category services.
1967  *
1968  * @return
1969  * - LE_FAULT Function failed.
1970  * - LE_BAD_PARAMETER Parameter is invalid.
1971  * - LE_OK Function succeeded.
1972  */
1973 //--------------------------------------------------------------------------------------------------
1975 (
1976  le_sms_CdmaServiceCat_t serviceCat,
1977  ///< [IN] Service category assignment. Reference to 3GPP2 C.R1001-D
1978  ///< v1.0 Section 9.3.1 Standard Service Category Assignments.
1979  le_sms_Languages_t language
1980  ///< [IN] Language Indicator. Reference to
1981  ///< 3GPP2 C.R1001-D v1.0 Section 9.2.1 Language Indicator
1982  ///< Value Assignments
1983 );
1984 
1985 //--------------------------------------------------------------------------------------------------
1986 /**
1987  * Remove CDMA Cell Broadcast category services.
1988  *
1989  * @return
1990  * - LE_FAULT Function failed.
1991  * - LE_BAD_PARAMETER Parameter is invalid.
1992  * - LE_OK Function succeeded.
1993  */
1994 //--------------------------------------------------------------------------------------------------
1996 (
1997  le_sms_CdmaServiceCat_t serviceCat,
1998  ///< [IN] Service category assignment. Reference to 3GPP2 C.R1001-D
1999  ///< v1.0 Section 9.3.1 Standard Service Category Assignments.
2000  le_sms_Languages_t language
2001  ///< [IN] Language Indicator. Reference to
2002  ///< 3GPP2 C.R1001-D v1.0 Section 9.2.1 Language Indicator
2003  ///< Value Assignments
2004 );
2005 
2006 //--------------------------------------------------------------------------------------------------
2007 /**
2008  * Clear CDMA Cell Broadcast category services.
2009  *
2010  * @return
2011  * - LE_FAULT Function failed.
2012  * - LE_OK Function succeeded.
2013  */
2014 //--------------------------------------------------------------------------------------------------
2016 (
2017  void
2018 );
2019 
2020 //--------------------------------------------------------------------------------------------------
2021 /**
2022  * Get the number of messages successfully received or sent since last counter reset.
2023  *
2024  * @return
2025  * - LE_OK Function succeeded.
2026  * - LE_BAD_PARAMETER A parameter is invalid.
2027  *
2028  * @note If the caller is passing a bad pointer into this function, it is a fatal error, the
2029  * function will not return.
2030  */
2031 //--------------------------------------------------------------------------------------------------
2033 (
2034  le_sms_Type_t messageType,
2035  ///< [IN] Message type
2036  int32_t* messageCountPtr
2037  ///< [OUT] Number of messages
2038 );
2039 
2040 //--------------------------------------------------------------------------------------------------
2041 /**
2042  * Start to count the messages successfully received and sent.
2043  */
2044 //--------------------------------------------------------------------------------------------------
2045 void le_sms_StartCount
2046 (
2047  void
2048 );
2049 
2050 //--------------------------------------------------------------------------------------------------
2051 /**
2052  * Stop to count the messages successfully received and sent.
2053  */
2054 //--------------------------------------------------------------------------------------------------
2055 void le_sms_StopCount
2056 (
2057  void
2058 );
2059 
2060 //--------------------------------------------------------------------------------------------------
2061 /**
2062  * Reset the count of messages successfully received and sent.
2063  */
2064 //--------------------------------------------------------------------------------------------------
2065 void le_sms_ResetCount
2066 (
2067  void
2068 );
2069 
2070 #endif // LE_SMS_INTERFACE_H_INCLUDE_GUARD
General News Regional.
Definition: le_sms_interface.h:630
French language.
Definition: le_sms_interface.h:595
void le_sms_Delete(le_sms_MsgRef_t msgRef)
le_result_t le_sms_GetPDU(le_sms_MsgRef_t msgRef, uint8_t *pduPtr, size_t *pduSizePtr)
Unassigned (unallocated) number.
Definition: le_sms_interface.h:813
Definition: le_sms_interface.h:760
le_result_t le_sms_GetCellBroadcastId(le_sms_MsgRef_t msgRef, uint16_t *messageIdPtr)
Unknown message status.
Definition: le_sms_interface.h:578
le_sms_CdmaServiceCat_t
Definition: le_sms_interface.h:618
Definition: le_sms_interface.h:771
TP-VPF not supported.
Definition: le_sms_interface.h:899
Unidentified subscriber.
Definition: le_sms_interface.h:827
UCS2 message format.
Definition: le_sms_interface.h:528
Card Application Toolkit Protocol Teleservice.
Definition: le_sms_interface.h:684
Definition: le_sms_interface.h:757
Spanish language.
Definition: le_sms_interface.h:597
Restaurants.
Definition: le_sms_interface.h:666
le_result_t le_sms_ClearCdmaCellBroadcastServices(void)
le_result_t le_sms_GetSmsCenterAddress(char *tel, size_t telSize)
Message saved in the message storage has not been sent.
Definition: le_sms_interface.h:566
General News Local.
Definition: le_sms_interface.h:628
General News International.
Definition: le_sms_interface.h:634
(U)SIM data download error
Definition: le_sms_interface.h:913
Administrative.
Definition: le_sms_interface.h:624
Command cannot be actioned.
Definition: le_sms_interface.h:879
Memory capacity exceeded.
Definition: le_sms_interface.h:823
Area Traffic Reports.
Definition: le_sms_interface.h:662
void le_sms_StartCount(void)
le_sms_ErrorCode_t
Definition: le_sms_interface.h:811
Unspecified TP-PID error.
Definition: le_sms_interface.h:870
Short Message Type 0 not supported.
Definition: le_sms_interface.h:866
le_result_t
Definition: le_basics.h:35
struct le_sms_MsgList * le_sms_MsgListRef_t
Definition: le_sms_interface.h:938
le_sms_ErrorCode3GPP2_t le_sms_Get3GPP2ErrorCode(le_sms_MsgRef_t msgRef)
Maintenance.
Definition: le_sms_interface.h:626
struct le_sms_Msg * le_sms_MsgRef_t
Definition: le_sms_interface.h:930
Business News Local.
Definition: le_sms_interface.h:636
SC busy.
Definition: le_sms_interface.h:887
(U)SIM SMS storage full
Definition: le_sms_interface.h:903
Definition: le_sms_interface.h:872
le_result_t le_sms_ClearCellBroadcastIds(void)
Definition: le_sms_interface.h:752
void le_sms_MarkUnread(le_sms_MsgRef_t msgRef)
le_sms_MsgRef_t le_sms_Create(void)
Entertainment News Regional.
Definition: le_sms_interface.h:654
Definition: le_sms_interface.h:733
Interworking, unspecified.
Definition: le_sms_interface.h:862
Definition: le_sms_interface.h:744
le_result_t le_sms_SetUCS2(le_sms_MsgRef_t msgRef, const uint16_t *ucs2Ptr, size_t ucs2Size)
Unspecified TP-Command error.
Definition: le_sms_interface.h:883
Definition: le_sms_interface.h:724
Unknown or Unspecified.
Definition: le_sms_interface.h:620
Hebrew language.
Definition: le_sms_interface.h:605
Destination out of order.
Definition: le_sms_interface.h:825
A terminal problem other than described above.
Definition: le_sms_interface.h:755
Definition: le_sms_interface.h:763
size_t le_sms_GetUserdataLen(le_sms_MsgRef_t msgRef)
Definition: le_sms_interface.h:783
le_result_t le_sms_SetTimeout(le_sms_MsgRef_t msgRef, uint32_t timeout)
Call barred.
Definition: le_sms_interface.h:817
Text message format.
Definition: le_sms_interface.h:524
le_sms_MsgRef_t le_sms_SendPdu(const uint8_t *pduPtr, size_t pduSize, le_sms_CallbackResultFunc_t handlerPtr, void *contextPtr)
void(* le_sms_DisconnectHandler_t)(void *)
Definition: le_sms_interface.h:372
Destination SME barred.
Definition: le_sms_interface.h:895
Local weather.
Definition: le_sms_interface.h:660
Local Airplane Flight Schedules.
Definition: le_sms_interface.h:664
void le_sms_GetErrorCode(le_sms_MsgRef_t msgRef, le_sms_ErrorCode_t *rpCausePtr, le_sms_ErrorCode_t *tpCausePtr)
Unspecified TP-DCS error.
Definition: le_sms_interface.h:877
A network problem other than identified above.
Definition: le_sms_interface.h:731
SMS mobile terminated message.
Definition: le_sms_interface.h:543
le_result_t le_sms_ActivateCellBroadcast(void)
Resources unavailable, unspecified.
Definition: le_sms_interface.h:839
le_sms_MsgRef_t le_sms_GetNext(le_sms_MsgListRef_t msgListRef)
le_result_t le_sms_GetBinary(le_sms_MsgRef_t msgRef, uint8_t *binPtr, size_t *binSizePtr)
Definition: le_sms_interface.h:721
le_sms_MsgListRef_t le_sms_CreateRxMsgList(void)
void le_sms_RemoveRxMessageHandler(le_sms_RxMessageHandlerRef_t handlerRef)
void le_sms_SetServerDisconnectHandler(le_sms_DisconnectHandler_t disconnectHandler, void *contextPtr)
PDU message format.
Definition: le_sms_interface.h:522
le_sms_Format_t
Definition: le_sms_interface.h:520
le_result_t le_sms_GetText(le_sms_MsgRef_t msgRef, char *text, size_t textSize)
The originating MIN is not recognized.
Definition: le_sms_interface.h:769
le_sms_Status_t
Definition: le_sms_interface.h:558
Definition: le_sms_interface.h:736
le_result_t le_sms_ActivateCdmaCellBroadcast(void)
Advertisements.
Definition: le_sms_interface.h:672
Facility rejected.
Definition: le_sms_interface.h:829
Sim SMS storage.
Definition: le_sms_interface.h:701
The SMS Destination Address is invalid.
Definition: le_sms_interface.h:719
Resources facility not implemented.
Definition: le_sms_interface.h:843
Message present in the message storage has not been read.
Definition: le_sms_interface.h:562
Invalid mandatory information.
Definition: le_sms_interface.h:850
Cannot replace short message.
Definition: le_sms_interface.h:868
void(* le_sms_CallbackResultFunc_t)(le_sms_MsgRef_t msgRef, le_sms_Status_t status, void *contextPtr)
Definition: le_sms_interface.h:963
void(* le_sms_FullStorageHandlerFunc_t)(le_sms_Storage_t storage, void *contextPtr)
Definition: le_sms_interface.h:993
le_sms_Type_t
Definition: le_sms_interface.h:541
Definition: le_sms_interface.h:854
le_sms_FullStorageEventHandlerRef_t le_sms_AddFullStorageEventHandler(le_sms_FullStorageHandlerFunc_t handlerPtr, void *contextPtr)
Congestion.
Definition: le_sms_interface.h:837
le_sms_Languages_t
Definition: le_sms_interface.h:589
Undefined reason.
Definition: le_sms_interface.h:800
le_result_t le_sms_DeactivateCellBroadcast(void)
English language.
Definition: le_sms_interface.h:593
Business News Regional.
Definition: le_sms_interface.h:638
struct le_sms_FullStorageEventHandler * le_sms_FullStorageEventHandlerRef_t
Definition: le_sms_interface.h:954
le_result_t le_sms_GetCellBroadcastSerialNumber(le_sms_MsgRef_t msgRef, uint16_t *serialNumberPtr)
Message sending has Failed due to timeout.
Definition: le_sms_interface.h:576
Entertainment News International.
Definition: le_sms_interface.h:658
Lodgings.
Definition: le_sms_interface.h:668
void le_sms_DisconnectService(void)
Network out of order.
Definition: le_sms_interface.h:833
Unknow or Unspecified language.
Definition: le_sms_interface.h:591
le_result_t le_sms_TryConnectService(void)
Temporary failure.
Definition: le_sms_interface.h:835
le_result_t le_sms_AddCellBroadcastIds(uint16_t fromId, uint16_t toId)
le_result_t le_sms_SetText(le_sms_MsgRef_t msgRef, const char *LE_NONNULL text)
le_result_t le_sms_SetBinary(le_sms_MsgRef_t msgRef, const uint8_t *binPtr, size_t binSize)
Reserved.
Definition: le_sms_interface.h:819
Medical/Health/Hospitals.
Definition: le_sms_interface.h:678
Memory capacity exceeded.
Definition: le_sms_interface.h:909
Technology News.
Definition: le_sms_interface.h:680
le_result_t le_sms_SetPreferredStorage(le_sms_Storage_t prefStorage)
le_result_t le_sms_DeleteFromStorage(le_sms_MsgRef_t msgRef)
Stock Quotes.
Definition: le_sms_interface.h:674
le_result_t le_sms_GetUCS2(le_sms_MsgRef_t msgRef, uint16_t *ucs2Ptr, size_t *ucs2SizePtr)
le_result_t le_sms_GetSenderTel(le_sms_MsgRef_t msgRef, char *tel, size_t telSize)
Operator determined barring.
Definition: le_sms_interface.h:815
le_result_t le_sms_SendAsync(le_sms_MsgRef_t msgRef, le_sms_CallbackResultFunc_t handlerPtr, void *contextPtr)
le_sms_Status_t le_sms_GetStatus(le_sms_MsgRef_t msgRef)
Resources facility not subscribed.
Definition: le_sms_interface.h:841
Platform specific code.
Definition: le_sms_interface.h:917
Definition: le_sms_interface.h:789
Business News National.
Definition: le_sms_interface.h:640
Message has been in the sending pool.
Definition: le_sms_interface.h:570
Definition: le_sms_interface.h:777
le_result_t le_sms_GetPreferredStorage(le_sms_Storage_t *prefStoragePtr)
Definition: le_sms_interface.h:716
Protocol error, unspecified.
Definition: le_sms_interface.h:860
Invalid SME address.
Definition: le_sms_interface.h:893
Sports News Regional.
Definition: le_sms_interface.h:646
size_t le_sms_GetPDULen(le_sms_MsgRef_t msgRef)
TP-VP not supporte.
Definition: le_sms_interface.h:901
le_result_t le_sms_DeactivateCdmaCellBroadcast(void)
No SMS storage capability in (U)SIM.
Definition: le_sms_interface.h:905
struct le_sms_RxMessageHandler * le_sms_RxMessageHandlerRef_t
Definition: le_sms_interface.h:946
le_result_t le_sms_RemoveCdmaCellBroadcastServices(le_sms_CdmaServiceCat_t serviceCat, le_sms_Languages_t language)
SM Rejected-Duplicate SM.
Definition: le_sms_interface.h:897
le_result_t le_sms_SetSmsCenterAddress(const char *LE_NONNULL tel)
le_sms_ErrorCode3GPP2_t
Definition: le_sms_interface.h:714
le_sms_MsgRef_t le_sms_GetFirst(le_sms_MsgListRef_t msgListRef)
Definition: le_sms_interface.h:857
void(* le_sms_RxMessageHandlerFunc_t)(le_sms_MsgRef_t msgRef, void *contextPtr)
Definition: le_sms_interface.h:979
Delivery is not currently possible.
Definition: le_sms_interface.h:747
Definition: le_sms_interface.h:727
Message sending has Failed.
Definition: le_sms_interface.h:574
Unknown message format.
Definition: le_sms_interface.h:530
Undefined reason.
Definition: le_sms_interface.h:919
void le_sms_ResetCount(void)
Unknown subscriber.
Definition: le_sms_interface.h:831
Definition: le_sms_interface.h:774
SMS Cell Broadcast message.
Definition: le_sms_interface.h:547
le_result_t le_sms_SetPDU(le_sms_MsgRef_t msgRef, const uint8_t *pduPtr, size_t pduSize)
SC system failure.
Definition: le_sms_interface.h:891
Non volatile memory storage.
Definition: le_sms_interface.h:699
Definition: le_sms_interface.h:786
Message class not supported.
Definition: le_sms_interface.h:875
le_result_t le_sms_RemoveCellBroadcastIds(uint16_t fromId, uint16_t toId)
void le_sms_ConnectService(void)
Binary message format.
Definition: le_sms_interface.h:526
No SC subscription.
Definition: le_sms_interface.h:889
Korean language.
Definition: le_sms_interface.h:601
le_sms_MsgRef_t le_sms_SendText(const char *LE_NONNULL destStr, const char *LE_NONNULL textStr, le_sms_CallbackResultFunc_t handlerPtr, void *contextPtr)
le_result_t le_sms_SetDestination(le_sms_MsgRef_t msgRef, const char *LE_NONNULL dest)
Other general problems.
Definition: le_sms_interface.h:796
Japanese language.
Definition: le_sms_interface.h:599
Definition: le_sms_interface.h:749
Retail Directory.
Definition: le_sms_interface.h:670
Message saved in the message storage has been sent.
Definition: le_sms_interface.h:564
Sementically incorect message.
Definition: le_sms_interface.h:848
Definition: le_sms_interface.h:780
le_result_t le_sms_AddCdmaCellBroadcastServices(le_sms_CdmaServiceCat_t serviceCat, le_sms_Languages_t language)
Error in MS.
Definition: le_sms_interface.h:907
Multicategory.
Definition: le_sms_interface.h:682
(U)SIM Application Toolkit busy
Definition: le_sms_interface.h:911
Unspecified error cause.
Definition: le_sms_interface.h:915
Business News International.
Definition: le_sms_interface.h:642
TPDU not supported.
Definition: le_sms_interface.h:885
Message has been sent.
Definition: le_sms_interface.h:568
Sports News Local.
Definition: le_sms_interface.h:644
Definition: le_sms_interface.h:792
Sports News National.
Definition: le_sms_interface.h:648
le_sms_Format_t le_sms_GetFormat(le_sms_MsgRef_t msgRef)
int32_t le_sms_GetPlatformSpecificErrorCode(le_sms_MsgRef_t msgRef)
Entertainment News Local.
Definition: le_sms_interface.h:652
Definition: le_sms_interface.h:766
Employment Opportunities.
Definition: le_sms_interface.h:676
Chinese language.
Definition: le_sms_interface.h:603
le_result_t le_sms_GetCount(le_sms_Type_t messageType, int32_t *messageCountPtr)
le_sms_Type_t le_sms_GetType(le_sms_MsgRef_t msgRef)
Message has not been sent.
Definition: le_sms_interface.h:572
Emergency Broadcast.
Definition: le_sms_interface.h:622
void le_sms_RemoveFullStorageEventHandler(le_sms_FullStorageEventHandlerRef_t handlerRef)
Platform specific code.
Definition: le_sms_interface.h:798
Undefined storage.
Definition: le_sms_interface.h:703
Message present in the message storage has been read.
Definition: le_sms_interface.h:560
General News National.
Definition: le_sms_interface.h:632
le_result_t le_sms_GetTimeStamp(le_sms_MsgRef_t msgRef, char *timestamp, size_t timestampSize)
le_result_t le_sms_Send(le_sms_MsgRef_t msgRef)
void le_sms_DeleteList(le_sms_MsgListRef_t msgListRef)
Command unsupported.
Definition: le_sms_interface.h:881
Telematic interworking not supported.
Definition: le_sms_interface.h:864
le_sms_RxMessageHandlerRef_t le_sms_AddRxMessageHandler(le_sms_RxMessageHandlerFunc_t handlerPtr, void *contextPtr)
Definition: le_sms_interface.h:741
Message type nonexistent or not implemented.
Definition: le_sms_interface.h:852
Entertainment News National.
Definition: le_sms_interface.h:656
Short message transfer rejected.
Definition: le_sms_interface.h:821
void le_sms_MarkRead(le_sms_MsgRef_t msgRef)
le_sms_Storage_t
Definition: le_sms_interface.h:697
Sports News International.
Definition: le_sms_interface.h:650
SMS mobile originated message.
Definition: le_sms_interface.h:545
void le_sms_StopCount(void)