FreeCalypso > hg > freecalypso-tools
changeset 375:759cb6dc501b
uptools/libcoding: added function for generating SMS PDUs with 8-bit text
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Mar 2018 22:24:14 +0000 |
parents | d1fa771abeb8 |
children | 83c755829e31 |
files | uptools/libcoding/Makefile uptools/libcoding/sms_submit8.c |
diffstat | 2 files changed, 44 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/uptools/libcoding/Makefile Thu Mar 08 20:33:03 2018 +0000 +++ b/uptools/libcoding/Makefile Thu Mar 08 22:24:14 2018 +0000 @@ -3,8 +3,8 @@ OBJS= alpha_addr.o decode_helpers.o grokdcs.o gsm7_decode.o \ gsm7_decode_tables.o gsm7_encode.o gsm7_encode_table.o gsm7_pack.o \ gsm7_unpack.o gsmtime.o hexdecode.o hexdump.o hexencode.o \ - number_decode.o number_encode.o scaddr.o sms_submit.o ucs2_decode.o \ - utf8_decode.o + number_decode.o number_encode.o scaddr.o sms_submit.o sms_submit8.o \ + ucs2_decode.o utf8_decode.o LIB= libcoding.a all: ${LIB}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uptools/libcoding/sms_submit8.c Thu Mar 08 22:24:14 2018 +0000 @@ -0,0 +1,42 @@ +/* + * This library module implements the function for constructing outgoing + * SMS-SUBMIT PDUs, 8-bit version for raw data or UCS-2. + */ + +#include <sys/types.h> +#include <strings.h> + +make_sms_submit_pdu_8bit(da, pid, dcs, textsrc, textlen, udh, udhl, outbuf) + u_char *da, *textsrc, *udh, *outbuf; + unsigned textlen, udhl; +{ + u_char *outp = outbuf; + unsigned addr_field_len; + unsigned udh_octets; + unsigned udl; + + if (udh) + *outp++ = 0x41; + else + *outp++ = 0x01; + *outp++ = 0; + addr_field_len = ((da[0] + 1) >> 1) + 2; + bcopy(da, outp, addr_field_len); + outp += addr_field_len; + *outp++ = pid; + *outp++ = dcs; + if (udh) + udh_octets = udhl + 1; + else + udh_octets = 0; + udl = udh_octets + textlen; + *outp++ = udl; + if (udh) { + *outp++ = udhl; + bcopy(udh, outp, udhl); + outp += udhl; + } + bcopy(textsrc, outp, textlen); + outp += textlen; + return (outp - outbuf); +}