// Copyright (c) 2005 DMTF.  All rights reserved.
   [Abstract, Version ( "2.10.0" ), 
    UMLPackagePath ( "CIM::Device::Modems" ), 
    Description ( 
       "CIM_CallBasedModem is the superclass for grouping the numerous "
       "types of call-based modems. The POTSModem is a type of call- "
       "based Modem." )]
class CIM_CallBasedModem : CIM_Modem {

      [Description ( 
          "Indicates whether online fallback is enabled so that it "
          "can be negotiated by the Modem." )]
   boolean FallbackEnabled;

      [Description ( 
          "An array that enumerates all the compression protocols "
          "that are supported by the Modem." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown", "Other", "No Compression", "MNP 5", 
          "V.42bis", "MNP 3", "MNP 4", "V.58", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.OtherCompressionDescription" }]
   uint16 CompressionSupported[];

      [Description ( 
          "Description of the compression type when \"Other \" "
          "(value=1) is defined in the CompressionSupported array. "
          "If there are multiple \"Other\" types, then combine "
          "their descriptions into a single string." ), 
       ModelCorrespondence { 
          "CIM_CallBasedModem.CompressionSupported" }]
   string OtherCompressionDescription;

      [Description ( 
          "Describes the current data compression characteristics "
          "of the Modem." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown", "Other", "No Compression", "MNP 5", 
          "V.42bis", "MNP 3", "MNP 4", "V.58", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.CompressionSupported", 
          "CIM_CallBasedModem.OtherCompressionInfoDescription" }]
   uint16 CompressionInfo;

      [Description ( 
          "Description of the current compression type when \"Other\" "
          "(value=1) is specified in the CompressionInfo property." ), 
       ModelCorrespondence { "CIM_CallBasedModem.CompressionInfo" }]
   string OtherCompressionInfoDescription;

      [Description ( 
          "An array that enumerates all the modulation protocols "
          "that are supported by the Modem. The beginning entries "
          "in the Values qualifier array are mapped from the "
          "CIM_POTSModem ModulationScheme property." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13", "14", "15", "16", "17", "18", 
          "19", "20", "21", "22", "23", "24", "25", "26", "27", 
          "28", "29" }, 
       Values { "Unknown", "Other", "Not Supported", "Bell 103", 
          "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
          "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
          "V.22", "V.23 Constant Carrier (1200/75)", 
          "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
          "V.26ter", "V.27ter (G3 Fax Call)", 
          "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
          "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
          "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.OtherModulationDescription" }]
   uint16 ModulationSupported[];

      [Description ( 
          "Description of the current modulation type when \"Other\" "
          "(value=1) is specified in the ModulationSupported "
          "property. If there are multiple \"Other\" types, then "
          "combine their descriptions into a single string." ), 
       ModelCorrespondence { "CIM_CallBasedModem.ModulationSupported" }]
   string OtherModulationDescription;

      [Description ( 
          "Describes the current modulation scheme of the Modem." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13", "14", "15", "16", "17", "18", 
          "19", "20", "21", "22", "23", "24", "25", "26", "27", 
          "28", "29" }, 
       Values { "Unknown", "Other", "Not Supported", "Bell 103", 
          "Bell 212A", "V.22bis", "V.32", "V.32bis", "V.terbo", 
          "V.FC", "V.34", "V.34bis", "V.17 (G3 Fax Call)", "V.21", 
          "V.22", "V.23 Constant Carrier (1200/75)", 
          "V.23 Switched Carrier (Half Duplex)", "V.26bis", 
          "V.26ter", "V.27ter (G3 Fax Call)", 
          "V.29 HD (G3 Fax Call)", "V.34 HD (G3 Fax Call)", 
          "V.90 Issue 1 (Asymmetric)", "V.90 Issue 2 (Symmetric)", 
          "V.58", "X2", "K56FLEX", "V.Fast", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.ModulationSupported", 
          "CIM_CallBasedModem.OtherSchemeDescription" }]
   uint16 ModulationScheme;

      [Description ( 
          "Description of the current modulation type when \"Other\" "
          "(value=1) is specified in the ModulationScheme property." ), 
       ModelCorrespondence { "CIM_CallBasedModem.ModulationScheme" }]
   string OtherSchemeDescription;

      [Description ( 
          "An array that enumerates the error control protocols "
          "that are supported by the Modem. The beginning entries "
          "in the Values qualifier array are mapped from the "
          "CIM_POTSModem ErrorControlInfo property." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13" }, 
       Values { "Unknown", "Other", "No Error Correction", "MNP 4", 
          "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
          "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
          "MNP 3", "MNP10", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.OtherErrorControlDescription" }]
   uint16 ErrorControlSupported[];

      [Description ( 
          "Description of the error control type when \"Other\" "
          "(value= 1) is specified in the ErrorControlSupported "
          "property. If there are multiple \"Other\" types, then "
          "combine their descriptions into a single string." ), 
       ModelCorrespondence { 
          "CIM_CallBasedModem.ErrorControlSupported" }]
   string OtherErrorControlDescription;

      [Description ( 
          "Describes the current error correction characteristics "
          "of the Modem." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13" }, 
       Values { "Unknown", "Other", "No Error Correction", "MNP 4", 
          "LAPM", "V.58", "ECP Enhanced Cellular Protocol", 
          "ETC Enhanced Throughput Cellular", "MNP 1", "MNP 2", 
          "MNP 3", "MNP10", "PEP", "HST" }, 
       ModelCorrespondence { 
          "CIM_CallBasedModem.ErrorControlSupported", 
          "CIM_CallBasedModem.OtherErrorControlInfoDescription" }]
   uint16 ErrorControlInfo;

      [Description ( 
          "Description of the error control when \"Other\" "
          "(value=1) is defined as the value of the "
          "ErrorControlInfo property." ), 
       ModelCorrespondence { "CIM_CallBasedModem.ErrorControlInfo" }]
   string OtherErrorControlInfoDescription;

      [Description ( "Time of the last reset of the Modem." )]
   datetime TimeOfLastReset;

      [Description ( 
          "The rate at which the receiver and transmitter are or "
          "were last cooperating, on a call, before disconnection." ), 
       Units ( "Bits per Second" ), 
       PUnit ( "bit / second" )]
   uint32 CallSpeed;

      [Description ( 
          "Status of the Modem. For example, information regarding "
          "modem negotiation or whether the modem is connected "
          "(values 8 and 9, respectively) can be conveyed in this "
          "property." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10" }, 
       Values { "Unknown", "Other", "Offline", "On Hook", "Dialing", 
          "Waiting for Answer", "Ringing", "Modem Detected", 
          "Negotiating", "Online", "Error" }]
   uint16 CallStatus;

      [Description ( 
          "Total number of characters sent by the Device on the "
          "last or current call. A call in-progress is indicated by "
          "the CallStatus property." ), 
       Counter]
   uint32 CharsSent;

      [Description ( 
          "Total number of characters received by the Device on the "
          "last or current call. A call in-progress is indicated by "
          "the CallStatus property." ), 
       Counter]
   uint32 CharsReceived;

      [Description ( 
          "Total number of characters lost by the Device on the "
          "last or current call. A call in-progress is indicated by "
          "the CallStatus property." ), 
       Counter]
   uint32 CharsLost;

      [Description ( 
          "Total number of blocks sent by the Device on the last or "
          "current call. A call in-progress is indicated by the "
          "CallStatus property." ), 
       Counter]
   uint32 BlocksSent;

      [Description ( 
          "Total number of blocks resent by the Device on the last "
          "or current call. A call in-progress is indicated by the "
          "CallStatus property." ), 
       Counter]
   uint32 BlocksResent;

      [Description ( 
          "Total number of blocks received by the Device on the "
          "last or current call. A call in-progress is indicated by "
          "the CallStatus property." ), 
       Counter]
   uint32 BlocksReceived;

      [Description ( 
          "Total number of block errors seen by the Device on the "
          "last or current call. A call in-progress is indicated by "
          "the CallStatus property." ), 
       Counter]
   uint32 BlockErrors;

      [Description ( 
          "Length of the last or current call. A call in-progress "
          "is indicated by the CallStatus property. The \'interval\' "
          "format of the datetime data type should be used for the "
          "property value." )]
   datetime CallLength;

      [Description ( 
          "Last or current number dialed to which the statistics "
          "apply, or NULL if the call was incoming." )]
   string NumberDialed;


};
