18. Editing QueueMetrics settings

System configuration must be done by the system administrator. Most configuration may be done straight from QM itself, while system wide preferences must be set editing a text file on the installation server.

To log on as an administrator, you can use the supplied account demoadmin, password demo, that will bring you to a home page like the following one:

./Pictures/image137.jpg

18.1. Configuring users

Users and classes can be added, modified and deleted right from QM.

A list of users is presented and you can filter it by class or user name.

./Pictures/image139.jpg

For each user, the login and full name are shown, together with the current class and any additional user keys. A user must be enabled in order to log on, so if you want to prevent somebody from logging on without deleting its user information, you can simply disable it. A number of default users are shipped with Enable: No in order to prevent unauthorized access.

The list of users is paged and you can use the top box named "Filter" in order to search for a specific user or a set of users that match the entered substring. You can also click on the column name to toggle ascending versus descending sort order.

The "Create new" button lets you add new users while the "Show classes" button leads to the class editor.

./Pictures/image141.jpg

When you add or edit a user, you are presented with a list of fields to enter:

  • Userid is a technical reference used internally. Read only.
  • Login is the login string.
  • Password is the password, shown in clear text.
  • Real name is the name shown in the top part of the screen
  • Enabled lets you temporarily disable somebody from using QM.
  • E-mail is the user’s e-mail address (Optional).
  • Masterkey: if set to Yes, all security key checks are bypassed. DO NOT SET UNLESS YOU KNOW WHAT YOU ARE DOING!
  • Class is the current user class
  • User keys are additional keys the user holds. Separate each key with a space. If a key is preceded by the minus sign, it means it’s revoked even if the class grants it.
  • Number of logons tells how many times the user logged on in QM. Read only.
  • Comment is an optional free comment.
  • Token has no current use. Read only.
  • Creation and Update: the user and date/time when the record was first created and then last updated. Read only.
[Note]Note

When you first log on to QueueMetrics, you must change the passwords to all default users. Failure to do so represents an important security breach!

18.2. Editing user classes

User classes can be configured freely; you can create individual key rings with special privileges to best suit your needs.

./Pictures/image143.jpg

Each class has a set of keys that can be freely edited in much the same way as users by clicking on the "edit" icon (the pencil).

./Pictures/image145.jpg

No class can be deleted as long as there is at least one user that is member of it.

The default classes should be enough to get most systems started:

  • ADMIN is for the system administrator only, and lets you do nearly everything, including system configuration;
  • MANAGERS is for most QM users, the ones that have to run the reports and monitor real-time activity;
  • AGENTS is for individual agents logging on to their web page.
  • VISITORS is for visitors accessing the simplified real-time page
  • ROBOTS is for automated data download

18.3. Configuring queues

A list of queues must be set before accessing QM. Each queue can be made visible to only a specific set of users by adding a key - this can be useful if, for example, each queue has a manager viewing data for it, while only a CC manager sees data for all queues in the center.

./Pictures/image147.jpg

You can search for a specific queue by entering data into the Filter box on top of the page, or change the default sort order for the list by clicking on one of the column names.

The default page shows:

  • The queue Alias and Composition
  • The Wrap and Announcement durations
  • The key protecting the queue, if any
  • FP - Front Page: Whether that queue will be visible from the queue selection boxes
  • The number of known agents that are member of the queue, by service level (as Main - Wrap - Spill).

The pencil icon will let you edit the queue, while the "People with pencil" icon lets you change queue associations.

./Pictures/image149.jpg
./Pictures/image151.jpg

For each queue you have to define:

  • An Alias, that is the name users will see in the queues combo box on the Home Page;
  • A set of Queues, that can be the name of an Asterisk queue as seen from the Queue() command or a set of names separated by the pipe symbol, as in queue1|queue2|queue3. This lets you aggregate queues freely. You can also use the * and ? wildcard symbols (see below).
  • An optional Wrap-up time, i.e. how many seconds an agent stays idle after hanging up;
  • An optional Announcement duration, that lets you deduce the duration of the queue announcement that is played to the agent from the actual metrics;
  • An optional Visibility key, that makes the queue visible only to users holding that key.
  • The Call flow direction, i.e. whether the queue is an inbound (classical) queue or an outbound queue (made to track individuals agents calling out or the activity of a full-fledged predictive dialler).
  • If it’s Shown on front page, that is, in the main Queue selector combo box (if not, the queue is said to be invisible).
  • A Chat group, that is, the XMPP address of a queue manager
  • A Default URL to be used on the Agent’s page if no URL is passed in the queue log in order to open a third-party application.
  • A number of Attention levels, see below.
  • The current known Service groups for that queue, i.e. which agents are linked to that queue
  • The current AGAW settings for the queue (see below)

