FreeCalypso > hg > freecalypso-tools
diff uptools/libcoding/sms_submit8.c @ 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 | |
children |
line wrap: on
line diff
--- /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); +}