Fix gsm_7bit_{en,de}code function and sms user_data calculations

With the 7bit alphabet the user_data_len field needs to be in
septets (characters) and not in octets occupied.
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index 9b3f44e..05e55d4 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -315,8 +315,13 @@
 	*smsp = sms->user_data_len;
 
 	/* generate TP-UD */
-	smsp = msgb_put(msg, sms->user_data_len);
-	memcpy(smsp, sms->user_data, sms->user_data_len);
+	/* FIXME: Handle DSC of UCS2 or 8/bit default */
+	if (gsm338_get_sms_alphabet(sms->data_coding_scheme) == DCS_7BIT_DEFAULT) {
+		/* Warning, user_data_len indicates the amount of septets
+		 * (characters), we need amount of octets occupied */
+		smsp = msgb_put(msg, ceil(sms->user_data_len*7/8.0));
+		memcpy(smsp, sms->user_data, ceil(sms->user_data_len*7/8.0));
+	}
 
 	return msg->len - old_msg_len;
 }