Appendix C: System preferences

QM stores system-wide preferences on its database. They can be edited as descibed in Configuring system preferences.

All properties are case-sensitive.

You can check the current set of system preferences from the Using the DbTest Diagnostic Tools page.
If you want to see a complete file at once, see Example.

Defaults

Property name Description

default.queue

Internal ID (ex. 7, 49…​.) of the default queue, leave blank for no default queue.

default.queue_log_file

Default queue log file. Might be a file, or a partition, e.g sql:P001, or cluster:*. See sqlPreset below.

default.monitored_calls

The top level directory where monitored calls are held. All its subdirectories are explored recursively. Do NOT forget to add an ending slash.

default.webloaderpbx

Enable or disable the web proxy for actions generation. Please refer to the Uniloader User Manual for further information.

default.areacode_digits

How many digits to consider as a default area code

default.start_hour

Preset start and end hours and number of days for the custom report.

default.end_hour

default.days

liveclock.enable

If live clock is enabled, the system clock is synchronized with Asterisk server system clock.

default.max_realtime_age

How old a call can be included in real-time report

default.showQueueComposition

If true, show the details of the queues composing the aggregate queue; if flase, show only the aggregate queue’s name

default.useXmlExcel

True: Generate the Excel file as an XML file (mandatory for UTF charsets); false: generate as an ISO-8859 CSV file

default.hourly_slot

How long in minutes is an hourly slot for hourly breakdown. Default 60 minutes (1hr). If set to e.g. 15, calls will be broken down by 15 minute intervals.

default.useRawAgentSessions

If true, show all agent sessions. If false, show only agent sessions with at least one call handled. Defaults to false.

default.closeDuration

The default duration of a call that is manually closed. This is the wait time for calls that have not been answered and the talk time for calls that have been answered.

default.crmapp

If present and not empty it will enable the CRM integration column on the answered/unanswered call details tables. The key could be populated with an URL where some tokens will be expanded by the QM engine. Find a list of valid tokens here: CRM Integration

One example of valid URL with token expansion could be: http://server/app?agent=[A]&unique=[U]

default.crmlabel

If present, used by the Realtime agent page to identify the CRM page on the dropdown menu

default.connection_recovery_max_interval

Maximum interval in seconds between WebSocket reconnection attemps. Default value is 30.

default.connection_recovery_min_interval

Minimum interval in seconds between WebSocket reconnection attemps. Default value is 2.

default.no_answer_timeout

Time (in seconds) after which an incoming call is rejected if not answered. Default value is 60.

default.iceservers

List of ICE Servers to use. For turn servers with authentication, the format should be: turn:username:password@host. Username and Password should be urlencoded in case of special characters. Multiple ICE servers should be separated by a pipe symbol(|). e.g default.iceservers=stun:stun01.sipphone.com|stun:stun01.sipphone.com|stun:stun.fwdnet.net

default.websocketurl

The websocket URL used by the Realtime Agent page softphone. It shold be in the followin form: ws://IPServer:Port/path

default.wallboardphone.connection_recovery_max_interval

(Wallboard softphone) Maximum interval in seconds between WebSocket reconnection attemps. Default value is 30.

default.wallboardphone.connection_recovery_min_interval

(Wallboard softphone) Minimum interval in seconds between WebSocket reconnection attemps. Default value is 2.

default.wallboardphone.no_answer_timeout

(Wallboard softphone) Time (in seconds) after which an incoming call is rejected if not answered. Default value is 60.

default.wallboardphone.password

(Wallboard softphone) SIP Authentication password (String).

default.wallboardphone.username

(Wallboard softphone) SIP Authentication username (String).

default.wallboardphone.display_name

(Wallboard softphone) Descriptive name (String) to be shown to the called party when calling.

default.wallboardphone.iceservers

(Wallboard softphone) List of ICE Servers to use. For turn servers with authentication, the format should be: turn:username:password@host. Username and Password should be urlencoded in case of special characters. Multiple ICE servers should be separated by a pipe symbol(|). e.g default.wallboardphone.iceservers=stun:stun01.sipphone.com|stun:stun01.sipphone.com|stun:stun.fwdnet.net

default.wallboardphone.websocketurl

(Wallboard softphone) Web Socket URL for the connection.

default.wallboardphone.server

(Wallboard softphone) The PBX Server the phone is connected to.

default.wallboardphone.register

(Wallboard softphone) Indicates if the sofphone should register to the PBX.

default.wallboardphone.autoanswer

(Wallboard softphone) Indicates if the phone should automatically answer any incoming call. (Only works if no other sessions are currently active).

default.showAstClid

If present and set to true it will enable the asterisk unique ID column on the answered/unanswered call details tables.

default.showSecondsOnTotalCalls

If present and set to true, the summary report call time figures will be shown in hhmmss format instead of hours format

default.disablebackhistory

If set to true, disable the history back navigation button in browsers

default.secondsServiceLevel

The default SLA that Traffic Distribution graphs will use (see DD08). Default: 20 seconds

default.jobmanifest_language

The language used when generating a manifest file for exported jobs. Tipically it affects the ID3 tags stored in mp3 recorded call files (since QM1.6.2)

default.pausecoderequired

If true, agents are required to provide a valid pause reason when entering a pause from the agent page. Default value is false

default.agentCanAmendPause

If set to "Yes", the agent can amend the current pause code retroactively changing the pause code for the current pause in reports. If set to "No", agents that try to change pause code will have their current pause ended an a new pause with the new pause code will be initiated

default.noncontig.days

Which days to include in Custom Reports non-contiguous time - (1: Sun 2:Mon) e.g. 23456 means MON to FRI

default.noncontig.period1.start

Start and end times (as HH:MM:SS or HH:MM) for non-contiguous time reports

default.noncontig.period1.end

See above

default.noncontig.period2.start

See above

default.noncontig.period2.end

See above

default.tasks.pingURL

If present and enabled, this property allows to specify a URL that is to be queried by the QueueMetrics server every time a task is completed/disputed by a person. All task information is sent to this URL. One example could be: http://server/index.html

default.searchQA_byCallDate

Defines if the QA reports should be calculated by call date or by filling form date

default.timeZoneOffset

Defines The default time zone offset. Valid values are between -24 and 24 hours (default = 0)

default.ssarMaxReportPeriod

Defines the maximum reporting period for a Self Service agent report. Default set to 15 days

default.export.orientation

Default page orientation for PDF whole report export buttons (value: portrait or landscape)

default.displayHomePageNews

Enable/Disable the QueueMetrics news block present on the home page

default.disable_directlogin_to_agentpage

If set to true, users holding AGENT and NEWAGENTPAGE keys are not directed to the Icon page when logging on QueueMetrics (since QM 14.10.5)

default.wombat.agent_recall_enabled

Enable/Disable the access to the Recall Scheduler panel in the Icon agent page. (since QM 15.02.4)

default.groupingMargin

Controls the margin used for FCR call clustering. Default 168hrs (7 days)

default.rewriteHotdeskingChannels

Enables rewriting of hotdesking information in data1 field of queue_log table. Default true.

default.rememberLastExtension

Controls the behaviour of the agent login panel in the agent’s page. Default is set to true, which remembers the last extension the agent used

default.show_agent_priority

Default value is true, if set to false will hide the agent level in the agent page.

default.show_agent_priority_reports

Default value is true, if set to false will hide the agent level column in reports.

default.effectiveCallThresold

The minimum lenght in seconds of a call to be counted as Effective; default is 150 seconds. See AG22.

default.maxRowsXls

The maximum number of rows per table that will be exported in XLS format. Default is 1000.

