diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2021-06-29 16:26:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-29 16:26:24 +0200 |
commit | 280ddf915df032d5de1d6fbbbe7a42d573b8fdb2 (patch) | |
tree | 872d38b79d4804b062d7b58820596752d00dfa47 /misc | |
parent | Delete uicBarcodeFCBv2.0.2.asn (diff) | |
download | UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar.gz UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar.bz2 UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar.lz UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar.xz UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.tar.zst UIC-barcode-280ddf915df032d5de1d6fbbbe7a42d573b8fdb2.zip |
Diffstat (limited to 'misc')
-rw-r--r-- | misc/uicBarcodeFCBv2.0.asn | 2810 |
1 files changed, 0 insertions, 2810 deletions
diff --git a/misc/uicBarcodeFCBv2.0.asn b/misc/uicBarcodeFCBv2.0.asn deleted file mode 100644 index bfb0969..0000000 --- a/misc/uicBarcodeFCBv2.0.asn +++ /dev/null @@ -1,2810 +0,0 @@ --- Creator: ASN.1 Editor (http://asneditor.sourceforge.net) --- Author: ClemensGantert --- Created: Tue Aug 11 11:40:28 CEST 2015 -ASN-Module DEFINITIONS AUTOMATIC TAGS ::= BEGIN - --- imports and exports --- EXPORTS ALL; - - --- changes: --- product id 1 bit more 65535 --- open ticket transport mode EN 1545-1 --- allowing -1 in differences of days between dates (validity of tickets crossing time zones) - --- ############################################################################################## --- # --- # Draft version 2.0 - value 2 in the UIC bar code version element --- # (see element 2 in U_FLEX record definition in leaflet 918.9) --- # --- ############################################################################################## - - --- ############################################################################################## --- # --- # Naming and encoding conventions --- # --- # Elements included as String and as Numeric values: --- # Some elements are included in different formats to reduce the data size. --- # These elements must be included only once. --- # These elements are named with the same name and appendix --- # Num (numeric values) --- # IA5 (String values according to ASN IA5String (7Bit)) --- # Example: --- # trainNum - in case of a numeric train number --- # trainIA5 - in case of a alphanumeric train Id --- # --- # --- # RICS codes must be used to encode companies (issuer, product owner, ...) where available --- # other codes are possible based on bilateral agreements --- # the format is kept more flexible to cover upcoming extensions of the RICS code by ERA --- # --- # Stations can be coded using the UIC and upcoming ERA code lists. Proprietary codes are --- # possible based on bilateral agreements. Format: 1..9999999 or alphanumeric without --- # special character (IA5String) --- # --- # --- # ! INTEGERS must not exceed the value of 9,223,372,036,854,775,807 (64 bit) even in case --- # ! they are unrestricted!!! --- # ! --- # ! Some elements like ReferenceNum or cardIdNum are defined as an unrestricted integer. --- # ! Unlike other numerical values the cardIdNum and referenceNum can be larger than a usual 32 bit Integer --- # ! Some ASN.1 implementation tools are limited to 32 bit integers which is too small. --- # ! Please ensure to use a tool capable of dealing with larger numbers. --- # --- # Optional BOOLEANs have three values: "true", "false", "unknown" = the Boolean is absent from the data. --- # --- # --- # Encoding of time: --- # time is encoded as the number of minutes of the day 0 = 00:00, 1439 = 23:59, --- # time data elements end with "time" in their name --- # --- # Encoding of date: --- # ......................................................................................................... --- # The issuing date is given in UTC, but some other date values are given in local time where the exact time zone is not known. --- # --- # For local dates the date is associated with the corresponding location: --- # e.g.: --- # valid from date -> location where the journey starts --- # valid until date -> location where the journey covered by the ticket ends --- # --- # there could be rare cases where this does not provide a unique interpretation: --- # e.g. open ticket or pass without start and end location for a collection of zones or countries with different time zones. --- # in these cases the fare conditions must clarify the rules for these cases (e.g. by allowing to use the --- # ticket a few hours after the end of validity). --- # --- # The difference in days is calculated from dates only, ignoring the time and time zone information. --- # --- # example 1: (31.12.2017 23:05 UTC == 01.01.2018 00:05 CET) : --- # issuing date (UTC): 31.12.2017 23:05 == 01.01.2018 00:05 CET --- # issuingYear = 2017 --- # issuingDay = 365 --- # issuingTime = 1385 --- # local departure date (CET): 01.01.2018 00:15 == 31.12.2017 23:15 UTC --- # departureDate = 1 (= 01.01.2018 - 31.12.2017) --- # departureTime = 15 --- # departureUTCOffset = -4 (UTC = local + offset * 15 Minutes) --- # --- # --- # example 2: (01.01.2018 00:05 UTC == 31.12.2017 20:05 AST) --- # issuing date (UTC): 01.01.2018 00:05 UTC == 31.12.2017 20:05 AST --- # issuingYear = 2018 --- # issuingDay = 1 --- # issuingTime = 5 --- # local departure date (AST): 31.12.2017 22:05 AST == 1.1.2018 02:05 UTC --- # departureDate = -1 (= 31.12.2017 - 01.01.2018) --- # departureTime = 1325 --- # departureUTCOffset = 16 (UTC = local + offset * 15 Minutes) --- # --- # departureDate can become -1 with a departure west of the GMT zone only --- # --- # --- # --- # --- # --- # --- # ASN.1 Extensions: --- # --- # The specification makes use of extension (",..."). --- # These extensions might be defined in future versions of the UIC specification --- # Implementations must support the extension feature of ASN.1, at least they must be able to ignore extensions while decoding the data --- # ASN.1 extensions will be defined by UIC. It is not allowed to define bilateral extensions. --- # --- # Bilateral Extensions: --- # Bilateral extensions can be included in the data element "ExtensionData". --- # --- # --- # --- ######################################################################################### - - --- ############################################################################################ - - --- type assignments - - -- ######################################################################################### - -- the basic entry point of the data structure - -- the data include: - -- -issuer informations - -- -the details of the transport document - -- -informations required for the control process - -- -informations on the travelers independent from the transport document - -- -proprietary extensions - -- - -- ########################################################################################## - UicRailTicketData ::= SEQUENCE { - -- data specific to the issuer - issuingDetail IssuingData, - - -- data on the travelers - travelerDetail TravelerData OPTIONAL, - - -- data of the transport document - --!!! proposal: replace this by a comment in the lealet on the total size of the barcode: more than one document to be used on bilateral agreement only - transportDocument SEQUENCE OF DocumentData OPTIONAL, - - -- data specific to support the ticket control process - controlDetail ControlData OPTIONAL, - - -- proprietary data defined bilaterally - extension SEQUENCE OF ExtensionData OPTIONAL - ,... - } - - - - -- ########################################################################################### - -- the choice on the different transport documents that can be included in the bar code data: - -- - reservation of seat / couchette or berths (IRT, RES, BOA) - -- - reservation of car carriage (VET) - -- - open ticket (NRT including NRT group ticket) (NRT, GRT, SUP, UPD, COI) - -- - Rail passes (including Eurail, Interail and local passes) (RPT) - -- - Voucher (TRV) - -- - Customer Cards (including bonus cards and reduction cards) - -- - counter marks issued for group tickets - -- - parking ground tickets - -- - FIP tickets - -- - station access / station passage tickets - -- - proprietary documents as an extension - -- ############################################################################################ - DocumentData ::= SEQUENCE { - - -- token - -- specific id to be exchanged with the ticket (e.g. id of the phone in case of tickets linked to a phone) - token TokenType OPTIONAL, - - -- choice of the ticket - ticket CHOICE - { - - -- Reservation (without car carriage) (IRT and RES) - reservation ReservationData, - - - -- Reservation of car carriage - carCarriageReservation CarCarriageReservationData, - - -- open ticket specification (NRT) - openTicket OpenTicketData, - - -- pass specification (RPT) including Eurail and Interrail - pass PassData, - - -- voucher - voucher VoucherData, - - -- customer card either to identify a customer and / or to provide reductions - customerCard CustomerCardData, - - -- countermark to accompagny a group ticket - counterMark CountermarkData, - - -- car parking slot - parkingGround ParkingGroundData, - - -- FIP duty ticket - fipTicket FIPTicketData, - - -- ticket to pass the gates at a station - stationPassage StationPassageData, - - -- proprietary data defined bilaterally - extension ExtensionData, - - -- delay confirmation - delayConfirmation DelayConfirmation - - ,... - } - ,... - } - - -- ######################################################################################## - -- confirmation of the delay of a train - -- - -- ######################################################################################## - DelayConfirmation ::= SEQUENCE { - - -- reference of the delay confirmation - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- train number of the delayed train - numeric or alphanumeric - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - -- departure date of the delayed train in local time - -- number of year - departureYear INTEGER (2016..2269) OPTIONAL, - -- number of the day in the year (1.1. = 1) - departureDay INTEGER (1..366) OPTIONAL, - departureTime INTEGER (0..1439) OPTIONAL, - departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - -- station where the delay became relevant - stationCodeTable CodeTableType DEFAULT stationUIC, - stationNum INTEGER (1..9999999) OPTIONAL, - stationIA5 IA5String OPTIONAL, - - -- delay in minutes at the mentioned station - delay INTEGER (1..999), - - -- indication that the train was cancelled - trainCancelled BOOLEAN, - - -- type of confirmation provided - confirmationType ConfirmationType DEFAULT travelerDelayConfirmation, - - -- affected original ticket(s) - affectedTickets SEQUENCE OF TicketLinkType OPTIONAL, - - -- info text - infoText UTF8String OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL - ,... - } - - ConfirmationType ::= ENUMERATED { - trainDelayConfirmation (0), -- confirmation of train delay, whether the traveler was on board in unconfirmed - travelerDelayConfirmation (1), -- confirmation that the traveler was on board of the delayed train - trainLinkedTicketDelay (2) -- confirmation that a ticket linked to the delayed train was issued - ,... - } - - - -- ######################################################################################## - -- Details of the issuer and the issue of the ticket - -- - details on the issuer - -- - indication of test tickets (specimen) - -- - payment details: method of payment, currency - -- - proprietary PNR of the issuer to be used to identify the sale within - -- the issuers ecosystem - -- - web link to display more information for the customer - -- - proprietary extension data - -- ######################################################################################## - IssuingData ::= SEQUENCE { - - -- provider of the signature (RICS code) - securityProviderNum INTEGER (1..32000) OPTIONAL, - securityProviderIA5 IA5String OPTIONAL, - - -- issuer of the transport document if the issuer is different from the security provider - -- (RICS code) - issuerNum INTEGER (1..32000) OPTIONAL, - issuerIA5 IA5String OPTIONAL, - - -- issuing time stamp in UTC - -- number of year - issuingYear INTEGER (2016..2269), - -- number of the day in the year (1.1. = 1) - issuingDay INTEGER (1..366), - -- The number of the minutes of issue might be used in case of account - -- based ticketing with a delay of n minutes for the replication of central - -- booking data to the control devices (e.g. at SBB) - -- The time can be compared with the last synchronization time of - -- the control device - issuingTime INTEGER (0..1439) OPTIONAL, - - -- name of the issuer (E.g. short name mentioned in RICS code table) - issuerName UTF8String OPTIONAL, - - -- specimen indicates a test specimen not valid for travelling - specimen BOOLEAN, - - -- secure paper indicates that this barcode is issued with a secure paper ticket - -- to ensure the uniqueness of the ticket. This allows to use the same control - -- procedure as for e-tickets also for anonymous tickets - -- the double use of the ticket is in this case excluded by the secure paper - securePaperTicket BOOLEAN, - - -- indicates that the ticket is valid for traveling or still needs activation - activated BOOLEAN, - - -- currency of the price: ISO4217 currency codes - currency IA5String (SIZE(3)) DEFAULT "EUR", - - -- fraction of the prices included - currencyFract INTEGER (1..3) DEFAULT 2, - - -- PNR used by the issuer to identify the document - issuerPNR IA5String OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL, - - -- location of sale in case of a sale on board of a train - -- numeric train number or alphanumeric id of the train where the ticket was sold - issuedOnTrainNum INTEGER OPTIONAL, - issuedOnTrainIA5 IA5String OPTIONAL, - -- line number - issuedOnLine INTEGER OPTIONAL, - - -- point of sale - pointOfSale GeoCoordinateType OPTIONAL - ,... - } - - -- ################################################################################### - -- data supporting the control process - -- - list of items which the traveler can use to identify himself or the unique - -- usage of the ticket - -- (card ids, parts or identity card numbers, credit card numbers,..) - -- - hints on the validation to be made on board - -- - -- ################################################################################### - ControlData ::= SEQUENCE { - - -- cards that can be used to identify the ticket holder - identificationByCardReference SEQUENCE OF CardReferenceType OPTIONAL, - - -- id-card id must be checked to identify the traveler - identificationByIdCard BOOLEAN, - - -- passport id must be checked to identify the traveler - identificationByPassportId BOOLEAN, - - -- other items which could be used to identify the ticket holder - -- (for future use, code list to be defined) - identificationItem INTEGER OPTIONAL, - - -- validation of the passport is required (e.g. in case of Eurail) - passportValidationRequired BOOLEAN, - - -- online validation of the ticket required - onlineValidationRequired BOOLEAN, - - -- percentage of the tickets to be validated in more detail - -- (i.e. via online check or detailed checks later-on) - randomDetailedValidationRequired INTEGER (0..99) OPTIONAL, - - -- manual validation of the traveler age required (in case of reductions) - ageCheckRequired BOOLEAN, - - -- manual validation of the travelers reduction card required (in case of reductions) - reductionCardCheckRequired BOOLEAN, - - -- controler info text - infoText UTF8String OPTIONAL, - - -- additional tickets that should be controlled - includedTickets SEQUENCE OF TicketLinkType OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL - ,... - } - - -- ################################################################################ - -- Traveler data - -- these data do not include tariff details of the booked tariffs, - -- tariff data are included in the transport document details and might - -- have a reference to the traveler defined here. - -- - personal data of the travellers - -- - the index of the list can be used to identify the - -- traveler within other contexts (e.g. in assigned tariffs) - -- ################################################################################ - TravelerData ::= SEQUENCE { - -- traveler list - traveler SEQUENCE OF TravelerType OPTIONAL, - - -- ISO 639-1 coding of the language preferred for the traveler / ticket holder - preferredLanguage IA5String (SIZE(2)) OPTIONAL, - - -- name of the group in case of a group ticket - groupName UTF8String OPTIONAL - ,... - } - - -- #################################################################################### - -- the following part contains the different transport document specifications - -- #################################################################################### - - - -- #################################################################################### - -- reservations of seats , couchettes and berths - -- included are the data defined in: - -- - leaflet 918.1 for reservation data exchange - -- - a few additional data currently used by some railways via different interfaces - -- - information on trach an dplafoorm where the coach stops - -- - additional second coach for large groups - -- #################################################################################### - ReservationData ::= SEQUENCE { - - -- train number - numeric or alphanumeric - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - -- departure date in local time - -- number of the days calculated from the issuing date - departureDate INTEGER (-1..370) DEFAULT 0, - - - -- reservation reference according ton 918.1 in case ade via Hermes - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code to be used as standard) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- service brand: code list https://uic.org/service-brand-code-list - serviceBrand INTEGER (0..32000) OPTIONAL, - serviceBrandAbrUTF8 UTF8String OPTIONAL, - serviceBrandNameUTF8 UTF8String OPTIONAL, - - -- service code list from 918.1 (seat couchette,..) - service ServiceType DEFAULT seat, - - -- code table used to encode stations - stationCodeTable CodeTableType DEFAULT stationUICReservation, - - -- origin station code - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - -- destination station code - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - -- origin station name - fromStationNameUTF8 UTF8String OPTIONAL, - - -- destination station name - toStationNameUTF8 UTF8String OPTIONAL, - - -- departure time - departureTime INTEGER (0..1439), - departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- arrival date and time in local time - -- number of days counted from the departure date - -- !!! proposal for change: arrivalDate INTEGER (-1..20) DEFAULT 0, - arrivalDate INTEGER (-1..20) DEFAULT 0, - arrivalTime INTEGER (0..1439) OPTIONAL, - arrivalUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - -- responsible carriers on the route - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- travel class - classCode TravelClassType DEFAULT second, - - -- service level code list from 918.1 - serviceLevel IA5String (SIZE(1..2)) OPTIONAL, - - -- places - places PlacesType OPTIONAL, - - -- additional places in a second coach - additionalPlaces PlacesType OPTIONAL, - - --bicycle places - bicyclePlaces PlacesType OPTIONAL, - - -- compartment details (open space, wheelchair,..) - compartmentDetails CompartmentDetailsType OPTIONAL, - - -- number of persons on the ticket without place numbers (on IRT) - numberOfOverbooked INTEGER (0..200) DEFAULT 0, - - -- description of berths - berth SEQUENCE OF BerthDetailData OPTIONAL, - - -- tariffs included (Adult, Children,... ) - tariff SEQUENCE OF TariffType OPTIONAL, - - -- type of the price (supplement,... ) - priceType PriceTypeType DEFAULT travelPrice, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - -- type of supplement - code list from 918.1 - typeOfSupplement INTEGER (0..9) DEFAULT 0, - - numberOfSupplements INTEGER (0..200) DEFAULT 0, - - -- luggage restrictions and registered luggage - -- in case the luggage restrictions are general and do not depend on the - -- ticket type they should not be included - luggage LuggageRestrictionType OPTIONAL, - - infoText UTF8String OPTIONAL, - - - -- bilaterally agreed proprietary extension - extension ExtensionData OPTIONAL - ,... - } - - -- ################################################################################# - -- details on the VAT included to be used in after sale processes - -- ################################################################################# - VatDetailType ::= SEQUENCE { - - -- ISO 3166 numeric country code - country INTEGER (1..999), - - -- 1/10th of a percent - percentage INTEGER (0..999), - - -- amount of VAT, the currency and the currency fraction is included in the issuing data - amount INTEGER OPTIONAL, - - -- european tax id of the company paying VAT - vatId IA5String OPTIONAL - - } - - - -- ################################################################################# - -- reservations of car carriage - -- included are the data defined in: - -- - leaflet 918.1 for reservation data exchange - -- - a few additional data currently used by some railways via different interfaces - -- ################################################################################# - CarCarriageReservationData ::= SEQUENCE { - - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - - -- loading / unloading of the car in local date and time - -- number of the days calculated from the issuing date - beginLoadingDate INTEGER (-1..370) DEFAULT 0, - beginLoadingTime INTEGER (0..1439) OPTIONAL, - endLoadingTime INTEGER (0..1439) OPTIONAL, - loadingUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - -- reservation reference according on 918.1 in case ade via Hermes - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- service brand: code list https://uic.org/service-brand-code-list - serviceBrand INTEGER (1..32000) OPTIONAL, - serviceBrandAbrUTF8 UTF8String OPTIONAL, - serviceBrandNameUTF8 UTF8String OPTIONAL, - - stationCodeTable CodeTableType DEFAULT stationUICReservation, - - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - coach IA5String OPTIONAL, - place IA5String OPTIONAL, - - compartmentDetails CompartmentDetailsType OPTIONAL, - - -- description of the car - numberPlate IA5String, - trailerPlate IA5String OPTIONAL, - carCategory INTEGER (0..9), - boatCategory INTEGER (0..6) OPTIONAL, - textileRoof BOOLEAN, - roofRackType RoofRackType DEFAULT norack, - - -- height of a roof rack in cm - roofRackHeight INTEGER (0..99) OPTIONAL, - - -- number of boats on a rack - attachedBoats INTEGER (0..2) OPTIONAL, - - -- number of biycles on a rack - attachedBicycles INTEGER (0..4) OPTIONAL, - - -- number of surf boards on a rack - attachedSurfboards INTEGER (0..5) OPTIONAL, - - -- reference to an entry on the loading list - loadingListEntry INTEGER (0..999) OPTIONAL, - loadingDeck LoadingDeckType DEFAULT upper, - - -- responsible carriers on the route (RICS codes) - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - tariff TariffType, - priceType PriceTypeType DEFAULT travelPrice, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - infoText UTF8String OPTIONAL, - extension ExtensionData OPTIONAL - ,... - } - - - -- ##################################################################################### - -- data for open tickets (NRT and group tickets) - -- included are the data defined in: - -- - the ticket layout (leaflet 918.8) - -- - the ticket bar code version 3 (leaflet 918.9) - -- - additional data based on 108.1 with some extensions as 108.1 - -- does not provide well structured data, - -- especially concerning regional validity - -- - -- ##################################################################################### - - OpenTicketData ::= SEQUENCE { - - -- reference must be given either in numeric or alphanumeric format - referenceNum INTEGER OPTIONAL, - referenceIA5 IA5String OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- to support other ticket content (e.g. VDV, UTPF, V�V, CALYPSO) - -- issuer code using the default code table of the product owner - extIssuerId INTEGER OPTIONAL, - -- authorization id provided to the issuer by the product owner - issuerAutorizationId INTEGER OPTIONAL, - - -- ticket includes the return trip - should be set to false if it is not relevant (e.g. zones) - returnIncluded BOOLEAN, - - -- for tickets valid in regions without from or to stations no station is provided - stationCodeTable CodeTableType DEFAULT stationUIC, - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - -- for tickets valid in regions without from or to stations no station is provided - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - -- description for manual evaluation in case structured data are not available - validRegionDesc UTF8String OPTIONAL, - -- specification of the ordered sequence of valid regions - validRegion SEQUENCE OF RegionalValidityType OPTIONAL, - - -- return route description - -- the return route description can be omitted if it is identical to the - -- inversed outbound validRegion sequence - returnDescription ReturnRouteDescriptionType OPTIONAL, - - -- temporal validity data in local time of the location where the journey starts - -- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- number of days from valid-from date, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - -- travel days of a ticket might be subject to a separate activation to be valid for traveling - -- here it is possible to list the activated days of the ticket: - -- list of activated days in case the entire ticket is not activated - -- the day is given by the number of days from the first day of validity - -- change in V2 1 -> 0..370 - -- 0 = first day of validity - activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, - - classCode TravelClassType DEFAULT second, - - -- servicelevel code according to leaflet 918.1 to encode other products - -- (e.g. PREMIUM, ...) - serviceLevel IA5String (SIZE(1..2)) OPTIONAL, - - -- carriers involved in the transport (RICS codes) - -- the indication of carriers is mandatory on international routes, they can be - -- listed here but can also be included in viaDetails - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - - -- list of service brands for which the ticket is valid - -- in case the included service brands are listed all other brands are excluded - -- service brand: code list https://uic.org/service-brand-code-list - includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - -- list of service brands for which the ticket is not valid - -- service brand: code list https://uic.org/service-brand-code-list - excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - tariffs SEQUENCE OF TariffType OPTIONAL, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - infoText UTF8String OPTIONAL, - - -- additional included open tickets - -- e.g. to include local city traffic on parts of a the route - includedAddOns SEQUENCE OF IncludedOpenTicketType OPTIONAL, - - -- in case the luggage restrictions are general and do not depend - -- on the ticket type they should not be included - luggage LuggageRestrictionType OPTIONAL, - - -- included or excluded transport modes - -- code list: EN 1545-1 (transport type code) - -- new data elements - includedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, - excludedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, - - extension ExtensionData OPTIONAL - ,... - } - - - - -- #################################################################################### - -- data for passes - -- included are the data defined in: - -- - the ticket layout (leaflet 918.8) - -- - the ticket bar code version 3 (leaflet 918.8) - -- #################################################################################### - PassData ::= SEQUENCE { - - -- reference must be given in numeric or alphanumeric format - referenceNum INTEGER OPTIONAL, - referenceIA5 IA5String OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- type of the pass, code list provided by the product owner - -- in case of Eurail: - -- 1 = Interrail - -- 2 = Eurail - -- 3 = Eurail Global (all countries) - passType INTEGER (1..250) OPTIONAL, - - -- literal name of the pass - passDescription UTF8String OPTIONAL, - - classCode TravelClassType DEFAULT second, - - -- begin of validity (local time) - -- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- end of validity (local time) - -- number of days from valid from day, 0 = valid on valid-from-date - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - - - -- additional validity periods and excluded time ranges - validityPeriodDetails ValidityPeriodDetailType OPTIONAL, - - -- max number of days of validity in case the valid from day is open - numberOfValidityDays INTEGER (0..370) OPTIONAL, - - -- max number of possible trips to be activated - numberOfPossibleTrips INTEGER (1..250) OPTIONAL, - numberOfDaysOfTravel INTEGER (1..250) OPTIONAL, - - -- list of activated days in case the entire ticket is not activated - -- the day is given by the number of days from the first day of validity - -- 0 = first day of validity - activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, - - -- included countries, code table according to UIC leaflet 918.9 - countries SEQUENCE OF INTEGER (1..250) OPTIONAL, - - -- included carriers (RICS codes) - includedCarrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - includedCarrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- excluded carriers (RICS codes) - excludedCarrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - excludedCarrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- service brand: code list https://uic.org/service-brand-code-list - includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - -- region description to cover local zones - validRegion SEQUENCE OF RegionalValidityType OPTIONAL, - - tariffs SEQUENCE OF TariffType OPTIONAL, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - infoText UTF8String OPTIONAL, - extension ExtensionData OPTIONAL - ,... - } - - ValidityPeriodDetailType ::= SEQUENCE { - validityPeriod SEQUENCE OF ValidityPeriodType OPTIONAL, - excludedTimeRange SEQUENCE OF TimeRangeType OPTIONAL - } - - ValidityPeriodType ::= SEQUENCE { - -- number of days from issuing date (local date) - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- number of days from valid from day, 0 = valid on valid from date - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - } - - TimeRangeType ::= SEQUENCE { - fromTime INTEGER (0..1439), - untilTime INTEGER (0..1439) - } - - -- ###################################################################################### - -- data for vouchers - -- included are quite basic further study is required - -- ###################################################################################### - VoucherData ::= SEQUENCE { - - -- reference must be given in numeric or alphanumeric format - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- begin of validity in UTC - -- number of year - validFromYear INTEGER (2016..2269), - -- number of the day in the year (1.1. = 1) - validFromDay INTEGER (0..370), - -- end of validity - -- number of year - validUntilYear INTEGER (2016..2269), - -- number of the day in the year (1.1. = 1) - validUntilDay INTEGER (0..370), - - value INTEGER DEFAULT 0, - - -- type of the voucher, code list defined by the product owner - type INTEGER (1..32000) OPTIONAL, - - infoText UTF8String OPTIONAL, - extension ExtensionData OPTIONAL - ,... - } - -- ################################################################################### - -- data for FIP tickets - -- included are data from the FIP ticket layout, - -- ################################################################################### - FIPTicketData ::= SEQUENCE { - - -- reference must be given in numeric or alphanumeric format - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- first day of validity in UTC - --- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - -- last day of validity - -- number of days from valid from day, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - - -- activated days: list of days for which the ticket is valid - -- the day is given by the number of days from the first day of validity - -- 0 = first day of validity - activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, - - -- included carriers - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- number of travel days allowed - numberOfTravelDays INTEGER (1..200), - includesSupplements BOOLEAN, - - -- travel class - classCode TravelClassType DEFAULT second, - extension ExtensionData OPTIONAL - ,... - } - - -- ##################################################################################### - -- data station passage and access - -- ticket used to enter, exit or pass a station without travelling by train. - -- E.g. for staff working in a station. - -- ##################################################################################### - StationPassageData ::= SEQUENCE { - - -- reference must be given in numeric or alphanumeric format - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - productName UTF8String OPTIONAL, - - -- code table used to encode he stations - stationCodeTable CodeTableType DEFAULT stationUIC, - -- list of station where the passage is allowed - stationNum SEQUENCE OF INTEGER OPTIONAL, - stationIA5 SEQUENCE OF IA5String OPTIONAL, - -- station names - stationNameUTF8 SEQUENCE OF UTF8String OPTIONAL, - - -- list of areas in a station where the access is allowed - areaCodeNum SEQUENCE OF INTEGER OPTIONAL, - areaCodeIA5 SEQUENCE OF IA5String OPTIONAL, - -- area names - areaNameUTF8 SEQUENCE OF UTF8String OPTIONAL, - - -- begin of validity in local date and time - -- number of days from issuing date - validFromDay INTEGER (-1..700), - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- end of validity - -- number of days from valid from day, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - - -- number of days for station passage in case the number of days - -- is limited and less that the validity period - numberOfDaysValid INTEGER OPTIONAL, - - extension ExtensionData OPTIONAL - ,... - } - - -- ###################################################################################### - -- data for customer cards - -- included are data from: - -- - �BB requirements on card data - -- - DB Bahncard as HandyTicket - -- note: customer data are included in the traveler data structure - -- ###################################################################################### - CustomerCardData ::= SEQUENCE { - - -- customer details - -- optional, as there might be an anonymous cards - customer TravelerType OPTIONAL, - - -- card id might be numerical or alphanumerical - cardIdIA5 IA5String OPTIONAL, - cardIdNum INTEGER OPTIONAL, - - -- valid from date in UTC - -- number of year - validFromYear INTEGER (2016..2269), - --- number of the day in the year (1.1. = 1) - validFromDay INTEGER (0..370) OPTIONAL, - - --- number of year from valid from year onwards - validUntilYear INTEGER (0..250) DEFAULT 0, - --- number of the day in the year (1.1. = 1) - validUntilDay INTEGER (0..370) OPTIONAL, - - classCode TravelClassType OPTIONAL, - - -- code of the card type code list defined by the issuer - cardType INTEGER (1..1000) OPTIONAL, - - -- readable description of the card type - cardTypeDescr UTF8String OPTIONAL, - - -- customer status code - -- 1 = basic - -- 2 = premium - -- 3 = silver - -- 4 = gold - -- 5 = platinum - -- 6 = senator - -- > 50 - code table of the card issuer - customerStatus INTEGER OPTIONAL, - - -- readable customer status "e.g. gold", - customerStatusDescr IA5String OPTIONAL, - - -- list of included services, - -- 1 = Rail Plus - -- 2 = access to launch - -- > 50 code list of the issuer - includedServices SEQUENCE OF INTEGER OPTIONAL, - - extension ExtensionData OPTIONAL - ,... - } - - -- ###################################################################################### - -- data for customer cards - -- included are data from: - -- - DB parking ground reservation - -- ####################################################################################### - ParkingGroundData ::= SEQUENCE { - - -- booking reference - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - parkingGroundId IA5String, - - -- parking date in local date time - -- number of days from the issuing date - fromParkingDate INTEGER (-1..370), - -- number of days from the from parking date in case it is different from that date - untilParkingDate INTEGER (0..370) DEFAULT 0, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- code needed to access the parking lot - accessCode IA5String OPTIONAL, - - location UTF8String, - - stationCodeTable CodeTableType DEFAULT stationUIC, - -- in case the parking ground is associated with a station - stationNum INTEGER OPTIONAL, - stationIA5 UTF8String OPTIONAL, - - specialInformation UTF8String OPTIONAL, - entryTrack UTF8String OPTIONAL, - numberPlate IA5String OPTIONAL, - - price INTEGER OPTIONAL, - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - - extension ExtensionData OPTIONAL - ,... - } - - -- ####################################################################### - -- data for countermarks issued with group tickets - -- included are data from: - -- - version 3 bar code (leaflet 918.9) - -- - printed layout (leaflet 918.8) - -- ######################################################################## - CountermarkData ::= SEQUENCE { - - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- reference of the group ticket - ticketReferenceIA5 IA5String OPTIONAL, - ticketReferenceNum INTEGER OPTIONAL, - - -- sequential number of the countermark - numberOfCountermark INTEGER (1..200), - -- total number of countermarks - totalOfCountermarks INTEGER (1..200), - -- name of the group - groupName UTF8String, - - - stationCodeTable CodeTableType DEFAULT stationUIC, - - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - -- description for manual evaluation in case structured data are not available - validRegionDesc UTF8String OPTIONAL, - -- specification of the ordered sequence of valid regions - validRegion SEQUENCE OF RegionalValidityType OPTIONAL, - - - -- ticket includes the return trip - returnIncluded BOOLEAN, - -- retrurn route description - -- can be omitted if it is identical to the inversed outbound validRegion sequence - returnDescription ReturnRouteDescriptionType OPTIONAL, - - -- local date - -- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - - -- number of days from valid from day, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - - classCode TravelClassType DEFAULT second, - - -- valid carriers - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- service brands where the ticket is valid - -- in case this list is provided the ticket is invalid on all other service brands - -- service brand: code list https://uic.org/service-brand-code-list - includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - -- service brands where the ticket is not valid - -- in case this list is provided the ticket is valid on all other service brands - excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - infoText UTF8String OPTIONAL, - - extension ExtensionData OPTIONAL - ,... - } - - - -- ########################################################################################### - -- generic non standard extension element - -- the generic non - standard element contains: - -- - an extension id to distinguish different extensions - -- - the extension data as binary data - -- proprietary extensions are by definition proprietary. This standard provides - -- the means to identify these extensions - -- within the data and to skip these data. - -- the evaluation of these data and the unique identification of the extensions - -- via the extension id is in the - -- responsibility of the railways which use these extensions. - -- ########################################################################################### - ExtensionData ::= SEQUENCE { - extensionId IA5String, - extensionData OCTET STRING - } - - -- ############################################################################################ - -- type definitions - -- ############################################################################################ - - -- ############################################################################################# - -- included open ticke for a part of the travel (e.g. local city trafic) - -- - data identically already included in the covering open ticket do not need to be - -- repeated here - -- - main source are the data required for included regional and city traffic tickets - -- ############################################################################################# - IncludedOpenTicketType ::= SEQUENCE { - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- issuer code using the default code table of the product owner (today used e.g. by VDV) - externalIssuerId INTEGER OPTIONAL, - -- authorization id provided to the issuer by the poroduct owner (today used e.g. by VDV) - issuerAutorizationId INTEGER OPTIONAL, - - -- regional validity data - stationCodeTable CodeTableType DEFAULT stationUIC, - -- specification of the ordered sequence of valid regions, ordered in the direction of travel - validRegion SEQUENCE OF RegionalValidityType OPTIONAL, - - -- temporal validity data in local date and time - -- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - -- number of days from valid-from date, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - - -- travel class to be given in case it differs from the class of the main ticket - classCode TravelClassType OPTIONAL, - -- servicelevel code according to leaflet 918.1 to encode other products (e.g. PREMIUM, ...) - -- to be provided in case it differs from the main ticket - serviceLevel IA5String (SIZE(1..2)) OPTIONAL, - - -- valid carriers (RICS codes) - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- service brands where the ticket is valid - -- in case this list is provided the ticket is invalid on all other service brands - -- service brand: code list https://uic.org/service-brand-code-list - includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - -- service brands where the ticket is not valid - -- in case this list is provided the ticket is valid on all other service brands - excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - - tariffs SEQUENCE OF TariffType OPTIONAL, - infoText UTF8String OPTIONAL, - - -- included or excluded transport modes - -- code list: EN 1545-1 (transport type code) - -- !!! new data elements - includedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, - excludedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, - - extension ExtensionData OPTIONAL - ,... - } - - -- ###################################################################################### - -- tariff data for open tickets - -- information included are: - -- - number of passengers - -- - optionally a link to the traveler data - -- ####################################################################################### - TariffType ::= SEQUENCE { - - -- number of passengers using the tariff - numberOfPassengers INTEGER (1..200) DEFAULT 1, - - -- type indication youth, adult, senior,.. - passengerType PassengerType OPTIONAL, - - -- age restrictions of the tariff - ageBelow INTEGER (1..64) OPTIONAL, - ageAbove INTEGER (1..128) OPTIONAL, - - - -- named traveler list - -- link to the traveler in case the travelers have to be named (e.g. Eurail passes) - -- the number indicates the position in the traveler list starting from 1 - -- change V2 0 -> 1.. - travelerid SEQUENCE OF INTEGER (1..254) OPTIONAL, - - -- restriction on country of residence - -- this tariff is restricted by the country of residence given in the traveler data - -- (e.g. Eurail tickets are not valid in the contry of residence) - restrictedToCountryOfResidence BOOLEAN, - - -- section in case the tariff applies to a part of the route only - restrictedToRouteSection RouteSectionType OPTIONAL, - - -- details on series according to leaflet 108.1 - seriesDataDetails SeriesDetailType OPTIONAL, - - -- tariff code - tariffIdNum INTEGER OPTIONAL, - tariffIdIA5 IA5String OPTIONAL, - - -- tariff description - tariffDesc UTF8String OPTIONAL, - - -- reduction cards applied (incl. discount cards, loyalty cards relevant for the tariff) - reductionCard SEQUENCE OF CardReferenceType OPTIONAL - ,... - } - - SeriesDetailType ::= SEQUENCE { - - -- data related to tariffs based on series according UIC leaflet 108.1 - -- supplying carrier according to UIC leaflet 108.1 (RICS code) - supplyingCarrier INTEGER (1..32000) OPTIONAL, - - -- offer identifier of the carrier according to UIC leaflet 108.1 - offerIdentification INTEGER (1..99) OPTIONAL, - - -- series of the carrier according to UIC leaflet 108.1 - series INTEGER OPTIONAL - } - - - RouteSectionType ::= SEQUENCE { - - stationCodeTable CodeTableType DEFAULT stationUIC, - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, -- IA5 or Num not both - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, -- IA5 or Num not both - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL - } - - - -- ####################################################################################### - -- customer card reference - -- ####################################################################################### - CardReferenceType ::= SEQUENCE { - - -- issuer of the card - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - cardIssuerNum INTEGER (1..32000) OPTIONAL, - cardIssuerIA5 IA5String OPTIONAL, - - cardIdNum INTEGER OPTIONAL, - cardIdIA5 IA5String OPTIONAL, - - -- Name of the card e.g. "VISA-CARD" - cardName UTF8String OPTIONAL, - - -- type of the card, code list defined by the issuer - cardType INTEGER OPTIONAL, - - -- in case only the leading part of the card number is provided - leadingCardIdNum INTEGER OPTIONAL, - leadingCardIdIA5 IA5String OPTIONAL, - - - -- in case only the trailing part of the card number is provided - trailingCardIdNum INTEGER OPTIONAL, - trailingCardIdIA5 IA5String OPTIONAL - - ,... - } - - -- ####################################################################################### - -- traveler data - -- - traveler data might contain all traveler details which are independent - -- from the type of travel document - -- e.g. it can include the date of birth as this is part of the traveler - -- but not the indication "Senior" as this is tariff dependent - -- - -- ####################################################################################### - TravelerType ::= SEQUENCE { - - firstName UTF8String OPTIONAL, - secondName UTF8String OPTIONAL, - lastName UTF8String OPTIONAL, - idCard IA5String OPTIONAL, - passportId IA5String OPTIONAL, - title IA5String (SIZE(1..3)) OPTIONAL, - gender GenderType OPTIONAL, - - -- customer id might be numerical or alphanumerical - customerIdIA5 IA5String OPTIONAL, - customerIdNum INTEGER OPTIONAL, - - -- date of birth - -- number of year - yearOfBirth INTEGER (1901..2155) OPTIONAL, - monthOfBirth INTEGER (1..12) OPTIONAL, - dayOfBirthInMonth INTEGER (1..31) OPTIONAL, - - -- indicates the ticket holder/group leader in case of groups - ticketHolder BOOLEAN, - - passengerType PassengerType OPTIONAL, - - passengerWithReducedMobility BOOLEAN OPTIONAL, - - -- country of residence (numeric ISO country code) - -- to be used in case there product restrictions on the country of residence (e.g. Eurail passes) - countryOfResidence INTEGER (1..999) OPTIONAL, - - countryOfPassport INTEGER (1..999) OPTIONAL, - countryOfIdCard INTEGER (1..999) OPTIONAL, - - status SEQUENCE OF CustomerStatusType OPTIONAL - ,... - } - - CustomerStatusType ::= SEQUENCE { - - -- compagny providing the status, default is the issuer - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - statusProviderNum INTEGER (1..32000) OPTIONAL, - statusProviderIA5 IA5String OPTIONAL, - - -- customer status code - -- 1 = basic - -- 2 = premium - -- 3 = silver - -- 4 = gold - -- 5 = platinum - -- 6 = senator - -- > 50 - code table of the card issuer - customerStatus INTEGER OPTIONAL, - - -- customer status "gold" - customerStatusDescr IA5String OPTIONAL - } - - - ReturnRouteDescriptionType ::= SEQUENCE { - - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - -- description for manual evaluation in case structured data are not available - validReturnRegionDesc UTF8String OPTIONAL, - - -- specification of the ordered sequence of valid regions for the return trip - validReturnRegion SEQUENCE OF RegionalValidityType OPTIONAL - ,... - - } - - -- ###################################################################################### - -- regional validity of an open ticket - -- specification of the regional validity. - -- ###################################################################################### - - RegionalValidityType ::= CHOICE { - trainLink TrainLinkType, - viaStations ViaStationType, - zones ZoneType, - lines LineType, - polygone PolygoneType - ,... - } - - - - -- ####################################################################################### - -- train link data - -- includes a restriction of an open ticket valid only on a specific train - -- and date on a part of the route - -- ####################################################################################### - TrainLinkType ::= SEQUENCE { - - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - -- local date at the station where the train link starts - -- days from the issuing date onwards - travelDate INTEGER (-1..370), - departureTime INTEGER (0..1439), -- time in minutes - departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL - - } - - - - -- ###################################################################################### - -- regional validity using a set of lines - -- - based on data used in regional city trafic enviromnemnts - -- ###################################################################################### - LineType ::= SEQUENCE { - - -- local service provider / carrier within the zone - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - carrierNum INTEGER (1..32000) OPTIONAL, - carrierIA5 IA5String OPTIONAL, - - -- ids of the valid lines known by the local carriers on that line - lineId SEQUENCE OF INTEGER OPTIONAL, - - stationCodeTable CodeTableType DEFAULT stationUIC, - - -- in case the line must be entered via a specific station - -- (e.g. local city traffic at the end of a journey - -- starting from the main train station) - entryStationNum INTEGER (1..9999999) OPTIONAL, - entryStationIA5 IA5String OPTIONAL, - - -- in case the line must be left via a specific station - -- (e.g. local city trafic at the beginning of a journey - -- terminating at the main train station) - terminatingStationNum INTEGER (1..9999999) OPTIONAL, - terminatingStationIA5 IA5String OPTIONAL, - - -- code of the local city in case the line is part of regional city transport - -- code list of the local carrier - city INTEGER OPTIONAL - ,... - } - - - -- ################################################################################# - -- regional validity in a zone - -- - based on data used in regional city trafic enviromnemnts - -- ################################################################################# - ZoneType ::= SEQUENCE { - - -- local service provider / carrier within the zone - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - carrierNum INTEGER (1..32000) OPTIONAL, - carrierIA5 IA5String OPTIONAL, - - stationCodeTable CodeTableType DEFAULT stationUIC, - -- in case the zone must be entered via a specific station - -- (e.g. local city traffic at the end of a journey starting - -- from the main train station) - entryStationNum INTEGER (1..9999999) OPTIONAL, - entryStationIA5 IA5String OPTIONAL, - - -- in case the zone must be left via a specific station - -- (e.g. local city traffic at the beginning of a journey - -- terminating at the main train station) - terminatingStationNum INTEGER (1..9999999) OPTIONAL, - terminatingStationIA5 IA5String OPTIONAL, - - -- code of the local city in case the zone is part of regional - -- city transport code list of the local carrier - city INTEGER OPTIONAL, - - -- ids of the valid zones known by the local carriers in that zone - zoneId SEQUENCE OF INTEGER OPTIONAL, - - -- binary encoding of zones, encoding specification provided by - -- the local service provider - binaryZoneId OCTET STRING OPTIONAL, - - -- EU NUTS code for a region - nutsCode IA5String OPTIONAL - ,... - } - - - -- ################################################################################## - -- via station - -- includes a description of of the route by via stations. - -- Via stations follow the description in leaflet 108.1: - -- via stations can e mandatory to pass (but there does not need to be a - -- train stop at this stations): visible route description: "*station*" - -- there can be a list of alternative routes: - -- visible route description: "*(station1/station2)*" - -- there can also be alternative routes: - -- "*(station1*station2/station3*station4)*" although the - -- definition in 108.2 is not very precice on this option - -- ################################################################################### - ViaStationType ::= SEQUENCE { - - stationCodeTable CodeTableType DEFAULT stationUIC, - -- mandatory via station - stationNum INTEGER (1..9999999) OPTIONAL, - stationIA5 IA5String OPTIONAL, - - -- list of alternative routes, one of these has to be taken - alternativeRoutes SEQUENCE OF ViaStationType OPTIONAL, - - -- list of stations along the route - route SEQUENCE OF ViaStationType OPTIONAL, - border BOOLEAN, - - -- carrier responsible for the transport starting at this station (RICS-Code) - -- in case the carrier is included here it might be omitted - -- in the carrier list of the region data - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- the route id as series number as defined in 108.1 data - seriesId INTEGER OPTIONAL, - - -- route id of the route code list defined by the carrier on that route - routeId INTEGER OPTIONAL - ,... - } - - - PolygoneType ::= SEQUENCE { - firstEdge GeoCoordinateType, - edges SEQUENCE OF DeltaCoordinates - } - - - -- ########################################################################################### - -- TokenType provides an additional identifier - -- known use cases - -- - identified of the mobile phone for tickets linked with a specific phone (e.g. VDV standard) - -- ########################################################################################### - TokenType ::= SEQUENCE { - -- provider of the token - tokenProviderNum INTEGER OPTIONAL, - tokenProviderIA5 IA5String OPTIONAL, - - -- in case the provider has multiple tokens - tokenSpecification IA5String OPTIONAL, - token OCTET STRING - } - - -- ########################################################################################### - -- TicketLinkType is used to define a link from the ticket in the bar code to another ticket - -- (requirement from Eurail) - -- use cases - -- - DB Alleo (open ticket + reservation) - -- - reservation of trailer and car carriage and traveller reservation - -- - link between open ticket and bicycle reservations or pass - -- - open ticket and vouchers for meals - -- ########################################################################################### - TicketLinkType ::= SEQUENCE { - - -- data to reference the external ticket - -- reference must be given in numeric or alphanumeric format - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - issuerName UTF8String OPTIONAL, -- name of the issuer - - issuerPNR IA5String OPTIONAL, -- in case the ticket can also be identified via - -- the issuer PNR - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- type of linked ticket - ticketType TicketType DEFAULT openTicket, - - -- type of link - linkMode LinkMode DEFAULT issuedTogether - ,... - } - - -- ############################################################################################ - -- code table used fort station codes - -- defines the code table used e.g. to define station code - -- - stationUIC = station codes as used in UIC leaflet 108.1 for open tickets - -- - stationUICReservation = station codes as used in Reservation leaflets 918.1 and 108.2 - -- ############################################################################################ - - CodeTableType ::= ENUMERATED { - -- standard UIC station code from MERITS (UIC country code + 5 digit local code) - stationUIC (0), - -- standard UIC station code for reservation - stationUICReservation (1), - -- future standard ERA station code - stationERA (2), - -- local carrier code list - -- e.g. in case of stations / stops of non-railways stops (city traffic) - localCarrierStationCodeTable (3), - - -- non standard code to be used within the issuer eco system only - -- not applicable for multi carrier travel documents - -- or in case issuer and carrier are different - proprietaryIssuerStationCodeTable (4) - - } - - - ServiceType ::= ENUMERATED { - seat (0), - couchette (1), - berth (2), - carcarriage (3) - } - - - PassengerType ::= ENUMERATED { - adult (0), - senior (1), - child (2), - youth (3), - dog (4), - bicycle (5), - freeAddonPassenger (6), - freeAddonChild (7) - ,... - } - - TicketType ::= ENUMERATED { - openTicket (0), - pass (1), - reservation (2), - carCarriageReservation (3) - ,... - } - - LinkMode ::= ENUMERATED { - issuedTogether (0), - onlyValidInCombination (1) - ,... - } - - - -- #################################################################################### - -- place data corresponding to leaflet 918.1 - -- placeString = place number ranges in case of groups - -- #################################################################################### - PlacesType ::= SEQUENCE { - coach IA5String OPTIONAL, - - -- printable place string ("15-18, 21, 22" ) - placeString IA5String OPTIONAL, - - -- printable place description - placeDescription UTF8String OPTIONAL, - - -- individual places - placeIA5 SEQUENCE OF IA5String OPTIONAL, - placeNum SEQUENCE OF INTEGER (1..254) OPTIONAL - } - - PriceTypeType ::= ENUMERATED { - noPrice (0), - reservationFee (1), - supplement (2), - travelPrice (3) - } - - BerthTypeType ::= ENUMERATED { - single (0), - special (1), - double (2), - t2 (3), - t3 (4), - t4 (5) - } - - CompartmentGenderType ::= ENUMERATED { - unspecified (0), - family (1), - female (2), - male (3), - mixed (4) - ,... - } - - GenderType ::= ENUMERATED { - unspecified (0), - female (1), - male (2), - other (3) - ,... - } - - TravelClassType ::= ENUMERATED { - notApplicable (0), - first (1), - second (2), - tourist (3), - comfort (4), - premium (5), - business (6), - all (7), - premiumFirst (8), - standardFirst (9), - premiumSecond (10), - standardSecond (11) - ,... - } - - -- ######################################################################################## - -- sleeper compartment types corresponding to leaflet 918.1 - -- ######################################################################################## - BerthDetailData ::= SEQUENCE { - berthType BerthTypeType, - numberOfBerths INTEGER (1..999), - gender CompartmentGenderType DEFAULT family - ,... - } - - -- #################################################################################### - -- compartment details corresponding to leaflet 918.1 - -- #################################################################################### - CompartmentDetailsType ::= SEQUENCE { - coachType INTEGER (1..99) OPTIONAL, - compartmentType INTEGER (1..99) OPTIONAL, - specialAllocation INTEGER (1..99) OPTIONAL, - coachTypeDescr UTF8String OPTIONAL, - compartmentTypeDescr UTF8String OPTIONAL, - specialAllocationDescr UTF8String OPTIONAL, - position CompartmentPositionType DEFAULT unspecified - ,... - } - - - -- ##################################################################################### - -- luggage restrictions - -- the basis for these data is week: - -- SCIC mentions a maximum of three pieces of hand luggage but does not includes - -- a definition of hand luggage - -- SCIC refers to special conditions on registered luggage, but SCIC NRT does - -- not contain definitions on that and UIC 108.1 does not - -- contain data structures for luggage - -- - current THALYS luggage restrictions - -- ##################################################################################### - LuggageRestrictionType ::= SEQUENCE { - -- allowed hand luggage pieces on this ticket (3 = default in current NRT tariff) - maxHandLuggagePieces INTEGER(0..99) DEFAULT 3, - -- allowed hand luggage pieces on this ticket (3 = default in current NRT tariff) - maxNonHandLuggagePieces INTEGER(0..99) DEFAULT 1, - registeredLuggage SEQUENCE OF RegisteredLuggageType OPTIONAL - ,... - - } - - RegisteredLuggageType ::= SEQUENCE { - -- id of the additional registered luggage - registrationId IA5String OPTIONAL, - -- maximum weight in kg - maxWeight INTEGER (1..99) OPTIONAL, - -- sum of length with and height in cm - maxSize INTEGER (1..300) OPTIONAL - ,... - - } - - -- ########################################################################################## - -- generic type for geo coordinates - -- ########################################################################################## - GeoCoordinateType ::= SEQUENCE { - geoUnit GeoUnitType DEFAULT milliDegree, - coordinateSystem GeoCoordinateSystemType DEFAULT wgs84, - -- separate hemishpere flag reduces the data size - hemisphereLongitude HemisphereLongitudeType DEFAULT north, - -- separate hemishpere flag reduces the data size - hemisphereLatitude HemisphereLatitudeType DEFAULT east, - longitude INTEGER, - latitude INTEGER, - accuracy GeoUnitType OPTIONAL - } - - DeltaCoordinates ::= SEQUENCE { - -- logitude difference to a reference point - longitude INTEGER, - -- latitude difference to a reference point - latitude INTEGER - } - - GeoCoordinateSystemType ::= ENUMERATED { - wgs84 (0), -- WGS 84 standard system - grs80 (1) -- (outdated) GRS 80 coordinate system - } - - GeoUnitType ::= ENUMERATED { - microDegree (0), -- approx. 11 cm on earth surface - tenthmilliDegree (1), -- 1 / 10000 degree is approx. 11 meter on earth surface - milliDegree (2), -- approx 110 meter on earth surface - centiDegree (3), - deciDegree (4) - } - - HemisphereLongitudeType ::= ENUMERATED { - north (0), - south (1) - } - - HemisphereLatitudeType ::= ENUMERATED { - east (0), - west (1) - } - - LoadingDeckType ::= ENUMERATED { - unspecified (0), - upper (1), - lower (2) - } - - CompartmentPositionType ::= ENUMERATED { - unspecified (0), - upperLevel (1), - lowerLevel (2) - } - - RoofRackType ::= ENUMERATED { - norack (0), - roofRailing (1), - luggageRack (2), - skiRack (3), - boxRack (4), - rackWithOneBox (5), - rackWithTwoBoxes (6), - bicycleRack (7), - otherRack (8) - ,... - } - -======= --- Creator: ASN.1 Editor (http://asneditor.sourceforge.net) --- Author: ClemensGantert --- Created: Tue Aug 11 11:40:28 CEST 2015 -ASN-Module DEFINITIONS AUTOMATIC TAGS ::= BEGIN - --- imports and exports --- EXPORTS ALL; - - --- changes: --- product id 1 bit more 65535 --- open ticket transport mode EN 1545-1 --- allowing -1 in differences of days between dates (validity of tickets crossing time zones) - --- ############################################################################################## --- # --- # Draft version 2.0 - value 2 in the UIC bar code version element --- # (see element 2 in U_FLEX record definition in leaflet 918.9) --- # --- ############################################################################################## - - --- ############################################################################################## --- # --- # Naming and encoding conventions --- # --- # Elements included as String and as Numeric values: --- # Some elements are included in different formats to reduce the data size. --- # These elements must be included only once. --- # These elements are named with the same name and appendix --- # Num (numeric values) --- # IA5 (String values according to ASN IA5String (7Bit)) --- # Example: --- # trainNum - in case of a numeric train number --- # trainIA5 - in case of a alphanumeric train Id --- # --- # --- # RICS codes must be used to encode companies (issuer, product owner, ...) where available --- # other codes are possible based on bilateral agreements --- # the format is kept more flexible to cover upcoming extensions of the RICS code by ERA --- # --- # Stations can be coded using the UIC and upcoming ERA code lists. Proprietary codes are --- # possible based on bilateral agreements. Format: 1..9999999 or alphanumeric without --- # special character (IA5String) --- # --- # --- # ! INTEGERS must not exceed the value of 9,223,372,036,854,775,807 (64 bit) even in case --- # ! they are unrestricted!!! --- # ! --- # ! Some elements like ReferenceNum or cardIdNum are defined as an unrestricted integer. --- # ! Unlike other numerical values the cardIdNum and referenceNum can be larger than a usual 32 bit Integer --- # ! Some ASN.1 implementation tools are limited to 32 bit integers which is too small. --- # ! Please ensure to use a tool capable of dealing with larger numbers. --- # --- # Optional BOOLEANs have three values: "true", "false", "unknown" = the Boolean is absent from the data. --- # --- # --- # Encoding of time: --- # time is encoded as the number of minutes of the day 0 = 00:00, 1439 = 23:59, --- # time data elements end with "time" in their name --- # --- # Encoding of date: --- # ......................................................................................................... --- # The issuing date is given in UTC, but some other date values are given in local time where the exact time zone is not known. --- # --- # For local dates the date is associated with the corresponding location: --- # e.g.: --- # valid from date -> location where the journey starts --- # valid until date -> location where the journey covered by the ticket ends --- # --- # there could be rare cases where this does not provide a unique interpretation: --- # e.g. open ticket or pass without start and end location for a collection of zones or countries with different time zones. --- # in these cases the fare conditions must clarify the rules for these cases (e.g. by allowing to use the --- # ticket a few hours after the end of validity). --- # --- # The difference in days is calculated from dates only, ignoring the time and time zone information. --- # --- # example 1: (31.12.2017 23:05 UTC == 01.01.2018 00:05 CET) : --- # issuing date (UTC): 31.12.2017 23:05 == 01.01.2018 00:05 CET --- # issuingYear = 2017 --- # issuingDay = 365 --- # issuingTime = 1385 --- # local departure date (CET): 01.01.2018 00:15 == 31.12.2017 23:15 UTC --- # departureDate = 1 (= 01.01.2018 - 31.12.2017) --- # departureTime = 15 --- # departureUTCOffset = -4 (UTC = local + offset * 15 Minutes) --- # --- # --- # example 2: (01.01.2018 00:05 UTC == 31.12.2017 20:05 AST) --- # issuing date (UTC): 01.01.2018 00:05 UTC == 31.12.2017 20:05 AST --- # issuingYear = 2018 --- # issuingDay = 1 --- # issuingTime = 5 --- # local departure date (AST): 31.12.2017 22:05 AST == 1.1.2018 02:05 UTC --- # departureDate = -1 (= 31.12.2017 - 01.01.2018) --- # departureTime = 1325 --- # departureUTCOffset = 16 (UTC = local + offset * 15 Minutes) --- # --- # departureDate can become -1 with a departure west of the GMT zone only --- # --- # --- # --- # --- # --- # --- # ASN.1 Extensions: --- # --- # The specification makes use of extension (",..."). --- # These extensions might be defined in future versions of the UIC specification --- # Implementations must support the extension feature of ASN.1, at least they must be able to ignore extensions while decoding the data --- # ASN.1 extensions will be defined by UIC. It is not allowed to define bilateral extensions. --- # --- # Bilateral Extensions: --- # Bilateral extensions can be included in the data element "ExtensionData". --- # --- # --- # --- ######################################################################################### - - --- ############################################################################################ - - --- type assignments - - -- ######################################################################################### - -- the basic entry point of the data structure - -- the data include: - -- -issuer informations - -- -the details of the transport document - -- -informations required for the control process - -- -informations on the travelers independent from the transport document - -- -proprietary extensions - -- - -- ########################################################################################## - UicRailTicketData ::= SEQUENCE { - -- data specific to the issuer - issuingDetail IssuingData, - - -- data on the travelers - travelerDetail TravelerData OPTIONAL, - - -- data of the transport document - --!!! proposal: replace this by a comment in the lealet on the total size of the barcode: more than one document to be used on bilateral agreement only - transportDocument SEQUENCE OF DocumentData OPTIONAL, - - -- data specific to support the ticket control process - controlDetail ControlData OPTIONAL, - - -- proprietary data defined bilaterally - extension SEQUENCE OF ExtensionData OPTIONAL - ,... - } - - - - -- ########################################################################################### - -- the choice on the different transport documents that can be included in the bar code data: - -- - reservation of seat / couchette or berths (IRT, RES, BOA) - -- - reservation of car carriage (VET) - -- - open ticket (NRT including NRT group ticket) (NRT, GRT, SUP, UPD, COI) - -- - Rail passes (including Eurail, Interail and local passes) (RPT) - -- - Voucher (TRV) - -- - Customer Cards (including bonus cards and reduction cards) - -- - counter marks issued for group tickets - -- - parking ground tickets - -- - FIP tickets - -- - station access / station passage tickets - -- - proprietary documents as an extension - -- ############################################################################################ - DocumentData ::= SEQUENCE { - - -- token - -- specific id to be exchanged with the ticket (e.g. id of the phone in case of tickets linked to a phone) - token TokenType OPTIONAL, - - -- choice of the ticket - ticket CHOICE - { - - -- Reservation (without car carriage) (IRT and RES) - reservation ReservationData, - - - -- Reservation of car carriage - carCarriageReservation CarCarriageReservationData, - - -- open ticket specification (NRT) - openTicket OpenTicketData, - - -- pass specification (RPT) including Eurail and Interrail - pass PassData, - - -- voucher - voucher VoucherData, - - -- customer card either to identify a customer and / or to provide reductions - customerCard CustomerCardData, - - -- countermark to accompagny a group ticket - counterMark CountermarkData, - - -- car parking slot - parkingGround ParkingGroundData, - - -- FIP duty ticket - fipTicket FIPTicketData, - - -- ticket to pass the gates at a station - stationPassage StationPassageData, - - -- proprietary data defined bilaterally - extension ExtensionData, - - -- delay confirmation - delayConfirmation DelayConfirmation - - ,... - } - ,... - } - - -- ######################################################################################## - -- confirmation of the delay of a train - -- - -- ######################################################################################## - DelayConfirmation ::= SEQUENCE { - - -- reference of the delay confirmation - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- train number of the delayed train - numeric or alphanumeric - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - -- departure date of the delayed train in local time - -- number of year - departureYear INTEGER (2016..2269) OPTIONAL, - -- number of the day in the year (1.1. = 1) - departureDay INTEGER (1..366) OPTIONAL, - departureTime INTEGER (0..1439) OPTIONAL, - departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - -- station where the delay became relevant - stationCodeTable CodeTableType DEFAULT stationUIC, - stationNum INTEGER (1..9999999) OPTIONAL, - stationIA5 IA5String OPTIONAL, - - -- delay in minutes at the mentioned station - delay INTEGER (1..999), - - -- indication that the train was cancelled - trainCancelled BOOLEAN, - - -- type of confirmation provided - confirmationType ConfirmationType DEFAULT travelerDelayConfirmation, - - -- affected original ticket(s) - affectedTickets SEQUENCE OF TicketLinkType OPTIONAL, - - -- info text - infoText UTF8String OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL - ,... - } - - ConfirmationType ::= ENUMERATED { - trainDelayConfirmation (0), -- confirmation of train delay, whether the traveler was on board in unconfirmed - travelerDelayConfirmation (1), -- confirmation that the traveler was on board of the delayed train - trainLinkedTicketDelay (2) -- confirmation that a ticket linked to the delayed train was issued - ,... - } - - - -- ######################################################################################## - -- Details of the issuer and the issue of the ticket - -- - details on the issuer - -- - indication of test tickets (specimen) - -- - payment details: method of payment, currency - -- - proprietary PNR of the issuer to be used to identify the sale within - -- the issuers ecosystem - -- - web link to display more information for the customer - -- - proprietary extension data - -- ######################################################################################## - IssuingData ::= SEQUENCE { - - -- provider of the signature (RICS code) - securityProviderNum INTEGER (1..32000) OPTIONAL, - securityProviderIA5 IA5String OPTIONAL, - - -- issuer of the transport document if the issuer is different from the security provider - -- (RICS code) - issuerNum INTEGER (1..32000) OPTIONAL, - issuerIA5 IA5String OPTIONAL, - - -- issuing time stamp in UTC - -- number of year - issuingYear INTEGER (2016..2269), - -- number of the day in the year (1.1. = 1) - issuingDay INTEGER (1..366), - -- The number of the minutes of issue might be used in case of account - -- based ticketing with a delay of n minutes for the replication of central - -- booking data to the control devices (e.g. at SBB) - -- The time can be compared with the last synchronization time of - -- the control device - issuingTime INTEGER (0..1439) OPTIONAL, - - -- name of the issuer (E.g. short name mentioned in RICS code table) - issuerName UTF8String OPTIONAL, - - -- specimen indicates a test specimen not valid for travelling - specimen BOOLEAN, - - -- secure paper indicates that this barcode is issued with a secure paper ticket - -- to ensure the uniqueness of the ticket. This allows to use the same control - -- procedure as for e-tickets also for anonymous tickets - -- the double use of the ticket is in this case excluded by the secure paper - securePaperTicket BOOLEAN, - - -- indicates that the ticket is valid for traveling or still needs activation - activated BOOLEAN, - - -- currency of the price: ISO4217 currency codes - currency IA5String (SIZE(3)) DEFAULT "EUR", - - -- fraction of the prices included - currencyFract INTEGER (1..3) DEFAULT 2, - - -- PNR used by the issuer to identify the document - issuerPNR IA5String OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL, - - -- location of sale in case of a sale on board of a train - -- numeric train number or alphanumeric id of the train where the ticket was sold - issuedOnTrainNum INTEGER OPTIONAL, - issuedOnTrainIA5 IA5String OPTIONAL, - -- line number - issuedOnLine INTEGER OPTIONAL, - - -- point of sale - pointOfSale GeoCoordinateType OPTIONAL - ,... - } - - -- ################################################################################### - -- data supporting the control process - -- - list of items which the traveler can use to identify himself or the unique - -- usage of the ticket - -- (card ids, parts or identity card numbers, credit card numbers,..) - -- - hints on the validation to be made on board - -- - -- ################################################################################### - ControlData ::= SEQUENCE { - - -- cards that can be used to identify the ticket holder - identificationByCardReference SEQUENCE OF CardReferenceType OPTIONAL, - - -- id-card id must be checked to identify the traveler - identificationByIdCard BOOLEAN, - - -- passport id must be checked to identify the traveler - identificationByPassportId BOOLEAN, - - -- other items which could be used to identify the ticket holder - -- (for future use, code list to be defined) - identificationItem INTEGER OPTIONAL, - - -- validation of the passport is required (e.g. in case of Eurail) - passportValidationRequired BOOLEAN, - - -- online validation of the ticket required - onlineValidationRequired BOOLEAN, - - -- percentage of the tickets to be validated in more detail - -- (i.e. via online check or detailed checks later-on) - randomDetailedValidationRequired INTEGER (0..99) OPTIONAL, - - -- manual validation of the traveler age required (in case of reductions) - ageCheckRequired BOOLEAN, - - -- manual validation of the travelers reduction card required (in case of reductions) - reductionCardCheckRequired BOOLEAN, - - -- controler info text - infoText UTF8String OPTIONAL, - - -- additional tickets that should be controlled - includedTickets SEQUENCE OF TicketLinkType OPTIONAL, - - -- proprietary data defined bilaterally - extension ExtensionData OPTIONAL - ,... - } - - -- ################################################################################ - -- Traveler data - -- these data do not include tariff details of the booked tariffs, - -- tariff data are included in the transport document details and might - -- have a reference to the traveler defined here. - -- - personal data of the travellers - -- - the index of the list can be used to identify the - -- traveler within other contexts (e.g. in assigned tariffs) - -- ################################################################################ - TravelerData ::= SEQUENCE { - -- traveler list - traveler SEQUENCE OF TravelerType OPTIONAL, - - -- ISO 639-1 coding of the language preferred for the traveler / ticket holder - preferredLanguage IA5String (SIZE(2)) OPTIONAL, - - -- name of the group in case of a group ticket - groupName UTF8String OPTIONAL - ,... - } - - -- #################################################################################### - -- the following part contains the different transport document specifications - -- #################################################################################### - - - -- #################################################################################### - -- reservations of seats , couchettes and berths - -- included are the data defined in: - -- - leaflet 918.1 for reservation data exchange - -- - a few additional data currently used by some railways via different interfaces - -- - information on trach an dplafoorm where the coach stops - -- - additional second coach for large groups - -- #################################################################################### - ReservationData ::= SEQUENCE { - - -- train number - numeric or alphanumeric - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - -- departure date in local time - -- number of the days calculated from the issuing date - departureDate INTEGER (-1..370) DEFAULT 0, - - - -- reservation reference according ton 918.1 in case ade via Hermes - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code to be used as standard) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- service brand: code list https://uic.org/service-brand-code-list - serviceBrand INTEGER (0..32000) OPTIONAL, - serviceBrandAbrUTF8 UTF8String OPTIONAL, - serviceBrandNameUTF8 UTF8String OPTIONAL, - - -- service code list from 918.1 (seat couchette,..) - service ServiceType DEFAULT seat, - - -- code table used to encode stations - stationCodeTable CodeTableType DEFAULT stationUICReservation, - - -- origin station code - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - -- destination station code - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - -- origin station name - fromStationNameUTF8 UTF8String OPTIONAL, - - -- destination station name - toStationNameUTF8 UTF8String OPTIONAL, - - -- departure time - departureTime INTEGER (0..1439), - departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- arrival date and time in local time - -- number of days counted from the departure date - -- !!! proposal for change: arrivalDate INTEGER (-1..20) DEFAULT 0, - arrivalDate INTEGER (-1..20) DEFAULT 0, - arrivalTime INTEGER (0..1439) OPTIONAL, - arrivalUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - -- responsible carriers on the route - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - -- travel class - classCode TravelClassType DEFAULT second, - - -- service level code list from 918.1 - serviceLevel IA5String (SIZE(1..2)) OPTIONAL, - - -- places - places PlacesType OPTIONAL, - - -- additional places in a second coach - additionalPlaces PlacesType OPTIONAL, - - --bicycle places - bicyclePlaces PlacesType OPTIONAL, - - -- compartment details (open space, wheelchair,..) - compartmentDetails CompartmentDetailsType OPTIONAL, - - -- number of persons on the ticket without place numbers (on IRT) - numberOfOverbooked INTEGER (0..200) DEFAULT 0, - - -- description of berths - berth SEQUENCE OF BerthDetailData OPTIONAL, - - -- tariffs included (Adult, Children,... ) - tariff SEQUENCE OF TariffType OPTIONAL, - - -- type of the price (supplement,... ) - priceType PriceTypeType DEFAULT travelPrice, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - -- type of supplement - code list from 918.1 - typeOfSupplement INTEGER (0..9) DEFAULT 0, - - numberOfSupplements INTEGER (0..200) DEFAULT 0, - - -- luggage restrictions and registered luggage - -- in case the luggage restrictions are general and do not depend on the - -- ticket type they should not be included - luggage LuggageRestrictionType OPTIONAL, - - infoText UTF8String OPTIONAL, - - - -- bilaterally agreed proprietary extension - extension ExtensionData OPTIONAL - ,... - } - - -- ################################################################################# - -- details on the VAT included to be used in after sale processes - -- ################################################################################# - VatDetailType ::= SEQUENCE { - - -- ISO 3166 numeric country code - country INTEGER (1..999), - - -- 1/10th of a percent - percentage INTEGER (0..999), - - -- amount of VAT, the currency and the currency fraction is included in the issuing data - amount INTEGER OPTIONAL, - - -- european tax id of the company paying VAT - vatId IA5String OPTIONAL - - } - - - -- ################################################################################# - -- reservations of car carriage - -- included are the data defined in: - -- - leaflet 918.1 for reservation data exchange - -- - a few additional data currently used by some railways via different interfaces - -- ################################################################################# - CarCarriageReservationData ::= SEQUENCE { - - trainNum INTEGER OPTIONAL, - trainIA5 IA5String OPTIONAL, - - - -- loading / unloading of the car in local date and time - -- number of the days calculated from the issuing date - beginLoadingDate INTEGER (-1..370) DEFAULT 0, - beginLoadingTime INTEGER (0..1439) OPTIONAL, - endLoadingTime INTEGER (0..1439) OPTIONAL, - loadingUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - - -- reservation reference according on 918.1 in case ade via Hermes - referenceIA5 IA5String OPTIONAL, - referenceNum INTEGER OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- service brand: code list https://uic.org/service-brand-code-list - serviceBrand INTEGER (1..32000) OPTIONAL, - serviceBrandAbrUTF8 UTF8String OPTIONAL, - serviceBrandNameUTF8 UTF8String OPTIONAL, - - stationCodeTable CodeTableType DEFAULT stationUICReservation, - - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - coach IA5String OPTIONAL, - place IA5String OPTIONAL, - - compartmentDetails CompartmentDetailsType OPTIONAL, - - -- description of the car - numberPlate IA5String, - trailerPlate IA5String OPTIONAL, - carCategory INTEGER (0..9), - boatCategory INTEGER (0..6) OPTIONAL, - textileRoof BOOLEAN, - roofRackType RoofRackType DEFAULT norack, - - -- height of a roof rack in cm - roofRackHeight INTEGER (0..99) OPTIONAL, - - -- number of boats on a rack - attachedBoats INTEGER (0..2) OPTIONAL, - - -- number of biycles on a rack - attachedBicycles INTEGER (0..4) OPTIONAL, - - -- number of surf boards on a rack - attachedSurfboards INTEGER (0..5) OPTIONAL, - - -- reference to an entry on the loading list - loadingListEntry INTEGER (0..999) OPTIONAL, - loadingDeck LoadingDeckType DEFAULT upper, - - -- responsible carriers on the route (RICS codes) - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - tariff TariffType, - priceType PriceTypeType DEFAULT travelPrice, - - price INTEGER OPTIONAL, - - vatDetail SEQUENCE OF VatDetailType OPTIONAL, - - infoText UTF8String OPTIONAL, - extension ExtensionData OPTIONAL - ,... - } - - - -- ##################################################################################### - -- data for open tickets (NRT and group tickets) - -- included are the data defined in: - -- - the ticket layout (leaflet 918.8) - -- - the ticket bar code version 3 (leaflet 918.9) - -- - additional data based on 108.1 with some extensions as 108.1 - -- does not provide well structured data, - -- especially concerning regional validity - -- - -- ##################################################################################### - - OpenTicketData ::= SEQUENCE { - - -- reference must be given either in numeric or alphanumeric format - referenceNum INTEGER OPTIONAL, - referenceIA5 IA5String OPTIONAL, - - -- organization responsible for the product definition - -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) - productOwnerNum INTEGER (1..32000) OPTIONAL, - productOwnerIA5 IA5String OPTIONAL, - - -- product id to identify the issued product codelist defined by the product owner - -- !!! productIdNum extended - productIdNum INTEGER (0..65535) OPTIONAL, - productIdIA5 IA5String OPTIONAL, - - -- to support other ticket content (e.g. VDV, UTPF, V�V, CALYPSO) - -- issuer code using the default code table of the product owner - extIssuerId INTEGER OPTIONAL, - -- authorization id provided to the issuer by the product owner - issuerAutorizationId INTEGER OPTIONAL, - - -- ticket includes the return trip - should be set to false if it is not relevant (e.g. zones) - returnIncluded BOOLEAN, - - -- for tickets valid in regions without from or to stations no station is provided - stationCodeTable CodeTableType DEFAULT stationUIC, - fromStationNum INTEGER (1..9999999) OPTIONAL, - fromStationIA5 IA5String OPTIONAL, - - -- for tickets valid in regions without from or to stations no station is provided - toStationNum INTEGER (1..9999999) OPTIONAL, - toStationIA5 IA5String OPTIONAL, - - fromStationNameUTF8 UTF8String OPTIONAL, - toStationNameUTF8 UTF8String OPTIONAL, - - -- description for manual evaluation in case structured data are not available - validRegionDesc UTF8String OPTIONAL, - -- specification of the ordered sequence of valid regions - validRegion SEQUENCE OF RegionalValidityType OPTIONAL, - - -- return route description - -- the return route description can be omitted if it is identical to the - -- inversed outbound validRegion sequence - returnDescription ReturnRouteDescriptionType OPTIONAL, - - -- temporal validity data in local time of the location where the journey starts - -- number of days from issuing date - validFromDay INTEGER (-1..700) DEFAULT 0, - validFromTime INTEGER (0..1439) OPTIONAL, - validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - - -- number of days from valid-from date, 0 = first day of validity - validUntilDay INTEGER (-1..370) DEFAULT 0, - validUntilTime INTEGER (0..1439) OPTIONAL, - validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC - -- (UTC = local + offset * 15 Minutes) - -- should be omitted in case it is the same as for departure - - -- travel days of a ticket might be subject to a separate activation to be valid for traveling - -- here it is possible to list the activated days of the ticket: - -- list of activated days in case the entire ticket is not activated - -- the day is given by the number of days from the first day of validity - -- change in V2 1 -> 0..370 - -- 0 = first day of validity - activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, - - classCode TravelClassType DEFAULT second, - - -- servicelevel code according to leaflet 918.1 to encode other products - -- (e.g. PREMIUM, ...) - serviceLevel IA5String (SIZE(1..2)) OPTIONAL, - - -- carriers involved in the transport (RICS codes) - -- the indication of carriers is mandatory on international routes, they can be - -- listed here but can also be included in viaDetails - carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, - carrierIA5 SEQUENCE OF IA5String OPTIONAL, - - - -- list of service brands for which the ticket is valid - -- in case the included service brands are listed all other brands are excluded - -- service brand: code list https://uic.org/service-brand-code-list - includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, - |