smsutil: Add USSD encoding function

This commit is contained in:
Jeevaka Badrappan 2010-09-13 16:00:10 -07:00 committed by Denis Kenzior
parent c44e6361a0
commit fd9570500e
2 changed files with 30 additions and 0 deletions

View File

@ -4179,3 +4179,32 @@ char *ussd_decode(int dcs, int len, const unsigned char *data)
return utf8;
}
gboolean ussd_encode(const char *str, long *items_written, unsigned char *pdu)
{
unsigned char *converted = NULL;
long written;
long num_packed;
if (!pdu)
return FALSE;
converted = convert_utf8_to_gsm(str, -1, NULL, &written, 0);
if (!converted || written > 182)
goto error;
pack_7bit_own_buf(converted, written, 0, TRUE, &num_packed, 0, pdu);
g_free(converted);
if (num_packed < 1)
return FALSE;
if (items_written)
*items_written = num_packed;
return TRUE;
error:
g_free(converted);
return FALSE;
}

View File

@ -544,3 +544,4 @@ GSList *cbs_optimize_ranges(GSList *ranges);
gboolean cbs_topic_in_range(unsigned int topic, GSList *ranges);
char *ussd_decode(int dcs, int len, const unsigned char *data);
gboolean ussd_encode(const char *str, long *items_written, unsigned char *pdu);