-- Module E115v2.00 (E.115:05/2008)
-- See also ITU-T E.115 (05/2008)
-- See also the index of all ASN.1 assignments needed in this document

E115v2 {itu-t recommendation(0) e(5) da(115) version2(2) release(0)}
DEFINITIONS XER INSTRUCTIONS ::=
BEGIN

E115String ::= UTF8String(FROM ({0,
                                 0,
                                 0,
                                 32}..{0, 0, 255, 253}))

E115StringUb256 ::= E115String(SIZE (1..256))

E115NumericString ::= [NAME AS "NumericString"]
   UTF8String(FROM ({0,
                     0,
                     0,
                     48}..{0, 0, 0, 57}))

SimpleAttribute ::= BOOLEAN(TRUE)

CharacterSubSet ::= ENUMERATED {
  basic(0), latin1(1), latin-extended-A(2), cyrillic(3), greek(4), arabic(5)
}

GeographicalType ::= ENUMERATED {dms(0), dd(1), dec(2)}

CoordinateTypeDescription ::= SEQUENCE {
  geodeticDatum  [ATTRIBUTE] [TAG: 0] IMPLICIT E115StringUb256,
  geographical   [ATTRIBUTE] [TAG: 1] IMPLICIT GeographicalType
}

Coordinate ::= SEQUENCE {
  latitude   [TAG: 0] IMPLICIT E115StringUb256,
  longitude  [TAG: 1] IMPLICIT E115StringUb256
}

