-- Module IPMSInformationObjects (X.420:06/1999)
IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- Prologue
-- Exports everything.
IMPORTS
-- IPMS Extended Body Parts
bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part,
g4-class1-body-part, ia5-text-body-part, message-body-part,
mixed-mode-body-part, nationally-defined-body-part, teletex-body-part,
videotex-body-part
--==
FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0)
extended-body-part-types(7) version-1994(0)}
general-text-body-part
--==
FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7)
modules(0) extended-body-part-types-2(1)}
file-transfer-body-part
--==
FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) file-transfer-body-part-type(9)}
voice-body-part
--==
FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) extended-voice-body-part-type(11)}
notification-body-part, report-body-part
--==
FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) forwarded-report-body-part-type(12)}
content-body-part{}
--==
FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1)
modules(0) forwarded-content-body-part-type(15)}
pkcs7-body-part
--==
FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
pkcs7-body-part-type(16)}
-- IPMS Heading Extensions
authorization-time, auto-submitted, body-part-signatures,
circulation-list-indicator, circulation-list-recipients,
distribution-codes, extended-subject, incomplete-copy,
information-category, ipm-security-label, languages,
manual-handling-instructions, originators-reference, precedence,
precedence-policy-identifier
--==
FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
heading-extensions(6) version-1999(1)}
-- IPMS Security Extensions
body-part-encryption-token, BodyPartTokens, forwarded-content-token,
ForwardedContentToken, ipn-security-response, recipient-security-request
--==
FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0)
ipm-security-extensions(14) version-1999(1)}
-- IPMS Upper bounds
ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier,
ub-subject-field, ub-telephone-number
--==
FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0)
upper-bounds(10) version-1999(1)}
-- ODIF
Interchange-Data-Element
--==
FROM Interchange-Data-Elements {2 8 1 5 5}
-- MTS Abstract Service
EncodedInformationTypes, ExtendedCertificates, EXTENSION,
G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName,
OtherMessageDeliveryFields, SupplementaryInformation,
TeletexNonBasicParameters
--==
FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
mts-abstract-service(1) version-1999(1)}
-- MS Abstract Service
MS-EXTENSION, SequenceNumber
--==
FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
abstract-service(1) version-1999(1)}
-- Directory Authentication Framework
AlgorithmIdentifier, ENCRYPTED{}
--==
FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
authenticationFramework(7) 3}
-- IPMS Object Identifiers
id-mst-assembly-capability, id-mst-assembly-instructions,
id-mst-invalid-assembly-instructions, id-mst-invalid-ipn,
id-mst-originator-body-part-encryption-token,
id-mst-originator-forwarded-content-token,
id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation,
id-on-absence-advice, id-on-change-of-address-advice
--==
FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
object-identifiers(0) version-1999(1)};
Time ::= UTCTime
-- Information object
InformationObject ::= CHOICE {ipm [0] IPM,
ipn [1] IPN
}
-- IPM
IPM ::= SEQUENCE {heading Heading,
body Body
}
-- MTS Extensions
IPMPerRecipientEnvelopeExtensions EXTENSION ::=
{blind-copy-recipients | body-part-encryption-token |
forwarded-content-token, ...}
-- IPMS Extensions
IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE {
type IPMS-EXTENSION.&id({ChosenFrom}),
value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL
}
IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
&Type DEFAULT NULL
}WITH SYNTAX {[VALUE &Type,]
IDENTIFIED BY &id
}
PrivateIPMSExtensions IPMS-EXTENSION ::=
{...}
-- Heading
Heading ::= SET {
this-IPM ThisIPMField,
originator [0] OriginatorField OPTIONAL,
authorizing-users [1] AuthorizingUsersField OPTIONAL,
primary-recipients [2] PrimaryRecipientsField DEFAULT {},
copy-recipients [3] CopyRecipientsField DEFAULT {},
blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL,
replied-to-IPM [5] RepliedToIPMField OPTIONAL,
obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {},
related-IPMs [7] RelatedIPMsField DEFAULT {},
subject [8] EXPLICIT SubjectField OPTIONAL,
expiry-time [9] ExpiryTimeField OPTIONAL,
reply-time [10] ReplyTimeField OPTIONAL,
reply-recipients [11] ReplyRecipientsField OPTIONAL,
importance [12] ImportanceField DEFAULT normal,
sensitivity [13] SensitivityField OPTIONAL,
auto-forwarded [14] AutoForwardedField DEFAULT FALSE,
extensions [15] ExtensionsField DEFAULT {}
}
-- Heading component types
IPMIdentifier ::= [APPLICATION 11] SET {
user ORName OPTIONAL,
user-relative-identifier LocalIPMIdentifier
}
LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier))
RecipientSpecifier ::= SET {
recipient [0] ORDescriptor,
notification-requests [1] NotificationRequests DEFAULT {},
reply-requested [2] BOOLEAN DEFAULT FALSE,
recipient-extensions [3] RecipientExtensionsField OPTIONAL
}
ORDescriptor ::= SET {
formal-name ORName OPTIONAL,
free-form-name [0] FreeFormName OPTIONAL,
telephone-number [1] TelephoneNumber OPTIONAL
}
FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name))
TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number))
NotificationRequests ::= BIT STRING {
rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)}
RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}}
RecipientExtensions IPMS-EXTENSION ::=
{circulation-list-indicator | precedence | recipient-security-request |
PrivateIPMSExtensions, ...}
-- This IPM heading field
ThisIPMField ::= IPMIdentifier
-- Originator heading field
OriginatorField ::= ORDescriptor
-- Authorizing Users heading field
AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield
AuthorizingUsersSubfield ::= ORDescriptor
-- Primary Recipients heading field
PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield
PrimaryRecipientsSubfield ::= RecipientSpecifier
-- Copy Recipients heading field
CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield
CopyRecipientsSubfield ::= RecipientSpecifier
-- Blind Copy Recipients heading field
BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield
BlindCopyRecipientsSubfield ::= RecipientSpecifier
-- Blind Copy Recipients envelope field
blind-copy-recipients EXTENSION ::= {
BlindCopyRecipientsField,
IDENTIFIED BY standard-extension:41
}
-- Replied-to IPM heading field
RepliedToIPMField ::= IPMIdentifier
-- Obsoleted IPMs heading field
ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield
ObsoletedIPMsSubfield ::= IPMIdentifier
-- Related IPMs heading field
RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield
RelatedIPMsSubfield ::= IPMIdentifier
-- Subject heading field
SubjectField ::= TeletexString(SIZE (0..ub-subject-field))
-- Expiry Time heading field
ExpiryTimeField ::= Time
-- Reply Time heading field
ReplyTimeField ::= Time
-- Reply Recipients heading field
ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield
ReplyRecipientsSubfield ::=
ORDescriptor(WITH COMPONENTS {
...,
formal-name PRESENT
})
-- Importance heading field
ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)}
-- Sensitivity heading field
SensitivityField ::= ENUMERATED {
personal(1), private(2), company-confidential(3)}
-- Auto-forwarded heading field
AutoForwardedField ::= BOOLEAN
-- Extensions heading field
ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}}
HeadingExtensions IPMS-EXTENSION ::=
{authorization-time | auto-submitted | body-part-signatures |
circulation-list-recipients | distribution-codes | extended-subject |
incomplete-copy | information-category | ipm-security-label | languages |
manual-handling-instructions | originators-reference |
precedence-policy-identifier | PrivateIPMSExtensions, ...}
-- Body
Body ::= SEQUENCE OF BodyPart
BodyPart ::= CHOICE {
basic
CHOICE {ia5-text [0] IA5TextBodyPart,
g3-facsimile [3] G3FacsimileBodyPart,
g4-class1 [4] G4Class1BodyPart,
teletex [5] TeletexBodyPart,
videotex [6] VideotexBodyPart,
encrypted [8] EncryptedBodyPart,
message [9] MessageBodyPart,
mixed-mode [11] MixedModeBodyPart,
bilaterally-defined [14] BilaterallyDefinedBodyPart,
nationally-defined [7] NationallyDefinedBodyPart},
extended [15] ExtendedBodyPart{{IPMBodyPartTable}}
}
-- Extended body part
ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE {
parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL,
data INSTANCE OF TYPE-IDENTIFIER
}
(CONSTRAINED BY { -- must correspond to the ¶meters field and &data field of a member of --
IPMBodyPartTable})
IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::=
{StandardBodyParts | ApplicationSpecificBodyParts}
StandardBodyParts EXTENDED-BODY-PART-TYPE ::=
{ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part |
teletex-body-part | videotex-body-part | encrypted-body-part |
message-body-part | mixed-mode-body-part | bilaterally-defined-body-part |
nationally-defined-body-part | general-text-body-part |
file-transfer-body-part | voice-body-part | report-body-part |
notification-body-part |
content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} |
pkcs7-body-part, ...}
ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::=
{--any body part defined in other Specifications, or for proprietary or private use
...}
EXTENDED-BODY-PART-TYPE ::= CLASS {
¶meters TYPE-IDENTIFIER OPTIONAL,
&data TYPE-IDENTIFIER
}WITH SYNTAX {[PARAMETERS ¶meters,]
DATA &data
}
-- IA5 Text body part
IA5TextBodyPart ::= SEQUENCE {
parameters IA5TextParameters,
data IA5TextData
}
IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5
}
IA5TextData ::= IA5String
Repertoire ::= ENUMERATED {ita2(2), ia5(5)}
-- G3 Facsimile body part
G3FacsimileBodyPart ::= SEQUENCE {
parameters G3FacsimileParameters,
data G3FacsimileData
}
G3FacsimileParameters ::= SET {
number-of-pages [0] INTEGER OPTIONAL,
non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL
}
G3FacsimileData ::= SEQUENCE OF BIT STRING
-- G4 Class 1 and Mixed-mode body parts
G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
-- Teletex body part
TeletexBodyPart ::= SEQUENCE {
parameters TeletexParameters,
data TeletexData
}
TeletexParameters ::= SET {
number-of-pages [0] INTEGER OPTIONAL,
telex-compatible [1] BOOLEAN DEFAULT FALSE,
non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL
}
TeletexData ::= SEQUENCE OF TeletexString
-- Videotex body part
VideotexBodyPart ::= SEQUENCE {
parameters VideotexParameters,
data VideotexData
}
VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL
}
VideotexSyntax ::= INTEGER {
ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)}
VideotexData ::= VideotexString
-- Encrypted body part
EncryptedBodyPart ::= SEQUENCE {
parameters EncryptedParameters,
data EncryptedData
}
EncryptedParameters ::= SET {
algorithm-identifier AlgorithmIdentifier,
originator-certificates ExtendedCertificates OPTIONAL,
...
}
EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
-- Message body part
MessageBodyPart ::= SEQUENCE {
parameters MessageParameters,
data MessageData
}
MessageParameters ::= SET {
delivery-time [0] MessageDeliveryTime OPTIONAL,
delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL
}
MessageData ::= IPM
-- Bilaterally Defined body part
BilaterallyDefinedBodyPart ::= OCTET STRING
-- Nationally Defined body part
NATIONAL-BODY-PARTS ::= CLASS {&Type
}
NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type
-- Provided for Historic reasons. Use is strongly deprecated.
-- IPN
IPN ::= SET {
-- common-fields --COMPONENTS OF CommonFields,
choice
[0] CHOICE {non-receipt-fields [0] NonReceiptFields,
receipt-fields [1] ReceiptFields,
other-notification-type-fields
[2] OtherNotificationTypeFields}
}
RN ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
receipt-fields PRESENT
})
})
NRN ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
non-receipt-fields PRESENT
})
})
ON ::=
IPN
(WITH COMPONENTS {
...,
choice (WITH COMPONENTS {
other-notification-type-fields PRESENT
})
})
CommonFields ::= SET {
subject-ipm SubjectIPMField,
ipn-originator [1] IPNOriginatorField OPTIONAL,
ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL,
conversion-eits ConversionEITsField OPTIONAL,
notification-extensions [3] NotificationExtensionsField OPTIONAL
}
NonReceiptFields ::= SET {
non-receipt-reason [0] NonReceiptReasonField,
discard-reason [1] DiscardReasonField OPTIONAL,
auto-forward-comment [2] AutoForwardCommentField OPTIONAL,
returned-ipm [3] ReturnedIPMField OPTIONAL,
nrn-extensions [4] NRNExtensionsField OPTIONAL
}
ReceiptFields ::= SET {
receipt-time [0] ReceiptTimeField,
acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual,
suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL,
rn-extensions [3] RNExtensionsField OPTIONAL
}
-- Common fields
SubjectIPMField ::= IPMIdentifier
IPNOriginatorField ::= ORDescriptor
IPMIntendedRecipientField ::= ORDescriptor
ConversionEITsField ::= EncodedInformationTypes
NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}}
NotificationExtensions IPMS-EXTENSION ::=
{ipn-security-response | PrivateIPMSExtensions, ...}
-- Non-receipt fields
NonReceiptReasonField ::= ENUMERATED {
ipm-discarded(0), ipm-auto-forwarded(1), ...
}
-- ITU-T version:
DiscardReasonField ::= ENUMERATED {
ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2),
not-used(3)}
-- ISO/IEC version:
--DiscardReasonField ::= ENUMERATED {
-- ipm-expired (0),
-- ipm-obsoleted (1),
-- user-subscription-terminated (2),
-- The following value may not be supported by implementations of earlier versions of this Specification
-- ipm-deleted (3),
-- ... }
AutoForwardCommentField ::=
AutoForwardComment
AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment))
ReturnedIPMField ::= IPM
NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}}
NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
-- Receipt fields
ReceiptTimeField ::= Time
AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)}
SupplReceiptInfoField ::= SupplementaryInformation
RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}}
RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...}
-- Other Notification Type fields
OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}}
OtherNotifications IPMS-EXTENSION ::=
{AdviceNotifications | PrivateIPMSExtensions, ...}
AdviceNotifications IPMS-EXTENSION ::=
{absence-advice | change-of-address-advice, ...}
-- Advice Notification fields
absence-advice IPMS-EXTENSION ::= {
VALUE AbsenceAdvice,
IDENTIFIED BY id-on-absence-advice
}
AbsenceAdvice ::= SEQUENCE {
advice BodyPart OPTIONAL,
next-available Time OPTIONAL
}
-- at least one component shall be present
change-of-address-advice IPMS-EXTENSION ::= {
VALUE ChangeOfAddressAdvice,
IDENTIFIED BY id-on-change-of-address-advice
}
ChangeOfAddressAdvice ::= SEQUENCE {
new-address
[0] ORDescriptor(WITH COMPONENTS {
...,
formal-name PRESENT
}),
effective-from [1] Time OPTIONAL
}
-- Message Store Realization
prevent-nrn-generation MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-prevent-nrn-generation
}
suspend-auto-acknowledgement MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-suspend-auto-acknowledgement
}
assembly-capability MS-EXTENSION ::= {
NULL
IDENTIFIED BY id-mst-assembly-capability
}
IPMSubmissionOptions MS-EXTENSION ::=
{ipm-assembly-instructions | originator-body-part-encryption-token |
originator-forwarded-content-token, ...} -- For future extension additions
ipm-assembly-instructions MS-EXTENSION ::= {
IPMAssemblyInstructions
IDENTIFIED BY id-mst-assembly-instructions
}
IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences
}
BodyPartReferences ::= SEQUENCE OF BodyPartReference
BodyPartReference ::= CHOICE {
stored-entry [0] SequenceNumber,
stored-content [1] SequenceNumber,
submitted-body-part [2] INTEGER(1..MAX),
stored-body-part
[3] SEQUENCE {message-entry SequenceNumber,
body-part-number INTEGER(1..MAX)}
}
originator-body-part-encryption-token MS-EXTENSION ::= {
BodyPartTokens
IDENTIFIED BY id-mst-originator-body-part-encryption-token
}
originator-forwarded-content-token MS-EXTENSION ::= {
ForwardedContentToken
IDENTIFIED BY id-mst-originator-forwarded-content-token
}
IPMSubmissionErrors MS-EXTENSION ::=
{invalid-assembly-instructions | invalid-ipn, ...
} -- For future extension additions
invalid-assembly-instructions MS-EXTENSION ::= {
BodyPartReferences
IDENTIFIED BY id-mst-invalid-assembly-instructions
}
invalid-ipn MS-EXTENSION ::= {NULL
IDENTIFIED BY id-mst-invalid-ipn
}
END -- of IPMSInformationObjects
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D