Short calls

Property name Description

default.shortCallWait

Exclude calls shorter than X seconds that ended with a caller abandon. Default: -1, i.e. 'off'.

default.shortCallTalk

Exclude taken calls shorter than X seconds that ended with a caller abandon. Default: -1, i.e. 'off'.

default.shortAttempt

Exclude attempts shorter than X seconds from attempt count. Default: -1, i.e. 'off'.

default.shortcall_treshold

Controls the threshold in seconds for short/long calls for reports, default is 30

default.shortCallsLimit

The default Short Call limit that Traffic Distribution graphs will use (see DD08). Default: 5 seconds

Maximum reporting period

Property name Description

report.maxAllowedDays

Reports that are longer than these many days cannot be run. Defaults to 0, meaning "No limit". The number of days in the current reporting period is approximated to the lowest value (that is, a report for a 36 hours counts as 1 day).

report.maxAllowedDaysExceptions

A set of security keys and maximum number of days, e.g "KEY1:18,KEY2:23". If maxAllowedDays is set, then the most favourable value for keys that the user holds is then used. Keep in mind that the most favourable value you can set is 0, meaning no limit. By setting these exceptions, you can control on a class-by-class or even user-by-user basis the actual maximum period to be enforced. You can use either system keys or your user-defined keys.

report.maxAllowedDaysHint

A hint message that will be added to the error if there is a maxAllowedDays violation. Might be used e.g. to tell the user to run large reports on a different instance.

Any violations will be logged on the syslog.

SMTP settings

All the settings for your SMTP host. Used by QueueMetrics to send reports by e-mail. If you encounter issues with e-mail delivery, please refer to the SMTP debug page at SMTP test.

Property name Description

default.smtphost

SMTP server host name or IP address

default.smtpport

SMTP server host port

default.smtpfrom

Sender E-mail address used by QueueMetrics

default.smtpuser

Username to authenticate to the SMTP host (Mandatory)

default.smtpassword

Password to authenticate to the SMTP host (Mandatory)

default.smtpssl

Use SSL when sending mail (value: true or false)

default.smtpDebug

SMTP transaction are reported on (value: true or false, default false)

default.smtpDailyQuota

Maximum number of emails that can be sent in a day to avoid flooding your SMTP provider. Defaults to 200. If 0, no limit.

default.smtpDailyUserQuota

Maximum number of emails that can be sent in a day by a specific user. Defaults to 50. If 0, no limit.

Call SLA

It is possible to have a different definition for the inital part of the SLA, having e.g. SLA computed every 5 seconds up to 30 seconds and every 10 seconds up to 60.

Property name Description

sla.max_initial_delay

The max initial delay and interval that will be shown in the SLA graphs

sla.initial_interval

sla.max_monitored_delay

The max delay and interval that will be shown in the SLA graph graphs

sla.interval

Platforms

The following properties control the general settings for all platforms. Each platform driver then has its own set of properties, see Platforms.

Property name Description

platform.allows.addfeaturecode

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.addmember

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.agentlogin

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.agentlogout

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.calloutcome

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.customdial

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.pause

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.removefeaturecode

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.removemember

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.sendtext

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.softhangup

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.spy_inbound

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.spy_outbound

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.transfer

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.unpause

If set to false, disables this action even when the driver allows it. Default true.

platform.allows.write_info_var

If set to false, disables this action even when the driver allows it. Default true.

Parser

The following properties control how QueueMetrics interprets data read from Asterisk. Depending on the version of Asterisk you are using, they may have to be set differently from the system defaults in order to get a correct picture of what is going on.

All these parameters only influence the way the queue_log is parsed, but make no change in the way QM handles interactions to the PBX.
Property name Description

default.permanentCallbackAgents

If call-back agents should be considered still logged on after a system reload; the current version of Asterisk will do this automatically. Default: true

default.considerIncompletetEntities

If incomplete entities (calls or agent sessions that are in progress at the moment that are in progress at the moment the analysis is being run) should be counted in the reports or not. Default: true

default.rewriteLocalChannels

Rewrites queue_log entries in the form Local/xxx@context to Agent/xxx . Default: false.

default.rewriteLocalWithQueue

If true, extension Local/123@ext on queue Q1 is read as Agent/Q1-123 . Default false.

default.joinMultiStintCalls

If true, multi-stint calls in the current analysis set are joined by default

default.useEndingChannelName

If true, the last reference to an agent is used as its name (in case they are different)

default.stripChannelNames

If true, anything after the "-" sign is deleted (ie. SIP/203-abcd is read as SIP/203). If false, the agent channel name is loaded as in the queue_log file. Default: true.

default.ignoreQueueStarts

If false, agents are logged on and calls closed on QUEUESTART records. Otherwise they will be ignored. Default false.

default.alwaysLogonUnpaused

If set to true, when an agent logs on, he will always be considered unpaused. This means: when an agent logs on, are they always unpaused, or should we keep their last pause status?. Defaults to false (keep last status).

default.ignoreRingNoAnswer

If true, the analyzer will ignore the RINGNOANSWER verbs in the queue log in favour of AGENTATTEMPT verbs.

default.subqueueModeEnabled

If set to true, all activities on subqueues are reported in the parent queue. Default: false

default.exitOnAgentDumpSysCompat

If true, AGENTDUMP and SYSCOMPAT verbs considered call closure records. If false, they are counted as failed attempts.

default.maxOngoingWaitTime

If set > 0, calls having more than the number of seconds of wait time are skipped. Defaults to 0 (all calls counted).

default.maxOngoingTalkTime

If set > 0, calls having more than the number of seconds of talk time are skipped. Defaults to 0 (all calls counted).

default.removeDoubleClosures

If set to true, a second closure record for a call just closed will be skipped. If the second record is a TRANSFER or similar, the call is closed as TRANSFER. This works around a long-standing Asterisk bug where a second call would be displayed with no telephone number. Default: true.

audit.maxReportTime

Any report (or real-time page run) that is not shorter than this value will be logged on the Audit log. Default: 30000 (milliseconds).

audit.maxRowsFetched

Any report (or real-time page run) that requres the scanning of more than this number of queue_log rows will be logged on the Audit log. Default: 1000000.

default.decodeKnownNumbers

If calling/callee numbers should be decoded when the number matches a Known number. Defaults to true.

default.hiddenNumberPolicy

The policy used to hide numbers. Defaults to hash. See Displaying numbers for a list of options.

System administration

The following parameters affect how QueueMetrics interacts with the host system it is running on.

Property name Description

script.reboot

The command to restart Tomcat. Must be set if this is wanted.

pwd.defaultLevel

Default level for saved passwords. See Secure passwords.

pwd.minAllowedLevel

Minimum allowed level for passwords. See Secure passwords.

Layout and behavior

Property name Description

layout.logo

Your company logo (full or relative path) - shall be resized to be an image 200 x 72. The variable $WEBAPP refers to the local webapp, as an alternative use the full http://.. URL.

layout.splash

Welcome string displayed on the login page. HTML not allowed to avoid XSS risks.

default.noLicenseWarning

Set to 'true' to disable license expiration notifications on the Home Page.

default.language

The default language. Must be one of the installed language packs. Default: en

default.country

The default country for the Locale. Must be one of the installed language packs. Default: US

default.forceDefaultLanguage

Whether to always offer the default system language as defined above (default: false)

default.viewTechInfo

Is it possible to see Tech Info on the licence page and run DBTest?

url.qm

The URL of the webapp QM is running under, if not detected correctly. See Secure Mode

url.rss

The URL of the webapp QM is running under - used for RSS access. Like http://1.2.3.4:8080/qm

