summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/stkutil.c16
-rw-r--r--src/stkutil.h7
2 files changed, 23 insertions, 0 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index 83ff5c77..dda9db57 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -4267,6 +4267,22 @@ const unsigned char *stk_pdu_from_envelope(const struct stk_envelope *envelope,
&envelope->menu_selection.help_request,
NULL);
break;
+ case STK_ENVELOPE_TYPE_MO_SMS_CONTROL:
+ /*
+ * Comprehension Required according to the specs but not
+ * enabled in conformance tests in 3GPP 31.124.
+ */
+ ok = build_dataobj(&builder,
+ build_envelope_dataobj_device_ids, 0,
+ envelope,
+ build_dataobj_address, 0,
+ &envelope->sms_mo_control.sc_address,
+ build_dataobj_address, 0,
+ &envelope->sms_mo_control.dest_address,
+ build_dataobj_location_info, 0,
+ &envelope->sms_mo_control.location,
+ NULL);
+ break;
default:
return NULL;
};
diff --git a/src/stkutil.h b/src/stkutil.h
index d4b5b237..2da787d7 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -1187,6 +1187,12 @@ struct stk_envelope_menu_selection {
ofono_bool_t help_request;
};
+struct stk_envelope_sms_mo_control {
+ struct stk_address sc_address;
+ struct stk_address dest_address;
+ struct stk_location_info location;
+};
+
struct stk_envelope {
enum stk_envelope_type type;
enum stk_device_identity_type src;
@@ -1195,6 +1201,7 @@ struct stk_envelope {
struct stk_envelope_sms_pp_download sms_pp_download;
struct stk_envelope_cbs_pp_download cbs_pp_download;
struct stk_envelope_menu_selection menu_selection;
+ struct stk_envelope_sms_mo_control sms_mo_control;
};
};