le_sms_interface.h

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