-- Module SCPP-MESSAGES (X.1243:12/2010)
-- See also ITU-T X.1243 (12/2010)
-- See also the index of all ASN.1 assignments needed in this document

SCPP-MESSAGES {itu-t(0) recommendation(0) x(24) igscs(1243) asn1-module(0)
  scpp-messages(1)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

-- SCPP Message body definition
SCPP-PDU ::= SEQUENCE {
  sourceAddress      IGCS-Address,
  destAddress        IGCS-Address,
  igcs-message-body
    CHOICE {peerDiscovery  PeerDiscoveryDEF,
            peerSetup      PeerSetupDEF,
            dataExchange   DataExchangeDEF,
            peerKeepAlive  PeerKeepAliveDEF,
            peerRelease    PeerReleaseDEF},
  nonStandardData    OCTET STRING OPTIONAL,
  ...
}

-- PeerDiscovery Message definition
PeerDiscoveryDEF ::= SEQUENCE {
  setupRequest   BOOLEAN,
  igcsSignature  IGCS-Signature
}

-- PeerSetup Message definition
PeerSetupDEF ::= SEQUENCE {
  setupResponse     BOOLEAN,
  sgfList           SEQUENCE OF IGCS-Address,
  rgfList           SEQUENCE OF IGCS-Address,
  supportedFilters  SupportedSpamFilters,
  igcsSignature     IGCS-Signature
}

-- Countering Spam Data Exchange Message definition
DataExchangeDEF ::= SEQUENCE {csData  SET OF SpamFilterData,
                              ...
}

-- Peer Keep Alive Message definition
PeerKeepAliveDEF ::= SEQUENCE {
  sgfUpdates      GF-Updates,
  rgfUpdates      GF-Updates,
  filtersUpdates  SupportedSpamFilters
}

-- Peer Release Message definition
PeerReleaseDEF ::= SEQUENCE {
  peerRelease      ENUMERATED {request(0), confirm(1)},
  nonStandardData  OCTET STRING OPTIONAL,
  ...
}

-- IGCS supported addresses, include IGCS,SGF,RGF address definition
-- Support IP address, Email ID and other types of address
IGCS-Address ::= CHOICE {
  ipAddress
    SEQUENCE {ip    OCTET STRING(SIZE (4)),
              port  INTEGER(0..65535)},
  ip6Address
    SEQUENCE {ip    OCTET STRING(SIZE (16)),
              port  INTEGER(0..65535)},
  emailAddress        IA5String(SIZE (1..512)),
  nonStandardAddress  OCTET STRING,
  ...
}

-- Signature data for authentication
IGCS-Signature ::= SEQUENCE {
  igcsID         INTEGER(0..65535),
  signatureData  OCTET STRING,
  ...
}

-- RGF/SGF status update infomation
GF-Updates ::= SEQUENCE {
  gateType    ENUMERATED {sgf(0), rgf(1)},
  gateAdd     IGCS-Address,
  gateRemove  IGCS-Address
}

-- IGCS Supported Spam filters and related data
SupportedSpamFilters ::= SEQUENCE {supportedFilter  SEQUENCE OF SpamFilters
}

SpamFilters ::= SEQUENCE {
  filterID    INTEGER(0..128),
  filterName  IA5String(SIZE (1..512))
}

SpamFilterData ::= SEQUENCE {
  filterID    INTEGER(0..128),
  filterData  OCTET STRING,
  ...
}

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