-- Module ITCCOperations (Q.736.1:10/1995)
-- See also ITU-T Q.736.1 (10/1995)
-- See also the index of all ASN.1 assignments needed in this document

ITCCOperations {itu-t recommendation q 736 itcc(1) modules(2)
  operations-and-errors(1) version1(1)} DEFINITIONS EXPLICIT TAGS ::=
BEGIN

IMPORTS
  OPERATION, ERROR
    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
      remote-operations(4) informationObjects(5) version1(0)};

-- Operations types
validateCard OPERATION ::= {
  ARGUMENT
    SEQUENCE {primaryAccountNumber          PrimaryAccountNumber,
              personalIdentificationNumber  PersonalIdentificationNumber,
              cardAcceptorIdentifier        CardAcceptorIdentifier,
              calledPartyNumber             CalledPartyNumber,
              callingPartyNumber
                [1] IMPLICIT CallingPartyNumber OPTIONAL,
              ...}
  RESULT    SEQUENCE {responseCode  ResponseCode,
                      ...}
  ERRORS    {serviceDenied | inputError}
  CODE      global:{itccOID operations-and-errors(1) validateCard(1)}
}

provideCallDisposition OPERATION ::= {
  ARGUMENT
    SEQUENCE {primaryAccountNumber    PrimaryAccountNumber,
              cardAcceptorIdentifier  CardAcceptorIdentifier,
              callDispositionCode     CallDispositionCode,
              callStartTime           DateAndTime,
              callDuration            [1] IMPLICIT CallDuration OPTIONAL,
              estimatedCallCharge     [2] IMPLICIT EstimatedCallCharge OPTIONAL,
              ...}
  RESULT    SEQUENCE {updateResult  UpdateResult,
                      ...}
  ERRORS    {serviceDenied | inputError}
  CODE      global:{itccOID operations-and-errors(1) provideCallDisposition(2)}
}

-- Invocation timer value is recommended to be 5 seconds
-- Object identifier path
itccOID OBJECT IDENTIFIER ::=
  {itu-t recommendation q 736 1}

-- Contents and data type definitions
PrimaryAccountNumber ::= OCTET STRING(SIZE (2..11))

-- Formats as indicated in 1.4.2.3.1
PersonalIdentificationNumber ::= OCTET STRING(SIZE (2..4))

-- Formats as indicated in 1.4.2.3.2
CalledPartyNumber ::= OCTET STRING(SIZE (2..9))

-- Formats as for Q.763 Called party number
CallingPartyNumber ::= OCTET STRING(SIZE (2..9))

-- Formats as for Q.763 Calling party number
CardAcceptorIdentifier ::= OCTET STRING(SIZE (2..5))

-- Formats as indicated in 1.4.2.3.3
ResponseCode ::= ENUMERATED {serviceApproved(1)}

CallDispositionCode ::= ENUMERATED {
  automatedCallToCardIssuer(1), operatorStationCallToCardIssuer(2),
  operatorPersonCallToCardIssuer(3), automatedCallToThirdCountry(4),
  operatorStationCallToThirdCountry(5), operatorPersonCallToThirdCountry(6),
  automatedCallWithinCardAcceptorsCountry(7),
  operatorStationCallWithinCardAcceptorsCountry(8),
  operatorPersonCallWithinCardAcceptorsCountry(9), unrateable(10),
  unsuccessful(11), freeCall(12), fixedCharges(13), adhoc(14)}

DateAndTime ::= OCTET STRING(SIZE (6))

-- Coded as Y1Y2M1M2D1D2H1H2M1M2S1S2, with each digit coded BCD. The first octet
-- contains 2 digits representing the year (Y1Y2) and the remaining items are sequenced
-- following. Digit of more significant (e.g. Y1) in each item is put in the BCD field of less
-- significant in the corresponding octet.
CallDuration ::= OCTET STRING(SIZE (3))

-- Coded as HHMMSS with each digit coded BCD. The first octet contains
-- HH and the remaining items are sequenced following. Digit of more significant in
-- each item is put in the BCD field of less significant in the corresponding octet.
EstimatedCallCharge ::= OCTET STRING(SIZE (3..5))

-- Formats as indicated in 1.4.2.3.4.
UpdateResult ::= ENUMERATED {updateComplete(1)}

-- Errors type notation
serviceDenied ERROR ::= {
  PARAMETER  ServiceDeniedCause
  CODE       global:{itccOID operations-and-errors(1) serviceDenied(3)}
}

inputError ERROR ::= {
  PARAMETER  InputErrorCause
  CODE       global:{itccOID operations-and-errors(1) inputError(4)}
}

ServiceDeniedCause ::= ENUMERATED {
  creditThresholdExceeded(1), dueToNonPayment(2), invalidCardNumber(3),
  invalidCardNumberPINCombination(4), incorrectPIN(5),
  allowablePINTriesExceeded(6), expiredCard(7), restrictedCardNumber(8),
  callNotPermittedFromStation(9), validationDatabaseUnavailable(10),
  validationOnWrongCardIssuerMisroutedQuery(11), volumeThresholdExceeded(12),
  fraudRestriction(13)}

InputErrorCause ::= ENUMERATED {
  errorInMessageFormat(1), unexpectedInputData(2), missingParameter(3),
  unexpectedParameter(4)}

END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D