From 9201554c535e719b7d10e8960b5a3031fc077cbe Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 29 May 2018 21:55:01 +0700 Subject: msc: introduce USSD helper functions Change-Id: Ic528b968a9bc7c12e8395364e895400aa016c8f5 --- msc/USSD_Helpers.ttcn | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ msc/gen_links.sh | 1 + 2 files changed, 64 insertions(+) create mode 100644 msc/USSD_Helpers.ttcn diff --git a/msc/USSD_Helpers.ttcn b/msc/USSD_Helpers.ttcn new file mode 100644 index 00000000..6a71681f --- /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 + * 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 1fe5d6ef..8b40268c 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 -- cgit v1.2.3