summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-05-29 21:55:01 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-06-02 04:55:18 +0700
commit9201554c535e719b7d10e8960b5a3031fc077cbe (patch)
tree9cfa4896801be035da337326fa2d77dd89539bb7
parent8c34922c77dedef9a7955c9bdc6529b5cf3bc793 (diff)
msc: introduce USSD helper functions
-rw-r--r--msc/USSD_Helpers.ttcn63
-rwxr-xr-xmsc/gen_links.sh1
2 files changed, 64 insertions, 0 deletions
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);
+}
+
+}
diff --git a/msc/gen_links.sh b/msc/gen_links.sh
index 1fe5d6e..8b40268 100755
--- a/msc/gen_links.sh
+++ b/msc/gen_links.sh
@@ -90,6 +90,7 @@ FILES+="BSSMAP_Emulation.ttcn BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn BSSAP_A
FILES+="RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunctDef.cc "
FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc "
FILES+="SMPP_CodecPort.ttcn SMPP_CodecPort_CtrlFunct.ttcn SMPP_CodecPort_CtrlFunctDef.cc SMPP_Emulation.ttcn SMPP_Templates.ttcn "
+FILES+="SS_Templates.ttcn "
gen_links $DIR $FILES
ignore_pp_results