home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / x400 / mta.ry < prev    next >
Encoding:
Text File  |  1991-12-18  |  31.7 KB  |  1,057 lines

  1. -- mta.ry - MTA definitions
  2.  
  3.  
  4. -- @(#) $Header: /xtel/pp/pp-beta/Lib/x400/RCS/mta.ry,v 6.0 1991/12/18 20:25:37 jpo Rel $
  5. --
  6. -- $Log: mta.ry,v $
  7. -- Revision 6.0  1991/12/18  20:25:37  jpo
  8. -- Release 6.0
  9. --
  10. --
  11. --
  12.  
  13.  
  14.  
  15. MTA -- { joint-iso-ccitt mhs-motis(6) mts(3) modules(0) mta-abstract-service(2) }
  16.  
  17. DEFINITIONS IMPLICIT TAGS ::=
  18.  
  19. BEGIN
  20.  
  21. IMPORTS    Token, ProofOfDelivery, Certificates, 
  22.     SecurityContext, SecurityLabel
  23.     FROM Toks;
  24.  
  25. ExtensionType ::=
  26.     CHOICE {
  27.         global INTEGER,
  28.         local  OBJECT IDENTIFIER}
  29.  
  30. Criticality ::=
  31.     BIT STRING {
  32.     for-submission (0),
  33.     for-transfer (1),
  34.     for-delivery (2) } (SIZE (0..ub-bit-options))
  35.  
  36. ExtensionField ::=
  37.     SEQUENCE {
  38.         type        [0] EXPLICIT ExtensionType,
  39.         criticality [1] Criticality OPTIONAL,
  40.         value       [2] EXPLICIT ANY OPTIONAL}
  41.         
  42. Extensions ::=
  43.     SET OF ExtensionField
  44.  
  45. -- Extension Attributes
  46.  
  47. ExtensionAttribute ::=
  48.     SEQUENCE {
  49.          type  [0] INTEGER,
  50.          value [1] ANY}
  51.  
  52. ExtensionAttributes ::=
  53.     SET OF ExtensionAttribute
  54.  
  55. --    MTS-bind and MTS-unbind
  56.  
  57. Password ::=
  58.     CHOICE {
  59.         ia5string IA5String,
  60.         octetstring OCTET STRING
  61.     }
  62.  
  63. Credentials ::=
  64.     CHOICE {
  65.         simple Password,
  66.         strong StrongCredentials}
  67.  
  68. StrongCredentials ::= 
  69.     SET {
  70.         bind-token  [0] Token OPTIONAL,
  71.         certificate [1] Certificates OPTIONAL}
  72.  
  73.  
  74. MTSBindArgument ::=
  75.     SET {
  76.         initiator-name            ObjectName,
  77.         messages-waiting        [1] EXPLICIT MessagesWaiting OPTIONAL,
  78.         initiator-credentials    [2] EXPLICIT InitiatorCredentials, 
  79.         security-context        [3] SecurityContext OPTIONAL}
  80.  
  81.         --The EXPLICIT is necessary due to funny
  82.         --encoding of IMPLICIT tags in asn1 and 
  83.         --the interaction with types that are 
  84.         --CHOICE's.
  85.  
  86. MTSBindResult ::=
  87.     SET {
  88.         responder-name            ObjectName,
  89.         messages-waiting        [1] EXPLICIT MessagesWaiting OPTIONAL,
  90.          responder-credentials    [2] EXPLICIT ResponderCredentials} --as above
  91.  
  92. MTSBindError ::=
  93.     INTEGER {
  94.         busy (0),
  95.         authentication-error (2),
  96.         unacceptable-dialogue-mode (3),
  97.         unacceptable-security-context (4) } 
  98.  
  99.  
  100.  
  101. --    Association Control Parameters
  102.  
  103.  
  104. ObjectName ::= CHOICE {
  105.     mTS-user ORAddressAndOptionalDirectoryName,
  106.     mTA [0] MTAName}
  107.  
  108. MessagesWaiting ::= SET {
  109.     urgent [0] DeliveryQueue,
  110.     normal [1] DeliveryQueue,
  111.     non-urgent [2] DeliveryQueue }
  112.  
  113. DeliveryQueue ::= SET {
  114.     messages [0] INTEGER (0..ub-queue-size),
  115.     octets [1] INTEGER DEFAULT 0 }
  116.  
  117. InitiatorCredentials ::= CHOICE {
  118.     simple Password,
  119.     strong [0] StrongCredentials }
  120.  
  121. ResponderCredentials ::= CHOICE {
  122.     simple Password,
  123.     strong[0] StrongCredentials }
  124.  
  125. Context ::= OBJECT IDENTIFIER
  126.  
  127.  
  128. --    Submission Port
  129.  
  130.  
  131. messageSubmission OPERATION
  132.     ARGUMENT SEQUENCE {
  133.         envelope MessageSubmissionEnvelope,
  134.         content Content }
  135.     RESULT SET {
  136.         message-submission-identifier MessageSubmissionIdentifier,
  137.         message-submission-time [0] MessageSubmissionTime,
  138.         content-identifier ContentIdentifier OPTIONAL,
  139.         extensions [1] Extensions DEFAULT {}}
  140.     ERRORS {
  141.         submissionControlViolated,
  142.         elementOfServiceNotSubscribed,
  143.         originatorInvalid,
  144.         recipientImproperlySpecified,
  145.         inconsistentRequest,
  146.         securityError,
  147.         unsupportedCriticalFunction,
  148.         remoteBindError }
  149.         ::= 3
  150.  
  151. probeSubmission OPERATION
  152.     ARGUMENT
  153.         envelope ProbeSubmissionEnvelope
  154.     RESULT SET {
  155.         probe-submission-identifier ProbeSubmissionIdentifier,
  156.         probe-submission-time [0] ProbeSubmissionTime,
  157.         content-identifier ContentIdentifier OPTIONAL }
  158.     ERRORS {
  159.         submissionControlViolated,
  160.         elementOfServiceNotSubscribed,
  161.         originatorInvalid,
  162.         recipientImproperlySpecified,
  163.         inconsistentRequest,
  164.         securityError,
  165.         unsupportedCriticalFunction,
  166.         remoteBindError }
  167.         ::= 4
  168.  
  169. cancelDeferredDelivery OPERATION
  170.     ARGUMENT
  171.         message-submission-identifier MessageSubmissionIdentifier
  172.     RESULT NULL
  173.     ERRORS {
  174.         deferredDeliveryCancellationRejected,
  175.         messageSubmissionIdentifierInvalid,
  176.         remoteBindError }
  177.         ::= 7
  178.  
  179. submissionControl OPERATION
  180.     ARGUMENT
  181.         controls SubmissionControls
  182.     RESULT
  183.         waiting Waiting
  184.     ERRORS { 
  185.         securityError}
  186.         ::= 2
  187.  
  188. submissionControlViolated ERROR
  189.     ::= 1
  190.  
  191. elementOfServiceNotSubscribed ERROR
  192.     ::= 4
  193.  
  194. deferredDeliveryCancellationRejected ERROR
  195.     ::= 8
  196.  
  197. originatorInvalid ERROR
  198.     ::= 2
  199.  
  200. recipientImproperlySpecified ERROR
  201.     PARAMETER
  202.         improperly-specified-recipients SEQUENCE SIZE (1..ub-recipients) OF 
  203.             ORAddressAndOptionalDirectoryName
  204.     ::= 3
  205.  
  206. messageSubmissionIdentifierInvalid ERROR
  207.     ::= 7
  208.  
  209. inconsistentRequest ERROR
  210.     ::= 11
  211.  
  212. securityError ERROR
  213.     PARAMETER
  214.         security-problem SecurityProblem
  215.     ::= 12
  216.  
  217. SecurityProblem ::= INTEGER (0..ub-security-problems)
  218.  
  219. unsupportedCriticalFunction ERROR
  220.     ::= 13
  221.  
  222.  
  223. --    Delivery Operations
  224.  
  225. messageDelivery  OPERATION
  226.     ARGUMENT SEQUENCE {
  227.         envelope MessageDeliveryEnvelope,
  228.         content Content }
  229.     RESULT SET {
  230.         recipient-certificate [0] RecipientCertificate OPTIONAL,
  231.         proof-of-delivery [1] ProofOfDelivery OPTIONAL}
  232.     ERRORS {
  233.         deliveryControlViolated,
  234.         securityError,
  235.         unsupportedCriticalFunction}
  236.     ::= 5
  237.  
  238. reportDelivery OPERATION
  239.     ARGUMENT SET {
  240.         envelope ReportDeliveryEnvelope,
  241.         returned-content [0] Content OPTIONAL }
  242.     RESULT NULL
  243.     ERRORS {
  244.         deliveryControlViolated,
  245.         securityError,
  246.         unsupportedCriticalFunction}
  247.     ::= 6
  248.  
  249. deliveryControl OPERATION
  250.     ARGUMENT 
  251.         controls DeliveryControls
  252.     RESULT
  253.         waiting Waiting
  254.     ERRORS {
  255.         controlViolatesRegistration,
  256.         securityError }
  257.     ::= 2
  258.  
  259.  
  260.  
  261. --     Delivery Errors
  262.  
  263. deliveryControlViolated  ERROR
  264.         ::= 1
  265.  
  266. controlViolatesRegistration  ERROR
  267.         ::= 14
  268.  
  269. remoteBindError ERROR
  270.     ::= 15
  271.  
  272.  
  273.  
  274.  
  275. --    Submission Port Parameters
  276.  
  277. MessageSubmissionIdentifier ::= MTSIdentifier
  278.  
  279. MessageSubmissionTime ::= Time
  280.  
  281. ProbeSubmissionIdentifier ::= MTSIdentifier
  282.  
  283. ProbeSubmissionTime ::= Time
  284.  
  285. SubmissionControls ::= Controls
  286.  
  287. Waiting ::= SET {
  288.     waiting-operations [0] Operations DEFAULT { },
  289.     waiting-messages [1] WaitingMessages DEFAULT { },
  290.     waiting-content-types [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT { },
  291.     waiting-encoded-information-types EncodedInformationTypes OPTIONAL }
  292.  
  293. Operations ::= BIT STRING {
  294.     probe-submission-or-report-delivery (0),
  295.     message-submission-or-message-delivery (1) } (SIZE (0..ub-bit-options))
  296.     -- holding 'one', not-holding 'zero'
  297.  
  298. WaitingMessages ::= BIT STRING {
  299.     long-content (0),
  300.     low-priority (1),
  301.     other-security-labels (2) } (SIZE (0..ub-bit-options))
  302.  
  303. --    Delivery Port
  304.  
  305. DeliveryControls ::= Controls
  306.  
  307. Controls ::= SET {
  308.     restrict [0] BOOLEAN DEFAULT TRUE,
  309.     -- update 'TRUE', remove 'FALSE'
  310.     permissible-operations [1] Operations OPTIONAL,
  311.     permissible-maximum-content-length [2] ContentLength OPTIONAL,
  312.     permissible-lowest-priority Priority OPTIONAL,
  313.     permissible-content-types [4] SET SIZE (1..ub-content-types) OF ContentType OPTIONAL,
  314.     permissible-encoded-information-types EncodedInformationTypes OPTIONAL,
  315.     permissible-security-context [5] SecurityContext OPTIONAL }
  316.  
  317. --    Note[:| -] The Tags [0], [1] and [2] are altered for the Register operation only.
  318.  
  319. RecipientCertificate ::= Certificates
  320.  
  321. --    Administration Port
  322.  
  323. RegisterArgument  ::= 
  324.     SET {
  325.         user-name UserName OPTIONAL,
  326.         user-address [0] UserAddress OPTIONAL,
  327.         deliverable-encoded-information-types EncodedInformationTypes OPTIONAL,
  328.         deliverable-maximum-content-length [1] EXPLICIT ContentLength OPTIONAL,
  329.         default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
  330.         deliverable-content-types [3] SET SIZE (1..ub-content-types) OF ContentType OPTIONAL,
  331.         labels-and-redirections [4] SET SIZE (1..ub-labels-and-redirections) OF 
  332.             LabelAndRedirection OPTIONAL }
  333.  
  334. ChangeCredentialsArgument ::= 
  335.     SET {
  336.         old-credentials [0] Credentials,
  337.         new-credentials [1] Credentials    -- same CHOICE as for old-credentials -- }
  338.  
  339.  
  340. --    Administration Port Parameters
  341.  
  342. UserName ::= ORAddressAndOptionalDirectoryName
  343.  
  344. UserAddress ::= CHOICE {
  345.     x121 [0] SEQUENCE {
  346.         x121-address NumericString (SIZE (1..ub-x121-address-length)) OPTIONAL,
  347.         tsap-id PrintableString (SIZE (1..ub-tsap-id-length)) OPTIONAL }
  348.  
  349. --    , presentation [1] PSAPAddress -- }
  350.  
  351. -- PSAPAddress ::= PresentationAddress
  352.  
  353. DefaultDeliveryControls ::= Controls 
  354.  
  355. LabelAndRedirection ::= SET {
  356.     user-security-label [0] SecurityLabel OPTIONAL,
  357.     recipient-assigned-alternate-recipient [1] RecipientAssignedAlternateRecipient OPTIONAL }
  358.  
  359. RecipientAssignedAlternateRecipient ::= ORAddressAndOptionalDirectoryName
  360.  
  361. --    Message Submission Envelope
  362.  
  363. MessageSubmissionEnvelope ::= SET {
  364.     originator-name OriginatorName,
  365.     original-eits OriginalEncodedInformationTypes OPTIONAL,
  366.     content-type ContentType,
  367.     content-identifier ContentIdentifier OPTIONAL,
  368.     priority Priority DEFAULT normal,
  369.     per-message-indicators PerMessageIndicators DEFAULT {},
  370.     deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
  371.     extensions [2] Extensions DEFAULT {},
  372.     per-recipient-fields [1] SEQUENCE SIZE (1..ub-recipients) OF 
  373.         PerRecipientMessageSubmissionFields OPTIONAL }
  374.  
  375. PerMessageSubmissionExtensions ::= Extensions
  376.  
  377. PerRecipientMessageSubmissionFields ::= SET {
  378.     recipient-name RecipientName,
  379.     originator-report-request [0] OriginatorReportRequest,
  380.     explicit-conversion [1] ExplicitConversion OPTIONAL,
  381.     extensions [2] PerRecipientMessageSubmissionExtensions DEFAULT { } }
  382.  
  383. PerRecipientMessageSubmissionExtensions ::= Extensions
  384.  
  385. --    Probe Submission Envelope
  386.  
  387. ProbeSubmissionEnvelope ::= SET {
  388.     originator-name OriginatorName,
  389.     original-eits OriginalEncodedInformationTypes OPTIONAL,
  390.     content-type ContentType,
  391.     content-identifier ContentIdentifier OPTIONAL,
  392.     content-length [0] ContentLength DEFAULT 0,
  393.     per-message-indicators PerMessageIndicators DEFAULT {},
  394.     extensions [2] Extensions DEFAULT {},
  395.     per-recipient-fields [3] SEQUENCE SIZE (1..ub-recipients) OF 
  396.         PerRecipientProbeSubmissionFields }
  397.  
  398. PerRecipientProbeSubmissionFields ::= SET {
  399.     recipient-name RecipientName,
  400.     originator-report-request [0] OriginatorReportRequest,
  401.     explicit-conversion [1] ExplicitConversion OPTIONAL,
  402.     extensions [2] Extensions DEFAULT { } }
  403.  
  404.  
  405. --    Message Delivery Envelope
  406.  
  407. MessageDeliveryEnvelope ::= SEQUENCE {
  408.     identifier MessageDeliveryIdentifier,
  409.     time MessageDeliveryTime,
  410.     fields OtherMessageDeliveryFields }
  411.  
  412. OtherMessageDeliveryFields ::= SET {
  413.     content-type DeliveredContentType,
  414.     originator-name OriginatorName,
  415.     original-encoded-information-types [1] OriginalEncodedInformationTypes OPTIONAL,
  416.     priority Priority DEFAULT normal,
  417.     delivery-flags [2] DeliveryFlags OPTIONAL,
  418.     other-recipient-names [3] OtherRecipientNames OPTIONAL,
  419.     this-recipient-name [4] ThisRecipientName,
  420.     originally-intended-recipient-name [5] OriginallyIntendedRecipientName OPTIONAL,
  421.     converted-encoded-information-types [6] ConvertedEncodedInformationTypes OPTIONAL,
  422.     message-submission-time [7] MessageSubmissionTime,
  423.     content-identifier [8] ContentIdentifier OPTIONAL,
  424.     extensions [9] Extensions DEFAULT { } }
  425.  
  426. --    Report Delivery Envelope
  427.  
  428. ReportDeliveryEnvelope ::= SET {
  429.     subject-submission-identifier SubjectSubmissionIdentifier,
  430.     content-identifier ContentIdentifier OPTIONAL,
  431.     content-type ContentType OPTIONAL,
  432.     original-eits OriginalEncodedInformationTypes OPTIONAL,
  433.     extensions [1] Extensions DEFAULT {},
  434.     per-recipient-fields SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields }
  435.  
  436. PerReportDeliveryFields ::= SET {
  437.     subject-submission-identifier SubjectSubmissionIdentifier,
  438.     content-identifier ContentIdentifier OPTIONAL,
  439.     content-type ContentType OPTIONAL,
  440.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  441.     extensions [1] Extensions DEFAULT { } }
  442.  
  443. PerRecipientReportDeliveryFields ::= SET {
  444.     actual-recipient-name [0] ActualRecipientName,
  445.     report [1] Report,
  446.     converted-encoded-information-types ConvertedEncodedInformationTypes OPTIONAL,
  447.     originally-intended-recipient-name [2] OriginallyIntendedRecipientName OPTIONAL,
  448.     supplementary-information [3] SupplementaryInformation OPTIONAL,
  449.     extensions [4] Extensions DEFAULT { } }
  450.  
  451. Report ::= CHOICE {
  452.     delivery [0] DeliveryReport,
  453.     non-delivery [1] NonDeliveryReport }
  454.  
  455. DeliveryReport ::= SET {
  456.     message-delivery-time [0] MessageDeliveryTime,
  457.     type-of-MTS-user [1] TypeOfMTSUser DEFAULT public }
  458.  
  459. NonDeliveryReport ::= SET {
  460.     non-delivery-reason-code [0] NonDeliveryReasonCode,
  461.     non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL }
  462.  
  463. --    Envelope Fields
  464.  
  465. OriginatorName ::= ORAddressAndOrDirectoryName
  466.  
  467. OriginalEncodedInformationTypes ::= EncodedInformationTypes
  468.  
  469. -- Should really be a CHOICE
  470. ContentType ::= CHOICE {
  471.     built-in BuiltInContentType,
  472.     external ExternalContentType }
  473.  
  474. BuiltInContentType ::= [APPLICATION 6] INTEGER {
  475.     unidentified (0),
  476.     external (1),            -- identified by the object-identifier of the EXTERNAL content
  477.     interpersonal-messaging-1984 (2),
  478.     interpersonal-messaging-1988 (22) } (0..ub-built-in-content-type)
  479.  
  480. ExternalContentType ::= OBJECT IDENTIFIER
  481.  
  482. DeliveredContentType ::= CHOICE {
  483.     built-in [0] BuiltInContentType,
  484.     external ExternalContentType
  485. }
  486.  
  487. ContentIdentifier ::= [APPLICATION 10] PrintableString (SIZE (1..ub-content-id-length))
  488.  
  489. PerMessageIndicators ::= [APPLICATION 8] BIT STRING {
  490.     disclosure-of-recipients (0),        -- disclosure-of-recipients-allowed 'one',
  491.                         -- disclosure-of-recipient-prohibited 'zero';
  492.                         -- ignored for Probe-submission
  493.     implicit-conversion-prohibited (1),    -- implicit-conversion-prohibited 'one', 
  494.                         -- implicit-conversion-allowed 'zero'
  495.     alternate-recipient-allowed (2),        -- alternate-recipient-allowed 'one',
  496.                         -- alternate-recipient-prohibited 'zero'
  497.     content-return-request (3)        -- content-return-requested 'one', 
  498.                         -- content-return-not-requested 'zero';
  499.                         -- ignored for Probe-submission -- } 
  500.     (SIZE (0..ub-bit-options))
  501.  
  502. RecipientName ::= ORAddressAndOrDirectoryName
  503.  
  504. OriginatorReportRequest ::= BIT STRING {
  505.     report (3),
  506.     non-delivery-report (4)
  507.     -- at most one bit shall be 'one':
  508.     -- report bit 'one' requests a 'report';
  509.     -- non-delivery-report bit 'one' requests a 'non-delivery-report';
  510.     -- both bits 'zero' requests 'no-report' -- } (SIZE (0..ub-bit-options))
  511.  
  512. ExplicitConversion ::= INTEGER {
  513.     ia5-text-to-teletex (0),
  514.     teletex-to-telex (1),
  515.     telex-to-ia5-text (2),
  516.     telex-to-teletex (3),
  517.     telex-to-g4-class-1 (4),
  518.     telex-to-videotex (5),
  519.     ia5-text-to-telex (6),
  520.     telex-to-g3-facsimile (7),
  521.     ia5-text-to-g3-facsimile (8),
  522.     ia5-text-to-g4-class-1 (9),
  523.     ia5-text-to-videotex (10),
  524.     teletex-to-ia5-text (11),
  525.     teletex-to-g3-facsimile (12),
  526.     teletex-to-g4-class-1 (13),
  527.     teletex-to-videotex (14),
  528.     videotex-to-telex (15),
  529.     videotex-to-ia5-text (16),
  530.     videotex-to-teletex (17) } (0..ub-integer-options)
  531.  
  532. DeferredDeliveryTime ::= Time
  533.  
  534. Priority ::= [APPLICATION 7] ENUMERATED {
  535.     normal (0),
  536.     non-urgent (1),
  537.     urgent (2) }
  538.  
  539. ContentLength ::= INTEGER (0..ub-content-length)
  540.  
  541. MessageDeliveryIdentifier ::= MTSIdentifier
  542.  
  543. MessageDeliveryTime ::= Time
  544.  
  545. DeliveryFlags ::= BIT STRING {
  546.     implicit-conversion-prohibited (1)    -- implicit-conversion-prohibited 'one', 
  547.                         -- implicit-conversion-allowed 'zero' --  } 
  548.     (SIZE (0..ub-bit-options))
  549.  
  550. OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName
  551.  
  552. OtherRecipientName ::= ORAddressAndOrDirectoryName
  553.  
  554. ThisRecipientName ::= ORAddressAndOrDirectoryName
  555.  
  556. OriginallyIntendedRecipientName ::= ORAddressAndOrDirectoryName
  557.  
  558. ConvertedEncodedInformationTypes ::= EncodedInformationTypes
  559.  
  560. SubjectSubmissionIdentifier ::= MTSIdentifier
  561.  
  562. TypeOfMTSUser ::= INTEGER {
  563.     public (0),
  564.     private (1),
  565.     ms (2),
  566.     dl (3),
  567.     pdau (4),
  568.     physical-recipient (5),
  569.     other (6) } (0..ub-mts-user-types)
  570.  
  571. NonDeliveryReasonCode ::= INTEGER {
  572.     transfer-failure (0),
  573.     unable-to-transfer (1),
  574.     conversion-not-performed (2),
  575.     physical-rendition-not-performed (3),
  576.     physical-delivery-not-performed (4),
  577.     restricted-delivery (5),
  578.     directory-operation-unsuccessful (6) } (0..ub-reason-codes)
  579.  
  580. NonDeliveryDiagnosticCode ::= INTEGER {
  581.     unrecognised-OR-name (0),
  582.     ambiguous-OR-name (1),
  583.     mts-congestion (2),
  584.     loop-detected (3),
  585.     recipient-unavailable (4),
  586.     maximum-time-expired (5),
  587.     encoded-information-types-unsupported (6),
  588.     content-too-long (7),
  589.     conversion-impractical (8),
  590.     implicit-conversion-prohibited (9),
  591.     implicit-conversion-not-subscribed (10),
  592.     invalid-arguments (11),
  593.     content-syntax-error (12),
  594.     size-constraint-violation (13),
  595.     protocol-violation (14),
  596.     content-type-not-supported (15),
  597.     too-many-recipients (16),
  598.     no-bilateral-agreement (17),
  599.     unsupported-critical-function (18),
  600.     conversion-with-loss-prohibited (19),
  601.     line-too-long (20),
  602.     page-split (21),
  603.     pictorial-symbol-loss (22),
  604.     punctuation-symbol-loss (23),
  605.     alphabetic-character-loss (24),
  606.     multiple-information-loss (25),
  607.     recipient-reassignment-prohibited (26),
  608.     redirection-loop-detected (27),
  609.     dL-expansion-prohibited (28),
  610.     no-DL-submit-permission (29),
  611.     dl-expansion-failure (30),
  612.     physical-rendition-attributes-not-supported (31),
  613.     undeliverable-mail-physical-delivery-address-incorrect (32),
  614.     undeliverable-mail-physical-delivery-office-incorrect-or-invalid (33),
  615.     undeliverable-mail-physical-delivery-address-incomplete (34),
  616.     undeliverable-mail-recipient-unknown (35),
  617.     undeliverable-mail-recipient-deceased (36),
  618.     undeliverable-mail-organization-expired (37),
  619.     undeliverable-mail-recipient-refused-to-accept (38),
  620.     undeliverable-mail-recipient-did-not-claim (39),
  621.     undeliverable-mail-recipient-changed-address-permanently (40),
  622.     undeliverable-mail-recipient-changed-address-temporarily (41),
  623.     undeliverable-mail-recipient-changed-temporary-address (42),
  624.     undeliverable-mail-new-address-unknown (43),
  625.     undeliverable-mail-recipient-did-not-want-forwarding (44),
  626.     undeliverable-mail-originator-prohibited-forwarding (45),
  627.     secure-messaging-error (46),
  628.     unable-to-downgrade (47) } (0..ub-diagnostic-codes)
  629.  
  630. SupplementaryInformation ::= PrintableString (SIZE (1..ub-supplementary-info-length))
  631.  
  632.  
  633. --    Common Parameter Types
  634.  
  635. Content ::= OCTET STRING        -- when the content-type has the integer value external, the value of the
  636.                 -- content octet string is the ASN.1 encoding of the external-content;
  637.                 -- an external-content is a data type EXTERNAL
  638.  
  639. MTSIdentifier ::= [APPLICATION 4] SEQUENCE {
  640.     global-domain-identifier GlobalDomainIdentifier,
  641.     local-identifier LocalIdentifier }
  642.  
  643. LocalIdentifier ::= IA5String (SIZE (1..ub-local-id-length))
  644.  
  645. GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE {
  646.     country-name CountryName,
  647.     administration-domain-name AdministrationDomainName,
  648.     private-domain-identifier PrivateDomainIdentifier OPTIONAL }
  649.  
  650. PrivateDomainIdentifier ::= CHOICE {
  651.     numeric NumericString (SIZE (1..ub-domain-name-length)),
  652.     printable PrintableString (SIZE (1..ub-domain-name-length)) }
  653.  
  654. MTAName ::= IA5String (SIZE (1..ub-mta-name-length))
  655.  
  656. Time ::= UTCTime
  657.  
  658. --    OR Names
  659.  
  660. ORAddressAndOrDirectoryName ::= ORName
  661.  
  662. ORAddressAndOptionalDirectoryName ::= ORName
  663.  
  664. ORName ::= [APPLICATION 0] SEQUENCE {
  665.     standard-attributes StandardAttributes,
  666.     domain-defined DomainDefinedAttributes OPTIONAL,
  667.     extension-attributes ExtensionAttributes OPTIONAL,
  668.     directory-name [0] Name OPTIONAL }
  669.  
  670. ORAddress ::= SEQUENCE {
  671.     standard-attributes StandardAttributes,
  672.     domain-defined-attributes DomainDefinedAttributes OPTIONAL,
  673.     -- see also teletex-domain-defined-attributes
  674.     extension-attributes ExtensionAttributes OPTIONAL }
  675.  
  676. --    Note[:| -] the OR-address is semantically absent from the OR-name if the standard-attribute sequence is
  677. --    empty and the domain-defined-attributes and extension-attributes are both omitted.
  678.  
  679.  
  680. --    Standard Attributes
  681.  
  682. StandardAttributes ::= SEQUENCE {
  683.     country-name CountryName OPTIONAL,
  684.     administration-domain-name AdministrationDomainName OPTIONAL,
  685.     network-address [0] NetworkAddress OPTIONAL,
  686.     -- see also extended-network-address
  687.     terminal-identifier [1] TerminalIdentifier OPTIONAL,
  688.     private-domain-name [2] EXPLICIT PrivateDomainName OPTIONAL,
  689.     organization-name [3] OrganizationName OPTIONAL,
  690.     -- see also teletex-organization-name
  691.     numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
  692.     personal-name [5] PersonalName OPTIONAL,
  693.     organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
  694.     -- see also teletex-organizational-unit-names -- }
  695.  
  696. CountryName ::= [APPLICATION 1] EXPLICIT CHOICE {
  697.     x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
  698.     iso-3166-alpha2-code PrintableString (SIZE (ub-country-name-alpha-length))
  699. }
  700.  
  701. AdministrationDomainName ::= [APPLICATION 2] EXPLICIT CHOICE {
  702.     numeric NumericString (SIZE (0..ub-domain-name-length)),
  703.     printable PrintableString (SIZE (0..ub-domain-name-length))
  704. }
  705.  
  706. NetworkAddress ::= X121Address
  707.  
  708. X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
  709.  
  710. TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
  711.  
  712. PrivateDomainName ::= CHOICE {
  713.     numeric NumericString (SIZE (1..ub-domain-name-length)),
  714.     printable PrintableString (SIZE (1..ub-domain-name-length))
  715. }
  716.  
  717. OrganizationName ::= PrintableString (SIZE (1..ub-organization-name-length))
  718.  
  719. NumericUserIdentifier ::= NumericString (SIZE (1..ub-numeric-user-id-length))
  720.  
  721. PersonalName ::= SET {
  722.     surname [0] PrintableString (SIZE (1..ub-surname-length)),
  723.     given-name [1] PrintableString (SIZE (1..ub-given-name-length)) OPTIONAL,
  724.     initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL,
  725.     generation-qualifier [3] PrintableString (SIZE (1..ub-generation-qualifier-length)) OPTIONAL }
  726.  
  727. OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationUnitName 
  728.  
  729. OrganizationUnitName ::= PrintableString (SIZE (1..ub-organizational-unit-name-length))
  730.  
  731.  
  732. --    Domain-defined Attributes
  733.  
  734. DomainDefinedAttributes ::= SEQUENCE SIZE (1..ub-domain-defined-attributes) OF DomainDefinedAttribute 
  735.  
  736. DomainDefinedAttribute ::= SEQUENCE {
  737.     type PrintableString (SIZE (1..ub-domain-defined-attribute-type-length)),
  738.     value PrintableString (SIZE (1..ub-domain-defined-attribute-value-length)) }
  739.  
  740.  
  741. --    Encoded Information Types
  742.  
  743. EncodedInformationTypes ::= [APPLICATION 5] SET {
  744.     built-in-encoded-information-types [0] BuiltInEncodedInformationTypes,
  745. --    non-basic-parameters COMPONENTS OF NonBasicParameters,
  746.     external-encoded-information-types [4] ExternalEncodedInformationTypes OPTIONAL }
  747.  
  748.  
  749. --    Built-in Encoded Information Types
  750.  
  751. BuiltInEncodedInformationTypes ::= BIT STRING {
  752.     undefined (0),
  753.     telex (1),
  754.     ia5-text (2),
  755.     g3-facsimile (3),
  756.     g4-class-1 (4),
  757.     teletex (5),
  758.     videotex (6),
  759.     voice (7),
  760.     sfd (8),
  761.     mixed-mode (9) } (SIZE (0..ub-built-in-encoded-information-types))
  762.  
  763. --    Non-basic Parameters
  764.  
  765. NonBasicParameters ::= SET {
  766.     g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT { },
  767.     teletex [2] TeletexNonBasicParameters DEFAULT { },
  768.     g4-class-1-and-mixed-mode [3] G4Class1AndMixedModeNonBasicParameters OPTIONAL }
  769.  
  770. G3FacsimileNonBasicParameters ::= BIT STRING {
  771.     two-dimensional (8),
  772.     fine-resolution (9),
  773.     unlimited-length (20),
  774.     b4-length (21),
  775.     a3-width (22),
  776.     b4-width (23),
  777.     uncompressed (30) }            -- as defined in [|CCITT] Recommendation T.30
  778.  
  779. TeletexNonBasicParameters ::= SET {
  780.     graphic-character-sets [0] TeletexString OPTIONAL,
  781.     control-character-sets [1] TeletexString OPTIONAL,
  782.     page-formats [2] OCTET STRING OPTIONAL,
  783.     miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL,
  784.     private-use [4] OCTET STRING OPTIONAL    -- maximum ub-teletex-private-use-length octets -- }
  785.     -- as defined in [|CCITT] Recommendation T.62
  786.  
  787. G4Class1AndMixedModeNonBasicParameters ::= PresentationCapabilities
  788.  
  789. PresentationCapabilities ::= ANY        -- as defined in [|CCITT] Recommendations T.400, T.503 and T.501
  790.  
  791.  
  792. --    External Encoded Information Types
  793.  
  794. ExternalEncodedInformationTypes ::= SET SIZE (1..ub-encoded-information-types) OF 
  795.     ExternalEncodedInformationType
  796.  
  797. ExternalEncodedInformationType ::= OBJECT IDENTIFIER 
  798.  
  799. -- END OF MTS 
  800.  
  801. MTABindArgument ::=
  802.     CHOICE {
  803.         no-auth NULL,        -- if no authentication is required
  804.         auth [1] SET {    -- if authentication is required
  805.             initiator-name       [0] MTAName,
  806.             initiator-credentials[1] EXPLICIT InitiatorCredentials,
  807.             security-context   [2] SecurityContext OPTIONAL } }
  808.  
  809. MTABindResult ::=
  810.     CHOICE {
  811.         no-auth NULL,        -- if no authentication is required
  812.         auth[1] SET {    -- if authentication is required
  813.             responder-name       [0] MTAName,
  814.             responder-credentials[1] EXPLICIT ResponderCredentials
  815.         }
  816.     }
  817.  
  818. MTABindError ::=
  819.     INTEGER {
  820.         busy (0),
  821.         authentication-error (2),
  822.         unacceptable-dialogue-mode (3),
  823.         unacceptable-security-context (4) } (0..ub-integer-options)
  824.  
  825.  
  826. --    Transfer Port
  827.  
  828. MessageTransferArgument ::=
  829.     SEQUENCE {
  830.         envelope MessageTransferEnvelope,
  831.         content Content }
  832.  
  833.  
  834. ReportTransferArgument ::= 
  835.     SEQUENCE {
  836.         envelope ReportTransferEnvelope,
  837.         content ReportTransferContent }
  838.  
  839.  
  840. --    Message Transfer Envelope
  841.  
  842. MessageTransferEnvelope ::= SET {
  843.     message-identifier MessageIdentifier,
  844.     originator-name OriginatorName,
  845.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  846.     content-type ContentType,
  847.     content-identifier ContentIdentifier OPTIONAL,
  848.     priority Priority DEFAULT normal,
  849.     per-message-indicators PerMessageIndicators DEFAULT { },
  850.     deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
  851.     per-domain-bilateral-information [1] SEQUENCE OF PerDomainBilateralInformation OPTIONAL,
  852.     trace-information TraceInformation,
  853.     extensions [3] Extensions DEFAULT { } ,
  854.     per-recipient-fields [2] SEQUENCE SIZE (1..ub-recipients) OF 
  855.         PerRecipientMessageTransferFields }
  856.  
  857. PerMessageTransferFields ::= SET {
  858.     message-identifier MessageIdentifier,
  859.     originator-name OriginatorName,
  860.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  861.     content-type ContentType,
  862.     content-identifier ContentIdentifier OPTIONAL,
  863.     priority Priority DEFAULT normal,
  864.     per-message-indicators PerMessageIndicators DEFAULT { },
  865.     deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL,
  866.     per-domain-bilateral-information [1] SEQUENCE OF PerDomainBilateralInformation OPTIONAL,
  867.     trace-information TraceInformation,
  868.     extensions [3] Extensions DEFAULT { } }
  869.  
  870. PerRecipientMessageTransferFields ::= SET {
  871.     recipient-name RecipientName,
  872.     originally-specified-recipient-number [0] OriginallySpecifiedRecipientNumber,
  873.     per-recipient-indicators [1] PerRecipientIndicators,
  874.     explicit-conversion [2] ExplicitConversion OPTIONAL,
  875.     extensions [3] Extensions DEFAULT { } }
  876.  
  877. --    Probe Transfer Envelope
  878.  
  879. ProbeTransferEnvelope ::= SET {
  880.     probe-identifier ProbeIdentifier,
  881.     originator-name OriginatorName,
  882.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  883.     content-type ContentType,
  884.     content-identifier ContentIdentifier OPTIONAL,
  885.     content-length [0] ContentLength OPTIONAL,
  886.     per-message-indicators PerMessageIndicators DEFAULT { },
  887.     per-domain-bilateral-information [1] SEQUENCE SIZE (1..ub-transfer) OF 
  888.         PerDomainBilateralInformation OPTIONAL,
  889.     trace-information TraceInformation,
  890.     extensions [3] Extensions DEFAULT { },
  891.     per-recipient-fields [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeTransferFields }
  892.  
  893. PerProbeTransferFields ::= SET {
  894.     probe-identifier ProbeIdentifier,
  895.     originator-name OriginatorName,
  896.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  897.     content-type ContentType,
  898.     content-identifier ContentIdentifier OPTIONAL,
  899.     content-length [0] ContentLength OPTIONAL,
  900.     per-message-indicators PerMessageIndicators DEFAULT { },
  901.     per-domain-bilateral-information [1] SEQUENCE SIZE (1..ub-transfer) OF 
  902.         PerDomainBilateralInformation OPTIONAL,
  903.     trace-information TraceInformation,
  904.     extensions [3] Extensions DEFAULT { } }
  905.  
  906. PerRecipientProbeTransferFields ::= SET {
  907.     recipient-name RecipientName,
  908.     originally-specified-recipient-number [0] OriginallySpecifiedRecipientNumber,
  909.     per-recipient-indicators [1] PerRecipientIndicators,
  910.     explicit-conversion [2] ExplicitConversion OPTIONAL,
  911.     extensions [3] Extensions DEFAULT { } }
  912.  
  913.  
  914. --    Report Transfer Envelope
  915.  
  916. ReportTransferEnvelope ::= SET {
  917.     report-identifier ReportIdentifier,
  918.     report-destination-name ReportDestinationName,
  919.     trace-information TraceInformation,
  920.     extensions [1] Extensions DEFAULT { } }
  921.  
  922. --    Report Transfer Content
  923.  
  924. ReportTransferContent ::= SET {
  925.     subject-identifier SubjectIdentifier,
  926.     subject-intermediate-trace-information SubjectIntermediateTraceInformation OPTIONAL,
  927.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  928.     content-type ContentType OPTIONAL,
  929.     content-identifier ContentIdentifier OPTIONAL,
  930.     returned-content [1] Content OPTIONAL,
  931.     additional-information [2] AdditionalInformation OPTIONAL,
  932.     extensions [3] Extensions DEFAULT { },
  933.     per-recipient-fields [0] SEQUENCE SIZE (1..ub-recipients) OF 
  934.         PerRecipientReportTransferFields }
  935.  
  936. PerReportTransferFields ::= SET {
  937.     subject-identifier SubjectIdentifier,
  938.     subject-intermediate-trace-information SubjectIntermediateTraceInformation OPTIONAL,
  939.     original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL,
  940.     content-type ContentType OPTIONAL,
  941.     content-identifier ContentIdentifier OPTIONAL,
  942.     returned-content [1] Content OPTIONAL,
  943.     additional-information [2] AdditionalInformation OPTIONAL,
  944.     extensions [3] Extensions DEFAULT { } }
  945.  
  946. PerRecipientReportTransferFields ::= SET {
  947.     actual-recipient-name [0] ActualRecipientName,
  948.     originally-specified-recipient-number [1] OriginallySpecifiedRecipientNumber,
  949.     per-recipient-indicators [2] PerRecipientIndicators,
  950.     last-trace-information [3] LastTraceInformation,
  951.     originally-intended-recipient-name [4] OriginallyIntendedRecipientName OPTIONAL,
  952.     supplementary-information [5] SupplementaryInformation OPTIONAL,
  953.     extensions [6] Extensions DEFAULT { } }
  954.  
  955.  
  956. --    Envelope & Report Content Fields
  957.  
  958. MessageIdentifier ::= MTSIdentifier
  959.  
  960. PerDomainBilateralInformation ::= SEQUENCE {
  961.     country-name CountryName,
  962.     domain-information DomainInformation,
  963.     bilateral-information BilateralInformation}
  964.  
  965. DomainInformation ::=
  966.     CHOICE {
  967.         administration-domain-name AdministrationDomainName,
  968.         private-domain-name AdministrationAndPrivateDomainName}
  969.  
  970. AdministrationAndPrivateDomainName ::=
  971.     SEQUENCE {
  972.         administration-domain-name [0] AdministrationDomainName,
  973.         private-domain-identifier [1] PrivateDomainIdentifier OPTIONAL}
  974.  
  975. BilateralInformation ::= ANY  -- maximum ub-bilateral-info octets including all encoding
  976.  
  977. OriginallySpecifiedRecipientNumber ::= INTEGER (SIZE (1..ub-recipients))
  978.  
  979. PerRecipientIndicators ::= BIT STRING {
  980.     responsibility (0),
  981.     -- responsible 'one', not-responsible 'zero'
  982.     originating-MTA-report (1),
  983.     originating-MTA-non-delivery-report (2),
  984.     -- either originating-MTA-report, or originating-MTA-non-delivery-report, or both, shall be 'one':
  985.     -- originating-MTA-report bit 'one' requests a 'report';
  986.     -- originating-MTA-non-delivery-report bit 'one' requests a 'non-delivery-report';
  987.     -- both bits 'one' requests an 'audited-report';
  988.     -- bits 0 - 2 'don't care' for Report Transfer Content
  989.     originator-report (3),
  990.     originator-non-delivery-report (4),
  991.     -- at most one bit shall be 'one':
  992.     -- originator-report bit 'one' requests a 'report';
  993.     -- originator-non-delivery-report bit 'one' requests a 'non-delivery-report';
  994.     -- both bits 'zero' requests 'no-report'
  995.     reserved-5 (5),
  996.     reserved-6 (6),
  997.     reserved-7 (7)
  998.     -- reserved- bits 5 - 7 shall be 'zero' -- } (SIZE (8..ub-bit-options))
  999.  
  1000. ProbeIdentifier ::= MTSIdentifier
  1001.  
  1002. ReportIdentifier ::= MTSIdentifier
  1003.  
  1004. ReportDestinationName ::= ORAddressAndOptionalDirectoryName
  1005.  
  1006. SubjectIdentifier ::= MessageOrProbeIdentifier
  1007.  
  1008. MessageOrProbeIdentifier ::= MTSIdentifier
  1009.  
  1010. SubjectIntermediateTraceInformation ::= TraceInformation
  1011.  
  1012. AdditionalInformation ::= ANY  -- maximum ub-additional-info octets including all encoding
  1013.  
  1014. ActualRecipientName ::= ORAddressAndOptionalDirectoryName
  1015.  
  1016. LastTraceInformation ::= SET {
  1017.     arrival-time [0] ArrivalTime,
  1018.     converted-encoded-information-types ConvertedEncodedInformationTypes OPTIONAL,
  1019.     report [1] EXPLICIT Report }
  1020.  
  1021.  
  1022. --    Common Parameter Types
  1023.  
  1024. TraceInformation ::= [APPLICATION 9] SEQUENCE SIZE (1..ub-transfers) OF TraceInformationElement
  1025.  
  1026. TraceInformationElement ::= SEQUENCE {
  1027.     global-domain-identifier GlobalDomainIdentifier,
  1028.     domain-supplied-information DomainSuppliedInformation }
  1029.  
  1030. DomainSuppliedInformation ::= SET {
  1031.     arrival-time [0] ArrivalTime,
  1032.     routing-action [2] RoutingAction,
  1033.     attempted-domain GlobalDomainIdentifier OPTIONAL,
  1034.     deferred-time [1] DeferredTime OPTIONAL,
  1035.     converted-encoded-information-types ConvertedEncodedInformationTypes OPTIONAL,
  1036.     other-actions [3] OtherActions DEFAULT { } }
  1037.  
  1038. AdditionalActions ::= SET {
  1039.     deferred-time [1] DeferredTime OPTIONAL,
  1040.     converted-encoded-information-types ConvertedEncodedInformationTypes OPTIONAL,
  1041.     other-actions [3] OtherActions DEFAULT { } }
  1042.  
  1043. RoutingAction ::= ENUMERATED {
  1044.     relayed (0),
  1045.     rerouted (1) }
  1046.  
  1047. DeferredTime ::= Time
  1048.  
  1049. ArrivalTime ::= Time
  1050.  
  1051. OtherActions ::= BIT STRING {
  1052.     redirected (0),
  1053.     dl-operation (1) } (SIZE (0..ub-bit-options))
  1054.  
  1055. Name ::= ANY -- for now...
  1056. END
  1057.