INTERNET-DRAFT Dial Control MIB April 1996 Dial Control Management Information Base draft-ietf-isdnmib-dial-control-03.txt Mon Apr 22 23:15:11 MET DST 1996 Guenter Roeck (editor) Conware GmbH roeck@conware.de Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as a "work in progress". To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Expires October 1996 [Page 1] INTERNET-DRAFT Dial Control MIB April 1996 1. Introduction This draft defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for managing demand access circuits, including ISDN. This document specifies a MIB module in a manner that is both compliant to the SNMPv2 SMI, and semantically identical to the peer SNMPv1 definitions. This document is a product of the ISDN MIB working group within the Internet Engineering Task Force. Comments are solicited and should be addressed to the working group's mailing list at isdn-mib@cisco.com and/or the author. Expires October 1996 [Page 2] INTERNET-DRAFT Dial Control MIB April 1996 2. The SNMPv2 Network Management Framework The SNMPv2 Network Management Framework presently consists of three major components. They are: o the SMI, described in RFC 1902 [1] - the mechanisms used for describing and naming objects for the purpose of management. o the MIB-II, STD 17, RFC 1213 [2] - the core set of managed objects for the Internet suite of protocols. o the protocol, RFC 1157 [3] and/or RFC 1905 [4], - the protocol for accessing managed objects. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 2.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to refer to the object type. Expires October 1996 [Page 3] INTERNET-DRAFT Dial Control MIB April 1996 3. Overview 3.1. Structure of MIB Managing Neighbors requires the following groups of information: o General configuration information. o Information to describe neighbors and neighbor statistics. o Information to retain call history. The MIB, therefore, consists of three groups. o The dialCtlConfiguration group is used to specify general configuration information. o The dialCtlNeighbor group is used to describe neighbors and neighbor statistics. o The callHistory group is used to store call history information. These calls could be circuit switched or they could be virtual circuits. History of each and every call is stored, of successful calls as well as unsuccessful and rejected calls. An entry will be created when a call is cleared. 3.2. Relationship to RFC1573 RFC 1573, the Interface MIB Evolution, requires that any MIB module which is an adjunct of the Interface MIB, clarify specific areas within the Interface MIB. These areas were intentionally left vague in RFC 1573 to avoid over constraining the MIB module, thereby precluding management of certain media-types. Section 3.3 of RFC 1573 enumerates several areas which a media-specific MIB module must clarify. Each of these areas is addressed in a following subsection. The implementor is referred to RFC 1573 in order to understand the general intent of these areas. 3.2.1. Layering Model and Virtual Circuits On an occasional access channel, there are a number of neighboring systems that are permitted to call or be called, all of which need to be treated as active from a routing viewpoint, but most of which have no call in progress at any given time. On dialup interfaces, this is further complicated by the fact that calls to a given neighbor float from channel to channel. One cannot definitively say "I call this neighbor on that interface." It is necessary, therefore, to provide a mapping algorithm between the low- Expires October 1996 [Page 4] INTERNET-DRAFT Dial Control MIB April 1996 level interfaces, and the various logical interfaces supporting the neighbors. This is solved by creating a logical interface (ifEntry) for each neighbor and a logical interface (ifEntry) for each low-level interface. These are then correlated using the ifStackTable. The low-level interfaces will either be physical interfaces, e.g. modem interfaces, or logical interfaces, e.g. ISDN B channels, which then in turn will be layered on top of physical ISDN interfaces. The model, therefore, looks something like this, taking ISDN as an example: +-------------------------------------------------------+ | Network Layer Protocol | +------+ +-------+ +-------+ +-------+ +-------+ +------+ | | | | | | | | | | <== appears active +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ | PPP | | PPP | | F/R | | PPP | | F/R | | for | | for | | for | | for | | for | ifEntry with |Nbr 1| |Nbr 2| |switch |Nbr 3| |switch shadow | | | | | A | | | | B | NeighborEntry +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ | | | | <== some actually are +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ | B | | B | | B | | B | | B | |channel| |channel| |channel| |channel| |channel| +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ +--+ | | | | | | | | | | +------+ +-------+ +-------+ +-------+ +-------+ +------+ | Basic/Primary Rate Interface | +-------------------------------------------------------+ Mapping of IP interfaces to Called Neighbors to B Channels IfEntries are maintained for each neighbor. In this model, each neighbor is required to have an associated network layer interface. This interface can be of any kind, e.g. PPP or LAPB. In order to specify the network address for a given neighbor, one would then usually add a routing/forwarding table entry, pointing to the network layer interface through which this neighbor can be reached. 3.2.2. ifTestTable The ifTestTable usage will be defined in the MIBs defining the encapsulation below the network layer. For example, if PPP encapsulation is being used, the ifTestTable will be defined by PPP. Expires October 1996 [Page 5] INTERNET-DRAFT Dial Control MIB April 1996 3.2.3. ifRcvAddressTable The ifRcvAddressTable usage will be defined in the MIBs defining the encapsulation below the network layer. For example, if PPP encapsulation is being used, the ifRcvAddressTable will be defined by PPP. 3.2.3.1. ifEntry for a single neighbor IfEntries will be defined in the MIBs defining the encapsulation below the network layer. For example, if PPP encapsulation is being used, the ifEntry will be defined by PPP. 3.3. Multilink and backup line support In order to support multilink and backup procedures, there may be several entries for a single neighbor in the dialCtlNbrCfgTable. A single neighbor will be identified using the dialCtlNbrCfgId object of the dialCtlNbrCfgTable. There may be several entries in dialCtlNbrCfgTable with the same value of dialCtlNbrCfgId, but different ifIndex values. Each of those entries will then describe a possible connection to the same neighbor. Such entries can then be used to handle multilink as well as backup procedures, e.g. by bundling the attached ifEntries using PPP multilink. 3.4. Support for generic neighbors Generic neighbors can for example be supported by permitting wild-card characters (e.g., '?' or '*') in dialCtlNbrCfgAnswerAddress. A number to be accepted could then be defined as partly (e.g., '*1234') or entirely generic (e.g., '*'). A detailed specification of such a functionality is outside the scope of this document. However, the implementor should be aware that supporting generic neighbors may cause a security hole. The user would not know where a call is from, which could potentially allow unauthorized access. Expires October 1996 [Page 6] INTERNET-DRAFT Dial Control MIB April 1996 4. Definitions 4.1. Dial Control MIB DIAL-CONTROL-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE, Counter32 FROM SNMPv2-SMI DisplayString, TimeStamp, RowStatus, TestAndIncr FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF IANAifType FROM IANAifType-MIB ifOperStatus, InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB transmission FROM RFC1213-MIB; dialControlMib MODULE-IDENTITY LAST-UPDATED "9604222310Z" -- Apr 22, 1996 ORGANIZATION "IETF ISDN Working Group" CONTACT-INFO " Guenter Roeck Postal: Conware GmbH Killisfeldstrasse 64 76227 Karlsruhe Germany Tel: +49 721 9495 0 E-mail: roeck@conware.de" DESCRIPTION "The MIB module to describe neighbors for demand access and possibly other kinds of interfaces." ::= { transmission 21 } -- Dial Control Mib objects definitions dialControlMibObjects OBJECT IDENTIFIER ::= { dialControlMib 1 } Expires October 1996 [Page 7] INTERNET-DRAFT Dial Control MIB April 1996 -- General configuration group dialCtlConfiguration OBJECT IDENTIFIER ::= { dialControlMibObjects 1 } -- general configuration data/parameters dialCtlAcceptMode OBJECT-TYPE SYNTAX INTEGER { acceptNone(1), acceptAll(2), acceptKnown(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "The security level for acceptance of incoming calls. acceptNone(1) - incoming calls will not be accepted acceptAll(2) - incoming calls will be accepted, even if there is no matching entry in the dialCtlNbrCfgTable acceptKnown(3) - incoming calls will be accepted only if there is a matching entry in the dialCtlNbrCfgTable " ::= { dialCtlConfiguration 1 } -- Neighbor group dialCtlNeighbor OBJECT IDENTIFIER ::= { dialControlMibObjects 2 } dialCtlNbrGetIndex OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "The recommended procedure for selecting a new index for dialCtlNbrCfgTable row creation is to GET the value of this object, and then to SET the object with the same value. If the SET operation succeeds, the manager can use this value as an index to create a new row in this table." REFERENCE "RFC1903, TestAndIncr textual convention." ::= { dialCtlNeighbor 1 } -- neighbor configuration table dialCtlNbrCfgTable OBJECT-TYPE SYNTAX SEQUENCE OF DialCtlNbrCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The list of neighbors from which the managed device Expires October 1996 [Page 8] INTERNET-DRAFT Dial Control MIB April 1996 will accept calls or to which it will place them." ::= { dialCtlNeighbor 2 } dialCtlNbrCfgEntry OBJECT-TYPE SYNTAX DialCtlNbrCfgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A single Neighbor. This entry is effectively permanent, and contains information describing the neighbor and his permissions. The value of dialCtlNbrCfgOriginateAddress must be specified before a new row in this table can become active(1). Any writeable parameters in an existing entry can be modified while the entry is active. The modification will take effect when the neighbor in question will be called the next time." INDEX { dialCtlNbrCfgId, dialCtlNbrCfgIndex } ::= { dialCtlNbrCfgTable 1 } DialCtlNbrCfgEntry ::= SEQUENCE { dialCtlNbrCfgId INTEGER, -- neighbor ID dialCtlNbrCfgIndex INTEGER, -- index value dialCtlNbrCfgIfIndex InterfaceIndex, dialCtlNbrCfgIfType IANAifType, dialCtlNbrCfgLowerIf InterfaceIndexOrZero, -- ifIndex value of -- lower interface dialCtlNbrCfgOriginateAddress DisplayString, -- Call Address (outgoing) dialCtlNbrCfgAnswerAddress DisplayString, -- Call Address (incoming) dialCtlNbrCfgSubAddress DisplayString, -- Call Subaddress dialCtlNbrCfgClosedUserGroup DisplayString, -- Closed User Group dialCtlNbrCfgSpeed INTEGER, -- desired speed in -- bit/second dialCtlNbrCfgPermission INTEGER, -- applicable permissions dialCtlNbrCfgInactivityTimer INTEGER, -- disconnect idle timer dialCtlNbrCfgMinDuration INTEGER, -- Min call duration dialCtlNbrCfgMaxDuration INTEGER, -- Max call duration dialCtlNbrCfgCarrierDelay INTEGER, -- call connect time dialCtlNbrCfgCallRetries INTEGER, Expires October 1996 [Page 9] INTERNET-DRAFT Dial Control MIB April 1996 -- number of call retries dialCtlNbrCfgRetryDelay INTEGER, -- time between call -- attempts dialCtlNbrCfgFailureDelay INTEGER, -- retry time after failure dialCtlNbrCallInfoTrapEnable INTEGER, -- to enable/disable traps dialCtlNbrCfgStatus RowStatus } dialCtlNbrCfgId OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object defines a single neighbor. There may be several entries in this table for one neighbor, defining different ways of reaching this neighbor. Thus, there may be several entries in this table with the same value of dialCtlNbrCfgId. Multiple entries for one neighbor may be used to support multilink as well as backup lines. A single neighbor will be identified by a unique value of this object. Several entries for one neighbor MUST have the same value of dialCtlNbrCfgId, but different ifEntries and thus different values of ifIndex and dialCtlNbrCfgIndex." ::= { dialCtlNbrCfgEntry 1 } dialCtlNbrCfgIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index value which uniquely identifies an entry in this table." ::= { dialCtlNbrCfgEntry 2 } dialCtlNbrCfgIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "The ifIndex value of the interface associated with this neighbor." ::= { dialCtlNbrCfgEntry 3 } dialCtlNbrCfgIfType OBJECT-TYPE SYNTAX IANAifType MAX-ACCESS read-create Expires October 1996 [Page 10] INTERNET-DRAFT Dial Control MIB April 1996 STATUS current DESCRIPTION "The interface type to be used for calling this neighbor. In case of ISDN, the value of isdn(63) is to be used." DEFVAL { other } ::= { dialCtlNbrCfgEntry 4 } dialCtlNbrCfgLowerIf OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "ifIndex value of an interface the neighbor will have to be called on. For example, on an ISDN interface, this can be the ifIndex value of a D channel or the ifIndex value of a B channel, whatever is appropriate for a given neighbor. As an example, for Basic Rate leased lines it will be necessary to specify a B channel ifIndex, while for semi-permanent connections the D channel ifIndex has to be specified. If the interface can be dynamically assigned, this object has a value of zero." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 5 } dialCtlNbrCfgOriginateAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Call Address at which the neighbor will be called. Think of this as the set of characters following 'ATDT ' or the 'phone number' included in a D channel call request. The structure of this information will be switch type specific." ::= { dialCtlNbrCfgEntry 6 } dialCtlNbrCfgAnswerAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Calling Party Number information element, as for example passed in an ISDN SETUP message by a PBX or switch, for incoming calls. This address can be used to identify the neighbor. If this address is either unknown or identical to dialCtlNbrCfgOriginateAddress, this object will be a zero length string." DEFVAL { "" } ::= { dialCtlNbrCfgEntry 7 } Expires October 1996 [Page 11] INTERNET-DRAFT Dial Control MIB April 1996 dialCtlNbrCfgSubAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Subaddress at which the neighbor will be called. If the subaddress is undefined for the given media or unused, this is a zero length string." DEFVAL { "" } ::= { dialCtlNbrCfgEntry 8 } dialCtlNbrCfgClosedUserGroup OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Closed User Group at which the neighbor will be called. If the Closed User Group is undefined for the given media or unused, this is a zero length string." REFERENCE "Q.931, chapter 4.6.1." DEFVAL { "" } ::= { dialCtlNbrCfgEntry 9 } dialCtlNbrCfgSpeed OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The desired information transfer speed in bits/second when calling this neighbor. The detailed media specific information, e.g. information type and information transfer rate for ISDN circuits, has to be extracted from this object. If the transfer speed to be used is unknown or the default speed for this type of interfaces, the value of this object may be zero." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 10 } dialCtlNbrCfgPermission OBJECT-TYPE SYNTAX INTEGER { originate(1), answer(2), both(3), -- both originate & answer callback(4), none(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "Applicable permissions. callback(4) either rejects the Expires October 1996 [Page 12] INTERNET-DRAFT Dial Control MIB April 1996 call and then calls back, or uses the 'Reverse charging' information element if it is available. Note that callback(4) is supposed to control charging, not security, and applies to callback prior to accepting a call. Callback for security reasons can be handled using PPP callback." DEFVAL { both } ::= { dialCtlNbrCfgEntry 11 } dialCtlNbrCfgInactivityTimer OBJECT-TYPE SYNTAX INTEGER (0..2147483647) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The connection will be automatically disconnected if no longer carrying useful data for a time period, in seconds, specified in this object. Useful data in this context refers to forwarding packets, including routing information; it excludes the encapsulator maintenance frames. A value of zero means the connection will not be automatically taken down due to inactivity, which implies that it is a dedicated circuit." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 12 } dialCtlNbrCfgMinDuration OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "Minimum duration of a call in seconds, starting from the time the call is connected until the call is disconnected. This is to accomplish the fact that in most countries charging applies to units of time, which should be matched as closely as possible." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 13 } dialCtlNbrCfgMaxDuration OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "Maximum call duration in seconds. Zero means 'unlimited'." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 14 } dialCtlNbrCfgCarrierDelay OBJECT-TYPE SYNTAX INTEGER (0..2147483647) UNITS "seconds" Expires October 1996 [Page 13] INTERNET-DRAFT Dial Control MIB April 1996 MAX-ACCESS read-create STATUS current DESCRIPTION "The call timeout time in seconds. The default value of zero means that the call timeout as specified for the media in question will apply." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 15 } dialCtlNbrCfgCallRetries OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The number of calls to a non-responding address that may be made. A retry count of zero means there is no bound. The intent is to bound the number of successive calls to an address which is inaccessible, or which refuses those calls. Some countries regulate the number of call retries to a given neighbor that can be made." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 16 } dialCtlNbrCfgRetryDelay OBJECT-TYPE SYNTAX INTEGER (0..2147483647) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The time in seconds between call retries if a neighbor cannot be reached. A value of zero means that call retries may be done without any delay." DEFVAL { 0 } ::= { dialCtlNbrCfgEntry 17 } dialCtlNbrCfgFailureDelay OBJECT-TYPE SYNTAX INTEGER (0..2147483647) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The time in seconds after which call attempts are to be placed again after a neighbor has been noticed to be unreachable, i.e. after dialCtlNbrCfgCallRetries unsuccessful call attempts. A value of zero means that a neighbor will not be called again after dialCtlNbrCfgCallRetries unsuccessful call attempts." DEFVAL { 0 } Expires October 1996 [Page 14] INTERNET-DRAFT Dial Control MIB April 1996 ::= { dialCtlNbrCfgEntry 18 } dialCtlNbrCallInfoTrapEnable OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates whether dialCtlNbrCallInformation traps should be generated for this neighbor." DEFVAL { disabled } ::= { dialCtlNbrCfgEntry 19 } dialCtlNbrCfgStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Status of one row in this table." ::= { dialCtlNbrCfgEntry 20 } -- Neighbor statistics table dialCtlNbrStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF DialCtlNbrStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Statistics information for each neighbor entry. There will be one entry in this table for each entry in the dialCtlNbrCfgTable." ::= { dialCtlNeighbor 3 } dialCtlNbrStatsEntry OBJECT-TYPE SYNTAX DialCtlNbrStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Statistics information for a single Neighbor. This entry is effectively permanent, and contains information describing the last call attempt as well as supplying statistical information." AUGMENTS { dialCtlNbrCfgEntry } ::= { dialCtlNbrStatsTable 1 } DialCtlNbrStatsEntry ::= SEQUENCE { dialCtlNbrStatsConnectTime Counter32, -- total connect time to neighbor dialCtlNbrStatsChargedUnits Counter32, Expires October 1996 [Page 15] INTERNET-DRAFT Dial Control MIB April 1996 -- number of charged units to this neighbor dialCtlNbrStatsSuccessCalls Counter32, -- number of completed calls to neighbor dialCtlNbrStatsFailCalls Counter32, -- number of failed call attempts dialCtlNbrStatsAcceptCalls Counter32, -- number of calls from neighbor accepted dialCtlNbrStatsRefuseCalls Counter32, -- number of calls from neighbor refused dialCtlNbrStatsLastDisconnectCause OCTET STRING, dialCtlNbrStatsLastDisconnectText DisplayString, -- textual and encoded reasons for last -- call clearing dialCtlNbrStatsLastSetupTime TimeStamp -- time of last call attempt } dialCtlNbrStatsConnectTime OBJECT-TYPE SYNTAX Counter32 UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION "Accumulated connect time to neighbor since system startup. This is the total connect time, i.e. the connect time for outgoing calls plus the time for incoming calls." ::= { dialCtlNbrStatsEntry 1 } dialCtlNbrStatsChargedUnits OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of charging units applying to this neighbor since system startup. Only the charging units applying to the local interface, i.e. for originated calls or for calls with 'Reverse charging' being active, will be counted here." ::= { dialCtlNbrStatsEntry 2 } dialCtlNbrStatsSuccessCalls OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of completed calls to neighbor." ::= { dialCtlNbrStatsEntry 3 } dialCtlNbrStatsFailCalls OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current Expires October 1996 [Page 16] INTERNET-DRAFT Dial Control MIB April 1996 DESCRIPTION "Number of failed call attempts to neighbor since system startup." ::= { dialCtlNbrStatsEntry 4 } dialCtlNbrStatsAcceptCalls OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of calls from neighbor accepted since system startup." ::= { dialCtlNbrStatsEntry 5 } dialCtlNbrStatsRefuseCalls OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of calls from neighbor refused since system startup." ::= { dialCtlNbrStatsEntry 6 } dialCtlNbrStatsLastDisconnectCause OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..4)) MAX-ACCESS read-only STATUS current DESCRIPTION "The encoded network cause value associated with the last call. This object will be updated whenever a call is started or cleared. The value of this object will depend on the interface type as well as on the protocol and protocol version being used on this interface. Some references for possible cause values are given below." REFERENCE "- Bellcore SR-NWT-001953, Generic Guidelines for ISDN Terminal Equipment On Basic Access Interfaces, chapter 5.2.5.8. - Bellcore SR-NWT-002343, ISDN Primary Rate Interface Generic Guidelines for Customer Premises Equipment, chapter 8.2.5.8. - ITU-T Q.931, Annex I. - ITU-T X.25, CAUSE and DIAGNOSTIC field values. - German Telekom FTZ 1TR6, chapter 3.2.3.4.4.4." ::= { dialCtlNbrStatsEntry 7 } dialCtlNbrStatsLastDisconnectText OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current Expires October 1996 [Page 17] INTERNET-DRAFT Dial Control MIB April 1996 DESCRIPTION "ASCII text describing the reason for the last call termination. This object exists because it would be impossible for a management station to store all possible cause values for all types of interfaces. It should be used only if a management station is unable to decode the value of dialCtlNbrStatsLastDisconnectCause. This object will be updated whenever a call is started or cleared." ::= { dialCtlNbrStatsEntry 8 } dialCtlNbrStatsLastSetupTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the last call to this neighbor was started. For ISDN media, this will be the time when the setup message was received from or sent to the network. This object will be updated whenever a call is started or cleared." ::= { dialCtlNbrStatsEntry 9 } -- -- the call history group -- callHistory OBJECT IDENTIFIER ::= { dialControlMibObjects 3 } callHistoryTableMaxLength OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "The upper limit on the number of entries that the callHistoryTable may contain. A value of 0 will prevent any history from being retained. When this table is full, the oldest entry will be deleted and the new one will be created." ::= { callHistory 1 } callHistoryRetainTimer OBJECT-TYPE SYNTAX INTEGER (0..2147483647) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "The minimum amount of time that an callHistoryEntry Expires October 1996 [Page 18] INTERNET-DRAFT Dial Control MIB April 1996 will be maintained before being deleted. A value of 0 will prevent any history from being retained in the callHistoryTable, but will neither prevent callCompletion traps being generated nor affect other tables." ::= { callHistory 2 } -- callHistoryTable -- Table to store the past call information. The Destination number -- and the call connect and disconnect time, the disconnection cause -- are stored. These calls could be circuit switched or they could -- be virtual circuits. History of each and every call is stored, -- of successful calls as well as of unsuccessful and rejected calls. -- An entry will be created when a call is cleared. callHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF CallHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing information about specific calls to a specific destination." ::= { callHistory 3 } callHistoryEntry OBJECT-TYPE SYNTAX CallHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The information regarding a single Connection." INDEX { callHistorySetupTime, callHistoryIndex } ::= { callHistoryTable 1 } CallHistoryEntry ::= SEQUENCE { callHistorySetupTime TimeStamp, callHistoryIndex INTEGER, callHistoryPeerAddress DisplayString, callHistoryPeerSubAddress DisplayString, callHistoryNeighborId INTEGER, callHistoryNeighborIndex INTEGER, callHistoryLogicalIfIndex InterfaceIndex, callHistoryDisconnectCause OCTET STRING, callHistoryDisconnectText DisplayString, callHistoryConnectTime TimeStamp, callHistoryDisconnectTime TimeStamp, callHistoryCallOrigin INTEGER, callHistoryChargedUnits Counter32, callHistoryInfoType INTEGER, callHistoryTransmitPackets Counter32, callHistoryTransmitBytes Counter32, callHistoryReceivePackets Counter32, Expires October 1996 [Page 19] INTERNET-DRAFT Dial Control MIB April 1996 callHistoryReceiveBytes Counter32 } callHistorySetupTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS not-accessible STATUS current DESCRIPTION "The value of sysUpTime when the call associated to this entry was started. This will be useful for an NMS to retrieve all calls after a specific time. Also, this object can be useful in finding large delays between the time the call was started and the time the call was connected. For ISDN media, this will be the time when the setup message was received from or sent to the network." ::= { callHistoryEntry 1 } callHistoryIndex OBJECT-TYPE SYNTAX INTEGER (1..'7fffffff'h) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index variable to access the CallHistoryEntry objects of the callHistoryTable." ::= { callHistoryEntry 2 } callHistoryPeerAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The number this call is connected to. If the number is not available, then it will have a length of zero." ::= { callHistoryEntry 3 } callHistoryPeerSubAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The subaddress this call is connected to. If the subaddress is undefined or not available, this will be a zero length string." ::= { callHistoryEntry 4 } callHistoryNeighborId OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "This is the Id value of the neighbor table entry to which this call was made. If a neighbor table entry Expires October 1996 [Page 20] INTERNET-DRAFT Dial Control MIB April 1996 for this call does not exist, the value of this object will be zero." ::= { callHistoryEntry 5 } callHistoryNeighborIndex OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "This is the index value of the neighbor table entry to which this call was made. If a neighbor table entry for this call does not exist, the value of this object will be zero." ::= { callHistoryEntry 6 } callHistoryLogicalIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "This is the ifIndex value of the logical interface through which this call was made. For ISDN media, this would be the ifIndex of the B channel which was used for this call." ::= { callHistoryEntry 7 } callHistoryDisconnectCause OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..4)) MAX-ACCESS read-only STATUS current DESCRIPTION "The encoded network cause value associated with this call. The value of this object will depend on the interface type as well as on the protocol and protocol version being used on this interface. Some references for possible cause values are given below." REFERENCE "- Bellcore SR-NWT-001953, Generic Guidelines for ISDN Terminal Equipment On Basic Access Interfaces, chapter 5.2.5.8. - Bellcore SR-NWT-002343, ISDN Primary Rate Interface Generic Guidelines for Customer Premises Equipment, chapter 8.2.5.8. - ITU-T Q.931, Annex I. - ITU-T X.25, CAUSE and DIAGNOSTIC field values. - German Telekom FTZ 1TR6, chapter 3.2.3.4.4.4." ::= { callHistoryEntry 8 } callHistoryDisconnectText OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current Expires October 1996 [Page 21] INTERNET-DRAFT Dial Control MIB April 1996 DESCRIPTION "ASCII text describing the reason for call termination. This object exists because it would be impossible for a management station to store all possible cause values for all types of interfaces. It should be used only if a management station is unable to decode the value of dialCtlNbrStatsLastDisconnectCause." ::= { callHistoryEntry 9 } callHistoryConnectTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the call was connected." ::= { callHistoryEntry 10 } callHistoryDisconnectTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the call was disconnected." ::= { callHistoryEntry 11 } callHistoryCallOrigin OBJECT-TYPE SYNTAX INTEGER { originate(1), answer(2), callback(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The call origin." ::= { callHistoryEntry 12 } callHistoryChargedUnits OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of charged units for this connection. For incoming calls or if charging information is not supplied by the switch, the value of this object will be zero." ::= { callHistoryEntry 13 } callHistoryInfoType OBJECT-TYPE SYNTAX INTEGER { other(1), -- e.g. for non-isdn media Expires October 1996 [Page 22] INTERNET-DRAFT Dial Control MIB April 1996 speech(2), unrestrictedDigital(3), -- 64k/s data unrestrictedDigital56(4), -- with 56k rate adaption restrictedDigital(5), audio31(6), -- 3.1 kHz audio audio7(7), -- 7 kHz audio video(8), packetSwitched(9) } MAX-ACCESS read-only STATUS current DESCRIPTION "The information type for this call." ::= { callHistoryEntry 14 } callHistoryTransmitPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets which were transmitted while this call was active." ::= { callHistoryEntry 15 } callHistoryTransmitBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of bytes which were transmitted while this call was active." ::= { callHistoryEntry 16 } callHistoryReceivePackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets which were received while this call was active." ::= { callHistoryEntry 17 } callHistoryReceiveBytes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of bytes which were received while this call was active." ::= { callHistoryEntry 18 } -- Traps related to Connection management Expires October 1996 [Page 23] INTERNET-DRAFT Dial Control MIB April 1996 dialControlMibTrapPrefix OBJECT IDENTIFIER ::= { dialControlMib 2 } dialControlMibTraps OBJECT IDENTIFIER ::= { dialControlMibTrapPrefix 0 } dialCtlNbrCallInformation NOTIFICATION-TYPE OBJECTS { callHistoryNeighborId, callHistoryNeighborIndex, callHistoryLogicalIfIndex, ifOperStatus, callHistoryPeerAddress, callHistoryPeerSubAddress, callHistoryDisconnectCause, callHistoryConnectTime, callHistoryDisconnectTime, callHistoryInfoType, callHistoryCallOrigin } STATUS current DESCRIPTION "This trap/inform is sent to the manager whenever a successful call clears, or a failed call attempt is determined to have ultimately failed. In the event that call retry is active, then this is after all retry attempts have failed. However, only one such trap is sent in between successful call attempts; subsequent call attempts result in no trap. ifOperStatus will return the operational status of the virtual interface associated with the neighbor to whom this call was made to." ::= { dialControlMibTraps 1 } -- conformance information dialControlMibConformance OBJECT IDENTIFIER ::= { dialControlMib 3 } dialControlMibCompliances OBJECT IDENTIFIER ::= { dialControlMibConformance 1 } dialControlMibGroups OBJECT IDENTIFIER ::= { dialControlMibConformance 2 } -- compliance statements dialControlMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the DIAL CONTROL MIB" MODULE -- this module MANDATORY-GROUPS { dialControlGroup, callHistoryGroup } ::= { dialControlMibCompliances 1 } Expires October 1996 [Page 24] INTERNET-DRAFT Dial Control MIB April 1996 -- units of conformance dialControlGroup OBJECT-GROUP OBJECTS { dialCtlAcceptMode, dialCtlNbrGetIndex, dialCtlNbrCfgIfIndex, dialCtlNbrCfgIfType, dialCtlNbrCfgLowerIf, dialCtlNbrCfgOriginateAddress, dialCtlNbrCfgAnswerAddress, dialCtlNbrCfgSubAddress, dialCtlNbrCfgClosedUserGroup, dialCtlNbrCfgSpeed, dialCtlNbrCfgPermission, dialCtlNbrCfgInactivityTimer, dialCtlNbrCfgMinDuration, dialCtlNbrCfgMaxDuration, dialCtlNbrCfgCarrierDelay, dialCtlNbrCfgCallRetries, dialCtlNbrCfgRetryDelay, dialCtlNbrCfgFailureDelay, dialCtlNbrCallInfoTrapEnable, dialCtlNbrCfgStatus, dialCtlNbrStatsConnectTime, dialCtlNbrStatsChargedUnits, dialCtlNbrStatsSuccessCalls, dialCtlNbrStatsFailCalls, dialCtlNbrStatsAcceptCalls, dialCtlNbrStatsRefuseCalls, dialCtlNbrStatsLastDisconnectCause, dialCtlNbrStatsLastDisconnectText, dialCtlNbrStatsLastSetupTime } STATUS current DESCRIPTION "A collection of objects providing the DIAL CONTROL capability." ::= { dialControlMibGroups 1 } callHistoryGroup OBJECT-GROUP OBJECTS { callHistoryTableMaxLength, callHistoryRetainTimer, callHistoryPeerAddress, callHistoryPeerSubAddress, callHistoryNeighborId, callHistoryNeighborIndex, callHistoryLogicalIfIndex, callHistoryDisconnectCause, callHistoryDisconnectText, callHistoryConnectTime, Expires October 1996 [Page 25] INTERNET-DRAFT Dial Control MIB April 1996 callHistoryDisconnectTime, callHistoryCallOrigin, callHistoryChargedUnits, callHistoryInfoType, callHistoryTransmitPackets, callHistoryTransmitBytes, callHistoryReceivePackets, callHistoryReceiveBytes } STATUS current DESCRIPTION "A collection of objects providing the Call History capability." ::= { dialControlMibGroups 2 } END Expires October 1996 [Page 26] INTERNET-DRAFT Dial Control MIB April 1996 5. Acknowledgments This document was produced by the ISDN MIB Working Group. Special thanks is due to the following persons: Ed Alcoff Fred Baker Bibek A. Das Ken Grigg Jeffrey T. Johnson Glenn Kime Oliver Korfmacher Kedar Madineni Bill Miskovetz David M. Piscitello Lisa A. Phifer Randy Roberts Hascall H. Sharp Robert Snyder Ron Stoughton James Watt 6. References [1] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996. [2] McCloghrie, K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", STD 17, RFC 1213, Hughes LAN Systems, Performance Systems International, March 1991. [3] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "A Simple Network Management Protocol (SNMP)", STD 15, RFC 1157, SNMP Research, Performance Systems International, MIT Lab for Computer Science, May 1990. [4] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996. [5] ITU-T Recommendation "Digital subscriber Signalling System No. 1 (DSS 1) - ISDN user-network interface layer 3 specification for basic call control", Rec. Q.931(I.451), March 1993. [6] ITU-T Recommendation "Generic procedures for the control of ISDN supplementary services ISDN user-network interface layer 3 specification", Rec. Q.932(I.452). Expires October 1996 [Page 27] INTERNET-DRAFT Dial Control MIB April 1996 [7] ITU-T Recommendation "Digital subscriber Signalling System No. 1 (DSS 1) - Signalling specification for frame-mode basic call control", Rec. Q.933. Expires October 1996 [Page 28] INTERNET-DRAFT Dial Control MIB April 1996 7. Security Considerations Information in this MIB may be used by upper protocol layers for security purpose. The implementor should be aware that supporting generic neighbors as described in section 3.4 may cause a security hole. The user would not know where a call is from, which could potentially allow unauthorized access if there is no other authentication scheme, e.g. PPP authentication, available. 8. Author's Address Guenter Roeck Conware GmbH Killisfeldstrasse 64 76137 Karlsruhe, Germany Phone: +49 721 9495 0 Email: roeck@conware.de Expires October 1996 [Page 29] INTERNET-DRAFT Dial Control MIB April 1996 Table of Contents 1 Introduction .................................................... 2 2 The SNMPv2 Network Management Framework ......................... 3 2.1 Object Definitions ............................................ 3 3 Overview ........................................................ 4 3.1 Structure of MIB .............................................. 4 3.2 Relationship to RFC1573 ....................................... 4 3.2.1 Layering Model and Virtual Circuits ......................... 4 3.2.2 ifTestTable ................................................. 5 3.2.3 ifRcvAddressTable ........................................... 6 3.2.3.1 ifEntry for a single neighbor ............................. 6 3.3 Multilink and backup line support ............................. 6 3.4 Support for generic neighbors ................................. 6 4 Definitions ..................................................... 7 4.1 Dial Control MIB .............................................. 7 5 Acknowledgments ................................................. 27 6 References ...................................................... 27 7 Security Considerations ......................................... 29 8 Author's Address ................................................ 29 Expires October 1996 [Page 30]