QM Developer Api Database Schema Guide Cisco 115
QM Developer Api Database Schema Guide Cisco 115
THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE
INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS
REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR
CISCO REPRESENTATIVE FOR A COPY.
The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of
California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved.
Copyright © 1981, Regents of the University of California.
NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS
ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES,
EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE
PRACTICE.
IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR
INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING
OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other
countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks
mentioned are the property of their respective owners. The use of the word partner does not imply a partnership
relationship between Cisco and any other company. (1110R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual
addresses and phone numbers. Any examples, command display output, network topology diagrams, and other
figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone
numbers in illustrative content is unintentional and coincidental.
n Server API—allows users to search, export, edit, and delete Quality Management call
data from uploaded contact recordings.
n Recording Controls API—allows agents to control which recorded calls are stored, the con-
tent of the recorded calls, and the data associated with the calls.
n Recording Verification API—allows users to locate calls and verify their recording status.
n Post-Call Survey API—allows users to import customer surveys into Recording and Quality
Management.
n Contact Basic Search API—allows users to search for details regarding an in progress or
most recently completed call.
13
Server API
The Server API allows users to search, export, edit, and delete Quality Management call data from
uploaded contact recordings. The Server API is a REST-like API. The Server API uses Secure Sockets
Layer (SSL), so uses HTTPS to issue requests. You format the request and response bodies using
JavaScript Object Notation (JSON). For more information on JSON, and to access the JSON libraries, go
to the following website:
http://json.org/
Note: Cisco only supports resources mentioned in this document. When you issue requests,
you might see references to other resources. Undocumented resources are not supported and
are subject to change without warning.
15
Server API
number of pages. Unified Workforce Optimization's REST API for contacts adds a Range of 0-99 if no
Range header is provided in the request. Without a default Range, it would be possible to return the
entire contents of the contact database, possibly impacting client stability and server performance.
The format for the Range header value is:
items=<startIndex>-<endIndex>
The items are zero-based so the first item is at index 0. So to return the first 20 contacts (items) from
the request the request is:
Range items=0-19
The response would contain a Content-Range header that contains the range that was actually
returned and the total number of contacts available (in this case, 129 contacts). If the response
contains the whole content, no Content-Range header is provided.
Content-Range items 0-19/129
To get all the items from the request (and override the default 0-99 range) you'll need to provide a
sufficiently large endIndex to get the whole contents. Maximum value for a range index is a signed 4
byte int (2147483647).
Range items=0-2147483647
16
Server API
n POST—creates new resource. Use POST to create a new export or new login session.
Authorization
All Server API operations require an authorized session. The Server API requires the user ID and
password of a user who is configured and licensed in Quality Management Administrator for
authentication. The information in a response to a request only provides the information the user is
allowed to see based on the roles and privileges assigned to the user in Quality Management
Administrator.
Example: A supervisor only sees the contacts associated with teams assigned to the
supervisor.
n If Quality Management is not configured for Active Directory, use the following format for
the request body:
Where <user name> and <password> are the user’s Quality Management username
and password.
n If Quality Management is configured for Active Directory, use the following format for the
request body:
Where <user name> and <password> are the user’s Active Directory username and
password, and <domain> is the user’s Active Directory domain.
17
Server API
Searching Contacts
Use the GET method and the following resource URLs to search for contacts.
n /api/rest/recording/contact/{id}
Where {id} is the identifier for an existing contact. This resource URL locates a specific
contact ID. If the {id} does not exist, the response returns an error code instead of an
empty list.
n /api/rest/recording/contact
The following table describes the query parameters you can use when exporting contacts.
Parameter Description
Example: contact?ani=1234&ani=4567
beginTime Return only records that start on or after the specified date.
When specifying a date, choose one of the following date
formats:
n YYYY-MM-DD HH:MM:SS
n YYYY-MM-DD
18
Server API
Parameter Description
canEvaluate Whether the person can evaluate this contact. The accepted
value is true. True returns the contact, if the Quality Man-
agement user can evaluate this contact when logged into Unified
Workforce Optimization.
Accepted Values: "true” if this contact should be returned if the
contact can be evaluate by the logged in person.
This parameter is optional. If you do not include this parameter,
the query does not filter the contacts.
dnis The dialed number identification server (DNIS) for the call. In
other words the called number. The accepted value is string with
asterisk (*) or question mark (?) wildcards
This parameter can appear zero or more times in a single query.
When you provide multiple values for a parameter, the query
combines these values with OR. This parameter is optional.
endTime Return only records that start before the specified date. When
specifying a date, choose one of the following date formats:
n YYYY-MM-DD HH:MM:SS
n YYYY-MM-DD
This parameter is optional.
19
Server API
Parameter Description
expand Returns all data associated with the specified value instead of a
URI. The accepted values are:
n event—Expands all events to include all event data, not
just the URI.
firstName The agent’s first name. The accepted values is string with any
number of asterisk (*) or question mark (?) wildcards. This para-
meter is optional.
n false
n false
n 1 (true)
n 0 (false)
20
Server API
Parameter Description
n false
n 1 (true)
n 0 (false)
lastName The agent’s last name. The accepted values is string with any
number of asterisk (*) or question mark (?) wildcards. This para-
meter is optional.
This parameter can appear zero or more times in a single query.
When you provide multiple values for a parameter, the query
combines these values with OR. This parameter is optional.
line The extension for the call (from the perspective of the agent who
is recording the call). The accepted value is string with asterisk
(*) or question mark (?) wildcards.
This parameter can appear zero or more times in a single query.
When you provide multiple values for a parameter, the query
combines these values with OR. This parameter is optional.
n <key>~<value>
21
Server API
Parameter Description
n false
n 1 (true)
n 0 (false)
number Any number used in the contact (ANI, DNIS, or Line). The accep-
ted value is string with asterisk (*) or question mark (?) wild-
cards.
This parameter can appear zero or more times in a single query.
When you provide multiple values for a parameter, the query
combines these values with OR. This parameter is optional.
scored Whether the contact has been scored. The accepted Boolean
values are:
n true
n false
n 1 (true)
n 0 (false)
22
Server API
Parameter Description
silenceEvents Return only contacts where the number of silence events are
equal to or greater than the value specified. For example,
silenceEvents=5 returns contacts where there are 5 or more
silence events. This parameter is optional.
tagged Whether the contact was tagged. The accepted Boolean values
are:
n true
n false
n 1 (true)
n 0 (false)
talkOverEvents Return only contacts where the number of talk over events is
equal to or greater than the value specified.
23
Server API
Parameter Description
training Whether the contact evaluation has been marked for training.
The accepted Boolean values are:
n true
n false
n 1 (true)
n 0 (false)
type The type of contact. The type parameter filters contacts based
on upload states. The accepted values are:
n quality
n archive
This parameter is optional. If you do not include this parameter,
the query does not filter on upload states. Also note, the archive
user role only has global scope when you specify the archive
type.
Examples
Combination search:
The following request returns a list of all contacts recorded for quality purposes on or after
01/01/2015 (GMT).
GET ~/api/rest/recording/contact?beginTime=2015-01-
01&type=quality
24
Server API
The following request returns a list of all contacts with the metadata value of 555-1212.
GET ~/api/rest/recording/contact?beginTime=2015-01-
01&metadata=phone~555-1212
25
Server API
26
Server API
},
"evaluator" : {
"lastName" : "Sillars",
"username" : "sillarj",
"$ref" : "/api/rest/recording/person/2",
"firstName" : "Jay",
"displayId" : "0.2"
},
"screenUploaded" : true,
"metadata" : {
"$ref" : "/api/rest/recording/contact/1/metadata/" },
"qualityWF" : {
"$ref" : "/api/rest/recording/workflow/266"
}
}
Exporting Recordings
Use the POST method and the following resource URL to export a contact recording to a specified
format.
n POST /api/rest/recording/contact/{id}/export
The Server API sends an alert to the user who initiated the export when the export completes or fails.
You format the request and response bodies using JSON. The JSON object must include the
mediaFormat attribute and one of the following values:
n WAV
n MP4
Sample Response
{
"id" : 271518269942,
"isComplete" : false,
"exportUrl" : "http://10.10.10.76/export/recording-1-
271518269942.wav",
"mediaFormat" : "WAV"}
27
Server API
Exporting Details
Use the GET method and the following resource URL to get details of an export.
/api/rest/recording/contact/{id}/export/{exportId}
Sample Response
{
"id" : 271518269942,
"isComplete" : true,
"exportUrl" : "http://10.10.10.76/export/ recording-1-
271518269942.wav",
"mediaFormat" : "WAV"
}
{
"id" : 271518269942,
"isComplete" : false,
"error" : "Error converting audio.",
"exportUrl" : "http://10.10.10.76/export/ recording-1-
271518269942.wav",
"mediaFormat" : "WAV"
}
Deleting a Recording
Use the DELETE method and the following resource URL to delete a recording.
/api/rest/recording/contact/{id}/recording
The DELETE method purges the recording the same way as the DB Cleaner service.
Editing Metadata
Use the PUT method and the following resource URLs to edit a recording’s metadata.
l /api/rest/recording/contact/{id}/metadata
l /api/rest/recording/contact/{id}/metadata/{key}
The PUT method updates the state of the whole metadata set for a contact or you can specify a specific
metadata in the metadata set to update.
If you provide a metadata key, the Server API only modifies the specified key and leaves the rest of the
metadata associated with that contact alone.
28
Server API
Example: ~/api/rest/recording/contact/1/metadata/key
If you do not provide a metadata key, the Server API modifies the whole metadata set.
Example: ~/api/rest/recording/contact/1/metadata
To delete a specified key in a metadata set, you must provide the key and set the value for that
metadata key to null. The GET method returns the metadata for a contact.
Sample request:
{
"myText" : {
"value" : "my NEW sample data!"
},
"secretText" : {
"value" : "I am a CHANGED value that is stored encrypted."
}}
Sample response:
{
"myText" : {
"encrypted" : false,
"exportable" : true,
"name" : "Sample Text Field",
"value" : "my sample data!",
"type" : "Text",
"key" : "myText"
},
"secretText" : {
"encrypted" : true,
"exportable" : false,
"name" : "Sample Secret Text",
"value" : "I am a value that is stored encrypted.",
"type" : "Text",
"key" : "secretText"
}
}
29
Server API
{"mediaFormat":"MP4"}
{
"id" : 303916344608,
"isComplete" : false,
"exportUrl" : "http://<server-ip>/export/recording-1-
303916344608.mp4",
"mediaFormat" : "MP4"
}
Note: If an error occurs during export, the request response includes an error
attribute whose value describes the error and isComplete remains false.
2. To determine when the export completes, send the following GET request at regular
intervals.
GET to /api/rest/recording/contact/1/export/303916344608
The response to the GET request appears in the same format as the response to the
original POST request. Periodically repeat the GET request until the “isComplete” attribute
is true or the error attribute has a value.
3. Send a GET request to the URL identified by the “exportUrl” attribute to download the
exported file.
Example: http://<server-ip>/export/recording-1-
303916344608.mp4
After you issue the request, the Server API transfers the exported file and then deletes the
exported file from the server.
30
Recording Controls API
The Recording Controls API is a client API. The Recording Controls API provides a means for users to
create an external application that interfaces with the Quality Management system and allows agents
to perform the following actions:
l Pause a recording
l Resume a recording
l Restart a recording
Note: The Restart command is not supported with Gateway Recording and will be
removed in a future release.
Hot Desking
Hot desking is a situation where one desk is shared by several people who use the desk at different
times. This work surface can be an actual desk or just a terminal link. Companies use hot desking
when not all the employees are in the office at the same time, or employees are not regularly in the
office for very long.
The Recording Controls API provides a Login and Logout command to the Recording Cluster and
Desktop Recording service for hot desking.
31
Recording Controls API
You must configure the device for hot desking. See “VoIP Devices” in the Administrator User Guide
for more information on hot desking.
n Protocol: HTTP
Agent Identifiers
The agent can be identified in one of the following ways:
n Userdomain and username—use the userdomain and username as the agent identifier
when you send an API command.
Example: userdomain=CISCO&username=john.doe
<peripheral_id>.<sender_id>
Example: 5000.1234
You can use sender_id and peripheral_id when you send an API command.
Example: sender_id=1234&peripheral_id=5000
32
Recording Controls API
n SENS events—If the application has access to the Windows API, you can use
Windows events to get notification when a user logs in or logs out. The Desktop
Recording service uses SENS events.
l USERDOMAIN
l USERNAME
Example: You can attach metadata to a call and tag the same call for retention.
However, once you delete a call using the delete command, the metadata and tag
commands have no effect.
n In a multi-tenancy environment, the sender_id and extension must be unique across the
entire system.
n The buttons that are available to an agent or knowledge work are configured from Role
Permissions window in Quality Management Administrator. See "Recording Control
Buttons" in the Administrator Guide for more information.
n The Recording Controls IP Phone Service can display up to four soft buttons at a time
(some phones, like the IP Communicator soft phone, can allow as many as five buttons).
To see additional commands, the user must press a button to display more commands.
For more information about the Recording Controls Browser application, see the User
Guide.
n If you are using Gateway Recording without reconciliation Gateway Recording, none of
the API commands are supported.
n If you are using Gateway Recording with reconciliation, the following Recording Controls
33
Recording Controls API
l Login
l Logout
l Start Segment
l Stop Segment
l Start Screen
l Stop Screen
n These commands are generally issued at the time of recording. Gateway Recording only
supports commands that can be issued after the call is recorded.
n For Gateway Recording, the use of recording commands is not supported for the
extensions in the exclusion list.
Recording Commands
This section explains the following concepts:
Command Syntax
The Recording Controls API supports the following HTTP methods:
n GET
n POST
34
Recording Controls API
"<variable>":"<variable value>"
}
}
where:
n <Web Base server IP> is the IP address of the Web Base server.
n <command> is the recording controls command you want to send. Valid commands are
record, pause, resume, restart, delete, login, logout, metadata, start, stop, start_
screen, and stop_screen.
n <variable> and <variable value> (optional) are additional information you want to attach
to the command.
Commands that require variables are login, logout, metadata, start_screen, and stop_
screen.
Command Functions
Recording commands allow you to control a recording.
Example: You can use recording commands to record a call, pause the recording, and attach
metadata to a recording.
The following table describes how the recording commands interact with each other and the Quality
Management components.
35
Recording Controls API
Recording commands
Command Function
Record Records a call and uploads the call to the Quality Management
server at the end of the day.
In the Recording Controls API, the <command> is record.
The Record Tag command behaves as follows:
n The Record Tag command is valid for the active call and
the last call.
36
Recording Controls API
Command Function
37
Recording Controls API
Command Function
n Agent Recording:
38
Recording Controls API
Command Function
39
Recording Controls API
Command Function
40
Recording Controls API
Command Function
Login Sends a login request that associates an agent with the specific
extension for hot desking.
The Recording Controls IP Phone Service does not have
login/logout capabilities. Use Cisco’s Extension Mobility IP
Phone application to log in by phone.
In the Recording Controls API, the <command> is login. You
must include the unique extension of the phone that the agent is
logging into.
This command is not supported if you are using
Gateway/MediaSense Recording.
41
Recording Controls API
Command Function
Logout Sends a logout request that associates an agent with the specific
extension for hot desking.
In the Recording Controls API, the <command> is logout.
This command is not supported if you are using
Gateway/MediaSense Recording.
42
Recording Controls API
Command Function
n The Metadata command is valid for the active call and the
last call.
43
Recording Controls API
Command Function
Example: & or =
44
Recording Controls API
Command Function
Start Segment Starts the audio and screen recording of an active call. This com-
mand allows you to override the automatic exclusion lists to start
recording their current call and treat it as a normal contact.
In the Recording Controls API, the <command> is start.
Agent Recording:
45
Recording Controls API
Command Function
Stop Segment Stops the audio and screen recording of an active call. The
recording is then saved according to workflow criteria as a new
contact.
In the Recording Controls API, the <command> is stop.
The agent can use the Stop Segment command to stop the
recording after a sale has been made and before payment
information is taken in order to omit customer data in adherence
with PCI DSS.
46
Recording Controls API
Command Function
Start Screen Starts screen recording regardless of whether or not you are
participating in an active call. Use this command to record chat
or email interactions with a customer.
Voice contact recordings and screen only contact recordings
can be bracketed or interleaved.
47
Recording Controls API
Command Function
behavior.
48
Recording Controls API
Command Function
49
Recording Controls API
Start Screen If there is a current voice and screen record- Screen only recording
ing, the Start Screen command has no effect starts.
on the current recording. The screen only
recording will begin after the active call has
ended (if the Stop Screen command has not
been issued) and will be created as a sep-
arate contact recording. If there is a current
screen only recording, the Start Screen com-
mand has no effect.
400 Bad Request The command did not execute due to a configuration issue or
invalid parameters.
401 Unauthorized The command did not execute due to permission issues.
500 Internal Server Error The command did not run due to an internal server error.
50
Recording Controls API
The last call is the previously recorded call. Any valid recording commands sent after a call ends, and
until another call, that matched the inclusion list, is received or made by the user, apply to the last call.
The following table indicates whether the recording command applies to the active call, the last call, or
both.
Pause Yes No
Resume Yes No
Record Yes No
Restart Yes No
Delete Yes No
Command Examples
n GET
n POST
51
Recording Controls API
n GET
n POST
n GET
n POST
52
Recording Controls API
n GET
n POST
n GET
n POST
Send the Start Segment command at the beginning and the Stop Segment command at
the end of each outbound call to create a unique contact recording for each outbound
53
Recording Controls API
call. The Start Segment command starts the audio and screen recording of an active call.
The Stop Segment command stops the recording. The recording is then saved according
to workflow criteria as a new contact. Send the Start Segment command again at the
beginning of your next outbound call to start another unique contact recording.
log4j.appender.LOG=com.Cisco.util.log.SplkRollingFileAppender
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.Threshold=INFO#com.Cisco.util.log.SplkLevel
log4j.appender.LOG.File=../log/recordingcontrols.log
log4j.appender.LOG.MaxFileSize=3MB
log4j.appender.LOG.MaxBackupIndex=2
log4j.appender.LOG.layout.ConversionPattern=%d %-5p %X{EC}%m%n
log4j.appender.DBG=com.Cisco.util.log.SplkRollingFileAppender
log4j.appender.DBG.layout=org.apache.log4j.PatternLayout
log4j.appender.DBG.Threshold=DUMP#com.Cisco.util.log.SplkLevel
log4j.appender.DBG.File=../log/recordingcontrols.dbg
log4j.appender.DBG.MaxFileSize=10MB
log4j.appender.DBG.MaxBackupIndex=20
54
Recording Controls API
splk4j.appender.DBG.accept=STACK#com.Cisco.util.log.SplkLevel
splk4j.watch.check.sec=5
splk4j.watch.error.sec=600
n Control the debug levels for the Recording Controls browser application
n Change the title that appears at the top of the browser application and IP Phone service
n Control the Recording Controls buttons available to Quality Management users who are
agents and knowledge workers
n Change the order in which the Recording Controls buttons appear in the IP Phone service
n Specify the URL used when pausing and resuming a screen recording
For more information on files with the PROPERTIES extension, see the Quality Management
Troubleshooting Guide.
See “Logs and Debugging” in the Quality Management Troubleshooting Guide for additional
debugging information.
55
Recording Controls API
n The Recording Controls IP Phone service only supports Network Recording and Server
Recording (SPAN). If a user configured for Desktop Recording (Endpoint) tries to access
the IP Phone service, an error appears.
n To use the Recording Controls IP Phone service, you must configure an IP phone service
and assign agents to the IP phone service in Cisco Unified CM.
n The Recording Controls IP Phone Service supports all Cisco IP phones that can support
services, as well as the Cisco IP Communicator soft phone.
n The Recording Controls IP Phone Service does not have login/logout capabilities. Use
Cisco’s Extension Mobility IP Phone application to log in by phone.
56
Recording Controls API
n You can assign any name you want to the Recording Controls IP Phone Service in the
Service Name field. You can also assign the same name to the ASCII Service Name
and Service Description fields. This name appears on the user’s phone when the
user presses the Services button on the phone. In this document, the examples use
Recording Control as the service name.
n You must enter the Service URL using the following format:
http://<IP address>/recordingcontrols/ipp/main
Where <IP address> is the IP address or hostname for the Quality Management Web
Base server.
n The phone must be associated with a Recording Cluster in the VoIP Device table in Qual-
ity Management Administrator
n The agent must be assigned to the phone, or logged into the phone with a configured
Extension Mobility (EM) profile in Quality Management Administrator
n The Quality Management Web Base server must be able to open the IP phone’s con-
figuration page (http://<Device IP>/DeviceInformationX)
This task shows you how to assign the IP phone service to Quality Management agent phones. The
agent phones configured in this step are the phones that can use the Recording Controls IP Phone
Service.
57
Recording Controls API
2. Use the search options to locate the phone you want to assign the IP phone service to.
3. Choose the phone you want from the Search Results list.
4. Choose Subscribe/Unsubscribe Services from the Related Links drop-down list, and then
click Go.
5. Choose the service you created in from the Select a Service drop-down list, and then click
Next.
The Subscribed Cisco IP Phone Services window displays the information associated with
the selected service.
6. Click Next.
7. Click Subscribe to add the service to the list of services assigned to the agent’s phone.
The Subscribed Cisco IP Phone Services dialog box displays all subscribed services.
8. Click Save.
The new IP phone service appears in the service list when the agent presses the Services
button on their hard or soft phone.
9. Repeat steps 1-8 for each Quality Management agent you want to assign this service to.
The Cisco IP Phone Service can only be used by Quality Management agents who are using
the Network Recording service.
1. From your Cisco IP phone or Cisco IP Communicator soft phone, press the Services button.
The Services menu appears.
58
Recording Controls API
You can assign any name to this service. In this example, the name of Recording Controls IP
Phone Service is Recording Control.
If the Recording Controls IP Phone Service is working, the Recording Controls IP Phone
Service base screen appears.
If the Quality Management user is not configured correctly for Network Recording, the
Recording Controls IP Phone Service displays an error message.
3. If this error message appears, check the user’s configuration settings in Quality Man-
agement Administrator and try again.
59
Recording Verification API
The Recording Verification API is a client API. The Recording Verification API provides a means for
users to create an external application that interfaces with the Quality Management system and allows
users to check the call status and verify it is being recorded.
The Recording Verification API allows you to search call status by user name. You can also include the
Automatic Number Identification (ANI) and/or Dialed Number Identification Service (DNIS) in your
search.
Cisco Recording Verification is designed to work with a custom CTIOS application, called HUVR, that is
used for outbound dialing recording verification.
The Recording Verification API is part of Ciscoo Recording Controls and is installed when Cisco
Recording Controls is installed. This section contains only information on Recording Verification.
n Protocol: HTTP
n Protocol: HTTP
n Port: 80 if you are not using HTTPS and 443 if you are using HTTPS
Command Syntax
The Recording Verification API supports the following HTTP GET method:
61
Recording Verification API
n <Web Base server IP> is the IP address of the Web Base server.
n The ani and dnis parameters and their associated <variable value> are optional.
Note: This example also applies if you used skilltarget_id or sender_id instead of username as
the ID parameter. If you use all three of these ID parameters in the command, the search will
return information only for the first ID parameter in the command.
If an active call was not answered, you will see the following response:
HTTP/1.1 200 OK
Date: Tue, 27 May 2014 15:28:23 GMT
Transfer-Encoding: chunked
{"contactId":"null","callActive":"true"}
A response usually includes the contactId and the callActive parameters. When callActive is true,
Quality Management sees the call and plans to record it.
If the active call was answered, you will see the following response:
HTTP/1.1 200 OK
Date: Tue, 27 May 2014 15:28:23 GMT
Transfer-Encoding: chunked
{"contactId":"79","callActive":"true"}
If there is no active call, you will see the following response:
HTTP/1.1 200 OK
Date: Tue, 27 May 2014 15:46:41 GMT
62
Recording Verification API
Transfer-Encoding: chunked
{"contactId":"null","callActive":"false"}
Note: This example also applies if you used ANI or ANI and DNIS instead of DNIS. Or you used
skilltarget_id or sender_id instead of username.
63
Post-Call Survey API
The Post-Call Survey API is used by the client and the server. The Post-Call Survey API provides a means
of importing customer surveys into Recording and Quality Management.
The survey application (that is, the system that performs the survey) is independent from Recording
and Quality Management. You can use any type of interactive survey method (such as, IVR, email, or
SMS). There are two CSV files: a Form CSV file and a Results CSV file. The survey application must write
the results of the survey to a Results CSV file and the actual survey to the Form CSV file.
The interactive survey method greets the inbound caller and, through a voice script, determines
whether or not the caller should be offered the option to take a post-call survey. If the caller agrees to
be a survey candidate, the interactive survey method script generates a unique identifier (Survey ID)
and determines the survey form (Form ID) to present at the conclusion of the call.
Recording and Quality Management assigns a call identifier for a call to the post-call survey. The call
identifier acts as the survey ID so a call can be matched with its post call survey. The possible call
identifiers are as follows:
n Contain a Survey ID
n Use the CSV format
CSV Format
The file name convention for the CSV files are as follows:
65
Post-Call Survey API
66
Post-Call Survey API
Example: Results_20140817_1938_
16858473654321.csv
CSV format
<UniqueIdentifier>,<Form ID>,<survey Total Score>,1,<UCID
(CallIdentifier)>,<Received score/weight>
<UniqueIdentifier>,<Form ID>,<survey Total
Score>,2,<AGENTID (Agent ID)>,<Received score/weight
<UniqueIdentifier>,<Form ID>,<survey Total
Score>,<Question #>,<Result>,<Received score/weight>
<UniqueIdentifier>,<Form ID>,<survey Total
Score>,<Question #>,<Result>,<Received score/weight>
n Protocol: HTTP
67
Post-Call Survey API
n Port: 80 if you are not using HTTPS and 443 if you are using HTTPS
Command Syntax
The Post-Call Survey API supports the following HTTP GET method:
http://<Web Base server
IP>/api/rest/recording/<command>/<callIdentifier.
where
n <Web Base server IP> is the IP address of the Web Base server.
n <callIdentifier> is the Associated Call ID, Contact ID, or ICM Call ID. The <callIdentifier>
for a survey is defined in Recordings > Survey Form Administration in Quality Man-
agement Administrator. See "Survey Form Administration" in the Administrator Guide for
more information.
Example: http://10.191.205.232/api-rest-recording/surveyForm/291317843898779
Example: http://10.191.205.232/api-rest-recording/surveyForm?status=active
Note: This example returns active forms. Only active forms appear in the Recent Surveys
widget in Unified Workforce Optimization.
Example: http://10.191.205.232/api-rest-
recording//contact?expand=metadata&expand=eventCalculations&reason=recorded&range
=date_range_in_the_past_year&survScore=75~less&dojo.preventCache=1406208488884
68
Contact Basic Search API
The Contact Basic Search API returns details about an in progress or most recently completed call. The
returned information consists of the most recent contact that matches the parameters of the search.
The most recent contact might currently be in progress.
n Protocol: HTTP
n Port: 80 if you are not using HTTPS and 443 if you are using HTTPS
Command Syntax
The Contact Basic Search API supports the following HTTP GET method:
http://<Web Base server
IP>/api/rest/recording/contactbasicsearch?<search query
parameters>
where:
n <Web Base server IP> is the IP address of the Web Base server.
n <search query parameters> is the search criteria used to filter results. You can combine
query parameters in a search. The supported query parameters are as follows:
l ani
l dnis
l firstName
l lastName
l username—for users in a domain, you can search with domain\user or username.
l displayID—the format of the display ID is as follows:
69
Contact Basic Search API
Example:
http://10.192.247.197:80/api/rest/recording/contactbasicsearch?displayId=
1.6000
Response:
{
"id" : 2,
"assocCallId" : "00001007771411573215",
"recordingUrl" :
"http://10.192.247.197:80/cwfo/apps/Recordings.html?loadContact
=2",
"isComplete" : false,
"agent" : {
"$ref" : "/api/rest/recording/person/3",
"displayId" : "2.6000",
"lastName" : "test agent 1",
"firstName" : "",
"username" : "a1"
}
70
Import API
The Import API will be responsible for creating Ccr, Media, and Media File table entries from POST
requests submitted by a custom written customer application or other HTTP POST methods. The
Import API will return the relevant contact ID created along with the Media objects. Media objects will
respond with the corresponding URL of where each individual media file should be sent for Media
Upload which includes a hashed signature. The customer application will then be responsible for
sending a POST for each file to the appropriate URL path. The existing Cisco Media service will be
leveraged to manage uploading of the media files to the proper SAN/NAS location and setting the
appropriate upload state of the Media Files and Ccr table entries.
1. Files must be unencrypted (.wav) for audio or unencrypted (webM) for video.
2. 3rd party uses a REST API call to create an authorized session.
3. 3rd party uses a REST API call to identify the contact being created including metadata
which will be inserted into the Cisco database.
4. Cisco Media service responds with Media URL location(s) on where contacts created
should be stored.
5. 3rd party uses a REST API to POST corresponding media to URLs returned in Contact
Creation (step 4).
n Name—The Login name of the person configured in Recording and Quality Management.
n Domain—If Active Directory Authentication Is used this is the Domain of the person con-
figured in Quality Management.
71
Import API
n DisplayID—Alternate unique string for identifying the person. DisplayID can be found in
the following locations:
Request
POST to http://<base server>/api/rest/authorize
72
Import API
Body:
[
{
"id":"recording",
"userId": "importUser",
"password": "PCS997#62",
"data": {
"qm.service":true
}
}
]
Response
Extract and save cookie header.
Set-Cookie: JSESSIONID=12da1y8o4k9yt1iq0zzb0tgzbw;Path=/
Body:
[
{
"id":"recording",
"status":200,
"userName":{
"first":"ImportUser",
"last":"System"
},
"lang":"en",
"country":""
}
]
Note: Authorization will always return the Set-Cookie header, even in the case of an error. You
must check that the response code or the status field in the response body was 200.
Request
POST to http://<server ip>/api/rest/recording/contact/upload
73
Import API
Body:
Required Fields
Field Description
74
Import API
Field Description
Files Media associated with the contact (at least one). The required
subfields are as follows:
x,y
width x height
Name The username of the recording user. This field is required for
LDAP Authentication and QM Authentication.
Domain The domain name of the recording user. This field is only
required for LDAP Authentication.
75
Import API
Field Description
DisplayId The person associated with the contact. The required subfields
are as follows:
Optional Fields
Optional fields are null if absent, unless specified otherwise.
ClientTimeZone The timezone on the client (for example, Pacific Standard Time).
Current server timezone will be used if absent.
Direction The direction of the call. 1 for inbound calls, 0 for outbound calls.
1(inbound) will be used if the value is absent.
Response
Body:
76
Import API
{
"ContactId":88,
"Files":[
{
"fileName":"audioFile",
"UploadPath":"http://<siteip>/media/upload/88?timestamp=1431010756&
signature=BD00EC5AA30AA56761BED14456556596CCFB1CC0"
},
{
"fileName":"screen1File",
"UploadPath":"http://<siteip>/media/upload/89?timestamp=1431010756&
signature=AF858B426A913A4E10969D805C7CCDA1D9835CEB"
},
{
"fileName":"screen2File",
"UploadPath":"http://<siteip>/media/upload/90?timestamp=1431010756&
signature=2FE41B5D14640539913F4B8F13BA76A675E9BA38"
}
]
}
Request
POST to URLs returned from Contact Creation (that is, the UploadPath).
Headers:
Content-Type: audio/x-wav or video/webm
Content-Length: (This should be automatically included, but service will verify that it is correct.)
Body: corresponding media file
Response
body:
{
"result":200,
"message":"success"
}
77
Import API
General Notes
JSON in examples has been reformatted for reading clarity. Services will accept this formatting but do
not require it. All responses will be returned unformatted.
Example:
"archiveReason":"14",
"qualityReason":"0",
Errors
Authentication
Errors will be in the format of a JSON message. For example:
{"errorMessage":"Exception parsing authentication request."}
Contact Creation
Errors will be in the format of a JSON message. For example:
{"errorMessage":"No person found for data: {\"Name\":\"Steve\"}"}
File Upload
Errors will be a HTML page. For example:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Request validation failed: All requests must have one
signature parameter.</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /media/upload/92. Reason:
<pre> Request validation failed: All requests must have one signature
parameter.</pre></p><h3>Caused by:</h3><pre>java.io.IOException: Request
validation failed: All requests must have one signature parameter.
at com.Cisco.qm.media.MediaApiServlet.service
78
Import API
(MediaApiServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
79
Customer Relationship Management
Integration
Cisco allows you to configure your customer relationship management (CRM) system to send
URL commands to the following Quality Management versions through the Recording Controls API.
You also need to determine the type of metadata that you want to use. Quality Management
Administrator allows you to create up to 10 user-defined metadata fields. The metadata can be sent
from your CRM system to Quality Management.
Best Practices
The following steps are recommended when integrating Quality Management with a CRM system:
1. From Quality Management Administrator, define your required metadata. See the
Administrator Guide for instructions.
This object can be related to another object. You can use the object relationship to connect
a recorded call object to an object in your CRM database. This specific object will contain
links to each call recording in Quality Management.
81
Customer Relationship Management Integration
Example: You can create an object for recorded calls. The following figure shows an
object called Recorded Calls.
3. Create a URL request for the object that sends metadata to Quality Management. This
metadata uniquely identifies the recorded call so that you can located it later.
http://<QM base
server>/recordingcontrols/rest/metadata?userdomain=<domain
name>&Username=<username>&<metadata field>="<value>"~equals
where:
l <QM base server> is the IP address or hostname of the Quality Management base
server
l <domain name> is the domain name
l <username> is the agent's username
l <metadata field> is the name of the metadata field configured in Quality Man-
agement Administrator
l <value> is the data associated with the metadata field
http://10.194.225.163/recordingcontrols/rest/metadata?userdomain=acme&U
sername=john.doe&SF#="1532"~equals
4. In the CRM database, define a workflow action, button, or link that will send the URL
request to the Cisco Recording Controls REST API.
5. From your CRM system, create a URL that will search for data sent to Quality Management
82
Customer Relationship Management Integration
http://<QM base
server>/cwfo/app/Recordings.html?userLang=<en>&userCountry=<NULL>&urlSe
arch=true&userdomain=<domain name>&metadata=<metadata field>~<value>
Note: The search URL must include the userLang and userCountry fields and the
metadata field name.
http://10.194.225.163/cwfo/app/Recordings.html?userLang=<en>&userCountr
y=<NULL>&urlSearch=true&userdomain=acme&metadata=SF#~1532
This URL automates the creation of a link to the recording in Quality Management.
83
Database Schema
This sections describes how data is organized in the Cisco Quality Management database, defines the
fields in each table, and describes changes to the database schema.
n TzFK—Time Zone Foreign Key; a foreign key into the Timezone table. A value of zero indic-
ates that the time zone is currently unknown. Any time zones that remain unknown will
not be updated and these timestamps will be displayed in GMT.
n TzOffset—Time Zone Offset from GMT; a value representing a positive or negative offset
in increments of 15 minutes from GMT (UTC). Adding (TzOffset – 128) × 15 minutes to
the corresponding (GMT) timestamp will always provide the local time. The TINYINT type,
used in Microsoft SQL Server to store TzOffset values, is an unsigned 8-bit value. A value
of 128 indicates “no offset”, and this value is always used when the TzFK is zero. The pos-
sible TzOffset values are shown in the following table.
-23:45 33 33
-23:00 36 36
-22:00 40 40
-21:00 44 44
-20:00 48 48
-19:00 52 52
-18:00 56 56
85
Database Schema
-17:00 60 60
-16:00 64 64
-15:00 68 68
-14:00 72 72
-13:00 76 76
-12:00 80 80
-11:00 84 84
-10:00 88 88
-09:00 92 92
-08:00 96 96
86
Database Schema
TzOffset values in the database are unsigned values ranging from 0 to 255. Java uses signed values
for its 8-bit byte values, so those are also listed for reference.
Current data query example: “What teams are currently in this group?”
87
Database Schema
Historical data query example: “What teams were in this group one year ago?”
Historical data relies on activated and deactivated timestamps to determine the time window during
which a record is valid. A special date value is used to bound the upper range of valid dates. The
Activated column will always have a real date. The Deactivated column will have an upper bound of
2999-12-31 for records that are active.
Whenever a new row is added to a Quality Management table containing an activated column, that
column is set to indicate the date and time when the row was added. This represents the first time at
which the Quality Management has awareness of the record—prior to this time it is as if the record was
not in the system.
Whenever a new row is added to a Quality Management table containing a deactivated column, that
column is set to the 2999-12-31 value. This indicates that the record is active (as in “not yet
deactivated”).
Deactivation means setting the deactivated column to a timestamp value less than 2999-12-31 .
Example: When an agent is removed from a team, Quality Management remembers this by
deactivating (not deleting) the appropriate AgentTeam record.
In this example, Quality Management uses the time and date when the agent was removed from the
team. The activated and deactivated columns for this row now specify the time window during which
this agent was part of that team. To maintain data historically, records are deactivated, not deleted.
The DB Cleaner service is the only application which deletes database records containing activated
and deactivated columns.
In most cases, there is no such thing as reactivation of a record in Quality Management. An activated
timestamp is only written once (when the record is created). The deactivated timestamp is set to 2999-
12-31 when a record is created, and it is only updated once (when the record is deactivated). A record
is never reactivated by resetting the deactivated timestamp to 2999-12-31 , since doing so would
erase the fact that there was a period of time when the record was inactive. Instead, a whole new
record would be created with the reactivation date being stored in the activated column. The
exception to this occurs in the Person table. If a person is deactivated in the Quality Management
database, the deactivated timestamp is set to the current time as in any other table. However, if the
person is reactivated with the same realm.skillTargetId, Quality Management will reactivate the Person
record by setting the deactivation timestamp to the 2999-12-31 value.
When checking if a record was active at a specified date and time, the activated conditional should be
inclusive and the deactivated conditional should be exclusive.
88
Database Schema
Example: 0.2003 indicates the person is a Quality Management agent or knowledge worker.
For more information about the Resource.resourceLoginID and Agent.PeripheralNumber, see the
Database Schema Guide for Cisco Unified CCX and Cisco Unified IP IVR available at
www.cisco.com.
For Team.displayId, the possible PG values are:
89
Database Schema
n AddTzOffset—this function adds a time zone offset value to a specified SQL date and
time value, returning an adjusted date and time.
Use this function to convert a GMT timestamp to one representing the local time.
n TzOffsetToGMT
This function returns a time zone name string in the format <time-zone-abbreviation>
HH:MM, for example, GMT 12:54. It will always be exactly 9 characters.
This function was used in QM 2.3 and later for reporting to construct time zone name
strings using only SQL. In Java code, Date objects are constructed using the proper time
zone.
n millisToHMS
This function returns a string in the format H:MM:SS, converting a milliseconds value to
hours/minutes/seconds format.
Note: The millisToHMS function is not supported in QM 2.6 or later. It is in the Ccr
table for historical purposes only. QM 2.6 or later uses callDuration to perform the
same function. The callDuration is calculated and sorted in the database.
The hours value in the result string can be up to 3 digits long, and is preceded by a minus
sign (—) if the input value is negative. Thus, the returned string is always between 7 and
10 characters in length.
90
Database Schema
l Whether the NULL value is valid for the field. “NULL” if the NULL value is valid or
“NOT NULL” if the NULL value is not valid
l “Primary Key” if the field is a primary key, or part of a primary key, in the database
table
The following table summarizes the complete list of tables for Quality Management
database schema.
Name Direction
91
Database Schema
Name Direction
92
Database Schema
Name Direction
93
Database Schema
Name Direction
94
Database Schema
Name Direction
95
Database Schema
Name Direction
96
Database Schema
Name Direction
97
Database Schema
Name Direction
98
Database Schema
Name Direction
SyncFilterTelephony Contains the records for the sync filter for tele-
phony
99
Database Schema
Name Direction
100
Database Schema
Name Direction
101
Database Schema
ACD
The ACD table contains information about the Automatic Call Distributor (ACD).
activated The GMT date and time when the ACD was con- datetime (16,3)
figured.
NOT NULL
deactivated The GMT date and time when the ACD was removed. datetime (16,3)
NOT NULL
lastModified The last time the ACD was modified. datetime (16,3)
NOT NULL
n ACDQueue
n ACDServer
n ACDType
n ReconciliationHistory
n SyncFilterACD
n Team
n Person
102
Database Schema
ACDQueue
The ACDQueue table contains information about the ACD Queue.
n ACD
ACDServer
The ACDServer table contains information about the ACD server.
lastModified The last time the ACD server was modified. datetime (16,3)
NOT NULL
103
Database Schema
n ACD
n Server
ACDType
The ACDType table contains information about the ACD server.
lastModified The last time the ACD type was modified. datetime (16,3)
NOT NULL
n ACD
Agent
The Agent table contains information about specific agents/knowledge workers. A record is created
when a knowledge worker role is assigned in Quality Management Administrator or when an agent is
synced from the ACD. After being synced or saved in Quality Management Administrator, it will be at
most ten minutes until the Monitoring and Recording Sync service adds this record to the database.
Activation and deactivation dates reflect the time of the database sync that created or deactivated the
record.
activated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was assigned to the person.
NOT NULL
104
Database Schema
deactivated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was removed from the person.
NOT NULL
lastModified The last time the agent was modified. datetime (16,3)
NOT NULL
n Person
n AgentTeam
n Supervisor
AgentTeam
Quality Management creates an AgentTeam record every time an agent is assigned to a team in Quality
Management Administrator or when an agent on a team is synced from the ACD.
After being synced or saved in Quality Management Administrator, it will be at most ten minutes until
the Monitoring and Recording Sync service adds this record to the database. Activation and
deactivation dates reflect the time of the database sync that created or deactivated the record.
activated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was assigned to the team.
NOT NULL
deactivated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was removed from the team.
NOT NULL
lastModified The last time the agent team was modified. datetime (16,3)
NOT NULL
n Team
n Agent
105
Database Schema
Alert
The Alert table contains a record for each user alert. Quality Management generates alerts when a
significant event happens, and sends them to agents, evaluators, supervisors, and managers.
date The date when the message was generated datetime (16,3)
NOT NULL
state Identifies any error condition associated with the alert. nvarchar[64]
The possible states are:
0—Idle
1—Info Ready
2—Info
3—Warning
4—Error
5—Fatal Error
type Identifies the name of the alert type. The type is nvarchar[64]
related to name in the AlertType table. However, since
Alerts can be sent by any application (even third
parties), this is not a foreign key because the alert sys-
tem might not use all alert types that are listed under
name in the AlertType table. The value in this column
might also include alert types that are not listed in the
AlertType table.
n Person
106
Database Schema
AlertType
The AlertType table contains a record for each alert type.
n EvalAlerts
ApprovalType
The ApprovalType table contains information about the approval type.
n EvalForm
ArchiveAudit
Quality Management creates a new record in the ArchiveAudit table every time an audio recording is
played in the Search and Play widget in Unified Workforce Optimization.
personFK A foreign key to the ID in the Person table. This is the int
person who played the recording.
NOT NULL
107
Database Schema
accessed The date and time playback of the contact started in datetime (16,3)
the Evaluate and Review widget.
NOT NULL
accessedTzFK A foreign key into the Timezone table. A value of zero tinyint
indicates that the time zone is currently unknown. An
NOT NULL
unknown time zone might be updated at some point.
For more information, see Dates in the Database.
n Ccr
n Person
n Timezone
AxlUCCMSchema
The AxlUCCMSchema associates a version of Cisco Unified CM with an Administration XML (AXL)
schema version in a telephony group.
Ccr
Quality Management creates a new record in the Ccr table for each call or call leg, known as a
Customer Contact Record (Ccr) processed by the system. A new call leg starts each time that a call is
transferred or redirected.
108
Database Schema
A Ccr record contains detailed information about the call or leg. At least one such record exists for
each call.
startTime The date and time this contact began, in GMT. datetime (16,3)
NOT NULL
localStartTime The local start time of the call in the timezone where datetime (16,3)
the call occurred. The localStartTime is used by
NOT NULL
Quality Management Reporting to compare the start
time with the local date range selections when view-
ing reports.
duration The duration of the call from time answered to time int
dropped, in milliseconds.
NOT NULL
109
Database Schema
icmCallId The Peripheral Call Key (or Call ID) for the call from varchar(128)
the CCM system.
NOT NULL
evaluatorFK A foreign key to the ID in the Person table. This is the int
person who evaluated the Ccr or claimed it for eval-
NOT NULL
uation, or null if it has not yet been claimed or eval-
uated.
110
Database Schema
isTraining 1—the Ccr was marked for training during the eval- bit
uation process.
NOT NULL
0—the Ccr was not marked for training during the
evaluation process.
isPip 1—the Ccr was marked for Human Resources during bit
the evaluation process.
NOT NULL
0—the Ccr was not marked for Human Resources
during the evaluation process.
111
Database Schema
lastModified The last time the Ccr was modified. datetime (16,3)
NOT NULL
n ArchiveAudit
n Cdr
n CdrCcr
n CcrType
n Eval
n EvalForm
n EvalGoalProgress
n EvalState
n Groups
n LicenseBundle
112
Database Schema
n Media
n MetaData
n Person
n ReconciliationHistory
n RecordingEvent
n RecordingReason
n RecordingType
n Site
n Team
n TelephonyGroup
n Timezone
n UploadState
n Workflow
CcrType
The CcrType specifies the type of contact as either call or non-call.
Cdr
Quality Management creates a new record in the call detail record (Cdr) table for each associated
contact. The information is pulled from the Cisco call detail records. See Cisco Unified
Communications Manager Call Detail Records Administration Guide for additional information.
113
Database Schema
dateTimeConnect The date and time that the call con- int
nects. If the call is never answered,
NOT NULL
this value shows zero. The time is
stores as UTC.
The default value is 0.
114
Database Schema
115
Database Schema
116
Database Schema
CdrCcr
The CdrCcr associates Cisco CDR records with QM CCR records.
n Ccr
DashRoleView
The DashRoleView table associates a dashboard view with a role.
n DashView
n Role
117
Database Schema
DashUserView
Quality Management loads the DashUserView table with the valid Dashboard views for each user.
id Numeric identifier for this Dashboard user view. This int identity
identifier is auto-generated by the database.
NOT NULL
Primary Key
n Person
n DashView
DashView
Quality Management loads the DashView table with the valid Dashboard views.
id Numeric identifier for this Dashboard view. This iden- int identity
tifier is auto-generated by the database.
NOT NULL
Primary Key
118
Database Schema
n DashRoleView
n DashUserView
n DashWidgetView
DashWidget
Quality Management loads the DashWidget table with the valid Dashboard widgets.
id Numeric identifier for this Dashboard gadget. This iden- int identity
tifier is auto-generated by the database.
NOT NULL
Primary key
n DashWidgetRole
n DashWidgetSetting
n DashWidgetView
DashWidgetRole
Quality Management loads the DashWidgetRole table with the valid roles for each widget.
119
Database Schema
n Role
n DashWidget
DashWidgetSetting
Quality Management loads the DashWidgetSetting table with the valid settings for each widget.
defaultValue The default value for this Dashboard gadget setting. nvarchar
(1073741823)
NOT NULL
n DashWidget
n DashWidgetViewSetting
120
Database Schema
DashWidgetView
Quality Management loads the DashWidgetView table with the valid views for each widget.
n DashWidget
n DashView
n DashWidgetViewSetting
DashWidgetViewSetting
Quality Management loads the DashWidgetViewSetting table with the valid settings for each
Dashboard view.
121
Database Schema
n DashWidgetView
n DashWidgetSetting
n Person
DbProperties
Quality Management adds a record for various general quality management settings after the schema
is created. This is a generic table where the data is somewhat dynamic depending on the version of
the Quality Management. The database properties in this version are:
n ArchiveFileType: 3
Note: MetadataKey will only be added to this table if and when encrypted Metadata Fields are
being used in Quality Management.
122
Database Schema
Eval
Quality Management adds a record to the Eval table each time a Ccr is claimed for evaluation. This
record is added the first time the evaluation is saved, whether it is just claimed or scored partially or
fully.
A Ccr record contains detailed information about the call or leg. At least one such record exists for
each call.
totalScore The score of this evaluation. Null if the evaluation has float
been claimed but no questions have yet been
NULL
scored.
evaluated The date and time this evaluation was last saved, in datetime (16,3)
GMT.
NOT NULL
evaluatedTzFK A foreign key into the Timezone table. A value of zero tinyint
indicates that the time zone is currently unknown. An
NOT NULL
unknown time zone might be updated at some point.
For more information, see Dates in the Database.
123
Database Schema
evaluatorFK A foreign key to the ID in the Person table. This is the int
person who evaluated the Ccr or claimed it for eval-
NOT NULL
uation, or null if it has not yet been claimed or eval-
uated.
additiveScore The points for this option are added together to get int
the final score, assuming no Key Performance Indic-
NOT NULL
ator (KPI) options are selected.
lastModified The last time the Eval was modified. datetime (16,3)
NOT NULL
n Ccr
n EvalForm
n EvalQuestion
n EvalComment
n EvalState
n Person
n Timezone
n EvalComment
n EvalState
n Ccr
124
Database Schema
n Timezone
n Person
EvalAlerts
The EvalAlerts table contains a record for each evaluation alert. Quality Management generates
evaluation alerts when changes are made to an evaluation form.
enabled 1—if users with a specified role can receive the spe- bit
cified alert for the evaluation form.
NOT NULL
0—if users with a specified role cannot receive the
specified alert for the evaluation form.
n EvalForm
n Role
n AlertType
EvalComment
Quality Management adds a record to the EvalComment table each time a comment is added to a
particular evaluation of a recording.
125
Database Schema
personFK A foreign key to the ID of the person who made the int
comment, in the Person table.
NOT NULL
created The date and time the comment was created and datetime (16,3)
saved, in GMT.
NOT NULL
126
Database Schema
n Eval
n EvalFormQuestion
n EvalFormSection
n Person
n Timezone
EvalForm
Quality Management adds a record to the EvalForm table each time a new evaluation form is created.
The system adds defaults to this table for the four evaluation form templates that are installed with
Quality Management (one blank template and two templates with sections and questions).
127
Database Schema
created Date and time this evaluation form was cre- datetime
ated, in GMT. (16,3)
NOT NULL
128
Database Schema
129
Database Schema
n Ccr
n Eval
n EvalAlerts
n ApprovalType
n EvalFormScoringType
n EvalFormSection
n Timezone
n WorkflowClassifier
EvalFormQuestion
Quality Management adds a record to the EvalFormQuestion table each time a new question in an
evaluation form section is created. The system adds defaults to this table for the evaluation form
templates that are installed with Quality Management.
130
Database Schema
lastModified The last time the EvalFormQuestion was modified. datetime (16,3)
NOT NULL
n EvalComment
n EvalFormSection
n EvalQuestion
n EvalQuestionOption
EvalFormQuestionOption
Quality Management adds a record to the EvalFormQuestionOption table each time an option is
configured for a question.
131
Database Schema
lastModified The last time the EvalFormQuestionOption was mod- datetime (16,3)
ified.
NOT NULL
n EvalFormQuestion
n EvalFormQuestionOptionType
n EvalQuestion
EvalFormQuestionOptionType
Quality Management adds a record to the EvalFormQuestionOptionType table each time a new option
type for a question is created.
132
Database Schema
n EvalFormQuestionOption
n EvalFormQuestionTemplateOption
EvalFormQuestionTemplate
Quality Management adds a record to the EvalFormQuestionTemplate table each time a template is
created.
id Numeric identifier for this evaluation form question tem- int identity
plate.
NOT NULL
Primary Key
n EvalFormQuestionTemplateOption
EvalFormQuestionTemplateOption
Quality Management adds a record to the EvalFormQuestionTemplateOption table each time a
template option is selected.
id Numeric identifier for this evaluation form question tem- int identity
plate option.
NOT NULL
Primary Key
133
Database Schema
ordinal The order number for this question template option. int
1—if the question is a key performance indicator (KPI) NOT NULL
question.
0—if the question is not a KPI question.
isDefault The default answer for this question template option. bit
n EvalFormQuestionTemplate
n EvalFormQuestionOptionType
EvalFormScoringType
Quality Management adds a record to the EvalFormScoringType table each time a new scoring type is
created.
name The type of scoring. The scoring type can be points- varchar[32]
based or percentage-based.
n EvalForm
EvalFormSection
Quality Management adds a record to the EvalFormSection table, each time a new section of an
evaluation form is created. The system adds defaults to this table for the evaluation form templates
that are installed with Quality Management.
134
Database Schema
startColor The starting gradient color for the chart results in a varchar[8]
points-based evaluation form. If None is chosen, the
NOT NULL
section will not appear in the chart.
endColor The ending gradient color for the chart results in a varchar[8]
points-based evaluation form. The ending gradient
NOT NULL
color is predefined based on the starting gradient
color.
lastModified The last time the EvalFormSection was modified. datetime (16,3)
NOT NULL
n EvalForm
n EvalFormQuestion
n EvalComment
EvalGoal
The EvalGoal table contains information about the evaluation goal.
135
Database Schema
deactivated The GMT date and time when the evaluation goal was datetime (16,3)
removed.
NOT NULL
activated The GMT date and time when the evaluation goal was datetime (16,3)
configured.
NOT NULL
lastModified The last time the evaluation goal was modified. datetime (16,3)
NOT NULL
n EvalGoalClassifierItem
n EvalGoalEvaluatorSet
n EvalGoalProgress
n EvalGoalTime
136
Database Schema
n EvalGoalType
n EvalGoalStatus
n EvalGoalWhoType
EvalGoalClassifierItem
The EvalGoalClassifierItem table contains information about the progress of the evaluation goal.
field nvarchar(5012)
NOT NULL
fieldKey nvarchar(128)
NOT NULL
lastModified The last time the EvalGoalClassifierItem was modified. datetime (16,3)
NOT NULL
n EvalGoal
n EvalGoalClassifierType
EvalGoalClassifierType
The ACD table contains information about the evaluation goal classifier type.
137
Database Schema
lastModified The last time the evaluation goal classifier type was datetime (16,3)
modified.
NOT NULL
n EvalGoalClassifierItem
EvalGoalEvaluatorSet
The EvalGoalEvaluatorSet table contains information about the evaluation goal for an evaluator
activated The GMT date and time when the evaluation goal was datetime (16,3)
activated for the evaluator.
NOT NULL
deactivated The GMT date and time when the evaluation goal was datetime (16,3)
deactivated for the evaluator.
NOT NULL
lastModified The last time the evaluation goal for an evaluator was datetime (16,3)
modified.
NOT NULL
n EvalGoal
n Person
EvalGoalProgress
The EvalGoalProgress table contains information about the progress of the evaluation goal.
138
Database Schema
completedTime The time when the evaluation goal was completed datetime (16,3)
NOT NULL
lastModified The last time the EvalFormQuestion was modified. datetime (16,3)
NOT NULL
n Ccr
n EvalGoal
n Person
EvalGoalStatus
The EvalGoalStatus table contains information about the status of the evaluation goal.
lastModified The last time the evaluation goal status was modified. datetime (16,3)
NOT NULL
139
Database Schema
n EvalGoal
EvalGoalTime
The EvalGoalTime table contains information about when the evaluation goal was last modified.
lastModified The last time the evaluation goal time was modified. datetime (16,3)
NOT NULL
n EvalGoal
EvalGoalType
The EvalGoalType table contains information about the type of evaluation goal.
lastModified The last time the evaluation goal type was modified. datetime (16,3)
NOT NULL
n EvalGoal
EvalGoalWhoType
The EvalGoalWhoType table contains information about the type of evaluation goal.
140
Database Schema
name Identifies the name of the evaluation goal who type. varchar[64]
NOT NULL
lastModified The last time the who type for the evaluation goal was datetime (16,3)
modified.
NOT NULL
EvalGoal
EvalQuestion
Quality Management adds a record to the EvalQuestion table each time a question is scored for a
particular evaluation of a recording.
lastModified The last time the EvalQuestion was modified. datetime (16,3)
NOT NULL
n Eval
n EvalFormQuestion
n EvalFormQuestionOption
141
Database Schema
EvalState
Quality Management loads the EvalState table with default evaluation state values after the database
schema is created. Each record in this table is associated with an evaluation state for a Ccr record.
The defaults values are shown in the following table.
ID Name
0 Unscored
1 Scored
2 In-Progress
3 Needs Approval
The EvalState table contains the fields shown in the following table.
n Ccr
n Eval
Evaluator
The Evaluator table contains information about specific evaluators. A record is created when an
evaluator role is assigned in Quality Management Administrator. After saved in Quality Management
Administrator, it will be at most ten minutes until the Monitoring and Recording Sync service adds this
record to the database. Activation and deactivation dates reflect the time of the database sync that
created or deactivated the record.
142
Database Schema
activated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was assigned to the person.
NOT NULL
deactivated The GMT date and time when the agent or knowledge datetime (16,3)
worker role was removed from the person.
NOT NULL
n Person
n Team
EvaluatorType
The EvaluatorType table contains information on the types of administrator roles.
id Numeric identifier for the evaluator role type, auto-gen- int identity
erated by the database.
NOT NULL
Primary Key
n Person
EventLogging
The EventLogging table contains information on the event logging.
143
Database Schema
eventDateTime The GMT date and time when the event occurred. datetime (16,3)
NOT NULL
n EventLoggingType
n EventLoggingParameter
n Server
EventLoggingParameter
The EventLoggingParameter table contains information on the event logging parameter.
listOrder int
NOT NULL
n EventLoggingType
EventLoggingType
The ACD table contains information about the event logging type.
144
Database Schema
id Numeric identifier for the event logging type, auto-gen- int identity
erated by the database.
NOT NULL
Primary Key
n EventLogging
Field
Quality Management loads the Field table with the valid fields.
id Numeric identifier for this field. This number is auto- int identity
generated by the database.
NOT NULL
Primary Key
n FieldCategory
n PersonField
n UI_Feature
145
Database Schema
FieldCategory
Quality Management loads the FieldCategory table with the valid field categories.
n Field
FileType
Quality Management loads the FileType table with default file type values after the database schema is
created. The default values are shown in the following table.
The FileType table contains the fields shown in the following table.
146
Database Schema
n MediaFile
Filter
Quality Management loads the Filter table with the valid searches.
id Numeric identifier for this search. This number is auto- int identity
generated by the database.
NOT NULL
Primary Key
n Person
n UI_Feature
147
Database Schema
FilterParameter
Quality Management loads the search filter parameters.
id Numeric identifier for this filter parameter. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
n FilterProperties
n RequiredFilterParam
FilterProperties
Quality Management loads the search filter properties.
id Numeric identifier for this filter parameter. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
n SyncFilter
n FilterParameter
148
Database Schema
GamificationConnectionInfo
Quality Management loads the gamificationConnectionInfo table with the valid connection information
for gamification.
n Server
n GamificationEventType
GamificationEvent
GamificationEvent contains the records of events for gamification.
149
Database Schema
eventDateTime The GMT date and time when the event datetime
occurred. (16,3)
NOT NULL
insertDateTime The GMT date and time when the insert datetime
occurred. (16,3)
NOT NULL
n Person
n GamificationEventType
GamificationEventType
GamificationEventType contains the records of event types for gamification
n GamificationConnectionInfo
n GamificationEvent
150
Database Schema
n GamificationLevelPointRange
GamificationIcon
GamificationIcon contains the records of icons for gamification.
n GamificationLevelScoring
GamificationLevel
GamificationLevel contains the records of levels for gamification.
n GamificationLevelPointRange
n GamificationLevelScoring
GamificationLevelPointRange
GamificationLevelPointRange contains the records of the level point ranges for gamification.
151
Database Schema
n GamificationEventType
n GamificationLevel
n GamificationLevelPointRangePerson
n GamificationPointRange
GamificationLevelPointRangePerson
GamificationLevelPointRangePerson contains the records of the level point range person for
gamification
152
Database Schema
n GamificationLevelPointRange
n Person
GamificationLevelScoring
GamificationLevelScoring contains the records of the level scoring for gamification.
n GamificationIcon
n GamificationLevel
GamificationPointRange
GamificationPointRange contains the records of point ranges for gamification.
153
Database Schema
n GamificationLevelPointRange
n GamificationPointRangeScoring
GamificationPointRangeScoring
GamificationPointRangeScoring contains the records of point range scoring for gamification.
n GamificationPointRange
Gateway
The Gateway table contains configuration information for SPAN recording.
n Server
154
Database Schema
GetRandNumber
The GetRandNumber view generates a random number from SQL. This random number is used by
Workflow to randomly select recordings.
Groups
A record is added to the Groups table every time a group is created and saved in Quality Management
Administrator.
After being saved in Quality Management Administrator, it will be at most ten minutes until the
Monitoring and Recording Sync service adds this record to the database. Activation and deactivation
dates reflect the time of the database sync that created or deactivated the record.
id Numeric identifier for this group. This number is auto- int identity
generated by the database.
NOT NULL
Primary Key
activated The GMT date and time when the group was created. datetime (16,3)
NOT NULL
deactivated The GMT date and time when the group was removed. datetime (16,3)
NOT NULL
n Ccr
n Manager
n TeamGroup
LicenseBundle
The LicenseBundle table contains information about the license bundle for Quality Management.
155
Database Schema
n Ccr
LicenseLibrary
The LicenseLibrary table contains license information. The data in the table is encrypted. Cisco does
not publish the encryption key.
LoginState
The LoginState table contains the ACD and Quality Management login states.
156
Database Schema
n Person
Manager
Quality Management creates a record in the Manager table when a group is assigned to a manager.
After being saved in Quality Management Administrator, it will be at most ten minutes until the
Monitoring and Recording Sync service adds this record to the database. Activation and deactivation
dates reflect the time of the database sync that created or deactivated the record.
personFK A foreign key to the ID in the Person table. This is the int
person managing the group.
NOT NULL
groupFK A foreign key to the ID in the Groups table. This is the int
group being managed.
NOT NULL
activated The GMT date and time when the group was assigned datetime (16,3)
to the manager.
NOT NULL
deactivated The GMT date and time when the group was removed datetime (16,3)
from the manager.
NOT NULL
n Person
n Groups
157
Database Schema
Media
Quality Management creates a new record in the Media table every time an audio or screen recording
is uploaded to the Quality Management Record Server.
icmCallId The Peripheral Call Key (or Call ID) for the call from the varchar(256)
Unified CM system.
NOT NULL
offset The time the recording starts relative to the startTime int
timestamp of the Ccr, in milliseconds. A positive value
NOT NULL
indicates the recording starts after the startTime and
negative value indicates that it starts before.
n Ccr
n MediaFile
n MediaType
158
Database Schema
MediaFile
MediaFile contains records of audio and screen media files.
159
Database Schema
n Media
n Path
n FileType
n Server
n UploadState
MediaType
The MediaType table contains information on the types of media.
n Media
MetaData
A MetaData record is created or updated when the metadata for a Ccr is inserted or edited from the
Quality Management application in Unified Workforce Optimization or the Recording API for Quality
Management.
160
Database Schema
lastModified The last time the metadata was modified. datetime (16,3)
NOT NULL
n MetaDataField
n Ccr
MetaDataField
A new record is added to the MetaDataField table for every user-defined metadata field that is
configured in Quality Management Administrator.
id Numeric identifier for this metadata field. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
displayName The display name of the metadata field. This is dis- nvarchar(128)
played to the user in Unified Workforce Optimization.
NOT NULL
keyName The unique key name of the metadata field that can- nvarchar(78)
not be edited after creation of the metadata field.
NOT NULL
isEncrypted 0—if the metadata for this metadata field will not be bit
encrypted in the database.
NOT NULL
1—if the metadata for this metadata field will be
encrypted.
isExportable 0—if the metadata for this metadata field will not be bit
added as metadata to exported media files.
NOT NULL
1—if the metadata for this metadata field will be
added as metadata to exported media files.
161
Database Schema
lastModified The last time the metadata field was modified. datetime (16,3)
NOT NULL
n MetaData
n MetaDataType
n MetaDataMappableColumns
n RecordingApiCommand
MetaDataMappableColumns
A new record is added to the metaDataMappableColumns table for every mappable metadata column
that is configured in Quality Management Administrator.
id Numeric identifier for this metadata field. This number bigint identity
is auto-generated by the database.
NOT NULL
Primary Key
n MetaDataField
MetaDataType
Quality Management loads the MetaDataType table with default metadata type values after the
database schema is created. The default values for the type of user-defined metadata are shown in
the following figure.
162
Database Schema
ID Name
0 Text
1 Number
2 Date
The MetaDataType table contains the fields shown in the following table.
lastModified The last time the metadata type was modified. datetime (16,3)
NOT NULL
n MetaDataField
Path
A record is inserted in the Path table any time a recording is uploaded to a new path. The path name
indicates the relative path to which a recording was uploaded. The full path for retrieving this
recording is constructed by appending this to the screenBasePath or audioBasePath of the host. The
forward slash '/' character must be used as the separator for multiple directory names.
id Numeric identifier for this path. This number is auto- int identity
generated by the database.
NOT NULL
Primary Key
n MediaFile
163
Database Schema
Person
A record is inserted in the Person table any time a person is configured and saved in Quality
Management Administrator.
activated The GMT date and time when the person was datetime
created (in the case of knowledge worker) or (16,3)
configured (from the ACD).
NOT NULL
164
Database Schema
deactivated The GMT date and time when the person was datetime
deleted. (16,3)
NOT NULL
isArchiveUser 0—if the person has the archive user role. bit
1—if the person does not have the archive NOT NULL
user role.
isHotdeskDefaultUser 0—if the person is the default Hot Desk user. bit
1—if the person is not the default Hot Desk NOT NULL
user.
165
Database Schema
isTelephony Administrator 0—if the person has the telephony admin- bit
istrator user role.
NOT NULL
1—if the person does not have the telephony
administrator user role.
n ACD
n Agent
n Alert
n ArchiveAudit
166
Database Schema
n Ccr
n DashUserView
n DashWidgetViewSetting
n Eval
n EvalComment
n EvalGoalEvaluatorSet
n EvalGoalProgress
n Evaluator
n EvaluatorType
n Filter
n GamificationEvent
n GamificationLevelPointRangePerson
n LoginState
n Manager
n PersonField
n Realm
n QMAdminAudit
n RealTimeRecordingMonitorState
n RecordingApiCommand
n RecordingStateAudit
n ReportUserConfig
n UserReport
n ScreenMonitoring
n VoiPMonitorDevice
n WorkflowRuleWhoPerson
PersonField
Quality Management loads the PersonField table with the valid fields for each person.
167
Database Schema
width The width of the Person field that appears in the int
Recordings, Live Monitoring, and Recording Mon-
NOT NULL
itoring applications.
n Field
n Person
QMAdminAudit
Quality Management loads the QMAdminAudit table with the valid QM administrator audit information.
timestamp The date and time of the QM Admin Audit command datetime (16,3)
occurred.
168
Database Schema
jsonDiff nvarchar[4112]
stringDiff nvarchar[4112]
n Person
n QMAdminAuditAction
n QMAdminAuditArea
QMAdminAuditAction
Quality Management loads the QMAdminAuditAction table with the valid QM administrator audit action
information.
n QMAdminAudit
QMAdminAuditArea
Quality Management loads the QMAdminAuditArea table with the valid QM administrator audit area
information.
169
Database Schema
n QMAdminAudit
Realm
Quality Management loads the Realm table with the default Realm values after the database schema
is created. The Realm table is used as a foreign key in other tables to indicate whether a team was
created in Quality Management Administrator or synced into Quality Management Administrator from
the ACD.
The defaults values are shown in the following table.
ID Name
0 Quality Management
1 ICM
The Realm table contains the fields shown in the following table.
n Person
RealTimeRecordingMonitorState
The RealTimeRecordingMonitorState table specifies the current recording state.
170
Database Schema
failureTime The date and time of the last failure. datetime (16,3)
successTime The date and time of the last success. datetime (16,3)
n Person
n RecordingStateCause
ReconciliationHistory
A record is inserted in the ReconciliationHistory table each time a call is reconciled.
callLegReason smallint
NOT NULL
personMatchStatus smallint
NOT NULL
datetimeUTC The GMT (UTC) date and time when the call was datetime (16,3)
reconciled.
NOT NULL
171
Database Schema
n ACD
n Ccr
ReconciliationHistoryStatus
The ReconciliationHistoryStatus table contains information about the Automatic Call Distributor (ACD).
RecordingApiCommand
The RecordingApiCommand table specifies the Recording API command.
timestamp The date and time of the Recording API com- datetime
mand was issued. (16,3)
172
Database Schema
n RecordingApiCommandType
n Person
n MetaDataField
RecordingApiCommandType
The RecordingApiCommandType table tracks the Recording API commands sent by users and
includes data sent if applicable.
id The unique ID for the Recording API command type. int identity
NOT NULL
Primary Key
n RecordingApiCommand
RecordingCluster
A record is inserted in the RecordingCluster table any time a recording cluster is configured and
saved in Quality Management Administrator.
id Numeric identifier for this recording cluster. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
173
Database Schema
n RecordingClusterServer
n SignalingGroup
n Site
n VoiPMonitorDevice
RecordingClusterServer
A record is inserted in the RecordingClusterServer table any time a Record Server is configured for a
recording cluster and saved in Quality Management Administrator.
priority The priority for the server in the recording cluster. tinyint
NULL
n RecordingCluster
n Server
RecordingEvent
The RecordingEvent table contains records of recording events.
174
Database Schema
audioRecordingOffset The offset (in milliseconds) from the start of the int
audio recording.
NOT NULL
lastModified The last time the recording event was modified. datetime (16,3)
NOT NULL
n Ccr
n RecordingEventType
RecordingEventType
The RecordingEventType table contains a record for each type of recording event that Quality
Management supports (for example, talkover and silence).
175
Database Schema
displayName The display name for this recording event type. nvarchar(256)
lastModified The last time the recording event type was modified. datetime (16,3)
NOT NULL
n RecordingEventTypeCategory
n RecordingEvent
RecordingEventTypeCategory
The RecordingEventTypeCategory table contains a record of the recording event type’s category.
n RecordingEventType
RecordingReason
The RecordingReason table contains a record for each reason why a Ccr is or is not recorded for
quality or archive purposes. Quality Management loads the RecordingReason table with the default
RecordingReason values after the database schema is created. Negative values indicate that the Ccr
176
Database Schema
was not recorded and positive values indicate that it was recorded. The name field contains keys to
externalized strings. The localized values appear in Unified Workforce Optimization.
The default values are shown in the following table.
—11 rec_reason_compliance_ Agent Licensed for Com- Agent Licensed for Com-
license pliance Only pliance Only
177
Database Schema
178
Database Schema
The RecordingReason table contains the fields shown in the following table.
name Name of this recording reason. This field contains keys varchar(32)
for strings externalized for localization.
NOT NULL
n Ccr—Every Ccr record has two associated records in the RecordingReason table, one
indicates the reason why the Ccr was or was not recorded for Archiving and the other
indicates the reason why the Ccr was or was not recorded for Quality Management
purposes.
n WorkflowRuleWhat
RecordingStateAudit
The RecordingStateAudit table contains the audit information for the recording state.
179
Database Schema
deviceName The recording device where the event occurred. nvarchar (510)
NOT NULL
n Person
n RecordingStateCause
RecordingStateCause
The RecordingStateCause table contains the available failure/success causes for the recording state.
180
Database Schema
n RealTimeRecordingMonitorState
n RecordingStateAudit
RecordingType
The RecordingType table indicates the VoIP monitor recording type associated with a
VoiPMonitorDevice.
n Ccr
n VoiPMonitorDevice
Report
The Report table contains information on each report.
181
Database Schema
n ReportType
n ReportConfiguration
n ReportRequiredParam
n ReportRoleScope
n ReportUserConfig
n UserReport
ReportColumn
The ReportColumn table identifies the columns in a report.
n ReportConfiguration
n ReportUserConfig
ReportConfiguration
The ReportConfiguration table contains the report configuration information.
182
Database Schema
n Report
n ReportColumn
ReportParameter
The ReportParameter table identifies the parameters in a report.
n ReportRequiredParam
n UserReportParameters
ReportRequiredParam
The ReportRequiredParam table identifies the required parameters in a report.
183
Database Schema
n Report
n ReportParameter
ReportRole
The ReportRole table identifies the roles associated with a report.
n ReportRoleScope
ReportRoleScope
The ReportRoleScope table identifies the roles that can view a report.
n Report
n ReportRole
184
Database Schema
ReportType
The ReportType table identifies the available for a report types.
n Report
ReportUserConfig
The ReportUserConfig identifies who has access to a report.
n Person
n Report
n ReportColumn
n UserReport
185
Database Schema
RequiredFilterParam
A record is inserted in the RequiredFilterParam table that identifies the required parameters for an
ACD platform.
platform The identity of the ACD platform. The possible values int
are:
NOT NULL
l 2—Unified CCX
n FilterParameter
RetentionData
The RetentionData table is an association between RetentionType and Workflow tables and contains
foreign keys to both tables. It contains values for each configured retention period (for example,
Archive, HR, Scored, Tagged, Training, or Unscored) for each workflow and each retention type. The
RetentionData table contains the values of the retention periods configured for each workflow and
each retention type.
value The value of the retention period. For Scored and int
Unscored retention periods, the units are in days. For
NOT NULL
all other retention periods, the units are in months.
n Workflow
n RetentionType
186
Database Schema
RetentionType
A RetentionType contains the available retention types (for example, Archive, HR, Scored, Tagged,
Training, or Unscored). Quality Management fills this table after the schema is created.
ID Name
1 Archive
2 Unscored
3 Scored
4 Pip
5 Tagged
6 Training
The RetentionType table contains the fields shown in the following table
n RetentionData
Role
The Role table contains a record for each available role in Quality Management.
187
Database Schema
n DashRoleView
n DashWidgetRole
n EvalAlerts
n UI_FeaturePermissions
RtpFilter
The Server table contains the port and IP address information that should be filtered from recording.
Use the exclude CAD recording/monitoring traffic.
n RtpFilterType
RtpFilterType
The RtpFilterType contains records for the possible RTP filter types.
188
Database Schema
n RtpFilter
ScreenMonitoring
Quality Management creates a new record in the ScreenMonitoring table every time a agent logs into
their desktop where Desktop Record service is running.
invite The invite sent from the Desktop Recording service on varchar(1500)
the agent’s client machine.
LastModified The last time this record was modified. datetime (16,3)
NOT NULL
n Person
Server
The Server table contains records for each configured server.
id Numeric identifier for this server. This number is auto- bigint identity
generated by the database.
NOT NULL
Primary Key
189
Database Schema
n ACDServer
n EventLogging
n GamificationConnectionInfo
n Gateway
n MediaFile
n RecordingClusterServer
n ServerProperties
n ServerType
n SignalingGroup
n SignalingGroupServer
n SiteServer
n TelephonyGroupServer
ServerProperties
The ServerProperties table specifies the properties for each configured server.
190
Database Schema
n Server
ServerType
The ServerType table specifies the type of server for each configured server.
id Numeric identifier for this server. This number is auto- bigint identity
generated by the database.
NOT NULL
Primary Key
n Server
SignalingGroup
The SignalingGroup table specifies the type of server for each configured server.
id Numeric identifier for this signaling group. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
191
Database Schema
n RecordingCluster
n Server
n SignalingGroupServer
n TelephonyGroup
SignalingGroupServer
The SingalingGroupServer table specifies the type of server for each configured server.
signalingAssociation smallint
NOT NULL
priority smallint
NOT NULL
n Server
n SignalingGroup
Site
The Site table contains records for each configured site.
192
Database Schema
n Ccr
n RecordingCluster
n SiteServer
n Team
SiteServer
The SiteServer table specifies which servers belong to a site.
n Site
n Server
193
Database Schema
Supervisor
Quality Management creates a Supervisor record every time a team is assigned to be supervised by a
person with a supervisor role in Quality Management Administrator and/or for every supervisor of a
team at the time a supervisor is synced from the ACD. This means that when a supervisor supervises
two teams, two records are created.
After being synced or saved in Quality Management Administrator, it will be at most ten minutes until
the Monitoring and Recording Sync service adds this record to the database. Activation and
deactivation dates reflect the time of the database sync that created or deactivated the record.
activated The GMT date and time when the supervisor role was datetime (16,3)
assigned to the person or the ACD supervisor was con-
NOT NULL
figured.
deactivated The GMT date and time when the supervisor role was datetime (16,3)
removed from the person or the person was deleted or
NOT NULL
unconfigured.
lastModified The last time the supervisor was modified. datetime (16,3)
NOT NULL
n Agent
n Team
Survey
The Survey table specifies the type of server for each configured server.
id Numeric identifier for this survey. This number is auto- bigint int identity
generated by the database.
NOT NULL
Primary Key
194
Database Schema
lastModified The last time the survey was modified. datetime (16,3)
NOT NULL
n SurveyForm
n SurveyResults
SurveyForm
Quality Management adds a record to the SurveyForm table each time a new survey form is created.
id Numeric identifier for this evaluation form. This iden- int identity
tifier is auto-generated by the database.
NOT NULL
Primary Key
195
Database Schema
created Date and time this survey form was created, in GMT. datetime (16,3)
NOT NULL
n Survey
n SurveyFormStatus
n SurveyQuestion
SurveyFormStatus
Quality Management adds a record to the SurveyFormStatus table each time the status is updated.
n SurveyForm
SurveyQuestion
Quality Management adds a record to the SurveyQuestion table, each time a new question is created
in a survey form.
20 Description Storage
196
Database Schema
20 Description Storage
n SurveyForm
SurveyResults
Quality Management adds a record to the SurveyResults table, for each survey result.
197
Database Schema
n Survey
SyncFilter
The SyncFilter table contains information about the synchronization filter.
n FilterProperties
n SyncFilter
n SyncFilterTelephony
SyncFilterACD
The SyncFilterACD table contains information about the ACD sync filter.
n syncFilter
n ACD
SyncFilterTelephony
The SyncFilterTelephony table contains information about the telephony sync filter.
198
Database Schema
n syncFilter
n TelephonyGroup
Team
The Team table contains information about specific teams. A record is created when a knowledge
worker team is created in the Quality Management Administrator or when a team is synced from the
ACD. After being synced or saved in Quality Management Administrator, it will be at most ten minutes
until the Monitoring and Recording Sync service adds this record to the database. Activation and
deactivation dates reflect the time of the database sync that created or deactivated the record.
id Numeric identifier for the team. This number is auto- int identity
generated by the database.
NOT NULL
Primary Key
realmFK A foreign key to the Realm table for whether this is a tinyint
team created in Quality Management or synced
NOT NULL
from the ACD.
activated The GMT date and time when the team was created datetime (16,3)
(or synced from the ACD).
NOT NULL
deactivated The GMT date and time when the team was deleted. datetime (16,3)
NOT NULL
199
Database Schema
lastModified The last time the team was modified. datetime (16,3)
NOT NULL
n ACD
n AgentTeam
n Ccr
n Evaluator
n Site
n Supervisor
n TeamGroup
n WorkflowRuleWhoTeam
n Workflow
TeamGroup
Quality Management creates a TeamGroup record every time a team is assigned to a group in Quality
Management Administrator.
After being synced or saved in Quality Management Administrator, it will be at most ten minutes until
the Monitoring and Recording Sync service adds this record to the database. Activation and
deactivation dates reflect the time of the database sync that created or deactivated the record.
200
Database Schema
activated The GMT date and time when the team was assigned datetime (16,3)
to the group.
NOT NULL
deactivated The GMT date and time when the team was removed datetime (16,3)
from the group.
NOT NULL
n Team
n Groups
TelephonyGroup
The TelephonyGroup table is a telephony entity that provides a unique set of phones and telephony
devices. It also includes a number of telephony servers, including at least one Quality Management CTI
server.
id Numeric identifier for the telephony group. This num- int identity
ber is auto-generated by the database.
NOT NULL
Primary Key
inclusionList The inclusion list XML for this telephony group nvarchar
(cluster). (1073741823)
NOT NULL
201
Database Schema
n Ccr
n SignalingGroup
n SyncFilterTelephony
n TelephonyGroupType
n TelephonyGroupServer
n VoiPMonitorDevice
TelephonyGroupServer
The TelephonyGroupServer table associates servers with telephony groups.
n Server
n TelephonyGroup
TelephonyGroupType
The TelephonyGroupType table indicates the telephony group type associated with a TelephonyGroup.
recordingSide The recording method fro this telephony group type. varchar(25)
The options are as follows:
NOT NULL
l Gateway Recording
l Agent Recording
202
Database Schema
n TelephonyGroup
Timezone
The Timezone table is filled with default time zones by the Quality Management. If other time zones are
used, they are added to this table.
id The numeric identifier for this time zone. This number tinyint identity
is auto-generated by the database.
NOT NULL
Primary Key
n ArchiveAudit
n Ccr
n Eval
n EvalComment
n EvalForm
n EventAudit
UI_Feature
Quality Management loads the UI_Feature table with the valid features.
203
Database Schema
n Field
n Filter
n UI_FeatureGroup
n UI_FeaturePermissions
UI_FeatureGroup
The UI_FeatureGroup table provides a unique set of features groups.
id Numeric identifier for this feature group. This number smallint identity
is auto-generated by the database.
NOT NULL
Primary Key
204
Database Schema
n UI_Feature
UI_FeaturePermissions
The UI_FeaturePermissions contains the feature permissions for each UI_Feature based on Role and
License.
n UI_Feature
n Role
UniqueAdminGroup
The UniqueAdminGroup table generates unique adminGroupNum values for the Group table and
generates unique IDs for newly created knowledge workers. Both Quality Management Administrator
and Monitoring and Recording Sync service use this table to keep groups and knowledge workers
synced to the Quality Management database.
205
Database Schema
UploadState
Quality Management loads the UploadState table with default upload state values after the database
schema is created. Each record in this table is a possible state for an audio or screen file Ccr record.
The default values are shown in the following table.
ID Name
0 No file to upload
2 File is uploaded
The UploadState table contains the fields shown in the following table.
n Ccr
n MediaFile
UserReport
The UserReport contains information on each user report.
206
Database Schema
n Person
n Report
n ReportUserConfig
n UserReportParameters
UserReportParameters
The UserReportParameters identifies the parameters for the user report.
n UserReport
n ReportParameter
VoiPMonitorDevice
The VoiPMonitorDevice table contains configuration information for each VoIP device.
207
Database Schema
recordingTones 0—the beep tones are not enabled for the device. bit
1—the beep tones are enabled for the device. NOT NULL
n Person
n RecordingCluster
n RecordingType
n TelephonyGroup
208
Database Schema
n VoiPMonitorDeviceLine
n VoiPMonitorDeviceType
VoiPMonitorDeviceLine
The VoiPMonitorDeviceLine table maps the devices to extensions and partitions. A device might have
multiple extensions and partitions.
id Numeric identifier for the VoIP monitoring device line. bigint identity
This number is auto-generated by the database.
NOT NULL
Primary Key
n VoiPMonitorDevice
VoiPMonitorDeviceType
The VoiPMonitorDeviceType table indicates the device type associated with a VoiPMonitorDevice.
n VoiPMonitorDevice
209
Database Schema
vw_ActiveAgentsInGroups
Quality Management creates a new record for active agents in groups.
vw_ActiveAgentsInTeams
Quality Management creates a new record for active agents in teams.
vw_ContactsWithActiveOrg
A vw_ContactsWithActiveOrg record is used for contact reconciliation.
210
Database Schema
startTime The local start time of the call in the timezone where datetime (16,3)
the call occurred. The localStartTime is used by Qual-
NOT NULL
ity Management Reporting to compare the start time
with the local date range selections when viewing
reports.
Offset The time the recording starts relative to the startTime int
timestamp of the Ccr, in milliseconds. This is also the
NOT NULL
time between the CTI ringing event and the CTI estab-
lished event.
211
Database Schema
icmCallId The Peripheral Call Key (or Call ID) for the call from varchar(128)
the CCM system.
NOT NULL
startTimeTzFK A foreign key into the Timezone table. A value of zero tinyint
indicates that the time zone is currently unknown. An
NOT NULL
unknown time zone might be updated at some point.
For more information, see Dates in the Database.
localStartTime The local start time of the call in the timezone where datetime (16, 3)
the call occurred. The localStartTime is used by Qual-
NOT NULL
ity Management Reporting to compare the start time
with the local date range selections when viewing
reports.
ccrType The type of contact. The contact type is either call or varchar
non-call [21474�83647]
NOT NULL
qualityReason The reason why the call was or was not marked for varchar[64]
quality management purposes.
NOT NULL
archiveReason The reason why the cal was or was not marked for varchar[64]
archiving.
NOT NULL
212
Database Schema
vw_PersonDetails
Quality Management creates a new record for person details. It is used with Ccr to ensure the person
has active states for agent, agent team, team, and group.
vw_WfmAgentReportCard
Quality Management creates a new record for the WFM agent report card.
213
Database Schema
STARTTIME The time and date when the report card began. datetime (16,3)
NOT NULL
TOTALSCORE The score for this evaluation. Null if the evaluation has float
been claimed but no questions have yet been scored.
NOT NULL
FORMID Numeric identifier for this evaluation form. This iden- int
tifier is auto-generated by the database.
NOT NULL
Workflow
The Workflow table specifies the workflows that are configured in Quality Management. The workflow
contains a reference to a workflowXML that is generated by the Quality Management Administrator.
214
Database Schema
n Ccr
n RetentionData
n Team
n WorkflowType
n WorkflowClassifier
WorkflowClassifier
The WorkflowClassifier table contains records for each workflow classifier.
215
Database Schema
n EvalForm
n Workflow
n WorkflowClassifierNumber
n WorkflowClassifierType
n WorkflowRule
WorkflowClassifierNumber
The WorkflowClassifierNumber table contains records for each workflow classifier number.
id The primary key for the workflow classifier number. int identity
NOT NULL
Primary key
216
Database Schema
ordinal The order number for this workflow classifier number. int
NOT NULL
n WorkflowClassifier
n WorkflowClassifierNumberType
WorkflowClassifierNumberType
The WorkflowClassifierNumberType table contains records for each workflow classifier number.
n WorkflowClassifier
WorkflowClassifierType
The WorkflowClassifierType table contains records for each workflow classifier type.
id The primary key for the workflow classifier type. int identity
NOT NULL
Primary key
n WorkflowClassifier
217
Database Schema
WorkflowRule
The WorkflowRule table contains records for each workflow classifier rule.
n WorkflowClassifier
n WorkflowRuleWhoType
n WorkflowRuleWhenType
n WorkflowRuleWhat
n WorkflowRuleWhenRange
n WorkflowRuleWhenWeekly
n WorkflowRuleWhoPerson
n WorkflowRuleWhoTeam
WorkflowRuleWhat
The WorkflowRuleWhat table contains records for each WHAT rule in a workflow.
218
Database Schema
n RecordingReason
n WorkflowRule
n WorkflowRuleWhatPeriod
WorkflowRuleWhatPeriod
The WorkflowRuleWhatPeriod table contains records for each period in a WHAT rule.
startTime The time and date when the period began. nvarchar(10)
NOT NULL
endTime The time and date when the period ended. nvarchar(10)
NOT NULL
n WorkflowRuleWhat
219
Database Schema
WorkflowRuleWhenRange
The WorkflowRuleWhenRange table contains records for each range in a WHEN rule.
id The primary key for the workflow when range. int identity
NOT NULL
Primary key
beginDate The date and time when the range began. datetime (16,3)
NOT NULL
endDate The date and time when the range ended. datetime (16,3)
NOT NULL
n WorkflowRule
WorkflowRuleWhenType
The WorkflowRuleWhatType table contains records for each type in a WHEN rule.
id The primary key for the workflow rule WHEN type. int identity
NOT NULL
Primary key
n WorkflowRule
WorkflowRuleWhenWeekly
The WorkflowRuleWhenWeekly table contains records for each WHEN rule with a Select When of
Weekly.
220
Database Schema
n WorkflowRule
n WorkflowRuleWhenWeeklyType
WorkflowRuleWhenWeeklyType
The WorkflowRuleWhenWeeklyType table contains records for the day of the week
id The primary key for the workflow rule WHEN weekly int
type.
NOT NULL
Primary key
name The day of the week (1-7, where 1 = Sunday and 7 = nvarchar(20)
Saturday).
NOT NULL
n WorkflowRuleWhenWeekly
WorkflowRuleWhoPerson
The WorkflowRuleWhoPerson table contains records for each a person associated with a WHO rule.
221
Database Schema
n WorkflowRule
n Person
WorkflowRuleWhoTeam
The WorkflowRuleWhoTeam table contains records for each team associated with a WHO rule.
n WorkflowRule
n Team
WorkflowRuleWhoType
The WorkflowRuleWhoType table contains records for each type for a WHO rule in a workflow.
id The primary key for the workflow rule WHO type. int
NOT NULL
Primary key
n WorkflowRule
WorkflowType
The WorkflowType table specifies the available workflow types. Quality Management fills this table after
the schema is created. The default values are shown in the following table.
222
Database Schema
ID Name
1 Archive
2 Quality
The WorkflowType table contains the fields shown in the following table.
n Workflow
6.903 Update retention data types for existing archive workflows to use
new explicit "Tagged (Archive)" data type
223
Database Schema
6.792 Add recordScreen column to Workflow table and set the initial
upgrade value based on the workflow type.
6.785 Removed the level parameter from reports as it is not used any
more.
224
Database Schema
6.776 Upgrade existing ACDFilter data into new SyncFilter data struc-
tures.
6.759 Added ACD references to tables that have data synced over
from an ACD.
6.750 Created new 'UCCX Server' type and upgraded any existing
servers to use that type.
6.663 Forcing the VoIP Monitor Device recording type to None where
device type is User Profile.
6.649 Set all .rec and .erec recordings to .em4v recording type.
225
Database Schema
226
Database Schema
6.496 Assure that there is an UseSSL flag for all Screen and Voice
Servers.
227
Database Schema
228
Database Schema
5.528 Added Site table and foreign keys to allow multiple sites.
5.500 Added hidden Administrator role and adds new person with
administrator role.
229
Database Schema
230
Database Schema
5.276 Added Role, Alert, and Eval Alerts table for alert feature.
5.300 Added RtpFilter table to store port and IP information that could
be filtered from recording (this is used to filter out CAD record-
ing/monitoring traffic.
231
Database Schema
5.329 Added "file is cleaned" upload state and changed existing Ccr
data for files that have been cleaned. This was done for per-
formance reasons.
232
Database Schema
233