Skip to content

Import backoffice users from CUCM to ELEVEO Quality Management

License

Notifications You must be signed in to change notification settings

pokornyIt/zqm-axl-importer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZQM AXL Importer

Version: 2.2.0

Usage

zqm-axl-importer --config=server.json [--cli | --show | --version]   
zqm-axl-importer -h|--help   
PARAMETERS
--config=server.json    Configuration file (JSON or YAML format)  
--cli                   Run only once and ends  
--show                  Show actual configuration and ends 
--version               Show program version  
-h                      Show help
--help                  Show help

DATABASE

Under postgres administrator create new schema (from file 01_createschema.sql). In file can change name of user and password.

Use process file 02_createtable.sql for create necessary table and functions.

##Configuration file

System support configuration file in JSON or YAML format. Options are same in both.

{
  "axl": {
    "server": "c09-cucm-a.devlab.zoomint.com",
    "user": "ccmadmin",
    "password": "zoomadmin",
    "ignoreCertificate": true
  },
  "zqm": {
    "jtapiUser": "callrec",
    "dbServer": "pm028.pm.zoomint.com",
    "dbPort": 5432,
    "dbUser": "axluser",
    "dbPassword": "a4lUs3r.",
    "javaXTerm": "/opt/zqm-axl/jmxterm-1.0.1-uber.jar",
    "javaFlush": "/opt/zqm-axl/flush_sc_cache.txt",
    "newApi": false
  },
  "log": {
    "level": "TRACE",
    "fileName": "./log/data.log",
    "jsonFormat": false,
    "logProgramInfo": true
  },
  "processing": {
    "hoursBack": 24,
    "userImportHour": [
      4,
      16
    ],
    "defaultTeamName": "_CUCM_imported",
    "defaultRoleName": "Agent",
    "updateInterval": 5
  }
}

Detailed documentation is in the PDF file.

Troubleshooting AXL DB

During the run program o some CUCM systems, the program doesn't read the AXL DB version. In this case, we can manually investigate the problem.

First, you must prepare an authentication string. The username replaces your valid CUCM user and the password with the user's valid password.

echo -n "username:password" | base64
# output is (dXNlcm5hbWU6cGFzc3dvcmQ=)

In the next command, replace this:

  • SERVER your CUCM IP address or server FQDN,
  • VERSION with CUCM major version (9, 10, 11, 12, 14)
  • PASSWORD with the token collected with the above command. Response from the server is stored in file response.xml.
curl --location 'https://SERVER:8443/axl/' \
--insecure \
--header 'Content-Type: text/plain' \
--header 'Authorization: Basic PASSWORD' \
--data '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/VERSION.0">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:getCCMVersion sequence="">
      </ns:getCCMVersion>
   </soapenv:Body>
</soapenv:Envelope>' \
-o response.xml

Example of valid response.xml file where identification the AXL DB version 11

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <ns:getCCMVersionResponse xmlns:ns="http://www.cisco.com/AXL/API/10.0">
            <return>
                <componentVersion>
                    <version>11.5.1.14900(11)</version>
                </componentVersion>
            </return>
        </ns:getCCMVersionResponse>
    </soapenv:Body>
</soapenv:Envelope>

Invalid response.xml file, when testing the AXL DB version newer than the server has

<!-- custom Cisco error page -->
<html>
    <head>
        <title>Cisco System - Error report</title>
        <style type="text/css">a { color: #316984; text-decoration: none; } a:hover { color: #316984; text-decoration: underline; } a:visted { color: #316984; text-decoration: none; } body { background-attachment: fixed; background-color: #ffffff; background-repeat: no-repeat; color: #316984; font-family: arial,helvetica,sans-serif; } #content { border: 1px solid #d6d7d6; font-size: 93.5%; margin: 0px 10% 30px 10%; } #content-header { background-color: #eeeeee; border-bottom: 1px solid #666666; color: #666666; font-size: 124.5%; padding: 5px 15px 5px 15px; } #copyright { font-size: 75%; margin: 0px 10% 0px 10%; padding: 3px 0px 0px 0px; text-align: right; } img { display: block; margin: 0px 0px 20px 0px; } #logo { margin: 30px 10% 0px 10%; } p { padding: 5px 15px 5px 15px; } pre { padding: 5px 15px 5px 30px; }</style>
    </head>
    <body>
        <div id="logo">
            <img src="/ciscologo.gif" alt="Cisco Systems, Inc."/>
        </div>
        <div id="content">
            <div id="content-header">HTTP Status 599 -</div>
            <p>
                <b>type:</b>
                Status report
            </p>
            <p>
                <b>message:</b>
            </p>
            <p>
                <b>description:</b>
                http.599
            </p>
        </div>
    </body>
</html>

Invalid response.xml file, when the tested DB version is too old than the server supports.

<!-- custom Cisco error page -->
<html>
    <head>
        <title>Cisco System - Error report</title>
        <style type="text/css">a { color: #316984; text-decoration: none; } a:hover { color: #316984; text-decoration: underline; } a:visted { color: #316984; text-decoration: none; } body { background-attachment: fixed; background-color: #ffffff; background-repeat: no-repeat; color: #316984; font-family: arial,helvetica,sans-serif; } #content { border: 1px solid #d6d7d6; font-size: 93.5%; margin: 0px 10% 30px 10%; } #content-header { background-color: #eeeeee; border-bottom: 1px solid #666666; color: #666666; font-size: 124.5%; padding: 5px 15px 5px 15px; } #copyright { font-size: 75%; margin: 0px 10% 0px 10%; padding: 3px 0px 0px 0px; text-align: right; } img { display: block; margin: 0px 0px 20px 0px; } #logo { margin: 30px 10% 0px 10%; } p { padding: 5px 15px 5px 15px; } pre { padding: 5px 15px 5px 30px; }</style>
    </head>
    <body>
        <div id="logo">
            <img src="/ciscologo.gif" alt="Cisco Systems, Inc."/>
        </div>
        <div id="content">
            <div id="content-header">HTTP Status 599 - Wrong axl version, supported versions are 9.x,10.x and 11.0</div>
            <p>
                <b>type:</b>
                Status report
            </p>
            <p>
                <b>message:</b>
                Wrong axl version, supported versions are 9.x,10.x and 11.0
            </p>
            <p>
                <b>description:</b>
                http.599
            </p>
        </div>
    </body>
</html>

All response examples are formatted for better readability.