By clicking on the Agents icon, you can define the position of each agent as a member of the service groups for that key. An agent cannot be a member of more than one group per each queue s/he is a member of.

./Pictures/image153.jpg

It is of course perfectly legal for an agent defined not to be used in a specific queue.

18.3.1. Setting attention levels (Red and yellow alarms)

It is possible - but not mandatory - to define all or some attention levels for the given queue. To do so, you have to fill in each queue attention levels parameter with an expression that will be matched to the current property’s value in order to trigger a defined alarm.

QueueMetrics does currently allow to set two possible alarm thresholds; that is a "yellow" and a "red" alarm. You can define one or both of these properties, according to your preferences. Those values are used currently only to trigger alarms in the real-time panel.

For example, imagine we want to set a yellow alarm on the queue wait for each call; we want cells to turn yellow if the wait time exceeds 30 seconds, and to turn red if it is over one minute. To do so, we enter "> 30" in the yellow alarm box near to "Call wait duration", and "> 60" in the red alarm box on the same line.

In the case where both yellow and red conditions match, the red alarm prevails.

Currently, the following functions can be used to match a value "=", "<", ">", "!=" (different).

The possible alarms are the following:

  • Number of calls in queue: how many calls are present in the queue.
  • Number of agents on call: how many agents are on call
  • Number of agents waiting: how many agents are idle
  • Number of agents paused: how many agents are on pause
  • Call wait duration: how much a call is waiting before being answered
  • Call talking duration: the duration of the agent’s conversation

18.3.2. Using wildcards in queue names

QueueMetrics allows a limited use of wildcards to group together queue names. Wildcards work by matching the composition of known single queues, so if a queue is not defined in QueueMetrics (even if it is present on Asterisk) it will NOT be matched by a wildcard of "*".

On the other side, a hidden single queue will be matched by a non-hidden front-page queue whose definition is "*".

With wildcard matching:

  • "" stands for any number of characters. E.g., "open" as the queue composition will match any atomic queue starting with "open". Just entering "*" as a queue composition will match any atomic queue on the system.
  • "?" stands for a single character - e.g. "open?" will stand for "open1" and "openq", but not for "open99". You can group together a number of question marks to match multi-character sequences of known length, e.g. "open??" will match "open99".

18.3.3. Configuring queues to be processed by the AGAW Runner

The AGAW Runner will use the following rules to decide which queues and agents to process:

  • All queues that are "simple", i.e. not composite, are taken into consideration for processing by the runner. All queues that have the AGAW runner enabled will be actually processed (you must enable that manually in the queue config page).
  • All agents that are linked to a queue are processed for that queue, even if there is no data for them; plus, any unknown agent that is detected working on a queue is processed for that queue..

In order for a queue to be processed by the runner, and show visible metrics to the user:

  • The "Will AGAW be run…" must be set to "yes"
  • The Items defined must be > 0 (or the agent will see no metrics)
  • The AGAW enabled should be "Yes"
  • The AGAW look back period can be left blank (default). This is the size of the look-back period the AGAW runner uses.

The set of metrics that is enabled and their alarms is defined in the AGAW queue configuration screen (click on the "AGAW alarms" button):

./Pictures/image155.jpg

As you can see, for each metric there are a couple of switches that decide:

  • Whether that metrics is to be shown at all
  • Red and yellow alarm levels for the whole queue (to be shown in AGAW, so they might differ from the ones used for the real-time page)
  • Red and yellow alarm levels for each agent separately

These settings are applied from the next run of the AGAW runner, so they can be modified while the AGAW runner is active and will be picked up when the relevant queue is processed.

All values are always computed; you can toggle visibility of values on and off (if they are "Off" they are visible in the AGAW monitor but NOT to the user).

Alarms can be expressed as:

  • Integers (for time periods and n. calls)
  • Floating-point values ( e.g. > 3.7)
  • Percentages (e.g. > 10%).

