summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-19 12:26:04 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-06-19 21:13:54 -0500
commit61a4b0fee97875b24237d99c0869294210634f5b (patch)
treef4c8db1b631e663edb9f4216775f823a6b24ca16
parenta8dc75392c6b37ab41947ca2cca688dfad0a4422 (diff)
downloadofono-61a4b0fee97875b24237d99c0869294210634f5b.tar.bz2
Add address from string utility for SMS
-rw-r--r--src/smsutil.c12
-rw-r--r--src/smsutil.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index 02e6694a..61408d52 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -1681,6 +1681,18 @@ time_t sms_scts_to_time(const struct sms_scts *scts, struct tm *remote)
return ret;
}
+void sms_address_from_string(struct sms_address *addr, const char *str)
+{
+ addr->numbering_plan = SMS_NUMBERING_PLAN_ISDN;
+ if (str[0] == '+') {
+ addr->number_type = SMS_NUMBER_TYPE_INTERNATIONAL;
+ strcpy(addr->address, str+1);
+ } else {
+ addr->number_type = SMS_NUMBER_TYPE_UNKNOWN;
+ strcpy(addr->address, str);
+ }
+}
+
const char *sms_address_to_string(const struct sms_address *addr)
{
static char buffer[64];
diff --git a/src/smsutil.h b/src/smsutil.h
index e01ab285..77d3d3cb 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -356,7 +356,9 @@ 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);
+void sms_address_from_string(struct sms_address *addr, const char *str);
const guint8 *sms_extract_common(const struct sms *sms, gboolean *out_udhi,
guint8 *out_dcs, guint8 *out_udl,