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