MESSAGE-TRACKING-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, enterprises, Counter, Gauge,TimeTicks FROM RFC1155-SMI DisplayString FROM RFC1213-MIB; -- OBJECT IDENTIFIERS lotus OBJECT IDENTIFIER ::= { enterprises 334 } notes OBJECT IDENTIFIER ::= { lotus 1 } lcs OBJECT IDENTIFIER ::= { lotus 2 } softswitch OBJECT IDENTIFIER ::= { lotus 3 } common-mibs OBJECT IDENTIFIER ::= { softswitch 1 } lms OBJECT IDENTIFIER ::= { softswitch 2 } -- comment this out if using the MODULE-IDENTITY macro msgTrack OBJECT IDENTIFIER ::= { common-mibs 2 } TimeInterval ::= INTEGER (0..2147483647) -- Need to define a V1 equivalent of the DateAndTime textual conversion -- found in SNMP V2 DateAndTime ::= DisplayString -- Define the NameForm textual convention for originator and recipient -- names in this MIB NameForm ::= INTEGER { freeForm(1), x400(2), smtp(3), snads(4), profs(5), foreign(6), notes(7), ccmail(8) } -- Define the DispositionStatus textual convention which indicates the -- disposition of a message by the MTA for a particular recipient. Values -- are: -- unknown - The disposition of the message could not be determined -- transferred - The message was forwarded to another MTA for -- delivery without name or content transformation. -- delivered - The message was delivered to the intended -- recipient. -- non-delivered - The message could not be delivered to the -- intended recipient. -- redirected - The message was forwarded to another MTA for -- delivery. The recipient name and/or messageId -- may have changed as a result of this process. -- dlist-expanded - The intended recipient was a distribution list -- which was expanded by the MTA. -- in-queue - The message for this recipient is currently being -- processed by the MTA. DispositionStatus ::= INTEGER { unknown(1), transferred(2), delivered(3), non-delivered(4), redirected(5), dlist-expanded(6), in-queue(7) } -- Define the MsgType textual convention. Values are: -- -- data -- status -- probe -- all MsgType ::= INTEGER { data(1), status(2), probe(3) } -- MODULE IDENTIFICATION use in V2 version only --msgTrack MODULE-IDENTITY -- LAST-UPDATED "9511280000Z" -- ORGANIZATION "Lotus Development Corporation" -- CONTACT-INFO -- " Bruce Ernst -- Postal: Lotus Development Corporation -- 640 Lee Road , Suite 200 -- Chesterbrook Corporate Center -- Wayne, PA 19087 -- US -- -- Tel: +1 610 251 3404 -- Fax: +1 610 251 3550 -- E-Mail: bge@softsw.ssw.com" -- DESCRIPTION -- "The MIB module describing Lotus/SoftSwitch message tracking -- Version 1.0 - first cut - outline only. 8/30/95 -- Version 1.1 - initial experimental version. 9/10/95 -- Version 1.2 - corrected variables, added descriptive comments. 9/11/95 -- " -- ::= { common-mibs 2 } -- NOTE TO IMPLEMENTORS: -- This MIB is intended to be comparable to, but not compliant with the -- Message Tracking MIB defined by the Electronic Messaging Association -- It also borrows from the IETF MADMAN efforts -- How this mib works : -- Most message tracking MIBs operate on the presupposition that the manager -- entering a query knows the unique message ID for the message being tracked. -- In practice, this is often not the case. This MIB allows for a 2-step -- query process - find the appropriate message, then track it. -- +==============+ -- | Manager | = 1 => +=====================================+ -- +==============+ = 6 => | msgTrackRequestTable | -- ^ +=====================================+ -- | | -- | 2 +=========+ -- | + => | Agent | -- | +=========+ -- 5 | +======================+ -- | + 3 => | Message Store | -- | += 4 ========== +======================+ -- | | -- | v -- | +========================================+ -- ===============> | msgTrackResponseTable | -- +========================================+ -- -- STEP 1: -- Using the index obtained from 'msgTrackNextRequestIndex', a manager -- creates a conceptual row in the 'msgTrackRequestTable', filling in -- as many message attributes as are known. The manager also specifies -- in 'reqMaxResponses', the maximim number of possible 'hits' for an -- underspecified query. -- STEP 2: -- When the agent detects a new conceptual row in 'msgTrackRequestTable', -- it forms a query to be executed against the message store(s). -- STEP 3: -- The agent issues the query against the message store and receives some -- response(s). -- STEP 4: -- The agent then transfers up to 'reqMaxResponses' possible responses -- to newly created conceptual rows in the 'msgTrackResponseTable'. The agent -- then sets the value of 'reqResponseStatus' in the 'msgTrackRequestTable' -- to notify the manager of the results of the query. -- STEP 5: -- The manager, having detected a change in 'reqResponseStatus', knows that -- the query is complete. It reads the potential responses from the -- 'msgTrackResponseTable' and presents them to the end-user. -- STEP 6: -- The manager then instructs the agent to destroy the conceptual row -- created in the 'msgTrackRequestTable', which causes the agent to -- destroy the corresponding entries in the 'msgTrackResponseTable'. -- STEP 7: (optional, not illustrated) -- If the original query did not produce an adequate response, a new entry -- is created in the 'msgTrackRequestTable'. Entries in this table are -- never reused! -- -- -- MESSAGE TRACKING REQUEST TABLE: msgTrackNextRequestIndex OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The index that may be used by a manager (requestor) on a 'set-request' PDU to create a new conceptual row in themsgTrackRequestTable table (and thereby issue a message tracking query)." ::= { msgTrack 1 } msgTrackRequestTable OBJECT-TYPE SYNTAX SEQUENCE OF MsgTrackRequestEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The table holding all active message tracking requests." ::= { msgTrack 2 } msgTrackRequestEntry OBJECT-TYPE SYNTAX MsgTrackRequestEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The entry associated with each request for message information." INDEX { reqEntryIndex } ::= { msgTrackRequestTable 1 } MsgTrackRequestEntry ::= SEQUENCE { reqEntryIndex INTEGER, reqRowStatus INTEGER, reqResponseStatus INTEGER, reqMaxResponses INTEGER, reqApplIndex INTEGER, reqUniqueMsgId DisplayString, reqInboundMsgId DisplayString, reqOutboundMsgId DisplayString, reqInboundOriginator DisplayString, reqOutboundOriginator DisplayString, reqOriginatorNameForm NameForm, reqInboundRecipient DisplayString, reqOutboundRecipient DisplayString, reqRecipientNameForm NameForm, reqSubject DisplayString, reqMinMsgSize INTEGER, reqMaxMsgSize INTEGER, reqEarliestArrivalTime DateAndTime, reqLatestArrivalTime DateAndTime, reqDispositionStatus DispositionStatus, reqFailureReason DisplayString, reqMsgType MsgType, reqCollapseRecipients INTEGER } reqEntryIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The integer index into the msgTrackRequestTable table." ::= { msgTrackRequestEntry 1 } reqRowStatus OBJECT-TYPE SYNTAX INTEGER { active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6) } ACCESS read-write STATUS mandatory DESCRIPTION "The status of the conceptual row. These are mapped to the same values as the RowStatus textual conversion in SNMPv2 and carry the same semantics with one exception. the exception is that when a manager (requestor) sets the value to destroy(6), this also has the added semantics of deleting all conceptual rows in the msgTrackResponseTable table whose respEntryIndex matches the reqEntryIndex of this conceptual row." ::= { msgTrackRequestEntry 2 } reqResponseStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), inProgress(2), failedNoMatches(3), failedInvalidQuery(4), failedError(5), successUnderqualified(6), success(7) } ACCESS read-only STATUS mandatory DESCRIPTION "Indicates the status of this query and its responses in themsgTrackResponseTable. Values are: unknown - The status of this query is not known. inProgress - The agent(responder) is still processing the request. failedNoMatches - The query has been processed and has produced no matches. failedInvalidQuery - The query could not be processed due to invalid or missing data in the original query. FailedError - The query could not be processed due to an error in the agent(responder). successUnderqualified - The query was successfully processed, but the query was found to be underqualified. That is, more reponses were found than were specified in reqMaxResponses. reqMaxResponses entries were returned in the msgTrackResponseTable. success - The query succeeded, returning from 1 to reqMaxResponses entries in the msgTrackResponseTable." ::= { msgTrackRequestEntry 3 } reqMaxResponses OBJECT-TYPE SYNTAX INTEGER (1..100) ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the largest number of responses to be returned in the msgTrackResponseTable on an underspecified query (i.e. the maximum value of respMsgIndex in the msgTrackResponseTable conceptual row whose respEntryIndex matches the reqEntryIndex of this conceptual row)." ::= { msgTrackRequestEntry 4 } reqApplIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Specifies an optional value for an index into the RFC-1565 (MADMAN) applTable. This may be used to limit a query to a specific application (MTA). Set to 0 if a value is not known or if this variable is not relevant to the query." ::= { msgTrackRequestEntry 5 } reqUniqueMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Specifies a unique message id used internally by the MTA for identification of a message. This form of the message id may or may not be identical to the inbound and/or outbound forms of the message id. If specified, this may be the only search criteria required. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 6 } reqInboundMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Specifies a unique message id as received by the MTA for identification of a message. This form of the message id may or may not be identical to the internal and/or outbound forms of the message id. If specified, this may be the only search criteria required. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 7 } reqOutboundMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Specifies a unique message id as transmitted by the MTA for identification of a message. This form of the message id may or may not be identical to the internal and/or inbound forms of the message id. If specified, this may be the only search criteria required. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 8 } reqInboundOriginator OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Identifies the originator of the message in its received form, expressed in string format. The style and format of this identifier varies according to a specific messaging technology. As a result of potentially disparate messaging technologies, this identifier is only guaranteed to be the name known to the end-user on the first MTA in the delivery sequence. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 9 } reqOutboundOriginator OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Identifies the originator of the message in its transmitted form, expressed in string format. The style and format of this identifier varies according to a specific messaging technology. As a result of potentially disparate messaging technologies, this identifier is only guaranteed to be the name known to the end-user on the last MTA in the delivery sequence. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 10 } reqOriginatorNameForm OBJECT-TYPE SYNTAX NameForm ACCESS read-write STATUS mandatory DESCRIPTION "Identifies the name form of originator strings supplied in the reqInboundOriginator and/or reqOutboundOriginator values. This value may be used by the agent to perform name form dependant parsing of these values. If neither of these strings are supplied, this name form value is irrelevant to the query. A value of zero (0) implies that no special parsing should be performed on the originator names supplied." ::= { msgTrackRequestEntry 11 } reqInboundRecipient OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Identifies one of the recipients (the one to be tracked) of the message in its received form, expressed in string format. The style and format of this identifier varies according to a specific messaging technology. As a result of potentially disparate messaging technologies, this identifier is only guaranteed to be the name an end-user knows the recipient by on the first MTA in the delivery sequence. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 12 } reqOutboundRecipient OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Identifies one of the recipients (the one to be tracked) of the message in its transmitted form, expressed in string format. The style and format of this identifier varies according to a specific messaging technology. As a result of potentially disparate messaging technologies, this identifier is only guaranteed to be the name an end-user knows the recipient by on the last MTA in the delivery sequence. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 13 } reqRecipientNameForm OBJECT-TYPE SYNTAX NameForm ACCESS read-write STATUS mandatory DESCRIPTION "Identifies the name form of recipient strings supplied in the reqInboundRecipient and/or reqOutboundRecipient values. This value may be used by the agent to perform name form dependant parsing of these values. If neither of these strings are supplied, this name form value is irrelevant to the query. A value of zero (0) implies that no special parsing should be performed on the recipient names supplied." ::= { msgTrackRequestEntry 14 } reqSubject OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "Identifies a subset of the text of the 'Subject' attribute of the message. Since some messaging technologies make it difficult for an MTA to preserve this data, it may not be supported by all agents. Set to an empty (zero length) string if unknown or irrelevant to query." ::= { msgTrackRequestEntry 15 } reqMinMsgSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the minimum size of a message to be tracked (content, excluding envelope), expressed in kilo-octets. Set both reqMinMsgSize and reqMaxMsgSize to zero if message size is irrelevant to the query." ::= { msgTrackRequestEntry 16 } reqMaxMsgSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the maximum size of a message to be tracked (content, excluding envelope), expressed in kilo-octets. Set both reqMinMsgSize and reqMaxMsgSize to zero if message size is irrelevant to the query." ::= { msgTrackRequestEntry 17 } reqEarliestArrivalTime OBJECT-TYPE SYNTAX DateAndTime ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the earliest arrival time, at this MTA, for a message to be tracked." ::= { msgTrackRequestEntry 18 } reqLatestArrivalTime OBJECT-TYPE SYNTAX DateAndTime ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the latest arrival time, at this MTA, for a message to be tracked." ::= { msgTrackRequestEntry 19 } reqDispositionStatus OBJECT-TYPE SYNTAX DispositionStatus ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the disposition status of the message for a particular recipient" ::= {msgTrackRequestEntry 20 } reqFailureReason OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "A textual description of why a message tracking request failed." ::= {msgTrackRequestEntry 21 } reqMsgType OBJECT-TYPE SYNTAX MsgType ACCESS read-write STATUS mandatory DESCRIPTION "The type of message to be tracked." ::= {msgTrackRequestEntry 22 } reqCollapseRecipients OBJECT-TYPE SYNTAX INTEGER { false(1), true(2) } ACCESS read-write STATUS mandatory DESCRIPTION "Specifies whether to return only a single recipient for a given message. This can be used to retrieve only a single entry for a given message." ::= { msgTrackRequestEntry 23 } -- MESSAGE RESPONSE TABLE ( QUERY RESULTS ) msgTrackResponseTable OBJECT-TYPE SYNTAX SEQUENCE OF MsgTrackResponseEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The table holding the response to all active message tracking requests." ::= { msgTrack 3 } msgTrackResponseEntry OBJECT-TYPE SYNTAX MsgTrackResponseEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The entry associated with each response to a request for message information." INDEX { respEntryIndex, respMsgIndex } ::= { msgTrackResponseTable 1 } MsgTrackResponseEntry ::= SEQUENCE { respEntryIndex INTEGER, respMsgIndex INTEGER, respDispositionStatus DispositionStatus, respDispositionTime INTEGER, respNextHopMta DisplayString, respPrevHopMta DisplayString, respNonDeliveryReason DisplayString, respMsgArrivalTime DateAndTime, respMsgSize INTEGER, respMsgPriority DisplayString, respUniqueMsgId DisplayString, respInboundMsgId DisplayString, respOutboundMsgId DisplayString, respInboundOriginator DisplayString, respOutboundOriginator DisplayString, respInboundRecipient DisplayString, respOutboundRecipient DisplayString, respSupplementalInformation DisplayString, respSubject DisplayString, respMsgType MsgType } respEntryIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The primary integer index into the msgTrackResponseTable table. It matches the value of reqEntryIndex for the original request. " ::= { msgTrackResponseEntry 1 } respMsgIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The secondary integer index into the msgTrackResponseTable table. For each value of respEntryIndex in the table, there may be multiple conceptual rows indexed by respMsgIndex, each denoting a possible response to the tracking query. The maximum number of entries should have an upper bound of the value of reqMaxResponses in the conceptual row of msgTrackRequestTable that represents the original query request. " ::= { msgTrackResponseEntry 2 } respDispositionStatus OBJECT-TYPE SYNTAX DispositionStatus ACCESS read-only STATUS mandatory DESCRIPTION "Indicates the disposition of this message by this MTA for this recipient." ::= { msgTrackResponseEntry 3 } respDispositionTime OBJECT-TYPE SYNTAX DateAndTime ACCESS read-only STATUS mandatory DESCRIPTION "Time at which this MTA disposed of this message for this recipient." ::= { msgTrackResponseEntry 4 } respNextHopMta OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Name of the MTA to which this message was sent. MADMAN-compliant MTA's should be addressed in the form '(::)'." ::= { msgTrackResponseEntry 5 } respPrevHopMta OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Name of the MTA from which this message was received. MADMAN-compliant MTA's should be addressed in the form '(::)'." ::= { msgTrackResponseEntry 6 } respNonDeliveryReason OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "A textual representation representing the reason for non-delivery to this recipient. No attempt is made to normalize these non-delivered reasons across systems, since this indicates a terminal condition." ::= { msgTrackResponseEntry 7 } respMsgArrivalTime OBJECT-TYPE SYNTAX DateAndTime ACCESS read-only STATUS mandatory DESCRIPTION "Represents the tima at which this message for this recipient arrived at this MTA." ::= { msgTrackResponseEntry 8 } respMsgSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Size of the message in kilo-octets." ::= { msgTrackResponseEntry 9 } respMsgPriority OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Textual representation of the priority of the message. No attempt is made to normalize these values across disparate messaging technologies." ::= { msgTrackResponseEntry 10 } respUniqueMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The unique message identifier that the MTA assigned internally to the message." ::= { msgTrackResponseEntry 11 } respInboundMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The unique message identifier that the 'previous hop' MTA assigned to the message. If the 'previous' MTA uses a different messaging technology or identifier scheme, this identifier serves to correlate the message from MTA to MTA. If the 'previous' MTA uses the same technology, this value is generally superfluous. If this is the first MTA in the delivery sequence, or if the previous message id is unknown, this variable is null-valued." ::= { msgTrackResponseEntry 12 } respOutboundMsgId OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The unique message identifier that the 'next hop' MTA assigned to the message. If the 'next' MTA uses a different messaging technology or identifier scheme, this identifier serves to correlate the message from MTA to MTA. If the 'next' MTA uses the same technology, this value is generally superfluous. If this is the last MTA in the delivery sequence, or if the next hop message id is unknown, this variable is null-valued." ::= { msgTrackResponseEntry 13 } respInboundOriginator OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Textual representation identifying the originator of the message as it was received from the 'previous hop' MTA. The style of this variable varies according to a specific messaging technology." ::= { msgTrackResponseEntry 14 } respOutboundOriginator OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Textual representation identifying the originator of the message as it was (or will be) presented to the 'next hop' MTA. The style of this variable varies according to a specific messaging technology." ::= { msgTrackResponseEntry 15 } respInboundRecipient OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Textual representation identifying the recipient of the message as it was received from the 'previous hop' MTA. The style of this variable varies according to a specific messaging technology.." ::= { msgTrackResponseEntry 16 } respOutboundRecipient OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Textual representation identifying the recipient of the message as it was (or will be) presented to the 'next hop' MTA. The style of this variable varies according to a specific messaging technology." ::= { msgTrackResponseEntry 17 } respSupplementalInformation OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Contains information provided by the agent to the manager that may be of use in identifying or tracking this message. No formal structure for this information is specified. Knowledge of the contents of this field is by bilateral agreement." ::= { msgTrackResponseEntry 18 } respSubject OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The full text of the subject of the tracked message" ::= { msgTrackResponseEntry 19 } respMsgType OBJECT-TYPE SYNTAX MsgType ACCESS read-only STATUS mandatory DESCRIPTION "The type of the tracked message" ::= { msgTrackResponseEntry 20 } -- CONFORMANCE INFORMATION -- Used ONLY in V2 MIBs -- COMPLIANCE STATEMENTS -- Used ONLY in V2 MIBs -- UNITS OF CONFORMANCE -- Used ONLY in V2 MIBs END