default.displayHomePageNews

Whether the news block on the home page should appear or not

layout.secureMode

Whether Secure Mode is enabled. Default: false.

default.decimalDigits

Number of digits to display for floating-point numbers - defaults to 1. See warning below.

format.date

Overrides the default full date format for all languages. Usually similar to yyyy-MM-dd. See warning below.

format.dateTime

Overrides the default full date and time format for all languages. Usually similar to MMMM dd yyyy, HH:mm. See warning below.

format.dateTimeShort

Overrides the default "short" date and time format for all languages. Usually similar to MM/dd - HH:mm:ss. See warning below.

format.time

Overrides the default full time format for all languages. Usually similar to HH:mm:ss. See warning below.

format.timeShort

Overrides the default "short" time format for all languages. Usually similar to HH:mm. See warning below.

Please note that date, time and number formatting MUST follow the rules specified in https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html - failure to provide a valid format string may break reporting and/or render reports unreadable. Also, changing these properties requires a full restart of the webapp and possibly cleaning Tomcat caches.

Database Access

The following properties define the fields used by the table in MySQL storage. See Monitoring clusters with QueueMetrics for complete information.

Used with sql:P001|i or cluster:*|i, where i is the preset code. The common format sql:P001 with no pipe implies using preset 1.

While it is possible to use different table formats, it is not advisable to do so unless you can also add the correct access indexes. It is usually easier to simply upload all data to the QM database and access data from there.
Property name Description

sqlPreset.i.table

Sets the table name for preset 'i'

sqlPreset.i.f_time_id

The time columns.

sqlPreset.i.use_timestamp

True: time is a Unix timestamp; False: time is an SQL date-time

sqlPreset.i.f_call_id

sqlPreset.i.f_queue

sqlPreset.i.f_agent

sqlPreset.i.f_verb

sqlPreset.i.f_partition

May be left blank for partition-less schemas

sqlPreset.i.f_data1

sqlPreset.i.f_data2

sqlPreset.i.f_data3

sqlPreset.i.f_data4

sqlPreset.i.f_data5

sqlPreset.i.f_incr

The order-preserving index column. May be left blank, but this may lead to incorrect results.

Realtime Page

Property name Description

realtime.calls_invisible

Is the calls panel in the realtime page invisible by default? 0 false, 1 true

realtime.agents_invisible

Is the agents panel in the realtime page invisible by default? 0 false, 1 true

realtime.aggr_by_queue_invisible

Is the aggregated by queue panel in the realtime page invisible by default? 0 false, 1 true

realtime.aggr_by_tag_invisible

Is the aggregated by tag panel in the realtime page invisible by default? 0 false, 1 true

realtime.agent_and_outcome_invisible

Is the aggregated by agent and outcome panel in the realtime page invisible by default? 0 false, 1 true

realtime.members_only

Are not the only agents to be shown on the realtime page those who are "known" for the queue? 0 false, 1 true

realtime.refresh_time

In how many seconds is the realtime page to refresh?

realtime.use_sql_now

0: analyze all available data; 1: analyze all data which timestamp is lower than the current NOW() function. Do not change.

realtime.startHour

The starting hour of the day, in order to compute the realtime report. It can be either a fixed hour (e.g. 3: from the last 3:00 AM) or a sliding window if prefixes with S (e.g. s3: the last three hours). Default value is 0 (from midnight). A useful value is also -24 (yesterday’s midnight).

realtime.all_subqueues

Enable default showing of all subqueues if set to 1

realtime.waitAlarmOnLiveCalls

Decide whether to check for alarms on the wait time of ongoing conversations.

realtime.hideExportButtons

If true, hide export buttons on the Real-time page. Defaults to false.

realtime.absolutePauseTimes

If true, the start of the current pause is shown as an absolute hour; if false, it is shown as the time passed since.

realtime.calls_invisible.buttonEnabled

Decide which buttons o the real-time page can be toggled by the user. Buttons not enabled are set to their default value.

realtime.agents_invisible.buttonEnabled

realtime.members_only.buttonEnabled

realtime.all_subqueues.buttonEnabled

realtime.aggr_by_queue_invisible.buttonEnabled

realtime.aggr_by_tag_invisible.buttonEnabled

realtime.agent_and_outcome_invisible.buttonEnabled

realtime.assignedLocationsOnly

If true, the user will not be able to monitor without a given location. See page Using Locations for more details.

realtime.useRowCache

Cache result objects for the Real-time and Agents page when using SQL or cluster storage. Set to true to enable. Defaults to false.

realtime.show_incorrect_queue_sets

If true, queues the agent is working on and he’s a member of are displayed in black; queues the agent is working on but he’s not a member of are displayed in brown; any queues the agent is a known member of but he’s not currently logged on to are displayed as a tooltip to the gray "Down Arrow" symbol. Default false.

realtime.preventLoggedAgentInfoChanges

If true, or missing, the agent cannot change their code and extension if logged on at least one queue

default.callStatusTimeout

How much time (in seconds) an agent have to set an outcome code to the call after the call has finished. Defaults to 1800.

realtime.relativePauseTimes

Adds a new column (Paused For) to the "Agents currently logged in" table in the real-time page. This column shows how long an agent has been on pause, only if the pause is still ongoing.

realtime.ignoredQueues

One or more queues, separated by commas, that will be ignored by Presentialist. Default is _q-outbound, that is the "ignored calls" queue created by Uniloader in outbound tracking mode. See Real-time Performance.

Wallboard

Property name Description

realtime.useNewWallboard

Whether to use the new user-configurable wallboard. Defaults to true.

default.wallboard_kiosk_user

Default user for the Wallboard Kiosk URL.

Agent’s Realtime Page

Property name Description

realtime.max_bytes_agent

When the real-time page for an agent is computed, the queue_log is NOT read in its entirety but only the last 'n' bytes. In database storage mode, the number of seconds, starting from now and counting backwards, that will be queried for agent events.

realtime.agent_autoopenurl

When the real-time page for an agent shows a new call in the call list, and if the call detail contains an URL, this URL will be open in a new browser window.

realtime.agent_button_X.enabled

Enable or disable a custom button in the realtime page. X shall be an integer between 1 and 4.

realtime.agent_button_X.caption

This is the label associated to a button.

realtime.agent_button_X.url

Defines the URL that will be opened when the button is pressed. The tokens [A] and [U] are expanded by QueueMetrics with, respectively, the Agent’s ID and the most recent call Asterisk Call Unique ID as displayed in the call list. If no calls are present, Unspecified will be used instead.

realtime.agent_button_X.channel

Defines the first leg to be used in a dial command issued to the Asterisk server when the agent presses the button. E.g. Local/\104@from-internal .

realtime.agent_button_X.ext

Defines the second leg to be used in a dial command issued to the Asterisk server when the agent presses the button. E.g. 200@ext-queue .

realtime.dynamicLoginQueues

In the the new Icon panel based agent’s page, defines how an agent is allowed to log in to their own queues:

- all: The login panel shows all the queues visible by the agent in the available queue list and the agent is able to login on any of the queue

- registered: The login panel shows only the queues assigned to the agent and the agent could login/out on a single queue or on all queues

- assigned: The login panel shows only the queues assigned to the agent and the agent could login/out only on all queues only (in this situation the login panel behave like the "old" Log on and Log off pushbuttons)

In the old Agent Realtime page defines what queues should be listed in the dropdown when agents log-in/out through the Add Member/Remove Member button.

- all: The dropdown will show the "All assigned" option followed by the queues assigned to the agent (in QueueMetrics queues configuration) and queues where the agent was not assigned but it’s free to log in dynamically