While percentages for the Queue part translate to the corresponding ratio (e.g. 10% means 0.1) in the Agent part they are anchored to the Queue metrics - that is if number of calls is at a given moment 1000 and there is an agent alarm at "< 1%" , if the number of calls taken by that agent are less than 1% of the queue the alarm will be triggered.

If you need to express a fixed percentage in the Agent part, use the corresponding ratio, as in the Qualified Conversion example above.

18.4. Configuring agents

Agents can be configured so that:

  • They’re decoded to their own name when they are found in reports
  • They can be set as members of service levels for queues.
  • They can be assigned an optional Location, that can also be used as a filter condition.
  • They can be assigned to a Supervisor
  • They can have a VNC URL defined
  • They can have a Current Teminal defined.
./Pictures/image157.jpg

When editing an agent, the following screenshot appears:

./Pictures/image159.jpg

For each agent in use, enter:

  • Agent code as the Asterisk agent code, e.g. Agent/101;
  • Agent description as the agent’s own name.
  • Agent location can be selected from a drop-down list of defined locations. Leave blank if not needed.
  • VNC Monitoring URL: the URL that will launch the VNC monitoring app for the given agent
  • Current terminal: the current terminal for the given agent. If this field is left blank, unattended audio monitoring will not work. If you are using regular Asterisk agents, just enter "-" as the current terminal to make audio monitoring work.
  • Instant messenger address: an XMPP address associated to the agent. Used in the real-time page for supervisors to initiate a chat with the agent.
  • Supervisor: the supervisor for this agent. This can be selected between all users holding the key SUPERVISOR.

If you want an agent to log on to their own page, you also have to create a user with the same name.

On the bottom of the page, the current association of that agent to a set of queues is shown.

18.5. Configuring locations

The following configuration transaction lets you define locations for your agents. To access this page, a user must be holding the USR_LOCATION key.

./Pictures/image161.jpg

Each location has a short name, a longer description, and a visibility key, so that only users holding that key may select that location as a source for reports.

./Pictures/image163.jpg

A location cannot be deleted if at least one agent is defined for that location.

18.6. Configuring call outcomes

We define a call outcome as a flag to be added to a call, either when the call is ongoing or when the call has just finished, that will signal the result of the call from a business point of view. Such a flag is optional for QueueMetrics and can be added to both incoming and outgoing traffic.

The call outcome will be defined by a numeric sequence that the agent will either key in on their telephone terminal or report through QueueMetrics itself through the Agent’s page. QueueMetrics will not consider how the sequence is entered, as long as it’s present in the queue_log data it runs on. Such records can be generated, for example, by an outbound dialler that is able to pre-screen answered traffic.

To minimize internal searching costs, the call activity must be entered either while the call is in progress or within one hour of its completion. If more than one call activity code is entered, the latest takes precedence over the previous ones.

./Pictures/image165.jpg

As you can see, each outcome can set two flags: a "This call qualifies as contact?", "The call qualifies as Qualified Contact" and a "This call qualifies as sale?" flag. This will be used in order to produce statistics on traffic (see section Section 4.12.1, “How are Call Outcomes calculated?”).

If a call code is found but not defined through the configuration screen, QM will report on it and treat it as a "No contact" and "No sale" call.

./Pictures/image167.jpg

The editor page lets you set:

  • A numeric code for that outcome. The system will check that it will not be duplicated on the list (The code should be numeric so it may optionally be keyed-in using the rep’s terminal)
  • A text label for the outcome (e.g. "Contact")
  • A flag telling the system whether that outcome counts as a "Contact"
  • A flag telling the system whether that outcome counts as a "Sale"
  • An optional security key for that outcome. This will be used only when displaying outcome choices for a given call in the Agent’s page. The reporting engine will report on all outcomes present in its analysis.

18.7. Configuring pause codes

The agent’s time is defined in QueueMetrics as made up of different activities. The main activity for an agent will be "Available time", i.e. the time when an agent is ready taking or placing calls. When an agent pauses out of "Available time", they may want to flag the reason for the pausing, e.g. doing backend activities, lunch, etc. This way you can track agent activities punctually. If they don’t flag a pause, it will be computed as simply "Pause" time.

