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