CommAddressService ::= SEQUENCE {
  fax    [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute OPTIONAL,
  pbx    [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute OPTIONAL,
  txt    [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute OPTIONAL,
  pub    [ATTRIBUTE] [TAG: 3] IMPLICIT SimpleAttribute OPTIONAL,
  vid    [ATTRIBUTE] [TAG: 4] IMPLICIT SimpleAttribute OPTIONAL,
  pag    [ATTRIBUTE] [TAG: 5] IMPLICIT SimpleAttribute OPTIONAL,
  voice  [ATTRIBUTE] [TAG: 6] IMPLICIT SimpleAttribute OPTIONAL,
  data   [ATTRIBUTE] [TAG: 7] IMPLICIT SimpleAttribute OPTIONAL,
  http   [ATTRIBUTE] [TAG: 8] IMPLICIT SimpleAttribute OPTIONAL,
  ftp    [ATTRIBUTE] [TAG: 9] IMPLICIT SimpleAttribute OPTIONAL,
  eml    [ATTRIBUTE] [TAG: 10] IMPLICIT SimpleAttribute OPTIONAL,
  sms    [ATTRIBUTE] [TAG: 11] IMPLICIT SimpleAttribute OPTIONAL,
  mms    [ATTRIBUTE] [TAG: 12] IMPLICIT SimpleAttribute OPTIONAL,
  emg    [ATTRIBUTE] [TAG: 13] IMPLICIT SimpleAttribute OPTIONAL
}

InquiryCommAddressChar ::= SEQUENCE {
  ftn    [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute OPTIONAL,
  mob    [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute OPTIONAL,
  fixed  [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute OPTIONAL
}

ReplyCommAddressChar ::= SEQUENCE {
  ftn    [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute OPTIONAL,
  mob    [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute OPTIONAL,
  fixed  [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute OPTIONAL,
  prn    [ATTRIBUTE] [TAG: 3] IMPLICIT SimpleAttribute OPTIONAL,
  npn    [ATTRIBUTE] [TAG: 4] IMPLICIT SimpleAttribute OPTIONAL,
  upn    [ATTRIBUTE] [TAG: 5] IMPLICIT SimpleAttribute OPTIONAL,
  old    [ATTRIBUTE] [TAG: 6] IMPLICIT SimpleAttribute OPTIONAL,
  adv    [ATTRIBUTE] [TAG: 7] IMPLICIT SimpleAttribute OPTIONAL,
  nmk    [ATTRIBUTE] [TAG: 8] IMPLICIT SimpleAttribute OPTIONAL
}

Category ::= SEQUENCE {
  business
    [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute OPTIONAL,
  residential
    [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute OPTIONAL,
  government
    [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute OPTIONAL
}

E115Message ::= CHOICE {directoryMessage  [TAG: 0] DirectoryMessage
}

DirectoryMessage ::= CHOICE {
  inquiry  [TAG: 0] Inquiry,
  reply    [TAG: 1] Reply
}

Inquiry ::= SEQUENCE {inquiryHeader  InquiryHeader,
                      inquiryData    InquiryData
}

InquiryHeader ::= [ TAG: APPLICATION 0 ] IMPLICIT SET {
  originatingTerminalCode
    [ATTRIBUTE] [TAG: 0] IMPLICIT E115String(SIZE (8)),
  dateAndTime
    [ATTRIBUTE] [TAG: 1] IMPLICIT E115NumericString(SIZE (12))
      OPTIONAL,
  messageNumber
    [ATTRIBUTE] [TAG: 2] IMPLICIT E115String(SIZE (4)) OPTIONAL,
  countryName
    [ATTRIBUTE] [TAG: 3] IMPLICIT E115String(SIZE (2)),
  providerCode
    [ATTRIBUTE] [TAG: 4] IMPLICIT E115String(SIZE (3)) OPTIONAL,
  inquiryCharacterSubset
    [ATTRIBUTE] [TAG: 5] IMPLICIT CharacterSubSet DEFAULT basic,
  replyCharacterSubset
    [ATTRIBUTE] [TAG: 6] IMPLICIT CharacterSubSet DEFAULT latin1,
  requestedReplyType
    [ATTRIBUTE] [TAG: 7] IMPLICIT ENUMERATED {subscriberList(0),
                                                          provinceList(1),
                                                          localityList(2),
                                                          streetList(3),
                                                          businessCategoryList(4)}
      DEFAULT subscriberList,
  acceptedReplyTypes
    [TAG: 8] IMPLICIT SEQUENCE {provinceList
                                          [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute
                                            OPTIONAL,
                                        localityList
                                          [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute
                                            OPTIONAL,
                                        streetList
                                          [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute
                                            OPTIONAL,
                                        businessCategoryList
                                          [ATTRIBUTE] [TAG: 3] IMPLICIT SimpleAttribute
                                            OPTIONAL},
  inquiryCoordinateType
    [TAG: 9] IMPLICIT SEQUENCE {COMPONENTS OF CoordinateTypeDescription
  } OPTIONAL,
  replyCoordinateType
    [TAG: 10] IMPLICIT SEQUENCE {COMPONENTS OF
                                           CoordinateTypeDescription} OPTIONAL
}

InquiryData ::= [ TAG: APPLICATION 1 ] IMPLICIT SET {
  locality                 [TAG: 0] IMPLICIT E115StringUb256 OPTIONAL,
  subscriberName           [TAG: 1] IMPLICIT E115StringUb256 OPTIONAL,
  streetName               [TAG: 2] IMPLICIT E115StringUb256 OPTIONAL,
  houseNumber              [TAG: 3] IMPLICIT E115StringUb256 OPTIONAL,
  forename                 [TAG: 4] IMPLICIT E115StringUb256 OPTIONAL,
  headingInTheGuide        [TAG: 5] IMPLICIT E115StringUb256 OPTIONAL,
  professionCode           [TAG: 6] IMPLICIT E115StringUb256 OPTIONAL,
  countyStateOrProvince    [TAG: 7] IMPLICIT E115StringUb256 OPTIONAL,
  category
    [TAG: 8] IMPLICIT SEQUENCE {COMPONENTS OF Category} OPTIONAL,
  sequenceNumber
    [ATTRIBUTE] [TAG: 9] IMPLICITE115NumericString(SIZE (1..2))
      DEFAULT "0",
  postalCode               [TAG: 10] IMPLICIT E115StringUb256 OPTIONAL,
  nationalDestinationCode
    [TAG: 11] IMPLICIT E115NumericString(SIZE (1..14)) OPTIONAL,
  commAddress              [TAG: 12] IMPLICIT E115StringUb256 OPTIONAL,
  commAddressTypes
    [TAG: 13] IMPLICIT SEQUENCE {e164
                                           [ATTRIBUTE] [TAG: 0] IMPLICIT SimpleAttribute
                                             OPTIONAL,
                                         rfc822
                                           [ATTRIBUTE] [TAG: 1] IMPLICIT SimpleAttribute
                                             OPTIONAL,
                                         rfc1738
                                           [ATTRIBUTE] [TAG: 2] IMPLICIT SimpleAttribute
                                             OPTIONAL} OPTIONAL,
  additionalName           [TAG: 14] IMPLICIT E115StringUb256 OPTIONAL,
  commAddressService
    [TAG: 15] IMPLICIT SEQUENCE {COMPONENTS OF CommAddressService
  } OPTIONAL,
  commAddressChar
    [TAG: 16] IMPLICIT SEQUENCE {COMPONENTS OF InquiryCommAddressChar
  } OPTIONAL,
  geoExpansion
    [ATTRIBUTE] [TAG: 17] IMPLICITE115NumericString(SIZE (1..3))
      OPTIONAL,
  searchCoordinate
    [TAG: 18] IMPLICIT SEQUENCE {COMPONENTS OF Coordinate} OPTIONAL,
  searchRadius
    [TAG: 19] IMPLICIT NumericString(SIZE (1..9)) OPTIONAL,
  matchingRule
    [TAG: 20] IMPLICIT SEQUENCE {wordRotation
                                           [ATTRIBUTE] [TAG: 0] IMPLICIT BOOLEAN
                                             OPTIONAL,
                                         phonetic
                                           [ATTRIBUTE] [TAG: 1] IMPLICIT BOOLEAN
                                             OPTIONAL,
                                         alias
                                           [ATTRIBUTE] [TAG: 2] IMPLICIT BOOLEAN
                                             OPTIONAL} OPTIONAL,
  maxSelectionLevel
    [ATTRIBUTE] [TAG: 21] IMPLICITE115NumericString(SIZE (1..3))
      DEFAULT "99"
}

Reply ::= SEQUENCE {
  replyHeader  ReplyHeader,
  selections   SEQUENCE (SIZE (1..MAX)) OF Selection OPTIONAL
}

ReplyHeader ::= [TAG: APPLICATION 3] IMPLICIT SET {
  originatingTerminalCode
    [ATTRIBUTE] [TAG: 0] IMPLICIT E115String(SIZE (8)),
  dateAndTime
    [ATTRIBUTE] [TAG: 1] IMPLICIT E115NumericString(SIZE (12))
      OPTIONAL,
  messageNumber
    [ATTRIBUTE] [TAG: 2] IMPLICIT E115String(SIZE (4)) OPTIONAL,
  messageCode
    [ATTRIBUTE] [TAG: 3] IMPLICIT E115String(SIZE (2)),
  message                  [TAG: 4] IMPLICIT E115StringUb256 OPTIONAL,
  dbSelectionCount
    [ATTRIBUTE] [TAG: 5] IMPLICIT E115String(SIZE (1..10)) OPTIONAL,
  replyCoordinateType
    [TAG: 6] IMPLICIT SEQUENCE {COMPONENTS OF CoordinateTypeDescription
  } OPTIONAL,
  searchCenter
    [TAG: 7] IMPLICIT SEQUENCE {COMPONENTS OF Coordinate} OPTIONAL
}

Selection ::= SET {
  nationalDestinationCode
    [TAG: 0] IMPLICIT E115NumericString(SIZE (1..14)) OPTIONAL,
  commAddress              [TAG: 1] IMPLICIT E115StringUb256 OPTIONAL,
  locality                 [TAG: 2] IMPLICIT E115StringUb256 OPTIONAL,
  subscriberName           [TAG: 3] IMPLICIT E115StringUb256 OPTIONAL,
  forename                 [TAG: 4] IMPLICIT E115StringUb256 OPTIONAL,
  streetName               [TAG: 5] IMPLICIT E115StringUb256 OPTIONAL,
  houseNumber              [TAG: 6] IMPLICIT E115StringUb256 OPTIONAL,
  supplementaryData        [TAG: 7] IMPLICIT E115StringUb256 OPTIONAL,
  subscriberMessage        [TAG: 8] IMPLICIT E115StringUb256 OPTIONAL,
  headingInTheGuide        [TAG: 9] IMPLICIT E115StringUb256 OPTIONAL,
  professionCode           [TAG: 10] IMPLICIT E115StringUb256 OPTIONAL,
  countyStateOrProvince    [TAG: 11] IMPLICIT E115StringUb256 OPTIONAL,
  subscriberDescription    [TAG: 12] IMPLICIT E115StringUb256 OPTIONAL,
  category
    [TAG: 13] IMPLICIT SEQUENCE {COMPONENTS OF Category} OPTIONAL,
  countryCode
    [TAG: 14] IMPLICIT E115NumericString(SIZE (1..3)),
  postalCode               [TAG: 15] IMPLICIT E115StringUb256 OPTIONAL,
  commAddressType
    [ATTRIBUTE] [TAG: 16] IMPLICIT ENUMERATED {e164(0), rfc822(1),
                                                           rfc1738(2)} OPTIONAL,
  commAddressService
    [TAG: 17] IMPLICIT SEQUENCE {COMPONENTS OF CommAddressService
  } OPTIONAL,
  commAddressChar
    [TAG: 18] IMPLICIT SEQUENCE {COMPONENTS OF ReplyCommAddressChar
  } OPTIONAL,
  distance                 [TAG: 19] IMPLICIT E115StringUb256 OPTIONAL,
  additionalName           [TAG: 20] IMPLICIT E115StringUb256 OPTIONAL,
  selectionCoordinate
    [TAG: 21] IMPLICIT SEQUENCE {COMPONENTS OF Coordinate},
  selectionLevel
    [ATTRIBUTE] [TAG: 22] IMPLICITE115NumericString(SIZE (1..3))
      DEFAULT "0"
}

ENCODING-CONTROL XER
  GLOBAL-DEFAULTS MODIFIED-ENCODINGS
  TEXT CharacterSubSet:ALL, GeographicalType:ALL,
    InquiryHeader.requestedReplyType:ALL, Selection.commAddressType:ALL
END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D