mirror of git://git.sysmocom.de/ofono
Add utility for parsing MWI SMS DCS types
This commit is contained in:
parent
219a94a502
commit
f9f3080781
|
@ -172,6 +172,50 @@ gboolean sms_dcs_decode(guint8 dcs, enum sms_class *cls,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean sms_mwi_dcs_decode(guint8 dcs, enum sms_mwi_type *type,
|
||||
enum sms_charset *charset,
|
||||
gboolean *active, gboolean *discard)
|
||||
{
|
||||
guint8 upper = (dcs & 0xf0) >> 4;
|
||||
enum sms_mwi_type t;
|
||||
enum sms_charset ch;
|
||||
gboolean dis;
|
||||
gboolean act;
|
||||
|
||||
if (upper < 0xC || upper > 0xE)
|
||||
return FALSE;
|
||||
|
||||
upper = (dcs & 0x30) >> 4;
|
||||
|
||||
if (upper == 0)
|
||||
dis = TRUE;
|
||||
else
|
||||
dis = FALSE;
|
||||
|
||||
if (upper == 3)
|
||||
ch = SMS_CHARSET_UCS2;
|
||||
else
|
||||
ch = SMS_CHARSET_7BIT;
|
||||
|
||||
act = dcs & 0x8;
|
||||
|
||||
t = (enum sms_mwi_type) (dcs & 0x3);
|
||||
|
||||
if (type)
|
||||
*type = t;
|
||||
|
||||
if (charset)
|
||||
*charset = ch;
|
||||
|
||||
if (active)
|
||||
*active = act;
|
||||
|
||||
if (discard)
|
||||
*discard = dis;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int sms_udl_in_bytes(guint8 ud_len, guint8 dcs)
|
||||
{
|
||||
int len_7bit = (ud_len + 1) * 7 / 8;
|
||||
|
|
|
@ -156,6 +156,13 @@ enum sms_charset {
|
|||
SMS_CHARSET_UCS2 = 2,
|
||||
};
|
||||
|
||||
enum sms_mwi_type {
|
||||
SMS_MWI_TYPE_VOICE = 0,
|
||||
SMS_MWI_TYPE_FAX = 1,
|
||||
SMS_MWI_TYPE_EMAIL = 2,
|
||||
SMS_MWI_TYPE_OTHER = 3,
|
||||
};
|
||||
|
||||
struct sms_address {
|
||||
enum sms_number_type number_type;
|
||||
enum sms_numbering_plan numbering_plan;
|
||||
|
@ -317,4 +324,9 @@ gboolean sms_udh_iter_next(struct sms_udh_iter *iter);
|
|||
gboolean sms_dcs_decode(guint8 dcs, enum sms_class *cls,
|
||||
enum sms_charset *charset,
|
||||
gboolean *compressed, gboolean *autodelete);
|
||||
|
||||
gboolean sms_mwi_dcs_decode(guint8 dcs, enum sms_mwi_type *type,
|
||||
enum sms_charset *charset,
|
||||
gboolean *active, gboolean *discard);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue