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);
+}