- registered: The dropdown will show the "All assigned" option followed by the queues assigned to the agent (in QueueMetrics queues configuration)

- assigned: The dropdown will show only the "All assigned" option. In this situation the Add Member/Remove Member buttons behave like the "old" Log on and Log off pushbuttons.

realtime.agentRegexp

Sets allowed agent codes (e.g. set as "2\d\d" to allow agents like "2XX" but not "3XX" or "2X")

realtime.extensionRegexp

Sets allowed extension codes. Any other code will be rejected. (e.g. set as "3\d\d" to allow extensions like "3XX")

default.lockedAgentPopupCode

If true, the agent cannot change their code in the login/logoff/pause pop-ups. Defaults to false.

realtime.useActivePolling

Whether to have the client poll the server "behind the scenes" and reload the page when a call is detected.

realtime.ajaxPollingDelay

The interval between each successive client poll. The expected delay for calls is one half of this value.

realtime.all_includes_current_logins

If true, when logging off from ALL queues, any queue the agent is currently logged on will be disconnected. Default false.

realtime.agent_background_url

Default background web page for the realtime agent page. Normally used if no CRM and other background are used. If empty, the standard QueueMetrics background applies.

realtime.agent_web1_url

An URL used as first backgound in the Realtime Agent page. The key could be populated with an URL where some tokens will be expanded by the QM engine. Valid tokens are [A] (expanded with agent code). See also default.crmapp and default.crmlabel.

realtime.agent_web1_label

If present, used by the Realtime Agent page to identify this specific background on the dropdown menu

realtime.agent_web2_url

An URL used as second backgound in the Realtime Agent page. The key could be populated with an URL where some tokens will be expanded by the QM engine. Valid tokens are [A] (expanded with agent code). See also default.crmapp and default.crmlabel.

realtime.agent_web2_label

If present, used by the Realtime Agent page to identify this specific background on the dropdown menu

realtime.agent_webpanel1_url

An URL to be presented into the custom web panel in the Realtime Agent page. This URL does not support token expansion.

realtime.agent_webpanel1_label

If present, used by the Realtime Agent page to enable and identify the custom web panel on the dropdown menu

realtime.assertExtensionNotInUse

Before logging an agent in (in hotdesking mode) makes sure the extension is not in use. This option runs an analysis behind the scenes, so use it sparingly as will increase server load.

realtime.agentPausedOnLogin

When an agent logs in, if she is currently not working on any queues, pause them with the "autopauseCodeLogin" code. If the agent is currently working on some queues and paused, and adds new queues to their set, a pause is forced to make sure the Asterisk state is consistent on all queues. This option runs an analysis behind the scenes, so use it sparingly as will increase server load.

realtime.autopauseCodeLogin

The pause code to use for autopauses on login

agent.openUrlInPopup

If true, URLs in Icon will open in a separate window. Defaults to false.

agent.outcome_size

Maximum number of outcomes shown in the outcome menu before having to scroll. Defaults to 15, minimum value is 1 and maximum value is 50.

agent.pause_dialout

If true, stops agents from dialing out when on pause.

QAP Agent Page

agent.max_qap_calls

How many calls are supposed to be shown to each agent on their QAP agent call list. Defaults to 100. A higher number may be necessary, but it will have a performance impact.

agent.qap_cached_for_ms

How long is a cached real-time image valid to be used by the QAP agent page? default to 1500 ms. By making this value slightly higher or lower, you can adjust the amount of full recomputes that are needed to generate status data for the QAP agent page, and therefore a major amount of load on busy servers.

qap.answer_src

HTTP address of your custom answer tone audio file

qap.hangup_src

HTTP address of your custom hangup tone audio file

qap.dialtone_src

HTTP address of your custom dialtone audio file

qap.ringtone_src

HTTP address of your custom ringtone audio file

Asterisk Interaction

Property name Description

callfile.dir

The call-file directory Asterisk uses to generate calls based on .call files. Must be writable by the Java process. Default _/var/spool/asterisk/outgoing As an alternative, you may enter a Manager interface URI here, in the format _tcp:user:password@server If you do, QM will not generate call-files but will use the manger interface to generate calls. The same field is used by the asterisk configuration wizard when "Single Machine AMI" was selected as source.

callfile.monitoring.enabled

If unattended audio monitoring is enabled on this system. Default true.

callfile.monitoring.channel

The channel, and extension@context that will be called to implement the unattended audio monitoring functionality. Do not forget the trailing /n in the channel. A number of variables act as placeholders to be substituted by the actual data Asterisk is using: $AG: the current agent; $AE: the agent’s extension; $EM: the monitoring extension; See Listening to live calls: Unattended Call Monitoring for further information.

callfile.monitoring.extension

callfile.monitoring.context

callfile.agentpause.enabled

This function is used to start a pause from the Agent’s page and to set its Pause Code - see the sample dial plan provided.

callfile.agentpause.channel

callfile.agentpause.extension

callfile.agentpause.context

callfile.agentunpause.enabled

This function is used to end a pause from the Agent’s page - see the sample dial plan provided.

callfile.agentunpause.channel

callfile.agentunpause.extension

callfile.agentunpause.context

callfile.agentlogin.enabled

This function is used to log in an agent from the Agent’s page - see the sample dial plan provided.

callfile.agentlogin.channel

callfile.agentlogin.extension

callfile.agentlogin.context

callfile.agentlogoff.enabled

This function is used to log off an agent from the Agent’s page - see the sample dial plan provided.

callfile.agentlogoff.channel

callfile.agentlogoff.extension

callfile.agentlogoff.context

callfile.calloutcome.enabled

This function is used to set the call outcome code from the Agent’s page - see the sample dial plan provided.

callfile.calloutcome.channel

callfile.calloutcome.extension

callfile.calloutcome.context

callfile.addfeature.enabled

This function, together with callfile.removefeature.enabled, is used to add a call feature from the Agent’s page - see the sample dial plan provided.

callfile.addfeature.channel

callfile.addfeature.extension

callfile.addfeature.extension

callfile.removefeature.enabled

This function, together with callfile.addfeature.enabled, is used to remove a call feature from the Agent’s page - see the sample dial plan provided.

callfile.removefeature.channel

callfile.removefeature.extension

callfile.removefeature.context

callfile.agentdial.enabled

This function is not implemented yet.

callfile.agentdial.channel

This function is not implemented yet.

callfile.agentdial.extension

callfile.agentdial.context

callfile.outmonitoring.enabled

This function lets you monitor outgoing calls using a different piece of dial-plan, as outgoing channel names might be different from incoming ones.

callfile.outmonitoring.channel

callfile.outmonitoring.extension

callfile.outmonitoring.context

callfile.agentaddmember.enabled

This function is used to dynamically add an agent to a specific queue from the Agent’s page - see the sample dial plan provided.

callfile.agentaddmember.channel

callfile.agentaddmember.extension

callfile.agentaddmember.context

callfile.agentremovemember.enabled

This function is used to dynamically remove an agent from a specific queue from the Agent’s page - see the sample dial plan provided.

callfile.agentremovemember.channel

callfile.agentremovemember.extension

callfile.agentremovemember.context

callfile.customdial.enabled

This function allows an agent to dial through one outbound specific queue - see the sample dial plan provided.

callfile.customdial.channel

callfile.customdial.extension

callfile.customdial.context

callfile.writevar.enabled

This function lets an agent set a variable on a specific call - see the sample dial plan provided.

callfile.writevar.channel

callfile.writevar.extension

callfile.writevar.context

WombatDialer integration

Property name Description

wombat.url

