home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / x400 / iob.py < prev    next >
Encoding:
Text File  |  1991-12-18  |  12.3 KB  |  574 lines

  1. -- iob.py - MHS P22 definitions
  2. -- starting p602 in blue book x400(88)
  3.  
  4. -- @(#) $Header: /xtel/pp/pp-beta/Lib/x400/RCS/iob.py,v 6.0 1991/12/18 20:25:37 jpo Rel $
  5. --
  6. -- $Log: iob.py,v $
  7. -- Revision 6.0  1991/12/18  20:25:37  jpo
  8. -- Release 6.0
  9. --
  10. --
  11.  
  12. IOB 
  13. --    {
  14. --    joint-iso-ccitt
  15. --    mhs-motis(6)
  16. --    ipms(1)
  17. --    modules(0)
  18. --    information-objects(2)
  19. --    }
  20. DEFINITIONS IMPLICIT TAGS ::=
  21.  
  22. BEGIN
  23. IMPORTS
  24.     ub-auto-forward-comment, ub-free-form-name,
  25.     ub-ipm-identifier-suffix, ub-local-imp-identifier,
  26.     ub-subject-field, ub-telephone-number
  27.         FROM UB
  28.              {
  29.              joint-iso-ccitt
  30.              mhs-motis(6)
  31.              ipms(1)
  32.              modules(0)
  33.              upper-bounds(10)
  34.              }
  35.  
  36.     EncodedInformationTypes, G3FacsimileNonBasicParameters,
  37.     MessageDeliveryTime, ORAddress, 
  38. --    ORName but not right yet
  39.     StandardAttributes, DomainDefinedAttributes, ExtensionAttributes,
  40.     OtherMessageDeliveryFields, SupplementaryInformation,
  41.     TeletexNonBasicParameters
  42.         FROM MTA
  43.         {
  44.         joint-iso-ccitt
  45.         mhs-motis(6)
  46.         mts(3)
  47.         modules(0)
  48.         mts-abstract-service(1)
  49.         };
  50. --        Change
  51. --        Name
  52. --                FROM IF
  53. --                        {
  54. --                        joint-iso-ccitt
  55. --                        ds(5)
  56. --                        modules(1)
  57. --                        informationFramework(1)
  58. --                        };
  59.  
  60. Time ::= UTCTime
  61.  
  62. -- Information object
  63.  
  64. InformationObject ::= CHOICE {
  65.           ipm [0] IPM,
  66.           ipn [1] IPN
  67.           }
  68. -- IPM
  69.  
  70. IPM ::= SEQUENCE {
  71.     heading                 Heading,
  72.     body                Body
  73.     }
  74.  
  75. -- Heading
  76.  
  77. Heading ::= SET {
  78.     this-IPM            ThisIPMField,
  79.     originator        [0]    OriginatorField OPTIONAL,
  80.     authorizing-users    [1]    AuthorizingUsersField OPTIONAL,
  81.     primary-recipients    [2]    PrimaryRecipientsField DEFAULT {},
  82.     copy-recipients        [3]    CopyRecipientsField OPTIONAL,
  83.     blind-copy-recipients    [4]    BlindCopyRecipientsField OPTIONAL,
  84.     replied-to-IPM        [5]    RepliedToIPMField OPTIONAL,
  85.     obsoleted-IPMs        [6]    ObsoletedIPMsField DEFAULT {},
  86.     related-IPMs        [7]    RelatedIPMsField DEFAULT {},
  87.     subject            [8]    EXPLICIT SubjectField OPTIONAL,
  88.     expiry-time        [9]    ExpiryTimeField OPTIONAL,
  89.     reply-time        [10]    ReplyTimeField OPTIONAL,
  90.     reply-recipients    [11]    ReplyRecipientsField OPTIONAL,
  91.     importance        [12]    ImportanceField DEFAULT normal,
  92.     sensitivity        [13]    SensitivityField OPTIONAL,
  93.     auto-forwarded        [14]    AutoForwardedField DEFAULT FALSE,
  94.     extensions        [15]    ExtensionsField DEFAULT {}
  95.     }
  96.  
  97. -- Heading components types
  98.  
  99. IPMIdentifierSequence ::= SEQUENCE OF IPMIdentifier
  100.  
  101. IPMIdentifier ::= [APPLICATION 11] SET {
  102.     user                   ORName OPTIONAL,
  103.     user-relative-identifier       LocalIPMIdentifier
  104.     }
  105.  
  106. LocalIPMIdentifier ::= PrintableString
  107.         (SIZE (0..ub-local-ipm-identifier))
  108.  
  109. RecipientSequence ::= SEQUENCE OF RecipientSpecifier
  110.  
  111. RecipientSpecifier ::= SET {
  112.     recipient           [0]    ORDescriptor,
  113.     notification-requests    [1]    NotificationRequests DEFAULT {},
  114.     reply-requested        [2]    BOOLEAN DEFAULT FALSE
  115.     }
  116.  
  117. NotificationRequests ::= BIT STRING {
  118.     rn(0),
  119.     nrn(1),
  120.     ipm-return(2)
  121.     }
  122.  
  123. ORDescriptorSequence ::= SEQUENCE OF ORDescriptor
  124.  
  125. ORDescriptor ::= SET {
  126.     formal-name              ORName OPTIONAL,
  127.     free-form-name        [0]    FreeFormName OPTIONAL,
  128.     telephone-number    [1]    TelephoneNumber OPTIONAL
  129.     }
  130.  
  131. FreeFormName ::= TeletexString (SIZE (0..ub-free-form-name))
  132.  
  133. TelephoneNumber ::= PrintableString (SIZE (0..ub-telephone-number))
  134.  
  135. -- This IPM heading field
  136.  
  137. ThisIPMField ::= IPMIdentifier
  138.  
  139. -- Originating heading field
  140.  
  141. OriginatorField ::= ORDescriptor
  142.  
  143. --Authorizing Users heading field
  144.  
  145. --AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
  146.          
  147. --AuthorizingUsersSubfield ::= ORDescriptor
  148.  
  149. -- To simplify coding
  150.  
  151. AuthorizingUsersField ::= ORDescriptorSequence
  152.  
  153. -- Primary Recipients heading field
  154.  
  155. --PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
  156.  
  157. --PrimaryRecipientsSubfield ::= RecipientSpecifier
  158.  
  159. -- To simplify coding
  160.  
  161. PrimaryRecipientsField ::= RecipientSequence
  162.  
  163. -- Copy Recipients heading field
  164.  
  165. --CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
  166.  
  167. --CopyRecipientsSubfield ::= RecipientSpecifier
  168.  
  169. -- To simplify coding
  170.  
  171. CopyRecipientsField ::= RecipientSequence
  172.  
  173. -- Blind Copy Recipients heading field
  174.  
  175. --BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
  176.  
  177. --BlindCopyRecipientsSubfield ::= RecipientSpecifier
  178.  
  179. BlindCopyRecipientsField ::= RecipientSequence
  180.  
  181. -- Replied-to IPM heading field
  182.  
  183. RepliedToIPMField ::= IPMIdentifier
  184.  
  185. -- Obsoleted IPMs heading field
  186.  
  187. --ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
  188.  
  189. --ObsoletedIPMsSubfield ::= IPMIdentifier
  190.  
  191. -- To simplify coding
  192.  
  193. ObsoletedIPMsField ::= IPMIdentifierSequence
  194.  
  195. -- Related IPMs heading field
  196.  
  197. --RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
  198.  
  199. --RelatedIPMsSubfield ::= IPMIdentifier
  200.  
  201. -- To simplify coding
  202.  
  203. RelatedIPMsField ::= IPMIdentifierSequence
  204.  
  205. -- Subject heading field
  206.  
  207. SubjectField ::= TeletexString (SIZE (0..ub-subject-field))
  208.  
  209. -- Expiry Time heading field
  210.  
  211. ExpiryTimeField ::= Time
  212.  
  213. -- Reply Time heading field
  214.  
  215. ReplyTimeField ::= Time
  216.  
  217. -- Reply Recipients heading field
  218.  
  219. --ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
  220.  
  221. --ReplyRecipientsSubfield ::= ORDescriptor
  222.  
  223. -- To simplify coding
  224.  
  225. ReplyRecipientsField ::= ORDescriptorSequence
  226.  
  227. -- Importance heading field
  228.  
  229. ImportanceField ::= ENUMERATED {
  230.     low                       (0),
  231.     normal                (1),
  232.     high                (2)
  233.     }
  234.  
  235. -- Sensitivity heading field
  236.  
  237. SensitivityField ::= ENUMERATED {
  238.     personal                   (1),
  239.     private                (2),
  240.     company-confidential        (3)
  241.     }
  242.     
  243. -- Auto-forwarded heading field
  244.  
  245. AutoForwardedField ::= BOOLEAN
  246.  
  247. -- Extensions heading field
  248.  
  249. ExtensionsField ::= SET OF HeadingExtension
  250.  
  251. HeadingExtension ::= SEQUENCE {
  252.     type                      OBJECT IDENTIFIER,
  253.     value                ANY 
  254. }
  255.  
  256. -- Incomplete Copy
  257.  
  258. IncompleteCopy ::= NULL
  259.  
  260. Languages ::= SET OF Language
  261.  
  262. Language ::= PrintableString (SIZE (2..2))
  263.  
  264. RFC822FieldList ::= SEQUENCE OF RFC822Field
  265.  
  266. RFC822Field ::= IA5String
  267.  
  268. -- Body
  269.  
  270. Body ::=
  271.         SEQUENCE OF BodyPart
  272.  
  273. BodyPart ::=
  274.  
  275.         CHOICE {
  276.             ia5-text        [0] IA5TextBodyPart,
  277.  
  278.             voice        [2] VoiceBodyPart,
  279.  
  280.             g3-facsimile    [3] G3FacsimileBodyPart,
  281.  
  282.             g4-class1        [4] G4Class1BodyPart,
  283.  
  284.             teletex        [5] TeletexBodyPart,
  285.  
  286.             videotex        [6] VideotexBodyPart,
  287.  
  288.             encrypted        [8] EncryptedBodyPart,
  289.  
  290.             message        [9] MessageBodyPart,
  291.  
  292.             mixed-mode        [11] MixedModeBodyPart,
  293.  
  294.         bilaterally-defined    [14] BilaterallyDefinedBodyPart,
  295.  
  296.             nationally-defined    [7] NationallyDefinedBodyPart,
  297.  
  298.         externally-defined    [15] ExternallyDefinedBodyPart,
  299.  
  300.         -- not in x400 88 ?
  301.  
  302.             tlx            [1] TLXBodyPart,
  303.  
  304.             sfd            [10] SFDBodyPart,
  305.  
  306.             odif        [12] ODIFBodyPart,
  307.  
  308.         iso6937Text        [13] ISO6937TextBodyPart
  309.         }
  310.  
  311.  
  312. -- body part types
  313.  
  314. IA5TextBodyPart ::= SEQUENCE {
  315.         parameters   IA5TextParameters,
  316.         data         IA5TextData
  317.         }
  318.  
  319. IA5TextParameters ::= SET {
  320.           repertoire [0] Repertoire DEFAULT ia5
  321.           }
  322.  
  323. IA5TextData ::= IA5String
  324.  
  325. Repertoire ::= ENUMERATED {
  326.        ita2 (2),
  327.        ia5    (5)
  328.        }
  329.  
  330. TLXBodyPart ::= ANY
  331.  
  332. -- Voice body part
  333.  
  334. VoiceBodyPart ::= SEQUENCE {
  335.           parameters   VoiceParameters,
  336.           data       VoiceData
  337.           }
  338.  
  339. VoiceParameters ::= SET {}  -- for further study
  340.  
  341. VoiceData ::= BIT STRING -- for further study
  342.  
  343. -- G3 Facsimile body part
  344.  
  345. G3FacsimileBodyPart ::= SEQUENCE {
  346.       parameters    G3FacsimileParameters,
  347.       data        G3FacsimileData
  348.       }
  349.  
  350. G3FacsimileParameters ::= SET {
  351.       number-of-pages          [0] INTEGER    OPTIONAL,
  352.       non-basic-parameters    [1] G3FacsimileNonBasicParameters OPTIONAL
  353.       }
  354.  
  355. G3FacsimileData ::= SEQUENCE OF BIT STRING
  356.  
  357. -- G4 class 1 and mixed-mode body parts
  358.  
  359. --G4Class1BodyPart ::= SEQUENCE OF ProtocolElement
  360.  
  361. G4Class1BodyPart ::= ANY
  362.  
  363. -- MixedModeBodyPart ::= SEQUENCE OF ProtocolElement
  364.  
  365. MixedModeBodyPart ::= ANY
  366.  
  367. -- Teletex body part
  368.  
  369. TeletexBodyPart ::= SEQUENCE {
  370.         parameters   TeletexParameters,
  371.         data         TeletexData
  372.         }
  373.  
  374. TeletexParameters ::= SET {
  375.           number-of-pages    [0] INTEGER OPTIONAL,
  376.           telex-compatible    [1] BOOLEAN DEFAULT FALSE,
  377.           non-basic-parameters    [2] TeletexNonBasicParameters OPTIONAL
  378.           }
  379.  
  380. TeletexData ::= SEQUENCE OF TeletexString
  381.  
  382. -- Videotex body part
  383.  
  384. VideotexBodyPart ::= SEQUENCE {
  385.         parameters   VideotexParameters,
  386.         data         VideotexData
  387.         }
  388.  
  389. VideotexParameters ::= SET {
  390.           syntax   [0] VideotexSyntax OPTIONAL
  391.           }
  392. VideotexSyntax ::= INTEGER {
  393.            ids         (0),
  394.            data-syntax1    (1),
  395.            data-syntax2    (2),
  396.            data-syntax3    (3)}
  397.  
  398. VideotexData ::= SEQUENCE OF VideotexString
  399.  
  400. -- Encrypted body part
  401.  
  402. EncryptedBodyPart ::= SEQUENCE {
  403.           parameters   EncryptedParameters,
  404.           data           EncryptedData
  405.           }
  406.  
  407. EncryptedParameters ::= SET {}-- for further study
  408.  
  409. EncryptedData ::= BIT STRING -- for further study
  410.  
  411. -- Message body part
  412.  
  413. MessageBodyPart ::= SEQUENCE {
  414.         parameters    MessageParameters,
  415.         data        MessageData
  416.         }
  417.  
  418. MessageParameters ::= SET {
  419.           delivery-time        [0] MessageDeliveryTime OPTIONAL,
  420.           delivery-envelope    [1] OtherMessageDeliveryFields OPTIONAL
  421.           }
  422.  
  423. MessageData ::= IPM
  424.  
  425. SFDBodyPart ::= ANY
  426.  
  427. ODIFBodyPart ::=
  428.         -- from appendix A minutes of the PODA Munich meeting July 6th 1988.
  429.         OCTET STRING
  430.  
  431.  
  432. -- motis-86-6937 (extra body part) 
  433. ISO6937TextBodyPart ::= SEQUENCE {
  434.     parameters      ISO6937Parameters,
  435.     data            ISO6937Data}
  436.  
  437. ISO6937Parameters ::= SET {
  438.         repertoire [0] ISO6937Repertoire DEFAULT part1and2}
  439.  
  440. ISO6937Repertoire ::= ENUMERATED {
  441.         --
  442.         -- values are assigned by the ISO registration
  443.         -- authority. Other values are for further study,
  444.         -- and shall be relayed.
  445.         --
  446.         part1and2 (0),
  447.         teletexSubRepertoire (3)}
  448.  
  449. ISO6937Data ::= SEQUENCE OF ISO6937Line
  450.         -- sequence may contain zero elements 
  451.  
  452. ISO6937Line ::= [0] IMPLICIT OCTET STRING
  453.         -- additional protocol element to those defined by CCITT
  454.  
  455.  
  456. BilaterallyDefinedBodyPart ::= OCTET STRING
  457.  
  458. NationallyDefinedBodyPart ::= ANY
  459.  
  460. -- Externally defined body part
  461.  
  462. --ExternallyDefinedBodyPart ::= SEQUENCE {
  463. --              parameters   [0] ExternallyDefinedParameters OPTIONAL
  464. --              data           ExternallyDefinedData
  465. --              }
  466.  
  467. --ExternallyDefinedParameters ::= EXTERNAL
  468.  
  469. --ExternallyDefinedData ::= EXTERNAL
  470.  
  471. ExternallyDefinedBodyPart ::= ANY
  472.  
  473. -- IPN
  474.  
  475. IPN ::= SET {
  476.     -- common-fields -- COMPONENTS OF CommonFields,
  477.  
  478.     choice [0] EXPLICIT CHOICE {
  479.            non-receipt-fields    [0]    NonReceiptFields,
  480.            receipt-fields        [1]    ReceiptFields
  481.            }
  482.     }
  483. RN ::= IPN -- with receipt-fields chosen
  484.  
  485. NRN ::= IPN -- with non-receipt-fields chosen
  486.  
  487. CommonFields ::= SET {
  488.     subject-ipm            SubjectIPMField,
  489.     ipn-originator        [1]    IPNOriginatorField OPTIONAL,
  490.     ipn-preferred-recipient    [2]    IPNPreferredRecipientField OPTIONAL,
  491.     conversion-eits            ConversionEITsField OPTIONAL
  492.     }
  493.  
  494. NonReceiptFields ::= SET {
  495.     non-receipt-reason    [0]    NonReceiptReasonField,
  496.     discard-reason        [1]    DiscardReasonField OPTIONAL,
  497.     auto-forward-comment    [2]    AutoForwardCommentField OPTIONAL,
  498.     returned-ipm        [3]    ReturnedIPMField OPTIONAL
  499.     }
  500.  
  501. ReceiptFields ::= SET {
  502.     receipt-time          [0]     ReceiptTimeField,
  503.     acknowledgment-mode    [1]    AcknowledgmentModeField DEFAULT manual,
  504.     suppl-receipt-info    [2]     SupplReceiptInfoField DEFAULT ""
  505.     }
  506.  
  507. -- Common fields
  508.  
  509. SubjectIPMField ::= IPMIdentifier
  510.  
  511. IPNOriginatorField ::= ORDescriptor
  512.  
  513. IPNPreferredRecipientField ::= ORDescriptor
  514.  
  515. ConversionEITsField ::= EncodedInformationTypes
  516.  
  517. -- Non-receipt fields
  518.  
  519. NonReceiptReasonField ::= ENUMERATED {
  520.     ipm-discarded                 (0),
  521.     ipm-auto-forward        (1)
  522.     }
  523.  
  524. DiscardReasonField ::= ENUMERATED {
  525.     ipm-expired              (0),
  526.     ipm-obsoleted            (1),
  527.     user-subscription-terminated    (2)
  528.     }
  529.  
  530. AutoForwardCommentField ::= AutoForwardComment
  531.  
  532. AutoForwardComment ::= PrintableString
  533.     (SIZE (0..ub-auto-forward-comment))
  534.  
  535. ReturnedIPMField ::= IPM
  536.  
  537. -- Receipt fields
  538.  
  539. ReceiptTimeField ::= Time
  540.  
  541. AcknowledgmentModeField ::= ENUMERATED {
  542.     manual                   (0),
  543.     automatic               (1)
  544.     }
  545.  
  546. -- SupplReceiptInfoField ::= SupplementaryInformation
  547.  
  548. SupplReceiptInfoField ::= PrintableString
  549.     (SIZE (1..ub-supplementary-info-length))
  550.  
  551. -- Message store realization
  552.  
  553. ForwardedInfo ::= SET {
  554.           auto-forwarded-comment [0]
  555.                AutoForwardComment OPTIONAL,
  556.           cover-note [1]
  557.                IA5TextBodyPart OPTIONAL,
  558.           this-ipm-prefix [2]
  559.                PrintableString (SIZE(1..ub-ipm-identifier-suffix))
  560.                 OPTIONAL
  561.           }
  562.  
  563. -- Have to have as mta.py not right 
  564. ORName ::= [APPLICATION 0] SEQUENCE {
  565.     standard-attributes StandardAttributes,
  566.     domain-defined DomainDefinedAttributes OPTIONAL,
  567.     extension-attributes ExtensionAttributes OPTIONAL,
  568.     directory-name [0] ANY OPTIONAL }
  569. --    directory-name [0] EXPLICIT ANY OPTIONAL }
  570. --    Change
  571. --    directory-name [0] EXPLICIT Name OPTIONAL }
  572.  
  573. END -- of IPMSInformationObjects
  574.