This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9368 ) Change subject: library: introduce Facility IE templates for SS/USSD ...................................................................... library: introduce Facility IE templates for SS/USSD Change-Id: Ibc3e8f70230d656b2f0994ea0c63e6554b6165de --- A library/SS_Templates.ttcn 1 file changed, 202 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/SS_Templates.ttcn b/library/SS_Templates.ttcn new file mode 100644 index 0000000..316b71b --- /dev/null +++ b/library/SS_Templates.ttcn @@ -0,0 +1,202 @@ +module SS_Templates { + +/* SS/USSD Facility IE templates, building on top of SS_Types. + * + * (C) 2018 by Vadim Yanitskiy <axilirator at gmail.com> + * 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 SS_Types all; + +/* GSM TS 04.80, section 4.5, SS operation code */ +type enumerated SS_Op_Code { + SS_OP_CODE_REGISTER_SS ('0A'O), + SS_OP_CODE_ERASE_SS ('0B'O), + SS_OP_CODE_ACTIVATE_SS ('0C'O), + SS_OP_CODE_DEACTIVATE_SS ('0D'O), + SS_OP_CODE_INTERROGATE_SS ('0E'O), + SS_OP_CODE_NOTIFY_SS ('10'O), + SS_OP_CODE_REGISTER_PASSWORD ('11'O), + SS_OP_CODE_GET_PASSWORD ('12'O), + SS_OP_CODE_PROCESS_USS_DATA ('13'O), + SS_OP_CODE_FORWARD_CHECK_SS_IND ('26'O), + SS_OP_CODE_PROCESS_USS_REQ ('3B'O), + SS_OP_CODE_USS_REQUEST ('3C'O), + SS_OP_CODE_USS_NOTIFY ('3D'O), + SS_OP_CODE_FORWARD_CUG_INFO ('78'O), + SS_OP_CODE_SPLIT_MPTY ('79'O), + SS_OP_CODE_RETRIEVE_MPTY ('7A'O), + SS_OP_CODE_HOLD_MPTY ('7B'O), + SS_OP_CODE_BUILD_MPTY ('7C'O), + SS_OP_CODE_FORWARD_CHARGE_ADVICE ('7D'O) +} + +/* GSM TS 04.80, section 4.5, SS error code */ +type enumerated SS_Err_Code { + SS_ERR_CODE_UNKNOWN_SUBSCRIBER ('01'O), + SS_ERR_CODE_ILLEGAL_SUBSCRIBER ('09'O), + SS_ERR_CODE_BEARER_SERVICE_NOT_PROVISIONED ('0A'O), + SS_ERR_CODE_TELESERVICE_NOT_PROVISIONED ('0B'O), + SS_ERR_CODE_ILLEGAL_EQUIPMENT ('0C'O), + SS_ERR_CODE_CALL_BARRED ('0D'O), + SS_ERR_CODE_ILLEGAL_SS_OPERATION ('10'O), + SS_ERR_CODE_SS_ERROR_STATUS ('11'O), + SS_ERR_CODE_SS_NOT_AVAILABLE ('12'O), + SS_ERR_CODE_SS_SUBSCRIPTION_VIOLATION ('13'O), + SS_ERR_CODE_SS_INCOMPATIBILITY ('14'O), + SS_ERR_CODE_FACILITY_NOT_SUPPORTED ('15'O), + SS_ERR_CODE_ABSENT_SUBSCRIBER ('1B'O), + SS_ERR_CODE_SYSTEM_FAILURE ('22'O), + SS_ERR_CODE_DATA_MISSING ('23'O), + SS_ERR_CODE_UNEXPECTED_DATA_VALUE ('24'O), + SS_ERR_CODE_PW_REGISTRATION_FAILURE ('25'O), + SS_ERR_CODE_NEGATIVE_PW_CHECK ('26'O), + SS_ERR_CODE_NUM_PW_ATTEMPTS_VIOLATION ('2B'O), + SS_ERR_CODE_UNKNOWN_ALPHABET ('47'O), + SS_ERR_CODE_USSD_BUSY ('48'O), + SS_ERR_CODE_MAX_MPTY_PARTICIPANTS ('7E'O), + SS_ERR_CODE_RESOURCES_NOT_AVAILABLE ('7F'O) +} + +/** + * According to GSM TS 02.90, section 4.1.1, + * the mobile initiated USSD request shall contain + * an alphabet indicator set to "SMS default alphabet" + * and language indicator set to "language unspecified". + * + * This DCS value is used quite often, so it makes + * sense to define it here as a constant. + */ +const octetstring SS_USSD_DEFAULT_DCS := '0F'O; + +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_INVOKE( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + octetstring ussd_dcs := SS_USSD_DEFAULT_DCS, + octetstring ussd_string := 'AA180C3602'O // *#100# +) := { + { + invoke := { + invokeId := { present_ := invoke_id }, + linkedId := omit, + opcode := { + local := enum2int(op_code) + }, + argument := { + uSSD_Arg := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string, + alertingPattern := omit, + msisdn := omit + } + } + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_INVOKE( + template integer invoke_id := ?, + template integer op_code := ?, + template octetstring ussd_dcs := ?, + template octetstring ussd_string := ? +) := { + { + invoke := { + invokeId := { present_ := invoke_id }, + linkedId := omit, + opcode := { + local := op_code + }, + argument := { + uSSD_Arg := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string, + alertingPattern := omit, + msisdn := omit + } + } + } + } +} + +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_RETURN_RESULT( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + octetstring ussd_dcs, + octetstring ussd_string +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := { + opcode := { + local := enum2int(op_code) + }, + result := { + uSSD_Res := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string + } + } + } + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_RETURN_RESULT( + template integer invoke_id := ?, + template integer op_code := ?, + template octetstring ussd_dcs := ?, + template octetstring ussd_string := ? +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := { + opcode := { + local := op_code + }, + result := { + uSSD_Res := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string + } + } + } + } + } +} + +/* Common for both structured and unstructured SS */ +template (value) SS_FacilityInformation ts_SS_FACILITY_RETURN_ERROR( + integer invoke_id := 1, + SS_Err_Code err_code +) := { + { + returnError := { + invokeId := { present_ := invoke_id }, + errcode := { + local := enum2int(err_code) + }, + parameter := omit + } + } +} +template SS_FacilityInformation tr_SS_FACILITY_RETURN_ERROR( + template integer invoke_id := ?, + template integer err_code := ? +) := { + { + returnError := { + invokeId := { present_ := invoke_id }, + errcode := { + local := err_code + }, + parameter := omit + } + } +} + +} -- To view, visit https://gerrit.osmocom.org/9368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibc3e8f70230d656b2f0994ea0c63e6554b6165de Gerrit-Change-Number: 9368 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180602/104c5f37/attachment.htm>