-- use of parameters and types is to be consistent with their definitions in clause 3 ISO-10161-ILL-1 DEFINITIONS EXPLICIT TAGS ::= BEGIN -- ISO-10161-ILL-1 refers to the ILL ISO standard 10161 version 1 -- and version 2 as specified in ISO standard 10161 Amendment 1 ILL-APDU ::= CHOICE { ILL-Request, Forward-Notification, Shipped, ILL-Answer, Conditional-Reply, Cancel, Cancel-Reply, Received, Recall, Returned, Checked-In, Overdue, Renew, Renew-Answer, Lost, Damaged, Message, Status-Query, Status-Or-Error-Report, Expired } -- The tagging scheme used in the APDU definitions is as follows: -- each named type that is a component type of an APDU definition is assigned a different tag -- that is unique within the set of APDU definitions. Where these component types themselves -- have structure, the tagging within such type definitions has only local scope. ILL-Request ::= [APPLICATION 1] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, delivery-address [6] IMPLICIT Delivery-Address OPTIONAL, delivery-service Delivery-Service OPTIONAL, billing-address [8] IMPLICIT Delivery-Address OPTIONAL, iLL-service-type [9] IMPLICIT SEQUENCE SIZE (1..5) OF ILL-Service-Type, -- this sequence is a list, in order of preference responder-specific-service [10] EXTERNAL OPTIONAL, -- use direct reference style requester-optional-messages [11] IMPLICIT Requester-Optional-Messages-Type, search-type [12] IMPLICIT Search-Type OPTIONAL, supply-medium-info-type [13] IMPLICIT SEQUENCE SIZE (1..7) OF Supply-Medium-Info-Type OPTIONAL, -- this sequence is a list, in order of preference, -- with a maximum number of 7 entries place-on-hold [14] IMPLICIT Place-On-Hold-Type DEFAULT 3, client-id [15] IMPLICIT Client-Id OPTIONAL, item-id [16] IMPLICIT Item-Id, supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, cost-info-type [18] IMPLICIT Cost-Info-Type OPTIONAL, copyright-compliance [19] ILL-String OPTIONAL, third-party-info-type [20] IMPLICIT Third-Party-Info-Type OPTIONAL, -- mandatory when initiating a FORWARD service or an -- ILL-REQUEST service for a partitioned ILL sub- -- transaction or when initiating an ILL-REQUEST service for -- an ILL sub-transaction if the received ILL-REQUEST -- included an "already-tried-list";optional otherwise retry-flag [21] IMPLICIT BOOLEAN DEFAULT FALSE, forward-flag [22] IMPLICIT BOOLEAN DEFAULT FALSE, requester-note [46] ILL-String OPTIONAL, forward-note [47] ILL-String OPTIONAL, iLL-request-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Forward-Notification ::= [APPLICATION 2] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id, -- mandatory in this APDU responder-address [24] IMPLICIT System-Address OPTIONAL, intermediary-id [25] IMPLICIT System-Id, notification-note [48] ILL-String OPTIONAL, forward-notification-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Shipped ::= [APPLICATION 3] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-address [24] IMPLICIT System-Address OPTIONAL, intermediary-id [25] IMPLICIT System-Id OPTIONAL, supplier-id [26] IMPLICIT System-Id OPTIONAL, client-id [15] IMPLICIT Client-Id OPTIONAL, transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, shipped-service-type [27] IMPLICIT Shipped-Service-Type, responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type OPTIONAL, supply-details [29] IMPLICIT Supply-Details, return-to-address [30] IMPLICIT Postal-Address OPTIONAL, responder-note [46] ILL-String OPTIONAL, shipped-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } ILL-Answer ::= [APPLICATION 4] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications transaction-results [31] IMPLICIT Transaction-Results, results-explanation [32] CHOICE { conditional-results [1] Conditional-Results, -- chosen if transaction-results=CONDITIONAL retry-results [2] Retry-Results, -- chosen if transaction-results=RETRY unfilled-results [3] Unfilled-Results, --chosen if transaction-results=UNFILLED locations-results [4] Locations-Results, -- chosen if transaction-results=LOCATIONS-PROVIDED will-supply-results [5] Will-Supply-Results, -- chosen if transaction-results=WILL-SUPPLY hold-placed-results [6] Hold-Placed-Results, -- chosen if transaction-results=HOLD-PLACED estimate-results [7] Estimate-Results -- chosen if transaction-results=ESTIMATE } OPTIONAL, -- optional if transaction-results equals RETRY, UNFILLED, -- WILL-SUPPLY or HOLD-PLACED; -- required if transaction-results equals CONDITIONAL, -- LOCATIONS-PROVIDED or ESTIMATE responder-specific-results [33] EXTERNAL OPTIONAL, -- this type is mandatory if results-explanation -- chosen for any result -- has the value "responder-specific". supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, send-to-list [23] IMPLICIT Send-To-List-Type OPTIONAL, already-tried-list [34] IMPLICIT Already-Tried-List-Type OPTIONAL, responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type OPTIONAL, responder-note [46] ILL-String OPTIONAL, ill-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Conditional-Reply ::= [APPLICATION 5] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications answer [35] IMPLICIT BOOLEAN, requester-note [46] ILL-String OPTIONAL, conditional-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Cancel ::= [APPLICATION 6] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications requester-note [46] ILL-String OPTIONAL, cancel-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Cancel-Reply ::= [APPLICATION 7] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications answer [35] IMPLICIT BOOLEAN, responder-note [46] ILL-String OPTIONAL, cancel-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Received ::= [APPLICATION 8] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications supplier-id [26] IMPLICIT System-Id OPTIONAL, supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, date-received [36] IMPLICIT ISO-Date, shipped-service-type [27] IMPLICIT Shipped-Service-Type, requester-note [46] ILL-String OPTIONAL, received-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Recall ::= [APPLICATION 9] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-note [46] ILL-String OPTIONAL, recall-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Returned ::= [APPLICATION 10] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, date-returned [37] IMPLICIT ISO-Date, returned-via [38] Transportation-Mode OPTIONAL, insured-for [39] IMPLICIT Amount OPTIONAL, requester-note [46] ILL-String OPTIONAL, returned-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Checked-In ::= [APPLICATION 11] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications date-checked-in [40] IMPLICIT ISO-Date, responder-note [46] ILL-String OPTIONAL, checked-in-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Overdue ::= [APPLICATION 12] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications date-due [41] IMPLICIT Date-Due, responder-note [46] ILL-String OPTIONAL, overdue-extensions [49] SEQUENCE OF Extension OPTIONAL } Renew ::= [APPLICATION 13] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications desired-due-date [42] IMPLICIT ISO-Date OPTIONAL, requester-note [46] ILL-String OPTIONAL, renew-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Renew-Answer ::= [APPLICATION 14] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications answer [35] IMPLICIT BOOLEAN, date-due [41] IMPLICIT Date-Due OPTIONAL, responder-note [46] ILL-String OPTIONAL, renew-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Lost ::= [APPLICATION 15] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications note [46] ILL-String OPTIONAL, lost-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Damaged ::= [APPLICATION 16] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications damaged-details [5] IMPLICIT Damaged-Details OPTIONAL, -- this parameter may only be present in APDU's with a -- protocol-version-num value of 2 or greater note [46] ILL-String OPTIONAL, damaged-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Message ::= [APPLICATION 17] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications note [46] ILL-String, message-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Status-Query ::= [APPLICATION 18] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications note [46] ILL-String OPTIONAL, status-query-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Status-Or-Error-Report ::= [APPLICATION 19] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications reason-no-report [43] IMPLICIT Reason-No-Report OPTIONAL, -- mandatory if no report is present; -- not present otherwise status-report [44] IMPLICIT Status-Report OPTIONAL, error-report [45] IMPLICIT Error-Report OPTIONAL, note [46] ILL-String OPTIONAL, status-or-error-report-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Expired ::= [APPLICATION 20] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER { version-1 (1), version-2 (2) }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications expired-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL } Account-Number ::= ILL-String Already-Forwarded ::= SEQUENCE { responder-id [0] IMPLICIT System-Id, responder-address [1] IMPLICIT System-Address OPTIONAL } Already-Tried-List-Type ::= SEQUENCE OF System-Id Amount ::= SEQUENCE { currency-code [0] IMPLICIT PrintableString (SIZE (3)) OPTIONAL, -- values defined in ISO 4217-1981 monetary-value [1] IMPLICIT AmountString (SIZE (1..10)) } AmountString ::= PrintableString (FROM ("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"0"|" "|"."|",")) Client-Id ::= SEQUENCE { client-name [0] ILL-String OPTIONAL, client-status [1] ILL-String OPTIONAL, client-identifier [2] ILL-String OPTIONAL } Conditional-Results ::= SEQUENCE { conditions [0] IMPLICIT ENUMERATED { cost-exceeds-limit (13), charges (14), prepayment-required (15), lacks-copyright-compliance (16), library-use-only (22), no-reproduction (23), client-signature-required (24), special-collections-supervision-required (25), other (27), responder-specific (28), proposed-delivery-service (30) }, date-for-reply [1] IMPLICIT ISO-Date OPTIONAL, locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, proposed-delivery-service Delivery-Service OPTIONAL -- this parameter specifies a proposed delivery service the -- acceptance of which is a condition of supply. It may be a -- physical service or an electronic service. This parameter -- may only be present in APDUs with a -- protocol-version-num value of 2 or greater } Cost-Info-Type ::= SEQUENCE { account-number [0] Account-Number OPTIONAL, maximum-cost [1] IMPLICIT Amount OPTIONAL, reciprocal-agreement [2] IMPLICIT BOOLEAN DEFAULT FALSE, will-pay-fee [3] IMPLICIT BOOLEAN DEFAULT FALSE, payment-provided [4] IMPLICIT BOOLEAN DEFAULT FALSE } Current-State ::= ENUMERATED { nOT-SUPPLIED (1), pENDING (2), iN-PROCESS (3), fORWARD (4), cONDITIONAL (5), cANCEL-PENDING (6), cANCELLED (7), sHIPPED (8), rECEIVED (9), rENEW-PENDING (10), nOT-RECEIVED-OVERDUE (11), rENEW-OVERDUE (12), oVERDUE (13), rETURNED (14), cHECKED-IN (15), rECALL (16), lOST (17), uNKNOWN (18) } Damaged-Details ::= SEQUENCE { document-type-id [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, -- identifies an OSI document type registered in accordance -- with ISO 9834-2, for use in an automated environment damaged-portion CHOICE { complete-document [1] IMPLICIT NULL, specific-units [2] IMPLICIT SEQUENCE OF INTEGER -- the nature and extent of a "unit" is implicit in the -- value of document-type-id if one is supplied } } Date-Due ::= SEQUENCE { date-due-field [0] IMPLICIT ISO-Date, renewable [1] IMPLICIT BOOLEAN DEFAULT TRUE } Delivery-Address ::= SEQUENCE { postal-address [0] IMPLICIT Postal-Address OPTIONAL, electronic-address [1] IMPLICIT System-Address OPTIONAL } Delivery-Service ::= CHOICE { physical-delivery [7] Transportation-Mode, electronic-delivery [50] IMPLICIT SEQUENCE OF Electronic-Delivery-Service -- electronic-delivery may only be present in APDUs -- with a protocol-version-num value of 2 or greater } Electronic-Delivery-Service ::= SEQUENCE { -- the first four parameters are intended to be used in an automated -- environment e-delivery-service [0] IMPLICIT SEQUENCE { -- identifies the kind of electronic delivery service, e.g. -- MOTIS IPM,FTAM, etc., using the assigned object -- identifier for the standard e.g. {joint-iso-ccitt mhs-motis -- ipms} e-delivery-mode [0] IMPLICIT OBJECT IDENTIFIER, e-delivery-parameters [1] ANY DEFINED BY e-delivery-mode } OPTIONAL, document-type [1] IMPLICIT SEQUENCE { document-type-id [2] IMPLICIT OBJECT IDENTIFIER, -- identifies an OSI document type registered in accordance -- with ISO 9834-2 document-type-parameters [3] ANY DEFINED BY document-type-id -- any parameters relating to the registered document type } OPTIONAL, e-delivery-description [4] ILL-String OPTIONAL, -- holds a human readable name or description of the -- required electronic delivery service and document type; -- this may also be used to identify an electronic delivery -- service for which there is no object identifier. -- This parameter may be present instead of, or in addition -- to, the previous 4 parameters e-delivery-details [5] CHOICE { e-delivery-address [0] IMPLICIT System-Address, e-delivery-id [1] IMPLICIT System-Id }, name-or-code [6] ILL-String OPTIONAL, -- holds a human-readable identifier or correlation -- information for the document as shipped, e.g. a directory -- and/or file name or message-id delivery-time [7] IMPLICIT ISO-Time OPTIONAL -- holds the requester's preferred delivery time or -- the responder's proposed or actual delivery time } Error-Report ::= SEQUENCE { correlation-information [0] ILL-String, report-source [1] IMPLICIT Report-Source, user-error-report [2] User-Error-Report OPTIONAL, -- mandatory if report-source is "user"; not present otherwise provider-error-report [3] Provider-Error-Report OPTIONAL -- mandatory if report-source is "provider"; not -- present otherwise } Estimate-Results ::= SEQUENCE { cost-estimate [0] ILL-String, locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL } Extension ::= SEQUENCE { identifier [0] IMPLICIT INTEGER, critical [1] IMPLICIT BOOLEAN DEFAULT FALSE, item [2] ANY DEFINED BY identifier } General-Problem ::= ENUMERATED { unrecognized-APDU (1), mistyped-APDU (2), badly-structured-APDU (3), protocol-version-not-supported (4), other (5) } History-Report ::= SEQUENCE { date-requested [0] IMPLICIT ISO-Date OPTIONAL, author [1] ILL-String OPTIONAL, title [2] ILL-String OPTIONAL, author-of-article [3] ILL-String OPTIONAL, title-of-article [4] ILL-String OPTIONAL, date-of-last-transition [5] IMPLICIT ISO-Date, most-recent-service [6] IMPLICIT ENUMERATED { iLL-REQUEST (1), fORWARD (21), fORWARD-NOTIFICATION (2), sHIPPED (3), iLL-ANSWER (4), cONDITIONAL-REPLY (5), cANCEL (6), cANCEL-REPLY (7), rECEIVED (8), rECALL (9), rETURNED (10), cHECKED-IN (11), rENEW-ANSWER (14), lOST (15), dAMAGED (16), mESSAGE (17), sTATUS-QUERY (18), sTATUS-OR-ERROR-REPORT (19), eXPIRED (20) }, date-of-most-recent-service [7] IMPLICIT ISO-Date, initiator-of-most-recent-service [8] IMPLICIT System-Id, shipped-service-type [9] IMPLICIT Shipped-Service-Type OPTIONAL, -- If the information is available, i.e. if a SHIPPED or -- RECEIVED APDU has been sent or received, then the -- value in this parameter shall be supplied. -- Value must contain the most current information, e.g. if a -- requester has received a SHIPPED APDU and then -- invokes a RECEIVED.request, then the value from the -- RECEIVED.request is used transaction-results [10] IMPLICIT Transaction-Results OPTIONAL, -- If the information is available, i.e. if an ILL-ANWSER -- APDU has been sent or received, then the value in this -- parameter shall be supplied. most-recent-service-note [11] ILL-String OPTIONAL -- If the information is available, i.e. if a note has been -- supplied in the most recent service primitive, then the -- value in this parameter shall be supplied. } Hold-Placed-Results ::= SEQUENCE { estimated-date-available [0] IMPLICIT ISO-Date, hold-placed-medium-type [1] IMPLICIT Medium-Type OPTIONAL, locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL } ILL-APDU-Type ::= ENUMERATED { iLL-REQUEST (1), fORWARD-NOTIFICATION (2), sHIPPED (3), iLL-ANSWER (4), cONDITIONAL-REPLY (5), cANCEL (6), cANCEL-REPLY (7), rECEIVED (8), rECALL (9), rETURNED (10), cHECKED-IN (11), oVERDUE (12), rENEW (13), rENEW-ANSWER (14), lOST (15), dAMAGED (16), mESSAGE (17), sTATUS-QUERY (18), sTATUS-OR-ERROR-REPORT (19), eXPIRED (20) } ILL-Service-Type ::= ENUMERATED { loan (1), copy-non-returnable (2), locations (3), estimate (4), responder-specific (5) } ILL-String ::= CHOICE { GeneralString, -- may contain any ISO registered G (graphic) and C -- (control) character set EDIFACTString } -- may not include leading or trailing spaces -- may not consist only of space (" ") or non-printing -- characters Intermediary-Problem ::= ENUMERATED { cannot-send-onward (1) } ISO-Date ::= VisibleString -- conforms to ISO 8601 -- length = 8 -- fixed -- YYYYMMDD ISO-Time ::= VisibleString -- conforms to ISO 8601 -- length = 6, -- fixed -- HHMMSS -- local time of person or institution invoking service Item-Id ::= SEQUENCE { item-type [0] IMPLICIT ENUMERATED { monograph (1), serial (2), other (3) } OPTIONAL, held-medium-type [1] IMPLICIT Medium-Type OPTIONAL, call-number [2] ILL-String OPTIONAL, author [3] ILL-String OPTIONAL, title [4] ILL-String OPTIONAL, sub-title [5] ILL-String OPTIONAL, sponsoring-body [6] ILL-String OPTIONAL, place-of-publication [7] ILL-String OPTIONAL, publisher [8] ILL-String OPTIONAL, series-title-number [9] ILL-String OPTIONAL, volume-issue [10] ILL-String OPTIONAL, edition [11] ILL-String OPTIONAL, publication-date [12] ILL-String OPTIONAL, publication-date-of-component [13] ILL-String OPTIONAL, author-of-article [14] ILL-String OPTIONAL, title-of-article [15] ILL-String OPTIONAL, pagination [16] ILL-String OPTIONAL, national-bibliography-no [17] EXTERNAL OPTIONAL, iSBN [18] ILL-String (SIZE (10)) OPTIONAL, -- must conform to ISO 2108-1978 iSSN [19] ILL-String (SIZE (8)) OPTIONAL, -- must conform to ISO 3297-1986 system-no [20] EXTERNAL OPTIONAL, additional-no-letters [21] ILL-String OPTIONAL, verification-reference-source [22] ILL-String OPTIONAL } Location-Info ::= SEQUENCE { location-id [0] IMPLICIT System-Id, location-address [1] IMPLICIT System-Address OPTIONAL, location-note [2] ILL-String OPTIONAL } Locations-Results ::= SEQUENCE { reason-locs-provided [0] IMPLICIT Reason-Locs-Provided OPTIONAL, locations [1] IMPLICIT SEQUENCE OF Location-Info } Medium-Type ::= ENUMERATED { printed (1), microform (3), film-or-video-recording (4), audio-recording (5), machine-readable (6), other (7) } Name-Of-Person-Or-Institution ::= CHOICE { name-of-person [0] ILL-String, name-of-institution [1] ILL-String } Person-Or-Institution-Symbol ::= CHOICE { person-symbol [0] ILL-String, institution-symbol [1] ILL-String } Place-On-Hold-Type ::= ENUMERATED { yes (1), no (2), according-to-responder-policy (3) } Postal-Address ::= SEQUENCE { name-of-person-or-institution [0] Name-Of-Person-Or-Institution OPTIONAL, extended-postal-delivery-address [1] ILL-String OPTIONAL, street-and-number [2] ILL-String OPTIONAL, post-office-box [3] ILL-String OPTIONAL, city [4] ILL-String OPTIONAL, region [5] ILL-String OPTIONAL, country [6] ILL-String OPTIONAL, postal-code [7] ILL-String OPTIONAL } Provider-Error-Report ::= CHOICE { general-problem [0] IMPLICIT General-Problem, transaction-id-problem [1] IMPLICIT Transaction-Id-Problem, state-transition-prohibited [2] IMPLICIT State-Transition-Prohibited } Reason-Locs-Provided ::= ENUMERATED { in-use-on-loan (1), in-process (2), lost (3), non-circulating (4), not-owned (5), on-order (6), volume-issue-not-yet-available (7), at-bindery (8), lacking (9), not-on-shelf (10), on-reserve (11), poor-condition (12), cost-exceeds-limit (13), on-hold (19), other (27), responder-specific (28) } Reason-No-Report ::= ENUMERATED { temporary (1), permanent (2) } Reason-Unfilled ::= ENUMERATED { in-use-on-loan (1), in-process (2), lost (3), non-circulating (4), not-owned (5), on-order (6), volume-issue-not-yet-available (7), at-bindery (8), lacking (9), not-on-shelf (10), on-reserve (11), poor-condition (12), cost-exceeds-limit (13), charges (14), prepayment-required (15), lacks-copyright-compliance (16), not-found-as-cited (17), locations-not-found (18), on-hold (19), policy-problem (20), mandatory-messaging-not-supported (21), expiry-not-supported (22) , requested-delivery-services-not-supported (23), preferred-delivery-time-not-possible (24), other (27), responder-specific (28) } Report-Source ::= ENUMERATED { user (1), provider (2) } Requester-Optional-Messages-Type ::= SEQUENCE { can-send-RECEIVED [0] IMPLICIT BOOLEAN, can-send-RETURNED [1] IMPLICIT BOOLEAN, requester-SHIPPED [2] IMPLICIT ENUMERATED { requires (1), desires (2), neither (3) }, requester-CHECKED-IN [3] IMPLICIT ENUMERATED { requires (1), desires (2), neither (3) } } Responder-Optional-Messages-Type ::= SEQUENCE { can-send-SHIPPED [0] IMPLICIT BOOLEAN, can-send-CHECKED-IN [1] IMPLICIT BOOLEAN, responder-RECEIVED [2] IMPLICIT ENUMERATED { requires (1), desires (2), neither (3) }, responder-RETURNED [3] IMPLICIT ENUMERATED { requires (1), desires (2), neither (3) } } Retry-Results ::= SEQUENCE { reason-not-available [0] IMPLICIT ENUMERATED { in-use-on-loan (1), in-process (2), on-order (6), volume-issue-not-yet-available (7), at-bindery (8), cost-exceeds-limit (13), charges (14), prepayment-required (15), lacks-copyright-compliance (16), not-found-as-cited (17), on-hold (19), other (27), responder-specific (28) } OPTIONAL, retry-date [1] IMPLICIT ISO-Date OPTIONAL, locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL } Search-Type ::= SEQUENCE { level-of-service [0] ILL-String (SIZE (1)) OPTIONAL, need-before-date [1] IMPLICIT ISO-Date OPTIONAL, expiry-flag [2] IMPLICIT ENUMERATED { need-Before-Date (1), other-Date (2), no-Expiry (3) } DEFAULT 3, -- value of "need-Before-Date" indicates that -- need-before-date also specifies transaction expiry -- date expiry-date [3] IMPLICIT ISO-Date OPTIONAL -- alternative expiry date can be used only when expiry-flag -- is set to "Other-Date" } Security-Problem ::= ILL-String Send-To-List-Type ::= SEQUENCE OF SEQUENCE { system-id [0] IMPLICIT System-Id, account-number [1] Account-Number OPTIONAL, system-address [2] IMPLICIT System-Address OPTIONAL } Service-Date-Time ::= SEQUENCE { date-time-of-this-service [0] IMPLICIT SEQUENCE { date [0] IMPLICIT ISO-Date, time [1] IMPLICIT ISO-Time OPTIONAL -- mandatory for 2nd and subsequent services -- invoked for a given -- ILL-transaction on the same day }, date-time-of-original-service [1] IMPLICIT SEQUENCE { date [0] IMPLICIT ISO-Date, time [1] IMPLICIT ISO-Time OPTIONAL } OPTIONAL } Shipped-Service-Type ::= ILL-Service-Type (loan | copy-non-returnable) -- subtype of ILL-Service-Type State-Transition-Prohibited ::= SEQUENCE { aPDU-type [0] IMPLICIT ILL-APDU-Type, current-state [1] IMPLICIT Current-State } Status-Report ::= SEQUENCE { user-status-report [0] IMPLICIT History-Report, provider-status-report [1] IMPLICIT Current-State } Supplemental-Item-Description ::= SEQUENCE OF EXTERNAL -- the syntax of supplementary item description information is defined outside this standard Supply-Details ::= SEQUENCE { date-shipped [0] IMPLICIT ISO-Date OPTIONAL, date-due [1] IMPLICIT Date-Due OPTIONAL, chargeable-units [2] IMPLICIT INTEGER (1..9999) OPTIONAL, cost [3] IMPLICIT Amount OPTIONAL, shipped-conditions [4] IMPLICIT ENUMERATED { library-use-only (22), no-reproduction (23), client-signature-required (24), special-collections-supervision-required (25), other (27) } OPTIONAL, shipped-via CHOICE { physical-delivery [5] Transportation-Mode, electronic-delivery [50] IMPLICIT Electronic-Delivery-Service } OPTIONAL, -- electronic-delivery may only be present in APDUs with a -- protocol-version-num value of 2 or greater insured-for [6] IMPLICIT Amount OPTIONAL, return-insurance-require [7] IMPLICIT Amount OPTIONAL, no-of-units-per-medium [8] IMPLICIT SEQUENCE OF Units-Per-Medium-Type OPTIONAL } Supply-Medium-Info-Type ::= SEQUENCE { supply-medium-type [0] IMPLICIT Supply-Medium-Type, medium-characteristics [1] ILL-String OPTIONAL } Supply-Medium-Type ::= ENUMERATED { printed (1), photocopy (2), microform (3), film-or-video-recording (4), audio-recording (5), machine-readable (6), other (7) } System-Address ::= SEQUENCE { telecom-service-identifier [0] ILL-String OPTIONAL, telecom-service-address [1] ILL-String OPTIONAL } System-Id ::= SEQUENCE { --at least one of the following must be present person-or-institution-symbol [0] Person-Or-Institution-Symbol OPTIONAL, name-of-person-or-institution [1] Name-Of-Person-Or-Institution OPTIONAL } Third-Party-Info-Type ::= SEQUENCE { permission-to-forward [0] IMPLICIT BOOLEAN DEFAULT FALSE, permission-to-chain [1] IMPLICIT BOOLEAN DEFAULT FALSE, permission-to-partition [2] IMPLICIT BOOLEAN DEFAULT FALSE, permission-to-change-send-to-list [3] IMPLICIT BOOLEAN DEFAULT FALSE, initial-requester-address [4] IMPLICIT System-Address OPTIONAL, -- mandatory when initiating a FORWARD service or an -- ILL-REQUEST service for a partitioned ILL -- sub-transaction; optional otherwise preference [5] IMPLICIT ENUMERATED { ordered (1), unordered (2) } DEFAULT 2, send-to-list [6] IMPLICIT Send-To-List-Type OPTIONAL, already-tried-list [7] IMPLICIT Already-Tried-List-Type OPTIONAL -- mandatory when initiating a FORWARD service, or when -- initiating an ILL-REQUEST service for an ILL -- sub-transaction if the received ILL-REQUEST included an -- "already-tried-list"; optional otherwise } Transaction-Id ::= SEQUENCE { initial-requester-id [0] IMPLICIT System-Id OPTIONAL, -- mandatory for sub-transactions; not called -- "requester-id" to distinguish id of initial-requester --from id of requester of sub-transaction if there is one transaction-group-qualifier [1] ILL-String, transaction-qualifier [2] ILL-String, sub-transaction-qualifier [3] ILL-String OPTIONAL -- mandatory for sub-transactions } Transaction-Id-Problem ::= ENUMERATED { duplicate-transaction-id (1), invalid-transaction-id (2), unknown-transaction-id (3) } Transaction-Results ::= ENUMERATED { conditional (1), retry (2), unfilled (3), locations-provided (4), will-supply (5), hold-placed (6), estimate (7) } Transaction-Type ::= ENUMERATED { simple (1), chained (2), partitioned (3) } Transportation-Mode ::= ILL-String Unable-To-Perform ::= ENUMERATED { not-available (1), resource-limitation (2), other (3) } Unfilled-Results ::= SEQUENCE { reason-unfilled [0] IMPLICIT Reason-Unfilled, locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL } Units-Per-Medium-Type ::= SEQUENCE { medium [0] Supply-Medium-Type, no-of-units [1] INTEGER (1..9999) } User-Error-Report ::= CHOICE { already-forwarded [0] IMPLICIT Already-Forwarded, intermediary-problem [1] IMPLICIT Intermediary-Problem, security-problem [2] Security-Problem, unable-to-perform [3] IMPLICIT Unable-To-Perform } Will-Supply-Results ::= SEQUENCE { reason-will-supply [0] ENUMERATED { in-use-on-loan (1), in-process (2), on-order (6), at-bindery (8), on-hold (19), being-processed-for-supply (26), other (27), responder-specific (28), electronic-delivery (30) }, supply-date [1] ISO-Date OPTIONAL, return-to-address [2] Postal-Address OPTIONAL, locations [3] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, electronic-delivery-service [4] Electronic-Delivery-Service OPTIONAL -- if present, this must be one of the services proposed by -- the requester } EDIFACTString ::= VisibleString (FROM ("A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"| "I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"|"U"| "V"|"W"|"X"|"Y"|"Z"|"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"| "i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"| "v"|"w"|"x"|"y"|"z"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"| "9"|"0"|" "|"."|","|"-"|"("|")"|"/"|"="|"!"|"""|"%"|"&"| "*"|";"|"<"|">"|"'"|"+"|":"|"?")) END