Each pause code is written on the queue log while the pause in progress, i.e. after the agent goes on pause and before the agent stops that pause. The pause code will usually be defined by a numeric sequence that the agent will either key in on their telephone terminal or report through QueueMetrics itself through the Agent’s page. QueueMetrics will not consider how the sequence is entered, as long as it’s present in the queue_log data it runs on.

./Pictures/image169.jpg

For each pause code, it is possible to tell QueueMetrics whether that time is billable (from a business perspective, e.g. time an agent is disconnected from the ACD but doing back-office activities) versus non-billable activities (e.g. pausing for lunch, taking mandatory breaks, and so on).

All activities are optional and may be added or deleted at will. The following fields apply:

  • A numeric code for that activity. The system will check that it will not be duplicated on the list (The code should be numeric so it may optionally be keyed-in using the rep’s terminal. This is not a technical requirement anyway)
  • A text label for the activity (e.g. "Lunch")
  • A flag telling the system whether that activity is: Billable, Not Billable or Other activity. Other activities are considered non-telephone related activities and are by definition non billable. With Other activity you may add activities like training, etc.
  • A flag showing the type of pause. A pause can be a standard pause, or a pause of the ACD made to produce outbound calls, or a call wrap-up pause (As of QueueMetrics 1.5.0, this is partially implemented only in the AGAW sub system)
  • An optional security key for that activity. This will be used only when displaying activity choices in the Agent’s page. The reporting engine will report on all activities present in its analysis.
./Pictures/image171.jpg

18.8. Configuring QA forms

The set of current QA forms can be configured through the QA form editor. It shows the current set of defined forms and lets you performs the usual operations (search, filter, sorting, paged listing…).

./Pictures/image173.png

The names of each section and the number of items that have been input for that form are shown on the front page. If a form ahs any number of items input, it is considered "locked" and cannot be modified anymore, though you can create a different form with the same set of items.

The form editor looks like the following page:

./Pictures/image175.jpg

You can enter:

  • The form name
  • The security key required (in addition to the basic one) to grade calls using this form
  • The security key required (in addition to the basic one) to run reports on this form
  • Whether the form allows new input or not; the total number of calls graded using this form is shown
  • The names of the section. There can be up to five sections. Any section MUST have a name, and there must be at least one section.
  • The threshold values for Call grading (the maximum for "Exceeds expectations" is fixed at 100).

To edit the set of items that belong to a form, you should have no data reported for that form. If you have no data, the item editor icon ./Pictures/image177.jpg will show from the main form page.

The editor will look like the following page:

./Pictures/image179.jpg

To add a new element, just select an element on the top form and a section it should be added to.

On the bottom of the page, you can edit the elements by changing them, moving them up or down and removing them.

18.8.1. Configuring QA items

The set of items that are selectable as members of a form can be configured by the user by clicking on the "Edit items" button at the bottom of the QA forms editor.

./Pictures/image181.png

New items can be added and the description can be edited if needed. The shortcut items are marked with a red icon. Mandatory fields are marked with a green icon. Shortcut items are items that will force to zero the overall form score if they receive a score below the "Issue" category.

./Pictures/image183.png

The Engagement code cannot be modified once input, and there can be no two items with the same engagement code.

Items cannot be deleted if they are in use by at least one form. You can see the set of forms that are using the chosen it at the bottom of the editor’s page.

18.9. Configuring reports

Since version 1.6, QueueMetrics allows for the configuration of reports. This makes it easy to tailor specific reports to specific users, instead of having all reports shown to all users. It also adds the fexibility to hide part of a report to users that do not have specific keys, and to edit the titles and subtitles for each reports.

In order to understand reports, it must be understood that a QueueMetrics report is made of a number of screens (the "pages" that the report is made of), each of which is in turn made of items (the actual tables containing data).

All elements (reports, screens and items) can be key-protected - so it is easy to make a full report, or just a part of it, visible to some users only.

As both screens and items have a display order you may want to control, they all have an numeric attribute called Sort Order that orders elements from the lower to the highest.

As QueueMetrics reports include an "All reports" page that in turn includes all elements in order, it is possible to control which elements are visible in it at the screen and item level; this is useful because you usually do not want extremely large items (like call lists, that may span over thousand lines) to appear in it.

