le_sms_interface.h

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