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. * * SPDX-License-Identifier: GPL-2.0-or-later */ 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); } }