summaryrefslogtreecommitdiffstats
path: root/src/smsutil.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-02 13:17:20 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-06-03 21:08:35 -0500
commit5e95802699842f81f660cfb3899dc4b46b131593 (patch)
tree221a5b85bff4e46a7062d01c02e734f8a73a9edc /src/smsutil.h
parent356853983e0a10be98104cc524e3451c3d2af058 (diff)
downloadofono-5e95802699842f81f660cfb3899dc4b46b131593.tar.bz2
Add User-Data-Header iterator utilities
Diffstat (limited to 'src/smsutil.h')
-rw-r--r--src/smsutil.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/smsutil.h b/src/smsutil.h
index c357f7f5..940a185b 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -105,6 +105,41 @@ enum sms_ct {
SMS_CT_ENABLE_SRR = 3
};
+enum sms_iei {
+ SMS_IEI_CONCATENATED_8BIT = 0x00,
+ SMS_IEI_SPECIAL_MESSAGE_INDICATION = 0x01,
+ SMS_IEI_APPLICATION_ADDRESSS_8BIT = 0x04,
+ SMS_IEI_APPLICATION_ADDRESS_16BIT = 0x05,
+ SMS_IEI_SMSC_CONTROL_PARAMETERS = 0x06,
+ SMS_IEI_UDH_SOURCE_INDICATOR = 0x07,
+ SMS_IEI_CONCATENATED_16BIT = 0x08,
+ SMS_IEI_WCMP = 0x09,
+ SMS_IEI_TEXT_FORMAT = 0x0A,
+ SMS_IEI_PREDEFINED_SOUND = 0x0B,
+ SMS_IEI_USER_DEFINED_SOUND = 0x0C,
+ SMS_IEI_PREDEFINED_ANIMATION = 0x0D,
+ SMS_IEI_LARGE_ANIMATION = 0x0E,
+ SMS_IEI_SMALL_ANIMATION = 0x0F,
+ SMS_IEI_LARGE_PICTURE = 0x10,
+ SMS_IEI_SMALL_PICTURE = 0x11,
+ SMS_IEI_VARIABLE_PICTURE = 0x12,
+ SMS_IEI_USER_PROMPT_INDICATOR = 0x13,
+ SMS_IEI_EXTENDED_OBJECT = 0x14,
+ SMS_IEI_REUSED_EXTENDED_OBJECT = 0x15,
+ SMS_IEI_COMPRESSION_CONTROL = 0x16,
+ SMS_IEI_OBJECT_DISTRIBUTION_INDICATOR = 0x17,
+ SMS_IEI_STANDARD_WVG_OBJECT = 0x18,
+ SMS_IEI_CHARACTER_SIZE_WVG_OBJECT = 0x19,
+ SMS_IEI_EXTENDED_OBJECT_DATA_REQUEST_COMMAND = 0x1A,
+ SMS_IEI_RFC822_EMAIL_HEADER = 0x20,
+ SMS_IEI_HYPERLINK_ELEMENT = 0x21,
+ SMS_IEI_REPLY_ADDRESS_ELEMENT = 0x22,
+ SMS_IEI_ENHANCED_VOICE_MAIL_INFORMATION = 0x23,
+ SMS_IEI_NATIONAL_LANGUAGE_SINGLE_SHIFT = 0x24,
+ SMS_IEI_NATIONAL_LANGUAGE_LOCKING_SHIFT = 0x25,
+ SMS_IEI_INVALID = 0xFFF
+};
+
struct sms_address {
enum sms_number_type number_type;
enum sms_numbering_plan numbering_plan;
@@ -240,6 +275,12 @@ struct sms {
};
};
+struct sms_udh_iter {
+ struct sms *sms;
+ guint8 *data;
+ guint8 offset;
+};
+
gboolean decode_sms(const unsigned char *pdu, int len, gboolean outgoing,
int tpdu_len, struct sms *out);
@@ -248,4 +289,10 @@ gboolean encode_sms(const struct sms *in, int *len, int *tpdu_len,
int ud_len_in_octets(guint8 ud_len, guint8 dcs);
+gboolean sms_udh_iter_init(struct sms *sms, struct sms_udh_iter *iter);
+enum sms_iei sms_udh_iter_get_ie_type(struct sms_udh_iter *iter);
+guint8 sms_udh_iter_get_ie_length(struct sms_udh_iter *iter);
+void sms_udh_iter_get_ie_data(struct sms_udh_iter *iter, guint8 *data);
+gboolean sms_udh_iter_has_next(struct sms_udh_iter *iter);
+gboolean sms_udh_iter_next(struct sms_udh_iter *iter);
#endif