URL where the Wombat Dialer can be reached

wombat.username

Username needed to access to some WombatDialer services

wombat.password

Password for accessing some WombatDialer services

default.wombat.agent_recall_enabled

Enable/Disable the access to the Recall Scheduler panel in the Icon agent page.

Real-Time Sounds

Property name Description

sound.yellowAlarm

Sound to be played if a yellow alarm is triggered. Can be either an absolute URL or a relative path

sound.redAlarm

Sound to be played if a red alarm is triggered. Can be either an absolute URL or a relative path

Cluster configuration

Property name Description

cluster.servers

A set of servers, which names must be used for subsequent properties

cluster.servername.manager

The manager API for this server, in the format tcp:user:pass@server. This field is also used by the asterisk autoconfiguration wizard when "Cluster AMI" source was selected.

cluster.servername.queuelog

The queue log partition to use, in the format sql:P001

cluster.servername.monitored_calls

The directory where monitored calls for this server can be found. If it starts with "http", an XML-RPC server to query this information

cluster.servername.callfilesdir

The directory in which callfiles must be generated for this sever. Usually leave blank.

cluster.servername.audioRpcServer

The URL of an XML-RPC server to be used for audio monitoring

cluster.servername.agentSecurityKey

The key with which this cluster entry must be protected on the Agent’s page

cluster.servername.websocketurl

The websocket URL used by the Realtime Agent page softphone for the selected server. It shold be in the followin form: ws://IPServer:Port/path

cluster.servername.sipaddress

The SIP server name or IP, used by the Realtime Agent page softphone for the selected server

cluster.servername.rtcWebBreaker

rtcWebBreaker flag used by the Realtime Agent page softphone for the selected server. The RTCWeb Breaker is used to enable audio and video transcoding when the endpoints do not support the same codecs or the remote server is not RTCWeb-compliant. Valid values are "true" or "false". If not present, the default value is "true".

tokenfor.user

Forces a specific token for a HTTP-based data upload to a cluster, if the uploading end-point does not support the token field (that is, it passes it as an empty string). This way you can create a separate data upload user for each PBX. Eg. tokenfor.loader1=aleph.

Audio Monitoring

Property name Description

audio.server

The PM to use for listening to recorded calls.

audio.liveserver

The PM to use for listening to live calls.

default.audioRpcServer

The URL of an external XML-RPC server for both listening of recorded calls and live call monitoring.

audio.lookBack

How many hours to check for midnight crossing. Used by the LocalFilesByDay PM.

audio.decrypt

The streaming decryption filter for encrypted recordings.

audio.html5player

Plays audio in the browser using an HTML5 audio player. Defaults to false.

mediaproxy.enabled

Whether QM acts as a proxy for recordings - see MediaProxy. Default: false

mediaproxy.linkvalidity

How long a link generated by MediaProxy remains usable (in seconds).

mediaproxy.header

The name of a custom header for the security token, or NONE

mediaproxy.token

The value of the securty token sent in the header.

Misc

Property name Description

manager.dump

By setting this property to true, the dialog between Asterisk and QM used to show the Live! Page is dumped to the Catalina.out log file. This makes it possible to send it over to Loway for debugging purpouses.

default.skip_task_on_qagrading

If not present or set to false, a new task will be sent to the graded agent each time a new qa form will be completed. If present and set to true, no tasks will be sent.

export.conversionCommand

If present, this specify the batch script (full) name to be called by the MP3 HTTP Transfer implementor for export tasks.

Autoconfiguration Wizard

Property name Description

default.autoconf.source

Defines the default source that will be selected in the dropdown list on the wizard configuration page. It could assume the following values: file for File sources; ami for Single Machine AMI; amic for Clustered Machines AMI; rtdb for Asterisk Realtime Database; quef for Asterisk Queue Log file

default.autoconf.fileagents

Defines the default agents file definition will be shown in the configuration wizard page and will be read by the configuration wizard unattended mode

default.autoconf.filequeues

Defines the default queues file definition will be shown in the configuration wizard page and will be read by the configuration wizard unattended mode

default.autoconf.fileusers

Defines the default users file definition will be shown in the configuration wizard page and will be read by the configuration wizard unattended mode

default.autoconf.filequeuelog

Defines the default queue log file will be shown in the configuration wizard page and will be read by the configuration wizard unattended mode

default.autoconf.realtimedrv

Defines the database technology used by asterisk to read/write the realtime database (as Java Driver package) For MySQL the default value is com.mysql.jdbc.Driver

default.autoconf.realtimeuri

Defines the realtime database location and authentication parameters in jdbc format.

Synchronizer

Property name Description

default.synchronizer_mode

Controls the default mode for the synchronizer page and for the QmPushCfgService Json service, default is "CR_UPD_DEL_USR" (Create Update Delete and Create Users)

default.synchronizer_reader

Controls the default source reader for the synchronizer page, default is "SOURCETYPE_FILE"

synchronizer.default_file_queuelog

Controls the default location for the queue_log file for the Synchronizer menu

synchronizer.default_file_agents

Controls the default location for the agents.conf file for the Synchronizer menu

synchronizer.default_file_queues

Controls the default location for the queues.conf file for the Synchronizer menu

synchronizer.default_file_users

Controls the default location for the users.conf file for the Synchronizer menu

synchronizer.url_source

Controls the URL for the URL source reader in the Synchronizer

synchronizer.default_password

This is the password that will be set as the default passwords for all users created through the synchronizer. If not specified all new passwords will be generated randomly. It is not specified by default.

Valid synchronizer modes are:

  • CR_UPD_DEL_USR

  • CR_UPD_DEL

  • CR_DEL_USR

  • CR_UPD_USR

  • CR_UPD

  • CREATEONLY_USR

  • CR_DEL

  • CREATEONLY

  • DEL_UPD_USR

  • DEL_UPD

  • DELETEONLY_USR

  • DELETEONLY

  • UPDATEONLY_USR

  • UPDATEONLY

  • NONE

External auth sources

See External auth for more details.

Property name Description

auth.externalSource

Leave empty if none. Valid values are json, ldap, xmlrpc.

auth.verboseLog

Whether to keep a verbose log of external auth

default.authSystemId

The system-ID for this QM license. Can be currently any user-chosen name for the system.

auth.jsonServerUrl

A server URL to query for JSON auth

auth.jsonPost

Whether to use POST (true) or GET (false). Default: false

auth.jsonIgnoreUsers

A set of users not to be checked on JSON. Comma-separated list of logins.

auth.ldapServerUrl

The LDAP URL, e.g. ldap://ldap.mycompany.com:389

auth.ldapBind

A LDAP binding used for log-on. Usualy the DN or e-mail, but depends on your server.

auth.ldapLoginAttr

If the actual login is to be rewritten to a LDAP attribute,

auth.ldapBase

The base for searching LDAP users. Only used if `ldapLoginAttr`is set

auth.ldapQuery

A LDAP query to match the user logged on. Only used if `ldapLoginAttr`is set

auth.ldapIgnoreUsers

A set of users not to be checked on LDAP. Comma-separated list of logins.

auth.ldapFailureDelegates

Whether a failure in LDAP auth is delegated or forbidden.

default.authRpcServerUrl

If set, XML-RPC auth is used. Points to the URL of the auth server.

Single Sign-On (SSO)

See Using SSO for more details.

Property name Description

sso.driver

One or more comma-separated SSO drivers

sso.placeholderClass

The class where new users will be created. Default: empty - no users are created

sso.verbose

SSO web calls are logged

sso.microsoft.loginMessage

Default: "Sign in with Microsoft"

