summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-08-01 18:10:36 +0200
committerHarald Welte <laforge@gnumonks.org>2018-08-07 23:32:32 +0200
commitb409ff28197e6d01adb3c6063b66b814ce0bbaf8 (patch)
tree21ba4f529fb7eb1ea167501e966f47ddb0397d06 /library
parent5e71c14750c06e5511ea4522b67f69d96329f8ee (diff)
move USSD_Helpers.ttcn to library
We want to use those also from the HLR_Tests, not just from MSC_Tests. Change-Id: I22be6c03d85dc6d6a8266b5ebce5d0c69c0551ed
Diffstat (limited to 'library')
-rw-r--r--library/USSD_Helpers.ttcn78
1 files changed, 78 insertions, 0 deletions
diff --git a/library/USSD_Helpers.ttcn b/library/USSD_Helpers.ttcn
new file mode 100644
index 0000000..5dd4bb1
--- /dev/null
+++ b/library/USSD_Helpers.ttcn
@@ -0,0 +1,78 @@
+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);
+}
+
+function f_USSD_FACILITY_IE_RETURN_ERROR(
+ integer invoke_id := 1,
+ SS_Err_Code err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE
+) return octetstring {
+ var SS_FacilityInformation facility_ie;
+
+ /* Encode Facility IE */
+ facility_ie := valueof(ts_SS_FACILITY_RETURN_ERROR(
+ invoke_id := invoke_id,
+ err_code := err_code
+ ));
+
+ return enc_SS_FacilityInformation(facility_ie);
+}
+
+}