next up previous contents
Next: RATIONALE FOR KEY DESIGN Up: Informational RFC-2524 M. Banan Previous: EMSD-P ASN.1 MODULE

EMSD-IPM ASN.1 MODULE

This section compiles in one place the complete ASN.1 Module for EMSD-IPM.

EMSD-InterpersonalMessaging1995 DEFINITIONS ::=

BEGIN

IMPORTS EMSDORAddress, EMSDMessageId, AsciiPrintableString
  FROM EMSD-SubmissionAndDeliveryProtocol;

ub-recipients  INTEGER ::= 256;
ub-reply-to INTEGER ::= 256;
ub-subject-field INTEGER ::= 128;
ub-header-extensions INTEGER ::= 64;
ub-emsd-name-length INTEGER ::= 64;
ub-mime-version-length INTEGER ::= 8;
ub-mime-content-type-length INTEGER ::= 127;
ub-mime-content-id-length INTEGER ::= 127;
ub-mime-content-description-length INTEGER ::= 127;
ub-mime-content-transfer-encoding INTEGER ::= 127;

IPM ::=   SEQUENCE
{
  heading                              Heading,
  body                                 Body OPTIONAL
};

Heading ::= SEQUENCE
{
  -- Address of the sending agent (person, program, machine) of
  -- this message. This field is mandatory if the sender
  -- is different than the originator.
  sender                      [0]     EMSDORAddress OPTIONAL,

  -- Address of the originator of the message
  -- (not necessarily the sender)
  originator                          EMSDORAddress,

  -- List of recipients and flags associated with each.
  recipient-data                      SEQUENCE SIZE (1..ub-recipients)
                                      OF PerRecipientFields,

  -- Flags applying to this entire message
  per-message-flags           [1]     IMPLICIT BIT STRING

  {
     -- Priority values
     -- At most one of "non-urgent" and "urgent" may be specified
     -- concurrently.  If neither is specified, then a Priority
     -- level of "normal" is assumed.
     priority-non-urgent             (0),
     priority-urgent                 (1),

     -- Importance values
     -- At most one of "low" and "high" may be specified
     --  concurrently.  If neither is specified, then an
     -- Importance level of "normal" is  assumed.
     importance-low                  (2),
     importance-high                 (3),

     -- Indication of whether this message has been automatically 
     -- forwarded
     auto-forwarded                  (4)
   }  OPTIONAL,

  -- User-specified recipient who is to receive replies to this 
  -- message.
  reply-to                    [2]     IMPLICIT SEQUENCE SIZE
                                      (1..ub-reply-to)
                                      OF EMSDORAddress OPTIONAL,

  -- Identifier of a previous message, for which this message
  -- is a reply
  replied-to-IPM                       EMSDMessageId OPTIONAL,

  -- Subject of the message.
  subject                     [3]     IMPLICIT AsciiPrintableString
                                      (SIZE (0..ub-subject-field))
                                                OPTIONAL,

  -- RFC-822 header fields not explicitly provided for in
  -- this Heading. For messages incoming from the external
  -- world (i.e. in RFC-822 format), the Message-Id: field
  -- need not go here, as it is placed in the
  -- Envelope's EMSDMessageId (message-id) field.
  extensions                [4]   IMPLICIT  SEQUENCE 
                            (SIZE (0..ub-header-extensions))
                                  OF  IPMSExtension OPTIONAL,

  -- MIME Version (if other than 1.0)
  mime-version            [5]     IMPLICIT AsciiPrintableString
                                  (SIZE
                                  (0..ub-mime-version-length))
                                          OPTIONAL,

  -- Top-level MIME Content Type
  mime-content-type       [6]     IMPLICIT AsciiPrintableString
                                  (SIZE (0..
                                   ub-mime-content-type-length))
                                             OPTIONAL,

  -- MIME Content Id
  mime-content-id         [7]     IMPLICIT AsciiPrintableString
                                  (SIZE (0..
                                   ub-mime-content-id-length))
                                            OPTIONAL,

  -- MIME Content Description
  mime-content-description [8]    IMPLICIT AsciiPrintableString
                                  (SIZE (0..
                               ub-mime-content-description-length))
                                            OPTIONAL,

  -- Top-level MIME Content Type
  mime-content-transfer-encoding
                           [9]     IMPLICIT AsciiPrintableString
                     (SIZE (0..ub-mime-content-transfer-encoding))
                                               OPTIONAL
};

PerRecipientFields ::= SEQUENCE
{
  recipient-address                            EMSDORAddress,
  per-recipient-flags                          BIT STRING

   {
      -- Recipient Types.
      -- At most one of "copy" and "blind-copy" may be
      -- specified concurrently for a single recipient.  If
      -- neither is specified, than the recipient
      -- is assumed to be a "primary" recipient.
      recipient-type-copy                             (0),
      recipient-type-blind-copy                       (1),

      -- Notification Request Types.
      -- Only one of "rn" and "nrn" may be specified
      -- concurrently, \\x110011 for a single recipient.
      -- "rn" implies "nrn" in addition.
      notification-request-rn                         (2),
      notification-request-nrn                        (3),
      notification-request-ipm-return                 (4),

      -- Report Request Types
      -- At most one of these should be set for a
      -- particular recipient. "delivery" implies "non-delivery"
      -- in addition.
      report-request-non-delivery                     (5),
      report-request-delivery                         (6),

      -- Originator-to-Recipient request for a reply.
      reply-requested                                 (7)
   }  DEFAULT { report-request-non-delivery }

};

IPMSExtension ::= SEQUENCE
{
  x-header-label                      AsciiPrintableString,
  x-header-value                      AsciiPrintableString
};

Body ::= SEQUENCE
{
  compression-method          [0]     IMPLICIT CompressionMethod
                                                 OPTIONAL,
  -- If compression method is not specified,
  -- "no-compression" is implied.

  message-body                        OCTET STRING
  -- See MIME for structure of the Body.
  -- If a compression method is specified, the entire text containing
  -- the Content-Type: element followed by the RFC-822 body are
  -- compressed using the specified method, and placed herein.
};

CompressionMethod ::= INTEGER
{
  -- Compression Methods numbered 0 to 63 are reserved for
  -- assignment within this and associated specifications.
  no-compression                  (0),
  lempel-ziv                      (1)

  -- Compression Methods numbered between 64 and 127 may be
  --  used on a bilaterally-agreed basis between peers.
} (0..127)

END  -- end of EMSD-InterpersonalMessaging1995