One last word must be spent for titles; as QueueMetrics is an inherently multi-language application, titles may or may not be localized using QueueMetrics facilities.

  • If a title starts and ends with the "#" symbol, it is looked up in QueueMetrics internal localization resources, so it changes according to the language the user has chosen. The string must be one of those defined in the localization files.
  • In any other case, the string is displayed as-is.

18.9.1. Editing reports

In order to access the reports editor, from the homepage click on QueueMetrics settingsEdit reports.

./Pictures/reporteditor_01_list.png

There will usually be ony one report called "All reports" - this is an automatically-generated report that includes all available reports.

For each report, the number of associated screens is displayed.

Each report can be modified by clicking on the edit icon (the one that looks like a pencil) or the associated screens can be shown by clicking on the report title.

[Tip]Tip

As creating a full report takes a while, it is possible to create multiple copies of the "All reports" items and then doing minor customizations by entering a new report name in the "Automatic report configuration" dialog. This is also handy when you upgrade QueueMetrics and want to test-drive new reports that were not previously available.

If you click on the edit icon, you will see the current report configuration:

./Pictures/reporteditor_01_edit.png
  • The title and subtitle can be chosen freely and will be shown to the users
  • The type must be set to QM Report
  • You can enter a visibility key to make this report accessible to some users only

18.9.2. Editing screens

A report is made of a number of screens. They are the multiple selectable pages that are available when you run a report. As the space is limited, each screen has a Short title as well as a full title.

./Pictures/reporteditor_02_list.png

You can see that the items are sorted accoring to their Sort index, just as they will be displayed in the main reports. You can also see the number of asscoiated items for each screen and whether the screen will appear in the "All reports" page.

Each screen can be modified by clicking on the edit icon (the one that looks like a pencil) or the associated items can be shown by clicking on the screen title.

If you click on the edit icon, you see the details, as shown here:

./Pictures/reporteditor_02_edit.png
  • The Short name is the one displayed in the horizontal page menu, so it should be very short
  • The Title is the one displayed at the top of the page
  • The Visibility key lets you hide this screen and all its associated items from user sthat do not have the specified key
  • The Sort order is an integer value that tells QueueMetrics how to position this element in respect to all other screens.
  • The Visible in All reports toggle decides whether this screen and its associated elements are visible on the "All reports" page
[Note]Note

Both the Short name and Title fields display a decoded, localized version of the string just below their input box. This is what the end-user will actually see.

18.9.3. Editing items

When clicking on a screen title, you display the list of items that belong to that screen.

./Pictures/reporteditor_03_list.png

You can see the title for each item, the Data Object tht actually creates data and its parameters.

Each item can be modified by clicking on the edit icon (the one that looks like a pencil).

./Pictures/reporteditor_03_edit.png
  • The Title field is the one displayed in bold on top of the table
  • The optional Subtitle can be added as an explanation of the meaning of the graph.
  • The Visibility key lets you hide this item from users that do not hold the given key.
  • The Data Object is the routine that creates the requested table and/or graph. A list of available Data Objects is available here Section 6, “Report Details”.
  • The Parameters field (if present) will let you add additional parameters that control the behavior of the Data Object.
  • The Sort order is an integer value that tells QueueMetrics how to position this element in respect to all other screens.
  • The Visible in All reports toggle decides whether this item is visible on the "All reports" page
[Note]Note

The Title field displays a decoded, localized version of the string just below their input box. This is what the end-user will actually see.

[Caution]Caution

You cannot have multiple copies of the same DataObject on the same page.

18.10. QueueMetrics configuration wizard

In order to save time and make sure that QM is always up-to-date with the underlying Asterisk configuration, it is possible to run a wizard that will load the following data straight from Asterisk configuration files:

  • Which queues are in use, and their configuration
  • Which agents are being referenced, their name and how they belong to the various queues

It is also possible to automatically create users out of the defined agents, so that they can log-on to QueueMetrics with the very same password they use to log-on to Asterisk.

In order for the wizard to be run, the user must hold the grants to administer users, edit queues, edit agents, and must hold the CONFIG key too.

If the user holds the required keys, the label "Setup wizard" will be shown on the front page:

./Pictures/image185.png

By clicking on it, the administrator will be lead to the first step of the wizard.

At the top of this page is a dropdown menu that defines where asterisk configuration could be found. Actually the wizard is able to read information from:

  • File
  • Single machine Asterisk Manager Interface
  • Clustered machines through Asterisk Manager Interface
  • Asterisk realtime database
  • Asterisk queue log file

