2018-05-29 14:55:01 +00:00
|
|
|
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.
|
2019-05-27 09:54:11 +00:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
2018-05-29 14:55:01 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2018-06-05 22:27:32 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2018-05-29 14:55:01 +00:00
|
|
|
}
|