osmo-ttcn3-hacks/library/USSD_Helpers.ttcn

81 lines
2.0 KiB
Plaintext

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.
*
* 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);
}
}