By selecting the "File" source, the three edit boxes will let the administrator able to specify the local paths for the agents.conf, queues.conf and the users.conf file.

By selecting "Queue Log File" as source, the associated edit box will let the administrator able to specify the local path for the queue_log file.

[Note]Note

The users.conf file is optional and could integrate the information stored in the agents.conf file. The agents.conf file, instead, is not required only if the users.conf is present.

[Note]Note

If you don’t have the users.conf or the agents.conf file, you can leave in the edit boxes their default values and the system will be able to skip it if not found.

For sources different than "File", or "Queue Log File", the wizard will use some configuration options to know how to reach the required information. More details can be found in Section 18.12, “Configuring system preferences” and in Appendix D, System preferences.

./Pictures/image187.png

When you have selected the source you want to be read, click on Next button. You will be redirected on the validation page. This page will inform you if the provided sources were succesfully read or, in the worst case, it will show you a message reporting an explanation of the error found.

./Pictures/image188.png

If the validation fails, clicking on Next button you’ll be forwarded back to the first step, otherwise, you’ll be redirected to the next step.

./Pictures/image189.png

The wizard will scan the available agents and presents you a list of agents to be created or updated. By default, this wizard will try not to modify an agent or a queue that is already present in QM, that is the found data will be shown but unchecked. Check on the items to include/exclude them as needed.

If no agents will be selected, by clicking on Next button the wizard will skip the next step and will forward you directly to the queue selection step. If at least one agent was selected, instead, when you click on Next button you’ll be redirected to the window shown below.

./Pictures/image191.png

If the corresponding QM users, for selected agents only, are not present, they are created automatically by this mask.

Please note that if the wizard is not able to read the password associated to a specific user (because the password is not specified in the configuration files or because the wizard is reading information from AMI or realtime, or the queue log file, where password for agents are not shown) it will use the following rules:

  • For each new user added, a default password will be forced to be equal to their agent code
  • For each user to be updated (i.e. already present in the QueueMetrics database) a default password will be shown in the mask but it will never used to overwrite the already present one.
./Pictures/image193.png

The queues will be created or updated as needed; existing queues will not usually be overwritten without explicit user permission.

[Note]Note

A queue will be automatically checked to be updated if at least one of its agent member was selected to be updated and/or added.

[Note]Note

When updating a queue, the spilloff and queue members lists will be generated looking at the penalties associated to the agents read from the sources. If an agent is already present in a member or spilloff list, but it was not selected to be updated, he will not removed and/or moved from any list.

./Pictures/image195.png

If you click to the Next button you’ll be redirected to the page above reported. This page will display a summary of the QueueMetrics database updates that have been scheduled to be performed. Clicking on the Yes button, the scheduled actions will be run and you will be redirected to the last page where a table listing the related operations results will be presented. Clicking on No button, instead, you’ll be forwarded back to the first wizard step.

./Pictures/image196.png

The QueueMetrics database is now updated with the information found in the selected sources. You can go back to the home page clicking on Next button.

18.11. Unattended QueueMetrics configuration and update

QueueMetrics could be updated and configured by means of external http queries made in a known format. This is really interesting for setting up a cron job to be completed sometimes during the day. When QueueMetrics receives external http queries, it will perform all the configuration wizard steps together (see Section 18.10, “QueueMetrics configuration wizard”) assuming default answers. This will result in a background synchronization between your asterisk boxes and the QueueMetrics database. To be able to run periodic QueueMetrics update, you need:

  • A QueueMetrics user holding the CONFIG key
  • A command line script able to perform http queries

The URL to be used to start the unattended configuration system has to be formatted as follow:

http://qmaddress/queuemetrics/autoconf_Robot.do?user=demoadmin&pass=demo \
 &stype=0&agents=/etc/agenti.conf&queues=/etc/code.conf&users=/etc/users.conf

The meaning of specified parameters is below reported:

  • user: the username to be responsible for the update process
  • pass: the password associated to specified username
  • stype: defines what type of source you want to use and it could assume the following values:
  • 0: File. If no other parameters were specified, the wizard will read the files defined in the default configuration.
  • 1: Single Machine Asterisk Manager Interface. The wizard will read information from the machine specified in callfile.dir key.
  • 2: Clustered Machines Asterisk Manager Interface. The wizard will read information from the machines specified in the standard cluster definition.
  • 3: Asterisk realtime. The wizard will read information from the database specified in the configuration.
  • 4: Asterisk queue log file. The wizard will read information from the provided queue log file.