sso.microsoft.loginIcon

The URL of custom icon

sso.microsoft.applicationId

The appication (client) ID

sso.microsoft.tenantId

The tenant (directory) ID

sso.microsoft.password

The secret (password)

sso.microsoft.authUri

If the app is not multi-tenant, enter the OAuth 2.0 authorization endpoint. Default: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"

sso.google.loginMessage

Default: "Sign in with Google"

sso.google.loginIcon

The URL of custom icon

sso.google.clientId

The client ID

sso.google.clientSecret

The secret

sso.google.authUri

Default: "https://accounts.google.com/o/oauth2/auth"

sso.google.tokenUri

Default: "https://oauth2.googleapis.com/token"

Assisted manual outbound (AMO)

Property name Description

amo.placedCallTimeout

The minimum time after a placed call will be evalued for recycling

Obsolete parameters

Property name Description

default.showLostCallsWhenFiltering

If true, lost calls are shown when running a report in filter mode. This is usually false, as all lost calls would be shown even if you run a report for a single agent.

Removed in version 1.5.1

dbmaint.agaw_oldestRun

Oldest obsolete run to keep when running a database optimization, in minutes

dbmaint.agaw_oldestLog

Oldest obsolete log to keep when running an optimization, in minutes

dbmaint.agaw_oldestBroadcast

Oldest obsolete broadcast entries to keep when running an optimization, in minutes

realtime.agent.show_agaw

Enable or disable the AGAW subset information table present in the agent’s realtime page.

An example configuration

This is a commented example configuration that contains most properties so you can see how they are supposed to be used in context.

# This is the canonical URL for this QM installation - please set
# If unset, it will be detected.
url.qm=

# This is an ALIAS to the default URL for stateless sessions. Some features (AGAW, tasks) may not work if you don't set this.
url.rss=

# This is the internal id (ex. 7, 49....) of the preselected default queue, leave blank for no default queue.
default.queue=1

# This is the default queue log file.
default.queue_log_file=sql:P001

# When the realtime page for an agent is computed, the queue_log is NOT read in its entirety but only the last 'n' bytes.
realtime.max_bytes_agent=65000

# When set to true, the live agent page will open a window each time the URL associated to the first row of call detail table changes.
realtime.agent_autoopenurl=true

# Defines how many queues the agent will select when logging on through AgentCallBackLogin
# Valid values are: all, registered, assigned
realtime.dynamicLoginQueues=all

# The top level directory where monitored calls are held.
# Do NOT forget to add the ending slash.
default.monitored_calls=/var/spool/asterisk/

# How many digits to consider as a default area code.
default.areacode_digits=3

# Preset start and end hours and number of days for the custom report.
default.start_hour=8

default.end_hour=18

default.days=7

# If liveclock is enabled, the system clock is synchronized with asterisk server system clock.
liveclock.enable=true

# Show summary report call time in hhmmss format instead of hours.
default.showSecondsOnTotalCalls=false

# The max delay that will be shown in the TOS graph.
sla.max_monitored_delay=120

# How big are time intervals for the TOS graph.
sla.interval=10

# It is possible to have a different definition, for the initial part of the SLA
sla.max_initial_delay=20

# The interval for the initial part of the SLA
sla.initial_interval=5

# Time margin (expressed in hours) to include different attempts in the same cluster
default.groupingMargin=168

# Your company logo (full/relative path, or https URL) - Recommended size 90x20px
layout.logo=$WEBAPP/img/sm_your_logo.png

# HTML string displayed on the login page.
layout.splash=Please ask your system administrator for the correct credentials to access this instance of QueueMetrics.

# Preset 1: standard DB access. Edit to suit your DB needs.
sqlPreset.1.table=queue_log
sqlPreset.1.f_time_id=time_id
sqlPreset.1.f_call_id=call_id
sqlPreset.1.f_queue=queue
sqlPreset.1.f_agent=agent
sqlPreset.1.f_verb=verb
sqlPreset.1.f_partition=partition
sqlPreset.1.f_data1=data1
sqlPreset.1.f_data2=data2
sqlPreset.1.f_data3=data3
sqlPreset.1.f_data4=data4
sqlPreset.1.f_data5=data5
sqlPreset.1.f_incr=unique_row_count

sqlPreset.2.table=queue_log
sqlPreset.2.f_time_id=time_id
sqlPreset.2.f_call_id=call_id
sqlPreset.2.f_queue=queue
sqlPreset.2.f_agent=agent
sqlPreset.2.f_verb=verb
sqlPreset.2.f_partition=
sqlPreset.2.f_data1=data1
sqlPreset.2.f_data2=data2
sqlPreset.2.f_data3=data3
sqlPreset.2.f_data4=data4
sqlPreset.2.f_data5=data5
sqlPreset.2.f_incr=unique_row_count

#
# Asterisk-realtime for Asterisk 1.8
#
sqlPreset.a18.table=asteriskdb.queue_log
sqlPreset.a18.f_time_id=time
sqlPreset.a18.use_timestamp=false
sqlPreset.a18.f_call_id=callid
sqlPreset.a18.f_queue=queuename
sqlPreset.a18.f_agent=agent
sqlPreset.a18.f_verb=event
sqlPreset.a18.f_partition=
sqlPreset.a18.f_data1=data1
sqlPreset.a18.f_data2=data2
sqlPreset.a18.f_data3=data3
sqlPreset.a18.f_data4=data4
sqlPreset.a18.f_data5=data5
sqlPreset.a18.f_incr=id

#
# Asterisk-realtime for Asterisk 1.6
#
sqlPreset.a16.table=asteriskdb.queue_log
sqlPreset.a16.f_time_id=time
sqlPreset.a16.use_timestamp=true
sqlPreset.a16.f_call_id=callid
sqlPreset.a16.f_queue=queuename
sqlPreset.a16.f_agent=agent
sqlPreset.a16.f_verb=event
sqlPreset.a16.f_partition=
sqlPreset.a16.f_data1=data
sqlPreset.a16.f_data2=
sqlPreset.a16.f_data3=
sqlPreset.a16.f_data4=
sqlPreset.a16.f_data5=
sqlPreset.a16.f_incr=id


# Is the calls panel in the Realtime page invisible by default?
realtime.calls_invisible=false

# Is the agents panel in the realtime page invisible by default?
realtime.agents_invisible=false

# Show on the Realtime page, only the Agents who are "known" for the queue.
realtime.members_only=false

# Show all subqueues (default: false)
realtime.all_subqueues=false

# How frequently the Realtime page will be refreshed (in seconds).
realtime.refresh_time=5

# If call-back agents should be considered still logged on after a system reload.
default.permanentCallBackAgents=false

# If incomplete entities (calls or agent sessions, that are in progress at the moment the analysis is being run) should be counted in the reports or not. (default: true)
default.considerIncompletetEntities=true

# The call-file directory Asterisk uses to generate calls based on .call files, set to blank for no call files at all or use TCP AMI connection
callfile.dir=tcp:admin:amp123@127.0.0.1

# Softphone parameters
default.sipaddress=127.0.0.1
default.websocketurl=ws://127.0.0.1:8088/ws
default.rtcWebBreaker=true

callfile.monitoring.enabled=true
callfile.monitoring.channel=Local/$EM@from-internal/n
callfile.monitoring.extension=11
callfile.monitoring.context=queuemetrics

callfile.outmonitoring.enabled=true
callfile.outmonitoring.channel=Local/$EM@from-internal/n
callfile.outmonitoring.extension=14
callfile.outmonitoring.context=queuemetrics

