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