The user, pass and stype are mandatory; the other parameters are optional and have no meaning when the requested source is different from "file".

The other parameters are:

  • agents: specifies the asterisk agents configuration file (and it’s read only when the "File" source is specified)
  • queues: specifies the asterisk queues configuration file (and it’s read only when the "File" source is specified)
  • users: specifies the asterisk users configuration file (and it’s read only when the "File" source is specified)
  • qlog: specifies the asterisk queue log file (and it’s read only when the "Asterisk Queue Log" source is specified)

When QueueMetrics terminates the procedure, it will answer with a result page where the term "SUCCESS", or "FAIL", will be present reflecting the operation success status. In this page will be also present a list of the performed operation (and their result status). An example page is reported below:

./Pictures/image250.png

18.12. Configuring system preferences

System preferences can be edited by editing a text file called configuration.properties located in the WEB-INF directory of the QM webapp. The absolute path on your system can be found by looking at the System path property on the Licence page.

A complete list of preferences can be found in the chapter Appendix D, System preferences. Once a preferences value is changed, it is enough for the user to log off and log on again; restarting the servlet container is not needed.

18.13. Installing the AGAW runner

Once your copy of QueueMetrics is correctly installed, the Queue Runner can be run using a script that is available as WEB-INF/mysql-utils/agaw-runner/agaw-runner.sh under the QM directory.

This file must be edited to set its running parameters, that are:

JAVA=/usr/local/queuemetrics/java/bin/java

Path to the java virtual machine. Please point to a SUN JDK version 1.4 or newer. The default path points to the default JDK that comes with the automatic QueueMetrics installation.

VMOPTS=-server -Xmx256M -Xms256M

The options for the Virtual Machine. Should be okay for most servers.

USER=demoadmin
PASS=demo

The username and password of a user the transactions will be run under. This should be a regular user or an administrator with visibility to all queues to be selected.

JDBC="jdbc:mysql://10.10.3.5/qmueuemetrics?zeroDateTimeBehavior=convertToNull&amp;\
  jdbcCompliantTruncation=false&amp;user=queuemetrics&amp;password=javadude"

The JDBC URL to connect to the same database as the main QueueMetrics instance (see your web.xml file).

QMPATH= /usr/local/queuemetrics/webapps/queuemetrics-1.5.0

The system path to the local QueueMetrics installation. You can find it on the local Licence page.

ITER=3

The number of iterations that will be run by the Java process before terminating and spawning a new Java process. This is done so that there is no problem with potential memory leaks, as the JVM is periodically rebuilt. A higher ITER count means more iterations using the same JVM and avoids the burden of reloading classes and libraries.

IDLE=2000

The idle time in milliseconds between one interaction and the other.

RUNLOG=false
RUNLOGDIR=/root/runlog

If RUNLOG is set to TRUE, a detailed run log will be created under the RUNLOGDIR. This directory must be writeable by the Java process and MUST be cleaned periodically - enabling this feature causes a lot of information to be written. See Section 18.13.4, “Debugging with Runlogs”.

QMARCH=$JARLIB/loway-tpf-155p.jar
QMJAR=$JARLIB/QueueMetrics-1.5.0.jar
REDRPC=$JARLIB/redstone-xmlrpc-1.0.jar
MYSQLJAR=$JARLIB/mysql-connector-java-3.1.10-bin.jar

These are the names of the Java classes bundles that contain the local version of QM and of its TPF architecture. These must match the ones under WEB-INF/lib or you will get "Class not found" errors on startup. In a standard QueueMetrics release, QMARCH and QMJAR items are correctly set by the build system to match the current JARs.

SERVLET=/usr/local/queuemetrics/tomcat/common/lib/servlet-api.jar

This points to the servlet API used by your Tomcat installation. The default path is okay for a standard QM installation.

Once you set everything up, you can simply set the script executable and start it to see its output.

chmod a+x agaw-runner.sh
./agaw.runner.sh

Please note that the script will loop indefinitely, so it must be stopped through a kill -9 command.