callfile.calloutcome.enabled=true
callfile.calloutcome.channel=Local/12@queuemetrics/n
callfile.calloutcome.extension=10
callfile.calloutcome.context=queuemetrics

callfile.addfeature.enabled=true
callfile.addfeature.channel=Local/16@queuemetrics/n
callfile.addfeature.extension=10
callfile.addfeature.context=queuemetrics

callfile.removefeature.enabled=true
callfile.removefeature.channel=Local/17@queuemetrics/n
callfile.removefeature.extension=10
callfile.removefeature.context=queuemetrics

callfile.agentlogin.enabled=true
callfile.agentlogin.channel=Local/20@queuemetrics/n
callfile.agentlogin.extension=10
callfile.agentlogin.context=queuemetrics

callfile.agentlogoff.enabled=true
callfile.agentlogoff.channel=Local/21@queuemetrics/n
callfile.agentlogoff.extension=10
callfile.agentlogoff.context=queuemetrics

callfile.agentpause.enabled=true
callfile.agentpause.channel=Local/22@queuemetrics/n
callfile.agentpause.extension=10
callfile.agentpause.context=queuemetrics

callfile.agentpause_ht.enabled=true
callfile.agentpause_ht.channel=Local/32@queuemetrics/n
callfile.agentpause_ht.extension=10
callfile.agentpause_ht.context=queuemetrics

callfile.agentunpause.enabled=true
callfile.agentunpause.channel=Local/23@queuemetrics/n
callfile.agentunpause.extension=10
callfile.agentunpause.context=queuemetrics

callfile.agentunpause_ht.enabled=true
callfile.agentunpause_ht.channel=Local/33@queuemetrics/n
callfile.agentunpause_ht.extension=10
callfile.agentunpause_ht.context=queuemetrics

callfile.agentaddmember.enabled=true
callfile.agentaddmember.channel=Local/25@queuemetrics/n
callfile.agentaddmember.extension=10
callfile.agentaddmember.context=queuemetrics

callfile.agentaddmember_ht.enabled=true
callfile.agentaddmember_ht.channel=Local/35@queuemetrics/n
callfile.agentaddmember_ht.extension=10
callfile.agentaddmember_ht.context=queuemetrics

callfile.agentremovemember.enabled=true
callfile.agentremovemember.channel=Local/27@queuemetrics/n
callfile.agentremovemember.extension=10
callfile.agentremovemember.context=queuemetrics

callfile.agentremovemember_ht.enabled=true
callfile.agentremovemember_ht.channel=Local/37@queuemetrics/n
callfile.agentremovemember_ht.extension=10
callfile.agentremovemember_ht.context=queuemetrics

callfile.writevar.enabled=true
callfile.writevar.channel=Local/38@queuemetrics/n
callfile.writevar.extension=10
callfile.writevar.context=queuemetrics

callfile.customdial.enabled=true
callfile.customdial.channel=Local/$EM@from-internal/n
callfile.customdial.extension=28
callfile.customdial.context=queuemetrics

callfile.smssend.enabled=false
callfile.smssend.channel=Local/10@queuemetrics/n
callfile.smssend.extension=29
callfile.smssend.context=queuemetrics

callfile.hangupcall.enabled=true
callfile.hangupcall.channel=Local/10@queuemetrics/n
callfile.hangupcall.extension=30
callfile.hangupcall.context=queuemetrics

callfile.transfercall.enabled=true
callfile.transfercall.channel=Local/10@queuemetrics/n
callfile.transfercall.extension=31
callfile.transfercall.context=queuemetrics

# Rewrites Local/XXX@ext channels in the format Agent/XXX
default.rewriteLocalChannels=true

# DO NOT CHANGE
realtime.use_sql_now=false

# If an ongoing call has a wait time that exceeds this value (in seconds), drop it. (0: ignore)
default.maxOngoingWaitTime=7200

# If an ongoing call has a talk time that exceeds this value (in seconds), drop it. (0: ignore)
default.maxOngoingTalkTime=7200

# Ignore QUEUESTART statements.
default.ignoreQueueStarts=false

# The starting hour of the day, in order to compute the realtime report. It can be either a fixed hour (e.g. 3: from the last 3:00 AM) or a sliding window if prefixed with S (e.g. s3: the last three hours). Default value is 0 (from midnight). A useful value is also -24 (yesterday’s midnight).
realtime.startHour=0

# The default locale for QueueMetrics. DO NOT CHANGE unless you know what you're doing.
default.language=en
default.country=US

# If QueueMetrics should always show the default system language (default: false).
default.forceDefaultLanguage=false

# Disable the history back navigation button in browsers.
default.disablebackhistory=true

# Which channel name to show for a call: True: last one seen - False: first one found.
default.useEndingChannelName=false

# How to create Excel files: True: Excel 2003 XML - False: CSV.
default.useXmlExcel=true

# If true, show the queue composition; if fals, show just the main queue name.
default.showQueueComposition=true

# How long is an hour for hourly breakdown; default 60 minutes.
default.hourly_slot=15

# If true, anything after the "-" sign is deleted (ie. SIP/203-abcd is read as SIP/203). If false, the agent channel name is loaded as in the queue_log file. (default: true)
default.stripChannelNames=true

# Asterisk Unique ID visibility and related callback URL associated to the icon.
default.crmapp=https://www.queuemetrics.com/sample_screen_pop.jsp?agent=[A]&unique=[U]

# The name of the CRM application in the Icon Agent page.
default.crmlabel=CRM

# If true opens the url specified in default.crmapp in a pop-up instead of the background Iframe.
agent.openUrlInPopup = false

# How much time (in seconds) an agent has to set an outcome code, to the call, after the call has finished.
default.callStatusTimeout = 1800

# Show agent priority on queues in agent logon panel.
default.show_agent_priority=true

# Custom web pages for the realtime agent page.
realtime.agent_web1_url=https://www.queuemetrics.com/sample_screen_pop.jsp?agent=[A]
realtime.agent_web1_label=
realtime.agent_web2_url=https://www.queuemetrics.com/sample_screen_pop.jsp?agent=[A]
realtime.agent_web2_label=

# If true, it will enable the Asterisk unique ID column on the answered/unanswered call details tables.
default.showAstClid=false

# Join multi-stint calls globally.
default.joinMultiStintCalls=false

# Decide whether to check for alarms on the wait time of ongoing conversations.
realtime.waitAlarmOnLiveCalls=false

# Sound for yellow alarm on real-time page - If you want this played, you could put ../img/sounds/dingdong.wav
sound.yellowAlarm=../img/sounds/silence.wav

# Sound for red alarm on real-time page - If you want this played, you could put ../img/sounds/ringer.wav
sound.redAlarm=../img/sounds/silence.wav

# Cluster to poll for Realtime data.
# List of pipe-separated members of the cluster.
# If callfilesdir = "", the commands will be sent through the manager API.
cluster.servers=aleph|trix

cluster.aleph.manager=tcp:dial:12345@10.10.3.5
cluster.aleph.queuelog=sql:P001
cluster.aleph.monitored_calls=/mnt/qm_streamcall/server_aleph
cluster.aleph.callfilesdir=
cluster.aleph.audioRpcServer=
cluster.aleph.agentSecurityKey=
cluster.aleph.websocketurl=ws://10.10.3.5:8088/ws
cluster.aleph.rtcWebBreaker=false
cluster.aleph.sipaddress=

cluster.trix.manager=tcp:admin:amp111@127.0.0.1
cluster.trix.queuelog=sql:P002
cluster.trix.monitored_calls=/mnt/qm_streamcall/server_trix
cluster.trix.callfilesdir=
cluster.trix.audioRpcServer=
cluster.trix.agentSecurityKey=
cluster.trix.websocketurl=ws://127.0.0.1:8088/ws
cluster.trix.rtcWebBreaker=false
cluster.trix.sipaddress=

