summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/smsutil.c15
-rw-r--r--src/smsutil.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index 725e409e..4881250e 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -1677,3 +1677,18 @@ time_t sms_scts_to_time(const struct sms_scts *scts, struct tm *remote)
return ret;
}
+
+const char *sms_address_to_string(const struct sms_address *addr)
+{
+ static char buffer[64];
+
+ if (addr->number_type == SMS_NUMBER_TYPE_INTERNATIONAL &&
+ (strlen(addr->address) > 0) &&
+ addr->address[0] != '+') {
+ buffer[0] = '+';
+ strcpy(buffer + 1, addr->address);
+ } else
+ strcpy(buffer, addr->address);
+
+ return buffer;
+}
diff --git a/src/smsutil.h b/src/smsutil.h
index 71c88af2..0158f0b4 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -330,6 +330,8 @@ gboolean sms_encode(const struct sms *in, int *len, int *tpdu_len,
int sms_udl_in_bytes(guint8 ud_len, guint8 dcs);
time_t sms_scts_to_time(const struct sms_scts *scts, struct tm *remote);
+const char *sms_address_to_string(const struct sms_address *addr);
+
const guint8 *sms_extract_common(const struct sms *sms, gboolean *out_udhi,
guint8 *out_dcs, guint8 *out_udl,
guint8 *out_max);