18.13.1. Installing the database clean-up jobs

The AGAW subsystem produces a great number of old / obsolete / informative log data that is meant to help diagnosing problems, but that can end up filling your disks pointlessly.

There are currently two ways to run database purging jobs:

  • There is a button from the main AGAW screen, and
  • Through a modular HTTP call, meant to be run through scheduled cron jobs

In order to specify parameters for this activity, you should add the following lines to your configuration.properties file:

# Oldest obsolete run to keep when running an optimization, in minutes
dbmaint.agaw_oldestRun=30

# Oldest obsolete log to keep when running an optimization, in minutes
dbmaint.agaw_oldestLog=30

# Oldest obsolete broadcast entries to keep when running an optimization, in minutes
dbmaint.agaw_oldestBroadcast=180

Once you set up the parameters above as preferred ( maybe starting with a couple of hours and then see if it is too much / too few) you add the following call to an hourly cron job:

wget http://server/qm/qm_sys_optimize.do?O_L=user&amp;O_P=pass&amp;O_C=AGC

Where user and pass belong to one administrative user.

The O_C parameters takes one or more of the following parameters:

Parameter Meaning Warnings

AGC

Purge AWAG tables

Might block for a few seconds

AQL

Optimize queue_log table by reordering data

Will block; run daily or weekly when system not in use

OQL

Optimize queue_log table

Might block for a few seconds

OAG

Optimize AGAW tables

Might block for a few seconds

OTB

Optimize other QM tables

The calls to the qm_sys_optimize transaction are made to be human- and machine-readable, so you might want to run the first time in a browser.

You might want to run an hourly cleanup job plus a nightly/weekly general cleanup and optimization job. They all will likely block the tables they are optimizing for a perceivable time, so do not run them at peak time when users are actually running QM.

18.13.2. Installing the AGAW client façades

The client facades are installed with the main QueueMetrics app, so they will work if the main QM app is working. The only customization must be made in a file named agaw.properties that resides under WEB-INF/

client.refresh=7000

The timeout (in milliseconds) that will lead the client to refresh information on the page. 0 means no refreshing, or user-driven refreshes. The lower this value, the higher the load will be on the AGAW façade server.

client.sparkurl=http://chat.myserver:9090/webchat/jivelive.jsp

This is an absolute link to the jivelive.jsp page (a part of Spark Fatspath) that should live on the same server for security reasons. If no URL is passed, there is no "Chat now" section in the clients. To avoid cross-site scripting problems, this works best when both QM and FastPath are installed on the same server.

client.sparkuser=supervisors@workgroup.chat

The virtual user that will be used for Spark Fastpath "Chat Now" button.

As of version 1.5, there is only one available façade that "mimics" the behavior of the XUL façade and it is called Plain HTML. You can access it at the address http://server:8080/queuemetrics/agaw/facades/plain_frame.jsp

Please note that accessing the façade when logged in QueueMetrics is likely to cause unexpected session termination of the QM session - if you must access it with QM open, use a separate browser.

18.13.3. Setting up the AGAW activation key

The default version of the AGAW system comes with a default activation key that will let you test the system with two agents only. You can ask Loway for a time-limited, unlimited-agents demo activation key for the whole AGAW subsystem.

If you try to run the AGAW loader for more agents than the licensed ones, you get an error message on the system log.

The AGAW activation key can be installed in the agaw.properties file.

# License key for the Agaw Runner
runner.activation=............................

The AGAW activation key will be picked up immediately when the Runner restarts, and licensing information will be printed on the standard output.

18.13.4. Debugging with Runlogs

Runlogs are text files that contain the very details calculations for each run are based upon, so they make it possible to spot from where the figures displayed in the AGAW browser come from.

In order to run this, it is necessary to:

  • Enable this feature in the agaw-runner.sh script
  • Create a cron job to delete the generated files, e.g. nightly or weekly, as the result is extremely verbose
  • Make it possible for the administrative users to fetch the files remotely, e.g via a WinSCP client

When this feature is turned on, when administrative uses happen to find some incorrect data, they should:

  • Take a screenshot of the incorrect data
  • Write down the run-id
  • Fetch the text file called agawrun_XXXXX.txt that is under the RUNLOGDIR directory, where XXXXX is the run-id

The run-id can be found as shown here:

./Pictures/image198.jpg