# If true, hide export buttons on the Realtime page.
realtime.hideExportButtons=true

# If true, show all agent sessions. If false, show only agent sessions with at least one call.
default.useRawAgentSessions=false

# If true, the agent cannot change their code in the login/logoff/pause popups.
default.lockedAgentPopupCode=true

# If true, or missing, the agent cannot change their code and extension if logged on at least one queue.
realtime.preventLoggedAgentInfoChanges=true

# If true, the user will not be able to monitor without a given location.
realtime.assignedLocationsOnly=false

# If true, the start of the current pause is shown as an absolute hour; if false, it is shown as the time passed since.
realtime.absolutePauseTimes=true

# Which buttons on the realtime page are enabled?
realtime.calls_invisible.buttonEnabled=true
realtime.agents_invisible.buttonEnabled=true
realtime.members_only.buttonEnabled=true
realtime.all_subqueues.buttonEnabled=true
realtime.aggr_by_queue_invisible.buttonEnabled=true
realtime.aggr_by_tag_invisible.buttonEnabled=true
realtime.agent_and_outcome_invisible.buttonEnabled=true

# Create a text dump of the manager conversation for the Live page (#326)
manager.dump=false

# If a filter is on, no "lost" calls should be shown.
default.showLostCallsWhenFiltering=false

# The default length of a manually-closed call.
default.closeDuration=5

# This is the name of the class that finds recordings. See documentation for more details.
audio.server=it.loway.app.queuemetrics.callListen.listeners.LocalFilesByDay

# This is the name of the class that starts live listening. See documentation for more details.
audio.liveserver=it.loway.app.queuemetrics.callListen.RTlisteners.ClassicQMListenerRT

# Is it possible to see Tech Info on the licence page and run DBTest?
default.viewTechInfo=true

# Defines some default values for the autoconfiguration tool.
default.autoconf.source=file
default.autoconf.fileagents=/etc/asterisk/agents.conf
default.autoconf.filequeues=/etc/asterisk/queues.conf
default.autoconf.fileusers=/etc/asterisk/users.conf
default.autoconf.filequeuelog=/var/log/asterisk/queue_log
default.autoconf.realtimedrv=com.mysql.jdbc.Driver
default.autoconf.realtimeuri=jdbc:mysql://127.0.0.1/asteriskrealtime?zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&user=admin&password=amp111

# If set to true, when an agent logs on, he will always be unpaused. Since v1.5.2
default.alwaysLogonUnpaused=true

# If set to something different than 0, enables hotdesking mode.
# The value is interval time (in seconds) used by the analyzer to look back searching HOTDESK verbs in the queue log
default.hotdesking=86400

# If set to true, Agents are required to provide a valid pause reason when inserting a pause from their Agent Page.
default.pausecoderequired=false

# The script to use in order to restart Tomcat.
script.reboot=/usr/local/queuemetrics/qm-current/WEB-INF/mysql-utils/restart/restart.sh

# Which days to include (1: Sun 2:Mon; e.g. 23456 means MON to FRI).
default.noncontig.days=

# Start and end times (as HH:mm:ss) for noncontiguous reports
default.noncontig.period1.start=
default.noncontig.period1.end=
default.noncontig.period2.start=
default.noncontig.period2.end=

# Number of digits to display for floating-point numbers.
default.decimalDigits=1

# Task Ping URL for any approved/disputed operation.
default.tasks.pingURL=

# Defines if the QA reports should be calculated by call date or by filling form date.
default.searchQA_byCallDate=true

# A regex to validate agent codes (e.g. "1\\d\\d" to allow all three-digit numbers starting with 1).
realtime.agentRegexp=.+

# A regex to validate extension codes (e.g. "\\d\\d" to allow all two-digit numbers).
realtime.extensionRegexp=.+

# Maximum period allowed for a Self Service Agent Report.
default.ssarMaxReportPeriod=15

# QueueMetrics mailer configuration (leave smtphost key empty to disable the mailer)
default.smtphost=
default.smtpport=587
default.smtpfrom=from.mail@example.com
default.smtpuser=from.user@example.com
default.smtpassword=verysecret
default.smtpssl=false
default.smtpDebug=false
# SMTP usage quotas
default.smtpDailyQuota=200
default.smtpDailyUserQuota=50


# PDF direct exported reports will use this orientation as default.
default.export.orientation=portrait

# If true, the queues where the agent is working and is a member of, are displayed in black; queues where the agent is working on but is not a member, of are displayed in brown; any queues the agent is a known member of, but is not currently logged on to, are displayed as a tooltip to the gray "Down Arrow'' symbol. (default false).
realtime.show_incorrect_queue_sets=false

# If true, when logging off from ALL queues, any queue the agent is currently logged on will be disconnected. (default false)
realtime.all_includes_current_logins=false

# The Realtime page uses Active Polling.
realtime.useActivePolling=true

# The Agent page polls every X seconds (DO NOT set too low or server load will go up).
realtime.ajaxPollingDelay=5

# Use RowCache to avoid hitting the DB on each request.
realtime.useRowCache=true

# Before logging an agent in (in hotdesking mode) makes sure the extension is not in use.
realtime.assertExtensionNotInUse=true

# When an agent logs in, pause them with the "autopauseCodeLogin" code.
realtime.agentPausedOnLogin=false

# The code to use for autopauses on login.
realtime.autopauseCodeLogin=

# Do we want to use the HTML5 audio player?
audio.html5player=true

#
# DIRECT AMI configuration
#

platform.pbx=DIRECTAMI
platform.directami.agent=Agent/${num}
platform.directami.extension=PJSIP/${num}
platform.directami.transfer=${num}@from-internal
platform.directami.outbound.enabled=true
platform.directami.localext=PJSIP/${num}
platform.directami.verbose=true

# Encrypted password are (1) not required for log in (2) required for log-in.
pwd.minAllowedLevel=1

# When  updated, passwords are saved (1) plain-text (2) encrypted.
pwd.defaultLevel=1

# Default user for the Wallboard Kiosk URL.
default.wallboard_kiosk_user=robot

# Short calls; which calls are excluded when unanswered and wait time is less than X seconds.
default.shortcalls_wait=-1

# Short calls;  which calls are excluded when answered and talk time is less than X seconds.
default.shortcalls_talk=-1

# Short calls - which attempts are excluded if less than X seconds.
default.shortcalls_attempts=-1

# Default theme.
default.selectedTheme=default

# Reports that take longer end up on the Audit log.
audit.maxReportTime=30000

# Reports that scan more lines end up on the Audit log.
audit.maxRowsFetched=1000000

# reports that are longer than these many days cannot be run. 0: No limit.
report.maxAllowedDays=0

# a set of exceptions to maxAllowedDays with the format "KEY:N_DAYS,KEYS:N_DAYS"
report.maxAllowedDaysExceptions=

# a hint message that will be added to the error if there is a maxAllowedDays violation
report.maxAllowedDaysHint=

# Whether known numbers (eg VIP) should be used to decode caller numbers
default.decodeKnownNumbers=true

# The number hiding policy for agents having the key HIDE_NUMBERS
default.hiddenNumberPolicy=hash

# The time-out after ist beginning that an AMo call will be recycled.
amo.placedCallTimeout=3600

# When sending an email, a new subeject instead of [QueueMetrics]
default.smtpSubjectPrefix=

# Additional text to be added to the email containing exported reports
default.smtpExtraBody=