Serviceability Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise, Release 10.0(1)
Unified ICM/Unified CCE Diagnostic Tools
Downloads: This chapterpdf (PDF - 2.1MB) The complete bookPDF (PDF - 6.12MB) | The complete bookePub (ePub - 2.36MB) | Feedback

Unified ICM/Unified CCE Diagnostic Tools

Contents

Unified ICM/Unified CCE Diagnostic Tools

The following sections provide information about the configuration, security, and usage, of the Diagnostic Framework.

Diagnostic Framework

Overview

Unified ICM/Unified CCE/Unified CCH servers use the web-based Diagnostic Framework service to collect (and sometimes set) diagnostic information for that server. The Diagnostic Framework service is a REST-like service that accepts requests over HTTPS, gathers information from the system, and responds in the form of an XML response message. It can collect a variety of data, such as process logs, current trace values, network status, PerfMon values, and so on. You can also use the service to collect log files from the server. For a complete list of the capabilities, see Diagnostic Framework API.

You can use the Diagnostic Framework as follows:

  • For Unified CCE deployments, the primary access method is through the Analysis Manager, which serves as a solution-wide serviceability portal.
  • Unified CCE deployments can also use the Unified Communication diagnostic clients’ CLI.
  • Each Diagnostic Framework service also includes an HTML-based web user interface that provides access to the complete list of the API commands.
  • The API can also be accessed directly through a browser.

For more information about how to access the service, see Usage.

Installation and Configuration

The Diagnostic Framework service is installed as part of the Unified ICM/Unified CCE/Unified CCH software by the ICM-CCE-CCH installer (henceforth, called the Unified ICM installer). You require no additional installation or configuration steps. You may optionally choose to customize the service if needed, such as change the port number, certificate, or logging level as explained in the following sections.

Service Registration and Dependencies

Diagnostic Framework is a .NET based web service. It is registered in the Windows service control by the Unified ICM installer.1 The service files are laid down under the following folder: <ICM_Drive>:\icm\serviceability\diagnostics

You can start or stop the Diagnostic Framework service from the Windows service control panel.

The service is registered under the following name:"Cisco ICM Diagnostic Framework"

The Diagnostic Framework is hosted on top of the HTTP service built in the Windows Server 2008 kernel. It does not require IIS or any other web server to be installed. The Diagnostic Framework utilizes the Windows HTTP SSL service to provide secure communications between the server and the client. Therefore, you must enable the HTTP SSL service before starting the Diagnostic Framework service. The Unified ICM installer configures this dependency in the Windows service control panel to automatically start the HTTP SSL service when the Diagnostic Framework service is started.


Note


Note: The Diagnostic Framework or HTTP SSL service does not require IIS. However, if IIS is installed, the HTTP SSL service adds a dependency on the IIS service. Therefore, for HTTP SSL and the Diagnostic Framework to work, you must start IIS.

Configure Service Port

The Diagnostic Framework listens on TCP port 7890.

You can change the port number. To change the port number you must update the Diagnostic Framework service configuration file and the certificate registration with Windows. You must change the port number on the CLI and Analysis Manager clients too. Additionally, you must change the port number on every other Unified ICM server where other instances of the Diagnostics Framework are running.


Note


Consider changing the port number only if absolutely necessary.


