mirror of git://git.sysmocom.de/ofono
smsutil: Add USSD encoding function
This commit is contained in:
parent
c44e6361a0
commit
fd9570500e
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue