// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.10.0" ), 
    UMLPackagePath ( "CIM::Device::Modems" ), 
    Description ( 
       "The POTSModem class represents a Device that translates binary "
       "data into wave modulations for sound-based transmission. It "
       "connects to the POTS (Plain Old Telephone System) network." )]
class CIM_POTSModem : CIM_CallBasedModem {

      [Description ( 
          "Capabilities of the POTSModem. For example, the Device "
          "might support distinctive ring, caller ID, fax, voice, "
          "and so on." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12" }, 
       Values { "Unknown", "Other", "Distinctive Ring", "Caller ID", 
          "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
          "Fax Group 3", "GSM Support", "AMPS Support", 
          "OOB Alerting", "Worldwide Country Support" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_POTSModem.CapabilityDescriptions" }]
   uint16 Capabilities[];

      [Description ( 
          "An array of free-form strings that provides more "
          "detailed explanations for any of the POTSModem features "
          "indicated in the Capabilities array. Note, each entry of "
          "this array is related to the entry in the Capabilities "
          "array that is located at the same index." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_POTSModem.Capabilities" }]
   string CapabilityDescriptions[];

      [Description ( 
          "Specifies which capabilities from the list of those "
          "supported are enabled and defined in the Capabilities "
          "array." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12" }, 
       Values { "Unknown", "Other", "Distinctive Ring", "Caller ID", 
          "Voice", "Fax Class 1", "Fax Class 2", "WakeOnRing", 
          "Fax Group 3", "GSM Support", "AMPS Support", 
          "OOB Alerting", "Worldwide Country Support" }, 
       ModelCorrespondence { "CIM_POTSModem.Capabilities" }]
   uint16 EnabledCapabilities[];

      [Description ( 
          "Defines the maximum communication speed to the COM Port "
          "for an external modem that can be set. Enter 0 if not "
          "applicable." ), 
       Units ( "Bits per Second" ), 
       PUnit ( "bit / second" )]
   uint32 MaxBaudRateToSerialPort;

      [Description ( 
          "Defines the maximum communication speed for accessing "
          "the phone system that can be set." ), 
       Units ( "Bits per Second" ), 
       PUnit ( "bit / second" )]
   uint32 MaxBaudRateToPhone;

      [Description ( 
          "Boolean that indicates that synchronous, as well as "
          "asynchronous, communication is supported." )]
   boolean SupportsSynchronousConnect;

      [Description ( 
          "DialType is an integer that indicates whether tone "
          "(value=1) or pulse dialing (value=2) is used. \"Unknown\" "
          "(0) can also be defined." ), 
       ValueMap { "0", "1", "2" }, 
       Values { "Unknown", "Tone", "Pulse" }]
   uint16 DialType;

      [Description ( 
          "InactivityTimeout defines the time limit (in seconds) "
          "for automatic disconnection of the phone line, if no "
          "data is exchanged. A value of 0 indicates that this "
          "feature is present but not enabled." ), 
       Units ( "Seconds" ), 
       PUnit ( "second" )]
   uint32 InactivityTimeout;

      [Description ( 
          "Describes the volume level of the audible tones from the "
          "Modem. For example, high, medium, or low volume can be "
          "reported (values 3, 4, or 5, respectively)." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" }, 
       Values { "Unknown", "Other", "Not Supported", "High", 
          "Medium", "Low", "Off", "Auto" }]
   uint16 SpeakerVolumeInfo;

      [Description ( 
          "CountriesSupported is an array of strings that defines "
          "the countries in which the POTSModem operates." ), 
       MaxLen ( 64 )]
   string CountriesSupported[];

      [Description ( 
          "CountrySelected is a string value that defines the "
          "country for which the Modem is currently programmed. "
          "When multiple countries are supported, this property "
          "defines which one is currently selected for use." ), 
       MaxLen ( 64 )]
   string CountrySelected;

      [Description ( 
          "Number of rings before the Modem answers an incoming call."
           )]
   uint8 RingsBeforeAnswer;

      [Description ( 
          "MaxNumberOfPasswords specifies the number of passwords "
          "that can be defined in the Modem itself. If this feature "
          "is not supported, enter 0." )]
   uint16 MaxNumberOfPasswords;

      [Description ( 
          "CurrentPasswords is an array that contains the currently "
          "defined passwords for the Modem. This array might be "
          "left blank for security reasons." ), 
       MaxLen ( 24 )]
   string CurrentPasswords[];

      [Description ( 
          "Indication of whether the Modem supports call-back." )]
   boolean SupportsCallback;

      [Description ( 
          "AnswerMode defines the current auto-answer or call-back "
          "setting for the Modem." ), 
       ValueMap { "0", "1", "2", "3", "4", "5" }, 
       Values { "Unknown", "Other", "Disabled", "Manual Answer", 
          "Auto Answer", "Auto Answer with Call-Back" }]
   uint16 AnswerMode;

      [Description ( 
          "The current equalization setting for the Modem." ), 
       ValueMap { "0", "1", "2", "3" }, 
       Values { "Unknown", "Other", "Long", "Short" }]
   uint16 Equalization;

      [Description ( "List of black-listed numbers for the Modem." )]
   string BlackListedNumbers[];


};