Procedure
    Step 1   Stop Diagnostic Framework service through Windows service control.
    Step 2   Open command prompt and change directory to <ICM_Drive>:\icm\serviceability\diagnostics\bin
    Step 3   Run DiagFwCertMgr /task:ValidateCertBinding command and confirm from output that certificate binding with current port is valid. For more information about the DiagFwCertMgr utility, see Certificate Management.
    Step 4   Record thumbprint of certificate in use. You need the thumbprint to register the certificate with a different port. You can access it either from the output of the above command or from the following registry value: HKLM\SOFTWARE\Cisco Systems, Inc.\ICM\Serviceability\DiagnosticFramework\CertUsedByDiagFwSvc
    Step 5   In same command window, run DiagFwCertMgr /task:UnbindCert command to remove certificate binding from current port.
    Step 6   Launch Notepad and open service configuration file <ICM_Drive>:\icm\serviceability\diagnostics\bin\DiagFwSvc.exe.config
    Note    You may want to make a copy of this configuration file before making any changes to it.
    Step 7   Save file and quit Notepad.
    Step 8   Open command prompt and change directory to <ICM_Drive>:\icm\serviceability\diagnostics\bin
    Step 9   Run DiagFwCertMgr/task:BindCertFromStore/certhash:<hash of the certificate noted above> command to bind the certificate to the new port number.

    The utility reads the port number from the service configuration file.

    Step 10   Read output and confirm that above command completed successfully.
    Step 11   (Optional)Run DiagFwCertMgr/task:ValidateCertBinding command again to verify changes to port number binding.
    Step 12   Restart Diagnostic Framework service.

    What to Do Next

    If you configured the Windows Firewall, make sure the new port opened in the firewall configuration.

    Installing or updating Third-Party Certificate

    During installation, the Diagnostic Framework generates a self-signed certificate with its name set to the server hostname. The self-signed certificate can be replaced with a trusted third-party signed certificate. For more information, see Certificate Management.

    Diagnostic Framework Log Files and Logging Level

    The Diagnostic Framework log files are created in the folder <ICM_Drive>:\icm\serviceability\diagnostics\logs.

    The Diagnostic Framework uses the industry-standard log4net library to create and manage its log files. There is a configuration file that controls the names of the log files, how large they can get, how many rollover files are kept, the logging level, and so on.

    The default logging level is ‘INFO’, and it should be sufficient for most cases. Do not change the logging level unless directed by the TAC.

    You can change the log level by editing the file <ICM_Drive>:\icm\serviceability\diagnostics\config\log4net.config and changing the <level> tag value to "DEBUG" (or "WARN," "ERROR," or "FATAL").

    <root>
        <level value="INFO" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    Diagnostic Framework Service Resources Requirements

    Reduced Priority

    The Diagnostic Framework service executes at a Below Normal priority so as to avoid adversely impacting server/application performance while running.

    Changing Service CPU Threshold

    Some CPU-intensive APIs of the Diagnostic Framework first check the overall system CPU utilization value (%CPU), and do not start the request if the %CPU value is greater than a threshold value.

    These APIs are:

    • LogMgr commands
    • TraceMgr commands
    • ConfigMgr command

    There are a few registry keys that control this behavior. Look in the following Windows Registry Key:

    HKLM\SOFTWARE\Cisco Systems, Inc.\ICM\Serviceability\DiagnosticFramework

    Table 1 CPU Threshold

    Registry key

    Default Value

    Description

    CPUThresholdSample

    5

    To get a more accurate reading of the %CPU, multiple readings are taken.

    This value says how many samples should be read.

    CPUThresholdDelay

    2

    The number of milliseconds to wait between each sample taken.

    CPUThresholdPercent

    60

    The percent value to compare the current %CPU to. If the %CPU is greater than this value, the API cannot start, and returns an error telling the user that the server is too busy, and to try the command later.

    Change Maximum Number of Concurrent Requests

    The Diagnostic Framework service is designed to handle up to 20 concurrent web requests. The system was tested under load to work with this configuration. However, due to special circumstances if you must lower the number of concurrent requests, then you can modify the value of maxConcurrentCalls property in the service configuration file.
    Procedure
      Step 1   Stop Diagnostic Framework service.
      Step 2   Launch Notepad and open file <ICM_Drive>:\icm\serviceability\diagnostics\bin\DiagFwSvc.exe.config.
      Tip   

      You may want to make a copy of this configuration file before making any changes to it.

      Step 3   Locate element <serviceThrottling maxConcurrentCalls="20" /> and change value to any number below 20.
      Caution   

      Do not increase the value beyond 20. It may lead to unexpected results during peak call volume.

      Step 4   Save file and quit Notepad.
      Step 5   Restart Diagnostic Framework service.

      Security

      The Diagnostic Framework provides the infrastructure to establish a secure connection between the service and its clients. It uses HTTP basic authentication over SSL to authenticate, authorize, and encrypt the connection. You need a valid Diagnostic Framework user account to access the service. Connections are not session oriented; the connection is maintained from the receipt of a request until the response is sent.

      For service provider deployments, the Diagnostic Framework service is ICM instance aware, and can control access based on instance data requested.

      Authentication, Authorization, and Auditing

      The Diagnostic Framework service integrates with Windows as well as Active Directory to provide user management and access control. The Diagnostic Framework allows two sets of users:

      • A local Windows user who is a member of the local Windows security group called ICMDiagnosticFrameworkUsers on the server where the service exists: This group is created by the Unified ICM installer and is initially empty, so by default, no local users have access to the service. The administrator on the server can make any local user a member of this group and provide access to Diagnostic Framework service. To add a user to the ICMDiagnosticFrameworkUsers group, use the Computer Management tool under Administrative Tools.
      • A trusted domain user who is a member of the CONFIG domain security group of the Unified ICM/Unified CCE/Unified CCH instance being accessed: A Unified ICM/Unified CCE/Unified CCH SETUP user or domain administrator can make any trusted user a member of the instance CONFIG group. Nested membership is allowed too; as a result the SETUP users and domain administrator can also access the service. To add a user to the instance CONFIG group use the Active Directory Users and Computers tool or Unified ICM/Unified CCE/Unified CCH User List tool. Access to domain users is configurable. By default, all direct and nested members of the CONFIG group have access to the service. However, you can disable access to domain users as follows:
        1. Stop the Diagnostic Framework service.
        2. Launch Notepad and open the file <ICM_Drive>:\icm\serviceability\diagnostics\bin\DiagFwSvc.exe.config

          Tip


          Tip: You may want to make a copy of this configuration file before making any changes to it.
        3. Locate the element <add key="DomainAuthorizationEnabled" value="1" />and change the value from 1 to 0
        4. Save the file and quit Notepad.
        5. Restart the Diagnostic Framework service.

      Note


      A Diagnostic Framework user does not require administrative privileges on the server to access the service.

      The user authentication, validating username and password, is managed by Windows or Active Directory. Therefore, all valid or invalid sign in attempts are logged in the Windows Event Viewer (provided that login/logout auditing is enabled). The user authorization, validating group membership and optionally Unified ICM instance access, is managed by the Diagnostic Framework service. Hence, all authorization requests can be audited through the Diagnostic Framework logs.


      Note


      A user may be a valid Windows or Active Directory user but may not be a member of the required security groups for access to Diagnostic Framework service. As a result, even though the user may pass authentication, it may not pass authorization.

      Because the Diagnostic Framework user is managed by Windows or by Active Directory, the user is subjected to the password policies of the server or the domain. Always set strong password policies. For more information about system hardening and password policies, see the Security Best Practices Guide for Unified ICM/Unified CCE/Unified CCH at http:/​/​www.cisco.com/​en/​US/​products/​sw/​custcosw/​ps1844/​tsd_​products_​support_​series_​home.html.

      Special Consideration for Servers with Multiple Unified ICM Instances

      This section applies to environments similar to service providers, who have multiple Unified ICM instances on each server.

      The domain user is authorized against the CONFIG domain security group of the Unified ICM instance. If there are multiple instances on the server, then the service needs to know which instance security group to authorize against. Therefore, on a multiple Unified ICM instance server, the ICM instance name must be passed as one of the parameters for each request when authorizing a domain user. If an instance name parameter is not passed then the domain user authorization fails. The local user is free from this requirement because there is only one local group per server. Furthermore, when a domain user is used to access the service, the response is crafted only for the specific instance that user belongs to. However, when a local user tries to access the service, the response includes information for all instances on that server. This gives service providers flexibility to access control information collection for a one or all instances.

      On a single instance server, the instance name is not required when you access an API. Because there is only one instance on the server, the domain user is authorized against the CONFIG domain security group of that instance.

      The table below summarizes the all authorization combinations. Remember that you can completely disable domain authorization through the service configuration file.

      Table 2 Domain Authorization Combination

      Unified ICM Instances on Server

      User Type

      Instance Name Provided

      Authorization Criteria

      Response Content on Successful Authorization

      Multiple

      Domain

      No

      Fail authorization, user must provide instance name in request

      HTTP 403 – Access Forbidden

      Multiple

      Domain

      Yes

      Authorize against the instance name provided by user

      Data for instance requested

      Multiple

      Local

      No

      Authorize against local group

      Data for all instances

      Multiple

      Local

      Yes

      Authorize against local group

      Data for instance requested

      Single

      Domain

      No

      Automatically detect the instance name and authorize against it

      Data for instance installed

      Single

      Domain

      Yes

      Authorize against the instance name provided by user. If the instance name is invalid then authorization fails.

      Data for instance installed

      Single

      Local

      No

      Authorize against local group

      Data for instance installed

      Single

      Local

      Yes

      Authorize against local group

      Data for instance installed

      Encryption

      Diagnostic Framework uses SSL to secure the HTTP connection between the server and the client. This secures both the credentials as well as data exchanged. To establish the SSL connection, a self-signed certificate is created by the ICM-CCE-CCH installer and used during connection negotiation. Because the certificate is self-signed, the browser issues a warning about the invalidity of the certificate trust. Diagnostic Framework allows replacing the self-signed certificate with a trusted third-party certificate. For more information, see the Certificate Management section.

      Certificate Management

      The ICM-CCE-CCH installer creates a self-signed certificate and stores it in the Windows Local Computer Personal certificate store with the friendly name "Cisco ICM Diagnostic Framework service certificate". The installer then binds this certificate to the Windows HTTP service on the Diagnostic Framework service port, which by default is TCP 7890. Recall that Diagnostic Framework service is hosted on top of the Windows HTTP service. Therefore, this certificate is used by Windows HTTP service to establish a secure HTTPS channel (HTTP over SSL) whenever the Diagnostic Framework service is accessed. The Unified ICM installer uses the Diagnostic Framework Certificate Manager Utility to create and bind the self-signed certificate.

      Depending on the nature of business and the network access layout of the site, a self-signed certificate may provide sufficient security for accessing the service from within the trusted intranet. However, if you plan to access the service from outside the trusted network, replace the self-signed certificate with a trusted third-party certificate to provide improved security 2 .

      When you access the service with the self signed certificate for the first time from Internet Explorer, a warning about the validity of the certificate appears. If you are certain that the server is authentic then you may choose to accept the certificate and store it on the client machine to avoid future warnings.

      If you wish to replace the server certificate with a trusted third-party certificate or modify the port to which a certificate is bound, you must use the Diagnostic Framework Certificate Manager utility.

      Diagnostic Framework Certificate Manager Utility

      The Diagnostic Framework Certificate Manager utility is a command line utility used to manage certificate creation and binding for the Diagnostic Framework service. It is installed at <ICM_Drive>:\icm\serviceability\diagnostics\bin\DiagFwCertMgr.exe.

      The utility can perform the following tasks:
      • Create self-signed certificate.
      • Store the certificate in Local Computer Personal certificate store.
      • Bind a certificate to Windows HTTP service on a given port.
      • Remove a certificate binding from the Windows HTTP service on a given port.
      • Delete the self-signed certificate created by itself from the Local Computer Personal certificate store.
      • Validate the certificate binding to HTTP service for Diagnostic Framework service.

      The following section explains the usage of the utility:

      DiagFwCertMgr /task:<task_name> [/port:<port_number>] [/certhash:<certificate_thumbprint>] [/logpath:<logfile_path>]
      Where:
      • /task: specifies the task to be performed.
      • /port: specifies the port number used by the service; this is optional as the port number is automatically read from the service configuration file (DiagFwSvc.exe.config).
      • /certhash: specifies the SHA-1 thumbprint of the certificate; required only when binding a specific certificate, which exists in the certificate store, to a port.
      • /logpath: specifies the path where the log file should be created; by default it is the current folder.

      The following table explains each task:

      Table 3 Diagnostic Framework Certificate Manager Utility Tasks

      Task

      Description

      CreateAndBindCert

      Creates a self-signed certificate in the local computer personal certificate store and binds it with HTTP service on the given port.

      (Used by ICM-CCE-CCH Install)

      BindCertFromStore

      Looks up the certificate provided by /certhash argument in certificate store and binds it with the HTTP service on the given port.

      UnbindCert

      Removes the certificate binding from the specified port, does not modify any certificate in the store

      UnbindAndDeleteCert

      Removes the certificate binding from the specified port. Also, deletes the self-signed certificate created by CreateAndBindCert option.

      (Used by ICM-CCE-CCH Uninstall)

      ValidateCertBinding

      Verifies the certificate binding on the specified port and confirms its presence in the local computer certificate store.

      Diagnostic Framework Certificate Manager utility stores the thumbprint (SHA-1 hash) of the self-signed certificate created by the utility and the certificate used by the Diagnostic Framework service in the registry at the following location respectively:

      • HKLM\SOFTWARE\Cisco Systems, Inc.\ICM\Serviceability\ DiagnosticFramework\SelfSignedCertCreatedForDiagFwSvc
      • HKLM\SOFTWARE\Cisco Systems, Inc.\ICM\Serviceability\ DiagnosticFramework\CertUsedByDiagFwSvc

      Unless the certificate used by the service is changed manually, both registry values are the same.

      Using a Trusted Third-party Certificate

      Replacing the certificate used by the Diagnostic Framework service involves two tasks, first to import the new certificate in the Local Computer Personal certificate store and second to bind it with the TCP port used by the service.

      Import Certificate

      Use the MMC Certificates snap-in to import a certificate in the Local Computer Personal certificate store as explained in the section "Import the Certificate into the Local Computer Store" of the Microsoft KB article 816794 – "HOW TO: Install Imported Certificates on a Web Server in Windows Server 2003."

      http:/​/​support.microsoft.com/​kb/​816794

      These directions are applicable to Windows Server 2008.


      Caution


      Do not follow the instructions in the "Assign the Imported Certificate to the Web Site" section of the article. Diagnostic Framework does not use IIS web server. It is hosted on top of Windows HTTP service. You must use the DiagFwCertMgr utility to bind this certificate to the Windows HTTP service.
      Bind Certificate

      Follow the instructions below to bind the certificate added to the Windows HTTP service using the DiagFwCertMgr utility:

      1. Open MMC Certificates snap-in and record the thumbprint of the certificate that needs to be used with the Diagnostic Framework service.
      2. Stop the Diagnostic Framework service via the Windows service control.
      3. Open a command prompt and change directory to <ICM_Drive>:\icm\serviceability\diagnostics\bin.
      4. In the command window, run the command DiagFwCertMgr /task:UnbindCert to remove the current certificate binding from the port.
      5. Run the command DiagFwCertMgr /task:BindCertFromStore /certhash:<hash of the certificate noted above> to bind the new certificate to the service. The utility reads the port number from the service configuration file.
      6. Read the output and confirm that the above command completed successfully.
      7. Optionally, run the DiagFwCertMgr /task:ValidateCertBinding command to verify the changes to the certificate binding.
      8. Restart the Diagnostic Framework service.

      Usage

      The framework provides four ways to access the diagnostic data:

      Accessing the Diagnostic Framework through the Analysis Manager

      The Analysis Manager is part of the Real Time Monitoring client Tool (RTMT) that resides on Unified CM. RTMT is not a web-based tool, rather it is a thick client tool that you must download from the Unified CM and install on a server. RTMT includes menus for the Analysis Manager. You can access the Analysis Manager functions from the tool. See the sample screen:

      Figure 1. Real Time Monitoring Tool



      For more information about how to use the Analysis Manager, see the Cisco Unified Real-Time Monitoring Tool Administration Guide at http:/​/​www.cisco.com/​en/​US/​products/​sw/​voicesw/​ps556/​tsd_​products_​support_​general_​information.html.

      Accessing the Diagnostic Framework through the Unified System CLI

      You can also access the Diagnostic Framework through a CLI. The CLI access utility is installed on every Unified ICM machine at <ICM_Drive>:\icm\serviceability\wsccli\runwsccli.bat.

      Use a DOS command shell to run this batch file, and it sets up everything needed to access the Diagnostic Framework through the CLI.

      A shortcut is included to the Unified ICM menu to provide quick access to the CLI. Also, you can access Unified CLI from Start > Programs > Cisco Unified ICM-CCE-CCH Tools > Unified CLI. A new DOS Window opens with an initial prompt for your credentials (username and password).

      Figure 2. Using Unified System CLI from Command Prompt



      On authentication, you can use the CLI from this window, as explained in Unified CLI Architecture.

      The CLI allows an optional user input named Instance. In Unified CCE environments, you do not enter anything. In a Hosted environment, you must enter the instance to access the diagnostic data for only that particular instance. Fore more information, see Special Consideration for Servers with Multiple Unified ICM Instances.

      Unified CLI Architecture


      Note


      This figure is only from a Unified CVP perspective, and does not directly specify the Diagnostic Framework. However, the Diagnostic Framework is what the Unified CCE uses as an underlying implementation.
      Figure 3. Unified CLI Architecture



      A user can perform the following tasks using the Unified CLI:
      • Run a single command (in system mode) on any Unified CCE system to gather information about all supported solution components. 
      • In system mode, you can optionally provide the seed devices in WSC_CLI_DIR\conf directory or give a flat CSV file with a device list.
      • System mode allows the CLI to recursively go to each supported box in the background and run the same command that was executed by the user in system mode. User can optionally limit the system command to be executed only on certain device group or list of servers. Device group is automatically populated based on device type (Unified CVP, Unified ICM, Cisco IOS Firewall, EA as an example), device IP/hostname wildcard (LOC-1*, 10.86.129.* as an example for branch office deployments), or the CSV file in WSC_CLI_DIR\conf directory.
      • The system command can also be executed by prefixing the "system" on any regular command. For example, "system show all" or typing "system" and executing the commands exactly like a regular CLI for interactive mode.

      Unified System CLI Usability

      • System CLI is automatically installed on all Unified CCE systems as part of the infrastructure, so there is no additional installation required.
      • System CLI can be executed as a Windows scheduled job or a Unix Cron job. Single command for all operations across multiple products and servers.
      • All the commands available in non-system mode for a local system are available in system mode. The command syntax remains the same in system mode. There is an additional option to limit the system command option to certain device group, device type or list of servers.
      • In system mode, when you seek help for using the "?" character after you enter the keyword component or subcomponent, the list of components that appears maybe large due to the fact that it is an aggregated list of all the possible component types on all the unique server types.
      • The Master list is defined by the unique "Name," "ProductType." If there are multiple components for the purpose of co-location, the internal list contains one entry because there is only one WebServices manager running at the specified port.
      • System CLI runs on a low priority, so it only uses the IDLE CPU on the System. It should not affect the Call Processing even if it gets executed on a system running under load. The response time varies depending on the load of the system you are running and the server response time. The response time when there is no running load should be below 5 seconds for each server for simple operations like "version," "license," "debug" and "perf." The response time when there is no running load for "platform" should be below 10 seconds for each server. However, the response time cannot be determined for commands like "trace," "log," "sessions," and all "tech-support" that can vary depending on the data transferred by the server.
      • There are no specific timeouts on the System CLI client and it is controlled by the server. 
      • Error code and error description during failure conditions occur from the server side. System CLI displays the error message arriving from server. The possible error codes are specified and described in the DP REST API specification.

      Extensibility

      System CLI is not a tool but an extensible platform to build several analysis toolkits. The CLI library can be embedded or used within the analysis engine to do post processing of the data (normalized). System CLI can be used by common scripting tools like Perl to create custom logic.

      Command Syntax

      The common CLI syntax matches closely with Cisco IOS gateway CLI commands. In cases where specific commands or parameters are not available in IOS gateway, the syntax attempts to match the Unified CM platform CLI commands for consistency.

      The following tables list and describe the CLI commands that are available for diagnostic purposes.
      Note   

      If you do not specify component/sub-component, then the list includes all the installed components/sub-components on the server.

      The command output on screen does not include binary data.



      Table 4 CLI Commands

      Command (Verb )

      Noun

      Description

      show

      all

      Aggregation of output for all the supported nouns and specific to the verb "show."

      component

      Lists the currently installed components on the server.

      configuration

      Lists the application configuration.

      debug

      Shows the current debug levels.

      license

      Shows the license/port information.

      log

      Shows the logs.

      perf

      Shows the performance information.

      platform

      Shows the platform information.

      sessions

      Shows the current active sessions/calls. (Not supported by Unified CCE)

      tech-support

      Shows system information for Tech-Support.
      Note   

      This command is exactly the same as "show all".

      trace

      Shows the traces.

      version

      Shows system hardware and software status and version.

      devices

      Shows information of devices that are known to the CLI.

      debug

      level

      Sets the specific debug level.

      help

      Shows the help information.

      quit

      Quits the CLI.

      capture

      Captures the network packets. (Not supported by Unified CCE)


      Note


      You can enter the start of a command and press Tab to complete the command. For example, if you enter show all comp and press Tab, show all component is completed.

      You can enter a full command name and press Tab to display all the commands or subcommands that are available. For example, if you enter show and press Tab, you see all the show subcommands.


      Detailed help that includes a definition of each command and examples of usage is available in the online help.

      To get detailed help, at the CLI prompt, enter help <command> where command specifies the command name or the command and parameter.

      To query only command syntax, at the CLI prompt, enter <command> ? where command represents the command name or the command and parameter.


      Note


      The filter and match features of the CLI are not supported for trace files because the framework returns a zip file that contains not just the text file. For those two features, CLI expects a plain text file.


      show all
      Syntax
      show all [options]

      This command provides information for the component or subcomponent based on the command filters.

      Options
      component

      narrow the output to the specified component(s). The option is limited to trace, debug, perf and sessions commands.

      subcomponent

      narrow the output to the specified subcomponent(s). The option is limited to trace, debug, perf and sessions commands.

      absdatetime

      narrow the output to the specified time range in the form of start time and end time. Time format is "mm-dd-yyyy:hh:mm".

      reltime

      narrow the output to the specified time range in the form of relative time from the current time.

      match

      narrow the output to the specified regex pattern. This match pattern is applied to text based log output only. The option is limited to trace and log commands.

      filter

      narrow the output to the specified command(s).

      redirect

      redirect the output to a file or a directory.

      Additional system mode options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      dtcomponent

      narrow the output to the specified component(s) for a device type of the specified component.

      dtsubcomponent

      narrow the output to the specified subcomponent(s) for a device type of the specified subcomponent.

      Examples

      show all component cvp:CallServer

      show all component cvp:CallServer subcomponent cvp:SIP

      show all component cvp:CallServer|cvp:VoiceXMLServer subcomponent cvp:SIP|cvp:VXMLServer

      show all component cvp:CallServer subcomponent cvp:SIP filter race|log|version

      show all reltime 2 hours

      In system mode

      show all devicetype ios

      show all devicetype ios|cvp

      show all server 10.86.129.11(cvp)

      show all group GroupA|default

      show all dtcomponent "ucm:Cisco CallManager|cup:Cisco UP SIP Proxy" -- Extract everything from all devices except ucm and cup where device specific filters are applied.

      By default, the output zip file is saved at WSC_CLI_DIR\download directory where WSC_CLI_DIR is the environment variable.

      To save the output to a specific directory, show all redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show all redirect file c:\temp\output.txt

      show component
      Syntax
      show component [options]

      Lists all the installed subcomponents of a component. If component is not given, then all the components and subcomponents configured/installed are listed.

      Options

      Name of a specific component.

      Example

      show component cvp:VXMLServer

      show config
      Syntax
      show config [options]

      This command displays the configuration data.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for host names or IP addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show config component cvp:CallServer subcomponent cvp:H323

      In system mode

      show config devicetype ios

      show config devicetype ios|cvp

      show config server 10.86.129.11(cvp)

      show config group CVPAndIOS|default

      To save the output to a directory, show config redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show config redirect file c:\temp\output.txt

      show debug
      Syntax
      show debug [options]

      This request returns the current debug level for a component or subcomponent.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for host names or IP addresses.

      group

      narrow the output to the specified group name(s).

      dtcomponent

      narrow the output to the specified component(s) for a device type of the specified component.

      dtsubcomponent

      narrow the output to the specified subcomponent(s) for a device type of the specified subcomponent.

      Valid debug levels
      level 0

      Default debug level. During normal operation, product log errors or warning trace messages.

      level 1

      Small performance impact (Warning) debug level. Can be run on production environment. At level 1, additional basic component traces along with level 0 trace messages.

      level 2

      Medium performance impact (Informational) debug level. Can be run on production environment. At level 2, additional detailed component traces along with level 1 trace messages.

      level 3

      High performance impact (Debug) debug level. Can be run on production environment. At level 3, most detailed trace messages will be logged along with level 2 trace messages.

      level 4

      Cannot be run on production environment. At level 4, internal subcomponent trace messages will be logged along with level 3 trace messages.

      level 5

      Cannot be run on production environment. At level 5, internal functional module trace messages will be logged along with level 4 trace messages.

      level 99

      Custom debug level. In the case when log levels do not match, 99 will be returned as custom level along data representing the custom debug settings.

      Example

      show debug component cvp:CallServer

      show debug component cvp:CallServer|cvp:VXMLServer subcomponent cvp:H323|cvp:SIP

      In system mode

      show debug devicetype cup|ucm|icm

      show debug devicetype ios|cvp

      show debug server 10.86.129.11(cvp)|10.86.129.123(ucm)

      show debug group GroupB|default

      show debug dtcomponent "ucm:Cisco CallManager|cup:Cisco UP SIP Proxy|cvp:CallServer"

      To save the output to a directory, show debug redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show debug redirect file c:\temp\output.txt

      show license
      Syntax
      show license [options]

      This command displays the license data.

      Options
      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show license

      In system mode

      show license devicetype ios|cvp|ucm

      show license server 10.86.129.123(ucm)

      show license group GroupB|default

      To save the output to a directory, show license redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show license redirect file c:\temp\output.txt

      show log
      Syntax
      show log [options]

      Displays contents or downloads (if redirect option is used) the product *miscellaneous* log file(s) for a component or subcomponent.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      absdatetime

      narrow the output to the specified time range in the form of start time and end time. Time format is "mm-dd-yyyy:hh:mm".

      reltime

      narrow the output to the specified time range in the form of relative time from the current time.

      match

      narrow the output to the specified regex pattern. This match pattern is applied to text based log output only.

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show log component cvp:callserver - displays contents of all the log files for component cvp:callserver; can be a huge output

      show log component cvp:vxmlserver absdatetime 9-18-2008:14:00 9-20-2008:18:00 - displays contents of all the log files for component cvp:vxmlserver based on specific start date,time and end date, time values

      show log component cvp:vxmlserver absdatetime 9-18-2008:14:00 13:00 - displays contents of all the log files for component cvp:vxmlserver based on specific start date,time and end time values.

      show log component cvp:callserver subcomponent sip reltime 10 minutes – displays contents of all the log files based on elapsed time of 10 minutes for component cvp:callserver and subcomponent cvp:sip

      show log component cvp:callserver absdatetime 9-18-2008:14:00 13:00 match .*CVPS ervlet.* - displays contents of all the log files based on match criteria, time range for component cvp:callserver

      show log component cvp:callserver absdatetime 9-18-2008:14:00 13:00 match .*CVPServlet.* redirect file c:\uccelogs - downloads all the log files on match criteria, time range for component cvp:callserver

      To save the output to a directory, show log redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show log redirect file c:\temp\output.txt

      show perf
      Syntax
      show perf [options]

      This command displays performance data.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      dtcomponent

      narrow the output to the specified component(s) for a device type of the specified component.

      dtsubcomponent

      narrow the output to the specified subcomponent(s) for a device type of the specified subcomponent.

      Example

      show perf component cvp:CallServer subcomponent cvp:ICM

      In system mode

      show perf devicetype ios|cvp

      show perf server 10.86.129.11(cvp)

      show perf group GroupB|default

      To save the output to a directory, show perf redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show perf redirect file c:\temp\output.txt

      show platform
      Syntax
      show platform [options]

      Shows information about the operating system and hardware.

      Options
      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show platform

      In system mode

      show platform devicetype ios|cvp|ucm

      show platform server 10.86.129.11(cvp)

      show platform group GroupB|default

      To save the output to a directory, show platform redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show platform redirect file c:\temp\output.txt

      show sessions
      Syntax
      show sessions [options]

      This request returns active session status/information.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show sessions component cvp:CallServer subcomponent cvp:IVR

      To save the output to a directory, show sessions redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show sessions redirect file c:\temp\output.txt

      show trace
      Syntax
      show trace [options]

      Displays contents or downloads (if redirect option is used) the product trace file(s) for a component or subcomponent.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      absdatetime

      narrow the output to the specified time range in the form of start time and end time. Time format is "mm-dd-yyyy:hh:mm".

      reltime

      narrow the output to the specified time range in the form of relative time from the current time.

      match

      narrow the output to the specified regex pattern. This match pattern is applied to text based log output only.

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      Group

      narrow the output to the specified group name(s).

      dtcomponent

      narrow the output to the specified component(s) for a device type of the specified component.

      dtsubcomponent

      narrow the output to the specified subcomponent(s) for a device type of the specified subcomponent.

      Example

      show trace component cvp:callserver - displays contents of all the trace files for component cvp:callserver, can be a huge output

      show trace component cvp:vxmlserver absdatetime 9-18-2008:14:00 9-20-2008:18:00 - displays contents of all the trace files for component cvp:vxmlserver based on specific start date,time and end date, time values

      show trace component cvp:vxmlserver absdatetime 9-18-2008:14:00 13:00 – displays contents of all the trace files for component cvp:vxmlserver based on specific start date,time and end time values.

      show trace component cvp:callserver subcomponent cvp:sip reltime 10 minutes - displays contents of all the trace files based on elapsed time of 10 minutes for component cvp:callserver and subcomponent cvp:sip

      show trace component cvp:callserver absdatetime 9-18-2008:14:00 13:00 match .*CVP_7_0_SIP-7.* - displays contents of all the trace files based on match criteria, time range for component cvp:callserver

      show trace component cvp:callserver absdatetime 9-18-2008:14:00 13:00 match .*CVP_7_0_SIP-7.* redirect c:\uccelogs - downloads all the trace files on match criteria, time range for component cvp:callserver

      To save the output to a directory, show trace redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show trace redirect file c:\temp\output.txt

      show version
      Syntax
      show version [options]

      Shows product software version.

      Options
      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show version

      In system mode

      show version devicetype ios|cvp|ucm

      show version server 10.86.129.11(cvp)

      show version group GroupB|default

      To save the output to a directory, show version redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show version redirect file c:\temp\output.txt

      show devices
      Syntax
      show devices [options]

      List device information including hostname/ip address and port numbers.

      Options
      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      Example

      show devices

      To save the output to a directory, show devices redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, show devices redirect file c:\temp\output.txt

      debug level
      Syntax
      debug level levelnumber [options]

      This command is used to set debug level. Valid levels range from integer values between 0 - 5.

      Options
      component

      narrow the output to the specified component(s).

      subcomponent

      narrow the output to the specified subcomponent(s).

      redirect

      redirect the output to a file or a directory.

      Additional system options
      devicetype

      narrow the output to the specified device type(s).

      server

      narrow the output to the specified device(s).

      sysmatch

      narrow the output to the list of servers matched with a regexp for hostnames or ip addresses.

      group

      narrow the output to the specified group name(s).

      dtcomponent

      narrow the output to the specified component(s) for a device type of the specified component.

      dtsubcomponent

      narrow the output to the specified subcomponent(s) for a device type of the specified subcomponent.

      Debug levels
      level 0

      Default debug level. During normal operation, product log errors, or warning trace messages.

      level 1

      Small performance impact (Warning) debug level. Can be run on production environment.At level 1, additional basic component traces along with level 0 trace messages.

      level 2

      Medium performance impact (Informational) debug level. Can be run on production environment. At level 2, additional detailed component traces along with level 1 trace messages.

      level 3

      High performance impact (Debug) debug level. Can be run on production environment. At level 3, most detailed trace messages will be logged along with level 2 trace messages.

      level 4

      Cannot be run on production environment. At level 4, internal subcomponent trace messages will be logged along with level 3 trace messages.

      level 5

      Cannot be run on production environment. At level 5, internal functional module trace messages will be logged along with level 4 trace messages.

      level 99

      Custom debug level.In the case when log levels do not match, 99 will be returned as custom level along data representing the custom debug settings.

      Example

      debug level 1 component cvp:CallServer

      debug level 2

      debug level 99 custom app-defined-data component cvp:callserver subcomponent cvp:sip

      In system mode

      debug level 0 devicetype cup|ucm|icm

      debug level 1 devicetype ios|cvp

      debug level 2 server 10.86.129.11(cvp)|10.86.129.123(ucm)

      debug level 3 group GroupB|default

      debug level 3 dtcomponent "ucm:Cisco CallManager|cup:Cisco UP SIP Proxy|cvp:CallServer"

      To save the output to a directory, debug level 1 redirect dir c:\temp\ -- the output is saved in c:\temp\clioutput.zip.

      To save the output to a text file, debug level 1 redirect file c:\temp\output.txt

      System Mode Syntax

      Following is the system mode syntax.

      Note   

      You can add product specific extensions; however. any extension must be reviewed by this common cross-product team for clarity and consistency.



      Table 5 System Mode Syntax

      Command (Verb )

      Noun

      Description

      system

       

      Enter the interactive system mode of the CLI. Use quit/exit command to exit the system mode. 

      System Command (show all)

      Syntax
      show all

      The system command can also be executed by prefixing the "system" on any regular command for non-interactive mode. For example, "system show all".

      Parameters

      [component component(s)] [subcomponent subcomponent(s)] [filter noun(s)] [absdatetime startdatetime enddatetime] [reltime <value> minutes/hours/days/weeks/months] [match <string value>] [| <output modifier>] [group group(s)] [server server(s)][sysmatch <string value>][devicetype <product type>]


      Note


      The options highlighted in bold above are included to commands in system mode.


      Options
      group

      narrows the output to selected group(s) only.

      server

      narrows the output to selected server(s) only.

      sysmatch

      match a particular string as specified by <string value>.


      Note


      The command notifies about a possible impact to system performance and asks you if you want to continue.



      Warning


      Because running this command can affect system performance, run the command during off-peak hours.


      Aggregation of output for all the supported nouns and specific to the verb "show".

      Example-1
      admin:system 
      admin(system):show all redirect dir c:\system-tech-support 
      [server-1] 
         server-1 show all Output 
      [server-2] 
         server-2 show all Output 
      [server-3] 
         server-3 show all Output 
      [server-4] 
         server-4 show all Output 
      [server-5] 
         server-5 show all Output 
      [server-6] 
         server-6 show all Output
         
      Output is saved to "c:\system-tech-support\clioutput0.zip"
      Example-2

      Assuming Group:Branch-1 contains server-2, server-3 and Group:Branch-2 contains server-5, server-6

      admin:system 
      admin(system): show all group Branch1 | Branch2 redirect dir c:\system-tech-support 
      [server-2] 
         server-2 show all Output 
      [server-3] 
         server-3 show all Output 
      [server-5] 
         server-5 show all Output 
      [server-6] 
         server-6 show all Output
      
      Output is saved to "c:\system-tech-support\clioutput0.zip"
      Example-3
      admin:system 
      admin(system):show all server server-1 | server-6 redirect dir c:\system-tech-support 
      [server-1] 
         server-1 show all Output 
      [server-6] 
         server-6 show all Output
      
      Output is saved to "c:\system-tech-support\clioutput0.zip"
      Example-4

      Assuming that server-2, server-3, server-5 are in subnet 10.86.129.xxx 

      admin:system 
      admin(system):show all group Branch1 | Branch2 sysmatch redirect dir c:\system-tech-support 
      [server-2] 
         server-2 show all Output 
      [server-3] 
         server-3 show all Output 
      [server-5] 
         server-5 show all Output
      
      Output is saved to "c:\system-tech-support\clioutput0.zip"
      Example-5
      admin:system show all redirect ftp://vpalawat:password/SR609140000
      [server-1] 
         server-1 show all Output 
      [server-2] 
         server-2 show all Output 
      [server-3] 
         server-3 show all Output 
      [server-4] 
         server-4 show all Output 
      [server-5] 
         server-5 show all Output 
      [server-6] 
         server-6 show all Output
      
      Output is saved to "ftp-sj.cisco.com\incoming\SR609140000-0.zip"
      Output is saved to "ftp-sj.cisco.com\incoming\SR609140000-1.zip"
      Example-6

      Assuming that devices configured in OAMP are CVP[server-5], IOS [server-2, server-3], UCM [server-4] and ICM [server-1] . 

      admin:system 
      admin(system):show all devicetype cvp|ios redirect dir c:\system-tech-support 
      [server-2] 
         server-2 show all Output of ProductType [ios] 
      [server-3] 
         server-3 show all Output of ProductType [ios] 
      [server-5] 
         server-5 show all Output of ProductType [cvp]
      
      Output is saved to "c:\system-tech-support\clioutput0.zip"

      Automated Command Execution

      CLI or System CLI commands can be executed automatically using the following mechanism:
      • Create a batch file with the commands given below as an example:
        REM VERSION-COLLECTION
        echo system show version redirect dir c:\test\ > clicmds.txt
        echo exit >> clicmds.txt
        type clicmds.txt | wsccli.bat inplace nointeractive "user:wsmadmin" "passwd:<password>"
      • To define a multiple component  and sub-component filter, use double quotes as follows:
        REM CONFIG-COLLECTION
        echo show config comp CallServer subc "SIP|ICM" redirect dir c:\test\ > clicmds.txt
        echo exit >> clicmds.txt
        type clicmds.txt | wsccli.bat inplace nointeractive "user:wsmadmin" "passwd:<password>"
      • Automated trace collection on CVP servers using a scheduled job:
        REM TRACE-COLLECTION
        echo show trace device cvp redirect dir c:\test\ > clicmds.txt
        echo exit >> clicmds.txt
        type clicmds.txt | wsccli.bat inplace nointeractive "user:wsmadmin" "passwd:<password>"
      • Automated script can be invoked from a Windows scheduled job for automated tasks.

      Note


      Note: Because running the automated commands and non-interactive mode can affect system performance, run the command during off-peak hours.

      Import File Syntax

      The file to be imported is <ICM_Drive>:\icm\serviceability\wsccli\conf\devices.csv.

      A sample file named devices-sample.csv is provided. Add the devices to this file, and then restart the Unified System CLI to load those devices.

      Devices CSV File Syntax
      ############################################################################ 
      # Sample CSV file for importing devices. File name should be devices.csv 
      # The file should be in the WSC_CLI_DIR/conf folder 
      # 
      # The possible values for Product Type are given below: 
      # 
      #    * UCM         - For Unified CM 
      #    * CVP          - For Unified CVP 
      #    * ICM          - For Unified ICME, Unified ICM 
      #    * UCCX      - For Unified CCX 
      #    * IOS           - For IOS Gateway 
      #    * EA            - For Unified Expert Advisor 
      #    * CUIC        - For Unified Intellegence Center 
      #    * CUP         - For Unified Presence ( that includes the SIP Proxy ) 
      ############################################################################ 
      # 
      # The column assignments are as follows: 
      # 
      # HOSTNAME                   -- Mandatory 
      # DESCRIPTION 
      # PRODUCT_TYPE            -- Mandatory 
      # GROUP 
      # USERNAME 
      # PASSWORD 
      # PORT_NUMBER             -- Mandatory 
      # ENABLE_PASSWORD 
      # IS_SEED_SERVER 
      #
      HOSTNAME, DESCRIPTION, PRODUCT_TYPE, GROUP, USERNAME, PASSWORD, PORT_NUMBER, ENABLE_PASSWORD, 
      IS_SEED_SERVER #10.86.129.109, IOS GW, IOS, Location_1, cisco, cisco, 23, cisco,,

      Note


      All references to ICM in the above text file equal Unified CCE.

      Device, Protocol and Command Mapping Table

      The mapping table for device type, command, and serviceability protocol created in WSC_CLI_DIR/conf folder is as follows:

      Table 6 Device, Protocol, and Command Mapping
        CVP Unified CCE EA CUIC / LiveData Speech Server Media Server Trace Server IOS GW Unified CM Unified CCX Finesse
      capture REST REST REST REST
      config REST REST REST TELNET
      debug REST REST REST TELNET SOAP REST
      license REST REST REST TELNET SOAP REST
      log REST REST REST REST REST
      perf REST REST REST REST REST TELNET
      platform REST REST SOAP SOAP REST REST REST TELNET SOAP SOAP SOAP
      sessions REST TELNET

      trace REST REST SOAP REST SOAP REST TELNET SOAP SOAP REST SOAP
      version REST REST SOAP REST SOAP REST REST REST REST TELNET SOAP SOAP REST SOAP

      — Not supported   — Unknown


      Note


      Cisco Finesse does not support System CLI for system trace settings.


      CLI has the master list of all devices from seed servers. It runs the system command on each device recursively based on the protocol supported in this release and according to the mapping table given above.

      Master list is defined by the unique "Name", "ProductType". If there are multiple devices for the purpose of co-location, the internal list still contains one entry for a product type because there is only one WebServices manager running at the specified port.

      CLI also pulls the component/sub-component list from all the devices to create a master list dynamically.

      The CLI output is in the structure of [Server]/[Type]/clioutput. A single (or multiple zip in case exceeding the size of zip file of 1GB) zip file is created for the aggregate response from all servers.

      Mapping of System CLI commands to IOS CLI commands

      Note   

      This mapping table is available in the configuration file, so that mapping can be easily altered.



      Table 7 Mapping of System CLI commands to IOS CLI commands

      System CLI

      IOS CLI

      "show config" "show running-config"
      "show version" "show version"
      "show license" "show license"
      "show perf" "show call resource voice stat" "show memory statistics" "show processes cpu history" "show processes memory sorted" "show voice dsp group all" "show voice dsp voice"
      "show debug" "show debug"
      "show log"

      N/A

      "show sessions" "show call active voice compact"
      "show tech-support" "show tech-support" <Everything else given above>
      "show trace" "show  logging"
      "show platform" "show diag"
      "debug"
      0 no debug all
      1 - 
      deb ccsip err
      deb cch323 err
      deb voip app vxml err
      deb http client err
      deb mrcp err 
      deb rtsp err 
      deb h225 asn1 err 
      deb h245 asn1 err
      2 -
      debug isdn q931 
      debug h225 events 
      debug h245 events 
      debug voip ccapi inout 
      debug vtsp events 
      3 - 
      debug ccsip messages 
      debug h225 q931 
      debug h225 asn1 
      debug h245 asn1 

      Logs

      You can find all logs generated by the CLI process under the directory <ICM_Drive>:\icm\serviceability\wsccli.

      Accessing the Diagnostic Framework via the built-in User Interface (Portico)

      For an end-user to easily harness the functionality of the Diagnostic Framework, a built-in, web-based menu utility called the Diagnostic Framework Portico, allows a user to interact with the framework through their browser. The single API command, GetMenu, generates an HTML page that can be used to interactively create framework requests and view their replies from the Diagnostic Framework in the same page for the specified server.

      Users who do not have access to the Analysis Manager can use this command to gather data from the Diagnostic Framework, without having to know all of the API URLs and parameter values. The GetMenu command recognizes and support machines with multiple instances [Hosted environment] installed. Because this GetMenu command is built directly into the Diagnostic Framework, no special client side files or installations are needed to access it. You can access the command from any machine with a compatible browser (for example, Internet Explorer).

      The entry point for the menu utility is through the GetMenu command within the Diagnostic Framework. An example request is as follows: https://<UCCE-server>:<port>/icm-dp/rest/DiagnosticPortal/GetMenu

      Where <UCCE-server> is the hostname or IP address of the desired server, and <port> is the access port (usually 7890).

      You can also access the Diagnostic Framework Portico by choosing All Programs > Cisco Unified CCE Tools > Diagnostic Framework Portico.


      Note


      For Windows 2008, Unified CCE process windows no longer appear in the taskbar. This means that the user can no longer use the taskbar to view process status information, for example, whether the process is active or not. To address this, the user can view process status information and process running time in the Diagnostic Framework Portico. 

      The following is a sample screen:

      Figure 4. Unified ICM-CCE-CCH Diagnostic Framework Portico



      Most of the commands return simple XML data; the menu utility does some XML parsing and displays the results. A few of these commands create links to allow the user to download the returned files.

      The Portico dynamically updates and displays recent changes to processes when:
      • a process restarted (in the last ten minutes), uptime is underlined and highlighted in red.
      • a process restarted (more than 10 minutes ago but less than 30 minutes ago) uptime is yellow.
      • the status of a process as defined inside the parentheses changes, the process is bolded and highlighted in blue for 10 minutes or until it returns to its former state.

      Accessing Diagnostic Framework Commands through a Browser

      Because the Diagnostic Framework is a XML/HTTP based REST-style RPC referred as "RPC-Hybrid" interface, you can access the Diagnostic Framework commands directly though a browser (Internet Explorer). To access the commands from a browser, type the full URL of the desired command, at the browser address location.

      For example, the following URL: https://<UCCE-Server>:<port>/icm-dp/rest/AnalysisManager/GetTraceLevel?Component= Component/Subcomponent

      The IE browser displays the data in XML or may ask you to save the file if you are downloading the file. For more information about the URL, see Diagnostic Framework API.

      The complication with this technique is that there are many APIs, and many of them contain various parameters that you must properly specify.


      Note


      For downloading a Portico ListTraceFiles or GetConfigurationCategory files in Zip format using IE 9, make sure that the Do not save encrypted pages to disk option in the Security settings in the Advanced Tab of Tools > Internet Options is unchecked.


      CLI Configuration

      This section will walk you through the configuration required to enter "System mode" and access all devices in your deployment from a single system CLI console window. The CLI supports the following devices:
      • All UCCE servers (Routers, Loggers, PGs, ADS, and so on)
      • CVP
      • CUPS
      • Gateways
      • UCM
      • IP IVR
      • CUIC
      • Finesse

      There are two methods to configuring System mode in the CLI. The method used will depend on whether or not the environment contains CVP OAMP. Customers without CVP OAMP can still utilize the CLI using a CSV file for connection information.

      Deployment Option 1: CVP OAMP

      CVP OAMP deployment options has several advantages over using Devices.csv including
      • All devices are centrally added to and stored in CVP OAMP. One update on OAMP will be reflected in all CLI clients.
      • Passwords for devices are encrypted in OAMP.
      • CVP Remote Operations can be installed on any Windows machine, such as a personal laptop, simplifying setup and access to all devices.

      Configure System CLI with CVP OAMP

      The first step for setting up System mode is to add all of the devices in your deployment to CVP OAMP.
      Procedure
        Step 1   Sign in to CVP Operations Console from a web browser and select Device Management > Unified ICM.

        Step 2   Click Add New.
        Step 3   Enter settings for IP Address, Hostname, and Description fields.

        Step 4   Check Enable Serviceability.
        Step 5   Enter Username and Password fields with sign-in credentials for that particular device.

        Leave the default port as 7890.



        Step 6   (Optional)Click Device Pool tab and associate the device.
        Tip   

        Create a "UCCE-SideA" group for all devices on the A-side.



        Step 7   Click Save.

        What to Do Next

        Repeat the above process for all other devices such as UCCE, CUIC, UCM, Gateways, etc.

        Modify or add user to CVP OAMP for System CLI

        By default on installation, the user "wsmadmin" is created with the same password as the OAMP Administrator user. If you wish to modify the password for this user, or create a new user, follow these steps:
        Procedure
          Step 1   Click User Management > Users in CVP Operations Console.
          Step 2   Add or modify user.
          • To modify user, click wsmadmin in the List of Users.
          • To add user, click Add New.
          Step 3   Once new username and/or password has been entered, click User Groups tab and add "ServiceabilityAdministrationUserGroup" to "Selected" bucket on right side.
          Step 4   Click Save.

          Install CVP Remote Operations

          Once all devices are added to OAMP, you then need to install the CLI on the system from which you intend to access them. The CVP Installer’s "Remote Operations" package automatically includes the System CLI.
          Procedure
            Step 1   Run CVP Installer and select Remote Operations checkbox.

            Step 2   If installing on Windows 7, ignore "Unsupported OS" warning and click OK.

            Step 3   Apply security hardening if desired and complete installation.

            Add Remote Operations Machines to CVP Operations Console

            Procedure
              Step 1   Sign into CVP Operations Console.
              Step 2   Select System > Web Services.
              Step 3   Click Remote Operations Deployment tab.
              Step 4   Enter remote operations deployment settings for all remote operations machines.

              1. Enter IP address and host name of machine where CVP Remote Operations is installed.
              2. Optional: Enter description.
              3. Click Add.
              Step 5   Click Save & Deploy to make devices available for Remote Operations. You will be informed that the Web Services configuration deployment is in progress.
              Step 6   Click Deployment Status button to verify status of newly-added machine(s).
              Step 7   Click Refresh button until status changes to "Success".

              Confirm Windows Environment Variables Set Correctly for CVP Web Services

              This should have been taken care of by the CVP Remote Operations installation but intermittently fails, so it is important to verify before attempting to connect to the CLI.
              Procedure
                Step 1   Click Start > Run and enter systempropertiesadvanced on the Remote Operations machine.
                Step 2   Click Environment Variables.
                Step 3   Verify system variable WSC_CLI_DIR is set to C:\Cisco\CVP\wsm\CLI.
                Step 4   Verify path variable contains C:\Cisco\CVP\wsm\CLI;.

                Use Unified System CLI with CVP OAMP

                Now that the configuration is finished, you are ready to sign in to the CLI and enter System mode.
                Procedure
                  Step 1   Select Start > Programs > Cisco Unified Customer Voice Portal > Unified System CLI to open Unified System CLI on Remote Operations machine.
                  Step 2   Sign in with user "wsmadmin" (or sign in with the new user).
                  Step 3   Type system to enter System mode. Servers that are successfully discovered are indicated by a "."; servers not discovered are indicated by "Unable to connect". Once initial connection is complete, (system) will be displayed in the command prompt. All commands entered while in System mode will be run against all reachable devices defined in CVP OAMP.


                  What to Do Next

                  Any changes made in OAMP while a CLI session is active will not be reflected immediately. There are two options for receiving the updates:
                  • Close console window and start new connection.
                  • Type "exit" to leave System mode and then "system init".

                  Deployment Option 2: Devices.csv

                  When CVP is not present, Unified System CLI requires a devices.csv file to be configured on the local machine in order to enter System mode. This file contains connection information for all devices in the deployment that should be reachable by the single CLI window.

                  We will use the ADS as our main machine for running the System CLI.

                  Create Devices.csv from Sample File

                  Procedure
                    Step 1   Navigate to C:\icm\serviceability\wsccli\conf\.
                    Step 2   Copy file devices-sample.csv and save as devices.csv.


                    Add connection information to devices.csv file

                    Each device must be added on its own line at the bottom of the devices.csv file.
                    • Within each line you must specify the following required fields:

                      • IP address and hostname
                      • Device Type (from the options listed at the top of the file)
                      • Username
                      • Password
                      • Port Number (leave the default 23 in most cases)

                    • In addition, specifying the following fields make usage easier:

                      • Description
                      • Group (for example, UCCE-SideA)

                    • Save devices.csv when complete.

                    Designate users for Diagnostic Framework

                    Users must be a part of the Local Group "ICMDiagnosticFrameworkUsers" in order to initially sign in to the CLI when using devices.csv.
                    Procedure
                      Step 1   Click Start > Run.
                      Step 2   Enter "lusrmgr.msc"
                      Step 3   Open Groups folder and double-click ICMDiagnosticFrameworkUsers.
                      Step 4   Add users to group and click OK.


                      Use Unified System CLI with Devices.csv

                      Procedure
                        Step 1   Select Start > Programs > Cisco Unified CCE Tools > Unified System CLI on ADS.

                        If this shortcut is missing for some reason, run C:\icm\serviceability\wsccli\runwsccli.bat.

                        Step 2   Sign in with member of ICMDiagnosticFrameworkUsers group.

                        If you receive an immediate "Unable to connect to localhost:7890(icm)" error, the Diagnostic Framework service may not be running. Click Start > Run and enter services.msc. Ensure "Cisco ICM Diagnostic Framework" is started.

                        Step 3   Once successfully signed in to local machine, type system to enter System mode. Servers successfully discovered are indicated by a "." and those that cannot be reached are indicated by "Unable to connect".

                        Once initial connection is complete, "(system)" will be displayed in the command prompt. All commands entered while in System mode will be run against all reachable devices defined in devices.csv

                        Running the System CLI from Multiple Machines with Devices.csv

                        If you intend to run the System CLI on another machine, such as a second ADS, the devices.csv file must be copied to that second machine. Any changes made to one devices.csv will need to be manually made on the additional machines as well.

                        Diagnostic Framework API

                        The Diagnostic Interface supports the following commands.

                        GetTraceLevel

                        The Diagnostic Framework supports four levels of trace configuration based on level of trace detail and performance impact; the Diagnostic Framework translates the following levels to component- or process-specific trace level settings:

                        Table 8 Trace Levels

                        Trace Level

                        Description

                        0

                        Product/component install default, should have no/minimal performance impact

                        1

                        Less detailed trace messages, small performance impact

                        2

                        More detailed trace messages, medium performance impact

                        3

                        If the trace level does not match any pre-defined levels (for example, a manually configured, specific trace mask), Diagnostic Framework returns "custom (99)".

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnaysisManager/GetTraceLevel?Component=
                        Component/Subcomponent

                        Reply example:

                        <?xml version="1.0" encoding="UTF-8"?>
                        <dp:GetTraceLevelReply ReturnCode="0"
                         xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0"/>
                        <dp:Trace Level="0"/>
                        </dp:GetTraceLevelReply>

                        SetTraceLevel

                        For more information about the trace level values, see GetTraceLevel.

                        Request:

                         https://<server>:<port>/icm-dp/rest/AnalysisManager/SetTraceLevel?Component=
                        Component/Subcomponent&Level=1

                        Reply example:

                        <?xml version="1.0" encoding="UTF-8"?>
                        <dp:SetTraceLevelReply ReturnCode="0"xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0"/>
                        </dp:SetTraceLevelReply>

                        ListTraceComponents

                        Lists all possible application components that produce trace files. Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListTraceComponents

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:ListTraceComponentsReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:TraceComponentList>
                        <dp:TraceComponent Name="Logger A" ComponentType="Logger" Description="ICM Component" IsLevelConfigurable="true" 
                        		IsFileCollectable="true">
                         <dp:TraceComponentList>
                         <dp:TraceComponent Name="baImport" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="CampaignManager" Description="ICM Process for Component LoggerA" 
                        		IsLevelConfigurable="true" IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="clgr" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="csfs" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="cw2kFeed" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="dtp" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="hlgr" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="nm" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="nmm" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="rcv" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="rpl" Description="ICM Process for Component LoggerA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                        </dp:TraceComponentList>
                        </dp:TraceComponent>
                        <dp:TraceComponent Name="Router A" ComponentType="Router" Description="ICM Component" IsLevelConfigurable="true" 
                        		IsFileCollectable="true">
                         <dp:TraceComponentList>
                         <dp:TraceComponent Name="agi" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="ccag" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="dba" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="dbw" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="mds" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="nm" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="nmm" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="nms" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="rtr" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         <dp:TraceComponent Name="rts" Description="ICM Process for Component RouterA" IsLevelConfigurable="true" 
                        		IsFileCollectable="true" /> 
                         </dp:TraceComponentList>
                        </dp:TraceComponent>
                        <dp:TraceComponent Name="Cisco ICM Diagnostic Framework" Description="Cisco ICM Diagnostic Framework" 
                        		IsLevelConfigurable="true" IsFileCollectable="true" /> 
                        <dp:TraceComponent Name="Web Setup" Description="Web Setup" IsLevelConfigurable="true" IsFileCollectable="true" /> 
                        </dp:TraceComponentList>
                        </dp:ListTraceComponentsReply>

                        ListTraceFiles

                        Lists trace files for that application component/subcomponent during the FromDate and ToDate parameters (which are in UTC). Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListTraceFiles?Component/
                        Subcomponent&Fromdate=0&ToDate=0

                        Reply example:

                        <?xml version="1.0" encoding="UTF-8" ?>
                        <dp:ListTraceFilesReply ReturnCode="0"
                        >
                        <dp:Schema Version="1.0"/>
                        <dp:TraceFileList>
                          <dp:FileProperty Name="TraceFile1.TXT" Date="1212347735" Size="1000000"/>
                          <dp:FileProperty Name="TraceFile2.TXT" Date="1212347835" Size="1000000"/>
                          <dp:FileProperty Name="TraceFile3.TXT" Date="1212347935" Size="1000000"/>
                        </dp:TraceFileList>
                        </dp:ListTraceFilesReply>

                        Note


                        Optional URL parameter Type is applicable only for components that generate multiple trace types.

                        Note


                        URL parameters FromDate and ToDate are used to specify time range of trace files requested by user. Unified ICM components must supply these parameters.

                        Note


                        Attribute "Date" specifies file modification time in UTC.

                        Note


                        Attribute "Size" specifies file size in bytes.

                        DownloadTraceFile

                        Download the trace files that were returned by the ListTraceFiles API.


                        Note


                        Only one file may be requested at a time.

                        However, for trace files, the ListTraceFiles API returns one zip file (including trace files, capture files, and others). You need only one download request.


                        Note


                        Subsequent download requests with the same filename return with an error because after the file is downloaded, it is deleted from the server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/DownloadTraceFile?Component= Component/
                        Subcomponent&File=TraceFile1.txt

                        Reply:

                        There are four possible replies:

                        • The server streams the specified file unzipped over the existing HTTP connection. Content (MIME) type is defined by the app server as "application/text".
                        • The server streams the specified file zipped over the existing HTTP connection. Content (MIME) type is defined by app server as "application/zip".
                        • The server streams the specified file gzipped over the existing HTTP connection. Content (MIME) type is defined by app server as "application/x-gzip".
                        • In case of error, app server replies error condition in following XML format (MIME type "application/xml"):
                        <?xml version="1.0" encoding="UTF-8" ?>
                          <dp:DownloadTraceFileReply ReturnCode="1" ErrorString="File TraceFile1.txt not found."/>
                        "xmlns:dp="http://www.cisco.com/vtg/analysismanager">

                        ListLogComponents

                        Lists all possible application components that produce log files. Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListLogComponents

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?> 
                        <dp:ListLogComponentsReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:LogComponentList>
                         <dp:LogComponent Name="ICM Installation and Upgrade" Description="ICM Installation and Upgrade logs" /> 
                         <dp:LogComponent Name="ICMDBA" Description="ICM DBA logs" /> 
                         <dp:LogComponent Name="Performance Counter" Description="Performance Counter Logs" /> 
                         <dp:LogComponent Name="Active Directory" Description="Logs for troubleshooting Active Directory issues." /> 
                         <dp:LogComponent Name="Cisco ICM Diagnostic Framework Install" Description="Cisco ICM Diagnostic Framework Install 
                          Logs" /> 
                         <dp:LogComponent Name="Cisco ICM Diagnostic CLI" Description="Cisco ICM Diagnostic CLI Logs" /> 
                         <dp:LogComponent Name="Dr Watson" Description="Dr.Watson logs" /> 
                         <dp:LogComponent Name="Cisco Security Agent" Description="Cisco Security Agent logs" /> 
                         <dp:LogComponent Name="Security Hardening" Description="Security Hardening logs" /> 
                         <dp:LogComponent Name="Web Setup" Description="Web Setup troubleshooting and audit logs" /> 
                         <dp:LogComponent Name="Web Agent Re-skilling" Description="Web Agent Re-skilling troubleshooting logs" /> 
                        </dp:LogComponentList>
                        </dp:ListLogComponentsReply>

                        ListLogFiles

                        Lists log files for that application component/subcomponent during the FromDate and ToDate parameters (which are in UTC). Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListLogFiles?Component= Component/Subcomponent&FromDate=0&ToDate=0

                        Reply example:

                        <?xml version="1.0" encoding="UTF-8"?>
                        <dp:ListLogFilesReply ReturnCode="0">
                        <dp:Schema Version="1.0"/>
                        <dp:LogFileList>
                          <dp:FileProperty Name="LogFile1.txt" Date="1212347735" Size="1000000"/>
                          <dp:FileProperty Name="LogFile2.txt" Date="1212347835" Size="1000000"/>
                          <dp:FileProperty Name="LogFile3.txt" Date="1212347935" Size="1000000"/>
                        </dp:LogFileList>
                        </dp:ListLogFilesReply>

                        DownloadLogFile

                        Download the log files that were returned by the ListLogFiles API.


                        Note


                        Only one file may be requested at a time.

                        In the case of downloading the log files, a user may request a subsequent download with the same filename, and the exact same file is returned. This is different from the trace file because we are not deleting the log file from the server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/DownloadLogFile?Component=Component/Subcomponent&File=LogFile1.txt

                        Reply:

                        There are four possible replies:

                        • The server streams the specified file unzipped over the existing HTTP connection. Content (MIME) type is defined by the app server as "application/text".
                        • The server streams the specified file zipped over the existing HTTP connection. Content (MIME) type is defined by app server as "application/zip".
                        • The server streams the specified file zipped over the existing HTTP connection. Content (MIME) type is defined by app server as "application/x-gzip".
                        • In case of error, app server replies error condition in following XML format (MIME type "application/xml"):
                        <?xml version="1.0" encoding="UTF-8" ?>
                        <dp:DownloadLogFileReply ReturnCode="1" ErrorString="File LogFile1.txt not found."
                        xmlns:dp="http://www.cisco.com/vtg/analysismanager">

                        ListAppServers

                        Lists the applications and application components installed on the target server. Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListAppServers

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:ListAppServersReply ReturnCode="0"
                        >
                         <dp:Schema Version="1.0" />
                         <dp:AppServerList>
                         <dp:AppServer Name="buzzards-bay" ProductType="ICM"
                         ProductComponentType="Logger A" />
                         <dp:AppServer Name="buzzards-bay" ProductType="ICM"
                         ProductComponentType="Router A" />
                         <dp:AppServer Name="buzzards-bay" ProductType="ICM"
                         ProductComponentType="Cisco ICM Diagnostic Framework" />
                         </dp:AppServerList>
                         </dp:ListAppServersReply>
                        <AppServer> has following optional attributes:
                        • ProductType: for product to reply topology information. Must be one of the following ("CVP", "Unified CCX", "Unified CM", "Unified CCE", "EA", "Cisco IOS Firewall").
                        • ProductComponentType: component type within a product. For example: "Router", "PG", and so on.

                        ListConfigurationCategories

                        Lists the configuration categories available on this application server. Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListConfigurationCategories

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:ListConfigurationCategoriesReply ReturnCode="0">
                         <dp:Schema Version="1.0" />
                         <dp:ConfigurationCategoryList>
                         <dp:ConfigurationCategory Name="DumpCfg" Description="ConfigurationCategory
                         for DumpCfg; Instance=acme" /> 
                         <dp:ConfigurationCategory Name="ExportICMCfg"
                         Description="ConfigurationCategory for ExportICMCfg; Instance=acme" />
                         <dp:ConfigurationCategory Name="ConfigExport"
                         Description="ConfigurationCategory for ConfigExport; Instance=acme" />
                         <dp:ConfigurationCategory Name="Registry" Description="ConfigurationCategory
                         for Registry; Instance=acme" />
                         </dp:ConfigurationCategoryList>
                         </dp:ListConfigurationCategoriesReply>

                        GetConfigurationCategory

                        Retrieve configuration information based on category. Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetConfigurationCategory?Category=<category>

                        Categories are: "DumpCfg", "ExportICMCfg", "ConfigExport", and "Registry".

                        Reply example:

                        <?xml version="1.0" encoding="UTF-8" ?>
                        <dp:GetConfigurationCategoryReply ReturnCode="0">
                        <dp:Schema Version="1.0"/>
                        </dp:GetConfigurationCategoryReply>

                        The requested configuration data is returned as a zip file.

                        GetProductVersion

                        Fetches the version of the applications installed on the target server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetProductVersion

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:GetProductVersionReply ReturnCode="0">
                        <dp:Schema Version="1.0" />
                        <dp:ProductVersion Name="ICM" Major="10" Minor="0" Maintenance="1"
                         VersionString="10.0(1) BuildNumber=4120" /> 
                        </dp:GetProductVersionReply>

                        GetProductLicense

                        Get license information for applications installed on target server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetProductLicense

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?> 
                        <dp:GetProductLicenseReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:LicenseList>
                         <dp:License>
                         <dp:PropertyList>
                         <dp:Property Name="License" Value="Unified ICM/Unified CCE does not have any license information." /> 
                         </dp:PropertyList>
                         </dp:License>
                        </dp:LicenseList>
                        </dp:GetProductLicenseReply>

                        GetPlatformInformation

                        Fetches server and operating system platform details.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetPlatformInformation

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:GetPlatformInformationReply ReturnCode="0" 
                        xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:PlatformInformation>
                        <dp:PropertyList>
                         <dp:Property Name="Host Name" Value="BUZZARDS-BAY" /> 
                         <dp:Property Name="OS Platform" Value="Win32NT" /> 
                         <dp:Property Name="OS Service Pack" Value="Service Pack 2" /> 
                         <dp:Property Name="OS Version" Value="5.2.3790.131072" /> 
                         <dp:Property Name="OS Version String" Value="Microsoft Windows NT 5.2.3790 
                        	Service Pack 2" /> 
                         <dp:Property Name="System Directory" Value="C:\WINDOWS\system32" /> 
                         <dp:Property Name="User Domain Name" Value="SILVERBACK" /> 
                         <dp:Property Name="Common Language Runtime Version" Value="2.0.50727.3053" /> 
                         <dp:Property Name="Admin Password Status" Value="3 []" /> 
                         <dp:Property Name="Daylight Time In Effect" Value="True []" /> 
                         <dp:Property Name="User Name" Value="[unavailable]" /> 
                         <dp:Property Name="Computer Manufacturer" Value="HP" /> 
                         <dp:Property Name="Model" Value="ProLiant DL380 G5" /> 
                         <dp:Property Name="Number Of Processors" Value="[unavailable]" /> 
                         <dp:Property Name="Total Physical Memory" Value="2145230848" /> 
                         <dp:Property Name="Boot Device" Value="\Device\HarddiskVolume1" /> 
                         <dp:Property Name="Build Number" Value="3790" /> 
                         <dp:Property Name="Build Type" Value="Multiprocessor Free" /> 
                         <dp:Property Name="Caption" Value="Microsoft(R) Windows(R) Server 2008 R2" /> 
                         <dp:Property Name="Current Time Zone" Value="-240" /> 
                         <dp:Property Name="IS OS a Debug version?" Value="False" /> 
                         <dp:Property Name="Free Physical Memory" Value="653648" /> 
                         <dp:Property Name="Free Virtual Memory" Value="2724228" /> 
                         <dp:Property Name="Install Date" Value="Friday, February 13, 2009 3:03:50 PM" /> 
                         <dp:Property Name="Large System Cache" Value="1 []" /> 
                         <dp:Property Name="Locale Code" Value="0409" /> 
                         <dp:Property Name="OS Manufacturer" Value="Microsoft Corporation" /> 
                         <dp:Property Name="Max Process Memory Size" Value="2097024" /> 
                         <dp:Property Name="OS Name" Value="Microsoft Windows Server 2008 R2| 
                        	C:\WINDOWS|\Device\Harddisk0\Partition1" /> 
                         <dp:Property Name="Number Of Processes" Value="66" /> 
                         <dp:Property Name="Number Of Users" Value="10" /> 
                         <dp:Property Name="ServicePackMajorVersion" Value="2" /> 
                         <dp:Property Name="ServicePackMinorVersion" Value="0" /> 
                         <dp:Property Name="System Directory" Value="C:\WINDOWS\system32" /> 
                         <dp:Property Name="" Value="C:" /> 
                         <dp:Property Name="Total Virtual Memory" Value="4044744" /> 
                         <dp:Property Name="Total Visible Memory" Value="2094952" /> 
                         <dp:Property Name="Windows Directory" Value="C:\WINDOWS" /> 
                        </dp:PropertyList>
                        </dp:PlatformInformation>
                        </dp:GetPlatformInformationReply>

                        GetNetStat

                        Execute a NETSTAT command remotely on the target server and return the results.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetNetStat?Arguments="-an"

                        Reply:

                        Returns a text file with the output from the command execution.

                        GetIPConfig

                        Execute an IPCONFIG command remotely on the target server and return the results.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetIPConfig?Arguments="/all"

                        Reply:

                        Returns a text file with the output from the command execution.

                        GetTraceRoute

                        Execute a TRACERT command remotely on the target server and return the results.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetTraceRoute

                        Reply:

                        Returns a text file with the output from the command execution.

                        GetPing

                        Execute a PING command remotely on the target server and return the results.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetPing?Arguments="n.n.n.n"

                        Reply:

                        Returns a text file with the output from the command execution.

                        ListProcesses

                        Lists application processes running on the target server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListProcesses

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:ListProcessesReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:ServiceList>
                         <dp:Service Name="Logger A">
                         <dp:ProcessList>
                         <dp:ProcessProp Name="nodeman.exe" Description="nodeman" /> 
                         <dp:ProcessProp Name="nmm.exe" Description="nmm" /> 
                         <dp:ProcessProp Name="configlogger.exe" Description="configlogger" /> 
                         <dp:ProcessProp Name="csfs.exe" Description="csfs" /> 
                         <dp:ProcessProp Name="cw2kfeed.exe" Description="cw2kfeed" /> 
                         <dp:ProcessProp Name="histlogger.exe" Description="histlogger" /> 
                         <dp:ProcessProp Name="recovery.exe" Description="recovery" /> 
                         <dp:ProcessProp Name="replication.exe" Description="replication" /> 
                         </dp:ProcessList>
                         </dp:Service>
                         <dp:Service Name="Router A">
                         <dp:ProcessList>
                         <dp:ProcessProp Name="nodeman.exe" Description="nodeman" /> 
                         <dp:ProcessProp Name="nmm.exe" Description="nmm" /> 
                         <dp:ProcessProp Name="ccagent.exe" Description="ccagent" /> 
                         <dp:ProcessProp Name="dbagent.exe" Description="dbagent" /> 
                         <dp:ProcessProp Name="mdsproc.exe" Description="mdsproc" /> 
                         <dp:ProcessProp Name="router.exe" Description="router" /> 
                         <dp:ProcessProp Name="rtsvr.exe" Description="rtsvr" /> 
                         <dp:ProcessProp Name="testsync.exe" Description="testsync" /> 
                         </dp:ProcessList>
                         </dp:Service>
                         <dp:Service Name="Cisco ICM Diagnostic Framework">
                         <dp:ProcessList>
                         <dp:ProcessProp Name="DiagFwSvc.exe" Description="DiagFwSvc" /> 
                         </dp:ProcessList>
                         </dp:Service>
                         </dp:ServiceList>
                         </dp:ListProcessesReply>

                        ListServices

                        Lists application services running on the target server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/ListServices

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:ListServicesReply ReturnCode="0"
                        http://www.cisco.com/vtg/ AnalysisManager">
                        <dp:Schema Version="1.0" />
                        <dp:ServiceList>
                         <dp:Service Name="Cisco ICM acme LoggerA" Description="Cisco ICM acme
                         LoggerA" Status="Running" StartupType="Auto"
                         LogOnAs="SILVERBACK.CISCO.COM\ACME-LOGGERA-77B585" />
                         <dp:Service Name="Cisco ICM acme RouterA" Description="Cisco ICM acme
                         RouterA" Status="Running" StartupType="Auto" LogOnAs="LocalSystem" />
                         <dp:Service Name="Cisco ICM Diagnostic Framework" Description="Provides a
                         web-based diagnostic service for Cisco Unified ICM, 
                         Enterprise application." Status="Running" StartupType="Auto"
                         LogOnAs="silverback\w2008admin" />
                        </dp:ServiceList>
                        </dp:ListServicesReply>

                        GetPerformanceInformation

                        Get a set of System and Application Performance Counters for the specified server.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetPerformanceInformation?Component=
                        Component/Subcomponent

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:GetPerformanceInformationReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:PerformanceInformation>
                        <dp:PropertyList>
                         <dp:Property Name="Memory/Memory Page Faults/sec" Value="29.93962" /> 
                         <dp:Property Name="Process(_Total)/Handle Count" Value="20386" /> 
                         <dp:Property Name="Processor(_Total)/% Processor Time" Value="13.63913" /> 
                         <dp:Property Name="Memory/Total Memory" Value="1.399697E+09" /> 
                         <dp:Property Name="System/Threads" Value="1165" /> 
                         <dp:Property Name="Memory/Memory Pages/Sec" Value="3.654335" /> 
                         <dp:Property Name="System/Processor Queue" Value="0" /> 
                         <dp:Property Name="System/Processes" Value="73" /> 
                         <dp:Property Name="Cisco ICM Logger(acme LoggerA)/DB Write Average Time" Value="0" /> 
                         <dp:Property Name="Cisco ICM Logger(acme LoggerA)/DB Write Records processed" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Calls/sec" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Agents Logged On" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Calls In Progress" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Calls In Queue" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Router State Size(KB)" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Messages Processed/sec" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Bytes Processed/sec" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Avg Process Time/Message (ms)" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Max Process Time(ms)" Value="0" /> 
                         <dp:Property Name="Cisco ICM Router(acme RouterA)/Calls In Router" Value="0" /> 
                        </dp:PropertyList>
                        </dp:PerformanceInformation>
                        </dp:GetPerformanceInformationReply>

                        GetPerfCounterValue

                        Get the current value of a performance counter from the target server.

                        Request

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetPerfCounterValue? CategoryName=Processor&CounterName="%Processor Time"&PerfInstance="_Total"

                        Reply example

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:GetPerfCounterValueReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:PerformanceInformation>
                        <dp:PropertyList>
                         <dp:Property Name="CategoryName" Value="Processor" /> 
                         <dp:Property Name="CounterName" Value="% Processor Time" /> 
                         <dp:Property Name="InstanceName" Value="_Total" /> 
                         <dp:Property Name="BaseValue" Value="0" /> 
                         <dp:Property Name="CounterFrequency" Value="0" /> 
                         <dp:Property Name="CounterTimeStamp" Value="0" /> 
                         <dp:Property Name="CounterType" Value="Timer100NsInverse" /> 
                         <dp:Property Name="RawValue" Value="203276171875" /> 
                         <dp:Property Name="NextValue" Value="0.003199898" /> 
                         <dp:Property Name="SystemFrequency" Value="2333380000" /> 
                         <dp:Property Name="TimeStamp" Value="48917923479390" /> 
                         <dp:Property Name="TimeStamp100nSec" Value="128929442042854145" /> 
                        </dp:PropertyList>
                        </dp:PerformanceInformation>
                        </dp:GetPerfCounterValueReply>

                        GetAlarms

                        Retrieves up to 25 of the most recent alarms generated by the Unified CCE.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/GetAlarms?Severity=
                        #?Count=##

                        Severity and Count are optional parameters. Severity may be a numeric value between "1" and "3" ("1"=Informational, "2"=Warning, "3"=Error). Severity returns all alarms with a severity greater-than or equal-to the specified severity. Count may be a numeric value between "1" and "25". Count returns a maximum of the specified number of alarms.

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>
                        <dp:GetAlarmsReply ReturnCode="0" xmlns:dp="http://www.cisco.com/vtg/analysismanager">
                        <dp:Schema Version="1.0" /> 
                        <dp:AlarmList>
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:41 +0000" Type="Clear" Id="1028104" Severity="1" Instance="acme" 
                        Component="4_5_BERKSHIRE_ICM\acme\LoggerB" SubComponent="nm" Message="ICM\acme\LoggerB Node Manager started. Last 
                        shutdown was due to system shutdown." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:27 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_hlgr" SubComponent="rtr" Message="Side B hlgr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:37 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_clgr" SubComponent="rtr" Message="Side B clgr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:27 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_clgr" SubComponent="rtr" Message="Side B clgr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:14 +0000" Type="Clear" Id="10F8004" Severity="1" Instance="acme" 
                        Component="6_1_BERKSHIRE_B_PG01" SubComponent="ccag" Message="Device PG01 path changing to idle state." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:14 +0000" Type="Clear" Id="102C107" Severity="1" Instance="acme" 
                        Component="4_1_BERKSHIRE_ICM\acme\RouterB" SubComponent="nm" Message="ICM\acme\RouterB Node Manager started. Last 
                        shutdown was for reboot afterfailure of critical process." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:13 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_rts" SubComponent="rtr" Message="Side B rts process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:12 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_rtr" SubComponent="rtr" Message="Side B rtr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:12 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_tsyr" SubComponent="rtr" Message="Side B tsyr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:12 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_csfs" SubComponent="rtr" Message="Side B csfs process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:12 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_rcv" SubComponent="rtr" Message="Side B rcv process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:41:12 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_dba" SubComponent="rtr" Message="Side B dba process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:20 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_rtr" SubComponent="rtr" Message="Side B rtr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:20 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_tsyr" SubComponent="rtr" Message="Side B tsyr process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:20 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_csfs" SubComponent="rtr" Message="Side B csfs process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:20 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_rcv" SubComponent="rtr" Message="Side B rcv process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:20 +0000" Type="Clear" Id="10500FF" Severity="1" Instance="acme" 
                        Component="24_1_B_dba" SubComponent="rtr" Message="Side B dba process is OK." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:42:18 +0000" Type="Clear" Id="1040023" Severity="1" Instance="acme" 
                        Component="5_1_0" SubComponent="mds" Message="Communication with peer Synchronizer established." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:55 +0000" Type="Clear" Id="1028103" Severity="1" Instance="acme" 
                        Component="4_4_WACHUSETT_ICM\acme\Distributor" SubComponent="nm" Message="ICM\acme\Distributor Node Manager 
                        started. Last shutdown was by operator request." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:41 +0000" Type="Clear" Id="102C110" Severity="2" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_uaw" SubComponent="nm" Message="ICM\acme\Distributor node process 
                        uaw successfully reinitialized after restart." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:40 +0000" Type="Clear" Id="102C10A" Severity="2" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_uaw" SubComponent="nm" Message="ICM\acme\Distributor node restarting 
                        process uaw after having delayed restart for 1 seconds." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:39 +0000" Type="Raise" Id="102C10F" Severity="2" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_uaw" SubComponent="nm" Message="Process uaw on ICM\acme\Distributor 
                        is down after running for 30 seconds. It will restart after
                                delaying 1 second for related operations to complete." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:39 +0000" Type="Raise" Id="102C10E" Severity="3" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_uaw" SubComponent="nm" Message="Process uaw on ICM\acme\Distributor 
                        went down for unknown reason. Exit code 0x1. It will be
                                automatically restarted." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:14 +0000" Type="Clear" Id="102C111" Severity="1" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_rpl" SubComponent="nm" Message="ICM\acme\Distributor node process 
                        rpl successfully started." /> 
                         <dp:Alarm DateTime="Jul 24, 2009 15:37:13 +0000" Type="Clear" Id="102C111" Severity="1" Instance="acme" 
                        Component="3_4_WACHUSETT_ICM\acme\Distributor_rtc" SubComponent="nm" Message="ICM\acme\Distributor node process 
                        rtc successfully started." /> 
                        </dp:AlarmList>
                        </dp:GetAlarmsReply>

                        SetAlarms

                        Turns Unified CCE alarming OFF or ON. Turning alarming OFF is useful during maintenance windows to prevent flooding at the management station.

                        Request:

                        https://<server>:<port>/icm-dp/rest/AnalysisManager/SetAlarms?State=ON|OFF

                        Reply example:

                        <?xml version="1.0" encoding="utf-8" ?>

                        <dp:SetAlarmsReply ReturnCode="0"

                        >

                        <dp:Schema Version="1.0" />

                        </dp:SetAlarmsReply>

                        Diagnostic Framework Troubleshooting

                        The Diagnostic Framework is self contained and does not require any additional configuration other than assigning users. If you encounter any issues with the service, see the following table:

                        Table 9 Diagnostic Framework Troubleshooting

                        Issue

                        Troubleshooting / Remedy

                        Diagnostic Framework service does not start

                        Check if required service HTTP SSL (and IIS, when installed) is started without any errors. Check Windows Event log for errors and resolve any issues with the required services.

                        Make sure none of the configuration files is missing.

                        Check Event Viewer and Diagnostic Framework log file for any initialization errors.

                        Cannot access any API from the supported browser client

                        Confirm that you are using a supported browser by checking the Compatibility Matrix for Unified CCE at http:/​/​docwiki.cisco.com/​wiki/​Compatibility_​Matrix_​for_​Unified_​CCE

                        Confirm the base URL is correct; compare it with the URL in the service configuration file DiagFwSvc.exe.config.

                        Confirm the API used is valid; try accessing the built in GetMenu API.

                        Make sure the API is accessed using HTTPS.

                        Make sure the credentials used as valid, check Windows Event log for any authentication errors and Diagnostic Framework log for any authorization errors.

                        Use DiagFwCertMgr utility to validate the certificate binding to the port in use. Recreate or rebind the certificate if any issues were found.

                        Clear the supported browser cache and restart the browser.

                        Verify that the Windows Firewall is either turned off, or that it was configured with the ICM Security Wizard, which ensures that a proper exception is in place for the Diagnostic Framework to work.

                        Some commands work, and others do not seem to work.

                        Confirm that you are using a supported browser by checking the Compatibility Matrix for Unified CCE at http:/​/​docwiki.cisco.com/​wiki/​Compatibility_​Matrix_​for_​Unified_​CCE

                        DUMPLOG

                        The DUMPLOG utility converts binary log files written by Unified ICM/Unified CCE processes into readable text format. DUMPLOG can optionally display the binary log files in Cisco Log message format. For more information about the Cisco Log format, see The Cisco Log Message Format. For more information about this utility, see the How to Use the DumpLog Utility Tech Note in

                        http:/​/​www.cisco.com/​en/​US/​products/​sw/​custcosw/​ps1001/​prod_​tech_​notes_​list.html

                        Header

                        Cisco Log formatted log entries include a more comprehensive header compared to DUMPLOG standard format.

                        DumpLog Standard Format

                        Standard formatted DUMPLOG entries display the following fields:

                        <TIMESTAMP> <COMPONENT-PROCESS> <MESSAGE>

                        The timestamp is represented as a 24-hour value (hh:mm:ss). It does not include the date, which appears on a separate line at the beginning of the file and when a new day starts. For example:

                        Events from February 8, 2007
                        00:37:44 ra-rtr MDS is in service.

                        Cisco Log Format

                        Cisco Log formatted DUMPLOG entries display the following fields:

                        <SEQNUM>: <HOST>: <TIMESTAMP> <TIMEZONE>: %APPNAME: %<TAGS>:<MESSAGE>

                        Example DUMPLOG message

                        Below is an example of a Cisco Log formatted DUMPLOG message. An actual log entry appears on a single line.

                        10: CICMRGRA: Feb 8 2007 05:37:44.658 +0000: %ICM_Router_ProcessSynchronization: [comp=Router-A]
                        [pname=rtr][iid=acme][sev=info]: MDS is in service.

                        Note


                        The contents of the APPNAME and TAGS fields differ from those previously described in section 5.1.
                        Table 10 APPNAME and TAGS Used in DUMPLOG Trace Output

                        Field

                        Description

                        APPNAME

                        PRODUCT_COMPONENT_MESSAGECATEGORY
                        • PRODUCT - always ICM
                        • COMPONENT – such as Router
                        • MESSAGECATEGORY – such as ProcessSynchronization

                        TAGS

                        Acceptable tags are:
                        • [comp=%s] - component name including side, such as Router A
                        • [pname=%s] - process name, such as rtr
                        • [iid=%s] - instance name, such as acme
                        • [sev=%s] – severity, such as info
                        • and optionally [part=%1.%2/%3], which is used only for multi-line entries as described later in this section.

                        Timestamp

                        The timestamp displayed in DUMPLOG standard format is in local time relative to the server on which DUMPLOG is run. The timestamp displayed in Cisco Log format is in GMT time independent of the server on which DUMPLOG is run.


                        Note


                        Date/time options specified on the command line are entered in local time, regardless of whether the Cisco Log option is selected. Therefore, timestamps displayed as part of the Cisco Log formatted entry might appear to be outside of the date/time range selected.

                        Multi-line Entries

                        The message portion of some DUMPLOG entries might contain one or more embedded new line characters ('\n'), which cause the messages to appear on multiple lines and might also include blank lines. This is especially true for entries that contain statistics.

                        For a DUMPLOG standard formatted message, only the first line contains the header field as shown in the following example:

                        00:36:09 ra-nm ICM\acme\RouterA node reporting process statistics for process ccag.
                                Process name: ccag
                                Process status: A
                                Process ID: 6c0
                                Number of times process started: 1
                                Last start time: 00:35:31 2/8/2007
                                Pings completed in zero time: 0
                                Pings completed in first third: 0
                                Total first third milliseconds: 0
                                Pings completed in second third: 0
                                Total second third milliseconds: 0
                                Pings completed in third third: 0
                                Total third third milliseconds: 0
                                Longest Ping time: 0

                        For a Cisco Log formatted message, each line contains a separate header. In the example below, however, each entry spans several lines due to page size constraints.

                        19: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.1/14]: ICM\acme\RouterA node reporting process statistics for process ccag.
                        20: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.2/14]: Process name: ccag
                        21: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.3/14]: Process status ACTIVE
                        22: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.4/14]: Process ID 6c0
                        23: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.5/14]: Number of times process started 1
                        24: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.6/14]: Last start time: 00:35:31 2/8/2007
                        25: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.7/14]: Pings completed in zero time: 0
                        26: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.8/14]: Pings completed in first third: 0
                        27: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.9/14]: Total first third milliseconds: 0
                        28: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.10/14]: Pings completed in second third: 0
                        29: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.11/14]: Total second third milliseconds: 0
                        30: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.12/14]: Pings completed in third third: 0
                        31: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.13/14]: Total third third milliseconds: 0
                        32: CICMRGRA: Feb 8 2007 05:36:09.890 +0000: %ICM_Router_unknown: [comp=Router-A][pname=nm][iid=acme]
                        [sev=info][part=19.14/14]: Longest Ping Time: 0 

                        To differentiate each line in the entry, the part tag is added to each header:

                        [part=#1.#2/#3]

                        Where:

                        #1 = the sequence number of the first line (this is the same for all lines in the entry)

                        #2 = the part number of the specific line

                        #3 = the total number of parts in the entry

                        Note the line beginning with sequence number 32, where [part=19.14/14]:

                        #1 = 19. #2 = 14 / #3 = 14

                        EMSMON

                        While title bar status information is available in the Diagnostic Portico, real time messages can be viewed using EMSMON.

                        EMSMON displays process messages as they are logged. It displays the same content as the former process windows, except for the title bar and the stdout and stderr output. Logged events for the selected processs appear in the EMSMON window. However, rare error condition messages (for example, shelled processes) that go to stdout do not appear in an EMSMON window.

                        To change the number of lines each EMSMON window retains, modify the command window parameters.

                        You can cut and paste in EMSMON (just as in the command windows). It is safer to cut and paste in EMSMON.

                        For history (events before EMSMON starting), use DUMPLOG.

                        How to Run EMSMON

                        You can start EMSMON at anytime, even when the process is not running. (You can have a batch file on a machine to start sessions.) If the process is down, EMSMON displays messages from the process when the process starts. EMSMON does not end when the process ends. To end EMSMON, press Ctrl+C or close the window.

                        EMSMON has the same parameters as ProcMon:

                        <instance> <node> <process> [<process>…] [<system>] [<LanguageID>]

                        The system parameter is optional. Use the system parameter to remotely run EMSMON.

                        For example, if the instance node is "ucce", to monitor the JTAPI gateway on PG1A, type the following:

                        EMSMON ucce PG1A jgw1

                        If you are remote (on another PG) and the system name is UCCEPG1A, type:

                        EMSMON ucce PG1A jgw1 UCCEPG1A


                        Note


                        A trust relationship must exist between the two machines. (Use the "NET USE" command or complete an operation that sets up a trust [for example, map a drive].)

                        The language identification parameter is also optional. As logging is only supported in the English language, it needs to be set to "1033" (for English) whenever the OS is running any other language.

                        Monitoring Process

                        A single EMSMON can monitor multiple processes and merge their output (for example, [jgw1 and pim1]).

                        Use one EMSMON only for each process.

                        Run EMSMON Remotely

                        To reserve system resources for Unified CCE processes, run the EMSMON client on a remote machine that does not host Unified CCE processes. For example, do not run the EMSMON client on side A of a PG and connect it to a process on side B of a PG.

                        Procedure
                        Copy emsmon.exe, emsmon.pdb, and icrmessages.dll from c:\icm\bin and place files on remote machine.

                        EMSMON Connections

                        You can have one local connection and five remote connections per process. When the number of connections is exceeded, the oldest session is disconnected with the message "You are being disconnected because another user has connected to this named pipe."

                        If your system is running a heavy call load, your EMSMON connections may disconnect and the message "You are being disconnected because the system is running a heavy call load; this connection may impact the performance of the system. It is recommended that you do not reconnect your EMSMON sessions until your system returns to a normal call load." appear.


                        Note


                        To prevent Unified CCE processes from exceeding the system memory, Unified CC processes may stop sending queued event messages to slow or paused EMSMON clients. If this occurs, EMSMON clients display a message indicating one of the clients fell behind and there is a gap. This message is also logged in the processes event log. This can happen if a particular EMSMON client is too slow or paused by quick edit or Ctrl+S for example. This does not affect the Unified CCE process, only the EMSMON client.
                        1 The Unified ICM installer detects and installs the appropriate .NET version.
                        2

                        A self-signed certificate cannot guarantee the authenticity of the hosting server. Because the client is unaware of the server authenticity, the client should exercise caution when sharing the user credentials with such server. A malicious user may setup a rogue server with a self-signed certificate, claiming to be a legitimate server, and use it to steal user credentials from the client. Always use trusted certificates to authenticate servers when accessing outside your trusted network.