Showing results for 
Search instead for 
Did you mean: 

IMC custom index field length problem


IMC custom index field length problem

I'm running IMC 7.3 E0504P04.  I'm trying to create a custom index to poll number of active calls per trunk group on a Sonus SBC 5400.  The particular OID I'm trying to poll is, which is part of a table represented by:


sonusAddressContextZoneTrunkGroupCurrentStatisticsEntry OBJECT-TYPE
    SYNTAX      SonusAddressContextZoneTrunkGroupCurrentStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    INDEX { sonusAddressContextName, sonusAddressContextZoneName, sonusAddressContextZoneTrunkGroupCurrentStatisticsName }
        ::= { sonusAddressContextZoneTrunkGroupCurrentStatisticsTable 1 }

SonusAddressContextZoneTrunkGroupCurrentStatisticsEntry ::=
        sonusAddressContextZoneTrunkGroupCurrentStatisticsName String,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsState SonusTgOperStateType,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsTotalCallsAvailable Integer32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsTotalCallsInboundReserved Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsInboundCallsUsage Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsOutboundCallsUsage Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsTotalCallsConfigured Integer32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsPriorityCallUsage Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsTotalOutboundCallsReserved Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsBwCurrentLimit Integer32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsBwAvailable Integer32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsBwInboundUsage Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsBwOutboundUsage Unsigned32,
        sonusAddressContextZoneTrunkGroupCurrentStatisticsPacketOutDetectState SonusTgPacketOutageDetectionStateType


There are three fields mentioned in the INDEX {} area in the MIB, and they are all data type 'String'":

SonusAddressContextEntry ::=
        sonusAddressContextName String,
        sonusAddressContextDummy Integer32

SonusAddressContextZoneEntry ::=
        sonusAddressContextZoneName String,
        sonusAddressContextZoneDummy Integer32

sonusAddressContextZoneTrunkGroupCurrentStatisticsName OBJECT-TYPE
    SYNTAX      String (SIZE (0 .. 23))
    MAX-ACCESS  not-accessible
    STATUS      current
The name of this IP trunk group.
    ::= { sonusAddressContextZoneTrunkGroupCurrentStatisticsEntry 1 }


I'm struggling to come up with the right 'Type' format for this - the three index fields appear to appear after the base OID as follows:

length of first string - ascii characters spelling out string - length of second string - ascii characters spelling out second string - length of third string - ascii characters spelling out third string -

The only way I've been able to get any instance resolution successfully is with the following 'TYPE':


It seems that using 0 for the length of the first two fields allows iMC to read the length from the first number for each field, and then interpret the correct number of subsequent fields, interpret the Ascii codes, and parse the field properly that way.  However, if I use a length of 0 for the third field, it won't resolve instances at all.  I've found that I can get instances to partially resolve by hardcoding the length of the third field to any value between 1 and 8, but because the trunk group names are different lengths (and none are 8 or fewer characters) the instances are not resolved properly, and I'm not able to poll the device at all. 

Has anyone run into this issue or any similar issues?  I appreciate any thoughts anyone may have.  Thanks!