diff --git a/msc/USSD_Helpers.ttcn b/msc/USSD_Helpers.ttcn
new file mode 100644
index 0000000..6a71681
--- /dev/null
+++ b/msc/USSD_Helpers.ttcn
@@ -0,0 +1,63 @@
+module USSD_Helpers {
+
+/* USSD helpers for composing messages, building on top
+ * of both L3_Templates and USSD_Templates.
+ *
+ * (C) 2018 by Vadim Yanitskiy <axilirator@gmail.com>
+ * All rights reserved.
+ *
+ * Released under the terms of GNU General Public License, Version 2 or
+ * (at your option) any later version.
+ */
+
+import from General_Types all;
+import from TCCEncoding_Functions all;
+
+import from SS_Templates all;
+import from SS_Types all;
+
+function f_USSD_FACILITY_IE_INVOKE(
+	integer invoke_id := 1,
+	SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ,
+	charstring ussd_string := "*#100#"
+) return octetstring {
+	var SS_FacilityInformation facility_ie;
+	var octetstring ussd_string_enc;
+
+	/* Encode input string with GSM 7-bit encoding */
+	ussd_string_enc := f_encGSM7bit(ussd_string);
+
+	/* Encode Facility IE */
+	facility_ie := valueof(ts_SS_USSD_FACILITY_INVOKE(
+		invoke_id := invoke_id,
+		op_code := op_code,
+		ussd_dcs := SS_USSD_DEFAULT_DCS,
+		ussd_string := ussd_string_enc
+	));
+
+	return enc_SS_FacilityInformation(facility_ie);
+}
+
+function f_USSD_FACILITY_IE_RETURN_RESULT(
+	integer invoke_id := 1,
+	SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ,
+	charstring ussd_string := "Lorem Ipsum"
+) return octetstring {
+	var SS_FacilityInformation facility_ie;
+	var octetstring ussd_string_enc;
+
+	/* Encode input string with GSM 7-bit encoding */
+	ussd_string_enc := f_encGSM7bit(ussd_string);
+
+	/* Encode Facility IE */
+	facility_ie := valueof(ts_SS_USSD_FACILITY_RETURN_RESULT(
+		invoke_id := invoke_id,
+		op_code := op_code,
+		ussd_dcs := SS_USSD_DEFAULT_DCS,
+		ussd_string := ussd_string_enc
+	));
+
+	return enc_SS_FacilityInformation(facility_ie);
+}
+
+}
