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