Changelog DINOMI Call Center Module

Changelog version 1.1.6-1

Fixed bugs:

  • Dialer: fixed call to a no-longer-existing method of a connection when handling a hangup of an automatic IVR call. The symptom was a dialer crash if the autoivr call was hung up in the middle of a playback.
  • Dialer: fixed incorrect handling of the SIGCHLD signal that caused one or more processes to consume all CPU shortly a launched or forked child process terminates.

Changelog version 1.1.6-0

Changes:

  • Manual dialing campaigns: implemented ability to assign each contact from a CSV upload to a particular agent. This allows each agent to have an independent set of contacts within the shared manualdialing campaign. To use this, the contact upload dialog now contains an agent selection dropdown. This can be set to (no) for the previous behavior, to an specific agentnick, or to the agentnick contained in a specific column of the upload (by position or column tag).
  • Campaign Monitoring: each message added to the message list now scrolls the view to the bottom in order to keep the last message visible.
  • Efficiency by Agent: new column shows idle time per agent.
  • New configuration flag that hides some digits from the phone calls in the Calls Detail display when viewed by a non-admin.
  • The campaign modification dialog for all campaigns has been reorganized using tabs as a visual cleanup and as a preparation for a future campaign functionality.
  • Brazilian Portugese translations contributed by Fábio Vital from GVP Brasil.

Fixed bugs:

  • Dialer: fixed potential error in which the alarm that signaled the scheduled start for an automatic IVR campaign was not being installed. The consequence was that an autoivr campaign that was scheduled to run in the future, rather than right now, would fail to start.
  • Dialer: fixed bug in which an incoming call that arrives through a queue NOT being used by an active incoming campaign would fail to update its in-database status from on-queue to handled-by-agent, even when correctly assigned to an agent.
  • Dialer: tweaked call generation from Asterisk so all configured codecs are negotiated. This allows a videocall to be put on hold and then recovered with video intact.
  • Manual dialing campaigns: fixed bug in which an attempt to save 0 (zero) as the number of entries of the call history (in agent phone entry mode) was ignored and would save an empty value in its place, allowing an uncapped number of entries to be loaded.
  • Outgoing/Manual dialing campaigns: fixed bug when loading new contacts into a finished campaign, that assigned the ACTIVE campaign flag without refreshing the dialer state. The consequence was that the campaign would appear as ACTIVE in the campaign list, yet the dialer would not run calls from it.
  • Queues: fixed failure to refresh the dialer state when queues are created, enabled or disabled. Additionally prevent a queue from being disabled if there is at least one active campaign using it.
  • Agent monitoring: ringing start on a manual call now resets the last state counter, as done in Campaign Monitoring.
  • Agents: fixed a bug that prevented update of the password or description of an existing static agent (chan_agent) in the Asterisk configuration, except by deleting and recreating the agent channel.
  • Licensing: fixed bug in which an incorrectly-encripted file caused the licensing module to fail to run if a trial license expired.
  • Supervisor Accounts: multiple supervisors on the same team are no longer allowed.
  • Dialer: performed general tuning of event handling in order to optimize out unnecessary verification loops. In particular, one database read that was performed every 3 seconds by every single ECCP worker process (to check if the configuration had changed) has been removed.

Changelog version 1.1.5-0

Changes:

  • Manual dialing campaigns: implemented a limit to the call attempt history fetched by each agent when the campaign is running in explicit phone entry mode. If the campaign runs for a long time, it is recommended to set this limit to a value of 500 or below.
  • Implemented virtual campaign delete. Previously, the act of removing a campaign always removed the call data for this campaign, which could impact reports. If this is unacceptable, it is now possible to enable virtual campaign delete (through the General Configuration module), so that the campaign will be merely marked as permanently unavailable, while preserving call history and data.
  • Agent Console: if the agent was in a pause while starting an explicit phone dial, the pause is now terminated when the dialing starts instead of only when the call is connected.
  • About Us: the dinomi.com site now uses HTTPS exclusively. External links to the changelog were fixed to match.

Fixed bugs:

  • Fix dialer crash that happened whenever the dialer fails to figure out a channel component on an active call, and then this same call is put on hold.
  • Silenced noisy warning messages in the dialer log when building information on a call being dialed.
  • Outgoing campaigns: fixed error in campaign recycling in which contacted contacts could be selected for recycling even if the selection filter specified uncontacted contacts.
  • Monitoreo de campañas: se corrige error que causaba que las filas de reporte correspondientes a monitoreo de campañas manuales permanecieran visibles si se seleccionaba una campaña de otro tipo.
  • Campaign monitoring: fixed SQL syntax error that caused a failure to read the campaign log if an outgoing campaign was monitored.
  • Campaign monitoring: campaign log read is now allowed for manual dialing campaigns.
  • Campaign monitoring: include start of manual call ringing as a state that resets the time counter of the last agent state.
  • Agent monitoring: fix regression that caused unnecessary request activity to the server when the report is running in long-polling mode.
  • The dialer now implements terminating idle worker processes if more than one minute passes since the last use. This allows closing of database connections that otherwise could accumulate and reach the database server limit.
  • Agent console: tune the agent activity keepalive to reduce the workload on the dialer, especially with many simultaneous active agents.
  • Fix dialer crash that happened if a secondary call is started, and then terminates with a failure.

Changelog version 1.1.4-0

Changes:

  • Campaign Monitoring: implemented realtime monitoring of manual dialing campaigns. Separate icon types are used for ringing and busy status of the outgoing call.
  • Campaign Monitoring: absolute time counters are now used and updated everywhere instead of timestamps since call start/login/pause start.
  • Campaign Monitoring: a different color is used if the agent is busy with a call from a campaign other than the monitored one. This icon is a link that switches the monitoring to the campaign that originated the foreign call.
  • Agent Monitoring: special icons are now used for manual dialing calls and its states.
  • Agent Console: when using a manual dialing call in explicit phone input mode, a history of past call attempts is now displayed with a search function when typing a new number.

Fixed bugs:

  • Campaign Monitoring: show a dash as the counter instead of the word “null” if the agent is busy with a call not from the monitoring campaign.
  • Fixed the SQL query used for fetching the next phone numbers of the outgoing campaign so it does not spend several minutes querying a contact database with hundreds of thousands of numbers.
  • Fixed automatic IVR behavior when the call is hung up in the middle of interaction, to prevent further IVR commands from being executed with a dead channel.

Changelog version 1.1.3-0

Changes:

  • An optional timeout attribute has been added to all break definitions. If a timeout value (in seconds) is assigned to a break type, and then an agent spends more than this amount of seconds in a pause using this break, the monitoring icon in both Campaign Monitoring and Agent Monitoring will change into a pulsating orange warning icon.
  • The Campaign Monitoring (ccpro_campaign_monitoring) module now uses a time counter instead of a static timestamp for the agent interval display.
  • The Campaign Monitoring module now displays the agent name and channel in addition to the agent nick.
  • Both Agent and Campaign Monitoring were tweaked to reset the time counter when the agent exits a break, instead of counting from the last handled call.
  • The agent management module (ccpro_agents) was updated to sort agents by agent nick order.
  • The queue assignment module (ccpro_assign_agents) was updated to sort the queues by queue number.
  • The IVR script test will now provide the dinomi_call_phone value for any COMMAND type step present in the IVR script.
  • The dialer behavior has been improved to better handle an abnormal exit of the AMIEventProcess dialer component.

Fixed bugs:

  • Fixed a bug in IVR script execution that caused a conditional jump to never happen if a conditional jump was set based on the value of a DTMF entry, and simultaneously the step assigned a translation value to save the DTMF entry.
  • Prevent use of a null reference to an Asterisk AMI connection if an operation on any queue, agent or call happened at the exact moment the dialer had lost its AMI connection.
  • Fix regression that caused the agent row in Campaign Monitoring to not disappear if, in another browser session, the queue assignment module was used to remove the agent from the campaign queue.
  • Fix error in the French translation file of the Callcenter Config module that inserted an extraneous newline character in all output, including the download of the ccprorecordings.php script. This corrupted script, if uploaded to a remote Asterisk, would then corrupt all recording downloads by insertint this same extraneous newline character. If using the French locale, in order to recover from this error, it is necessary to re-download the ccprorecordings.php file after updating, and then copy the file to the remote asterisk, overwriting the corrupted script.
  • Fixed failure to reset the Hold button of the Agent Console if a call was on hold when agent logs out.

Changelog version 1.1.2-0

Changes:

  • A new source of variables for the Automatic IVR has been implemented. The Call Attempt Attribute source contains values taken from the current call attempt. Available values are: phone start_time id_campaign id_contact id_contact_number id retry. In particular, the currently-dialed phone number is now available as the “phone” variable.
  • A new type of IVR step has been created: the COMMAND step. This step allows execution of an external program that can perform arbitrary actions to extend the IVR functionality, and can also assign variables to save. For communication, this program should follow the AGI protocol: the program receives all agi_* variables received through FastAGI, followed by variables of the form dinomi_[campaign|contact|save|call]_{KEY} for all variables available through the campaign. In particular, the dinomi_call_phone key contains the currently-dialed phone. An implementation of SET VARIABLE (https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+AGICommand_set+variable) is supported in order to assign variables to save as part of the call, to be later retrieved through the CSV download.
  • The licensing modules (ccpro_about, ccpro_licensing) now use an unified library in order to download and install licenses. Additionally, more explicit error messages are displayed if the license could not be obtained. This enables, specifically, detection of a licensing request that was blocked by an intermediate intranet proxy.
  • The order of tabs in the General Configuration module was changed so that it does NOT show the selection of the call_center_pro location as the very first item. This option is for expert configuration only.
  • The Agent Monitoring module now shows, for each idle agent, the idle time from the last call, instead of the time from the start of the agent session.
  • The CSV download for outgoing calls now includes the AMD status for the call.
  • The Campaign Monitoring module now shows the agent name and the agent channel, in addition to the agent nick. Additionally, the icons and colors used by the Agent Monitoring module are now reused.
  • The Campaign Monitoring module now shows the timestamp in which the currently idle agent last became idle, instead of showing a blank filler.
  • The manual dialing campaign now has a flag for automatic agent un-pausing. If this flag is active, if the agent initiates a manual call while paused, the pause will be terminated when the call is connected.
  • Internal cleanup – a generic CSV download library has been extracted from all campaign download modules. This allows sharing the code between all campaign modules, including the tricks to save memory while downloading, that were previously duplicated in several modules.

Bugs fixed:

  • Fixed inability to dial an outgoing campaign call using a direct trunk of type IAX2.
  • Fixed inability to start a SSL connection from the dialer to the webchat proxy under PHP 5.1/Elastix 2.x.
  • Fixed invalid pagination and filter control links in Chat Service Level module.
  • Fixed inability to remotely interact with remote IVR recordings using ccprorecordings.php if the remote asterisk exposed the webserver using HTTP but not HTTPS.
  • The ccprorecordings.php script now allows downloading of recordings if the Asterisk recording directory (astspooldir) contains one or more path components that are symlinks. Previously the download was denied as a security measure. In order to apply this fix, the ccprorecordings.php script must be replaced in the remote Asterisk server.
  • The configuration module now checks that the AMI user for the dialer has the minimum privileges necessary to work, and rejects setting an AMI user with insufficient permissions.
  • Fix missing stripping of the $ASTSPOOLDIR/monitor prefix from a recording path when recording an incoming call, making the behavior consistent with other call types. The symptom of this issue was an inability to download recordings from incoming calls when using a remote Asterisk, as done in DINOMI ISO.

Changelog version 1.1.1-0

Changes:

  • Implementation of secondary calls. Once authorized (by the campaign or through the agent configuration), an agent handling a call from any campaign type (incoming campaign, outgoing campaign, manual dialing) may now use the hand sign button in the Agent Console to put the call on hold. The agent will then have a text box where an arbitrary phone number may be entered, and the dialer will start the secondary call and connect it to the agent extension. This operation may be repeated an arbitrary number of times. After this the agent may pick up the primary call and restart the conversation. The secondary calls are currently visible in teh Calls Detail report as a dropdown under the primary call, when clicking on the digit stating the number of secondary calls. NOTE: in order to use this functionality, the Asterisk Call Parking functionality needs to be enabled through the FreePBX admininstration GUI, and a number of parking slots created at least as large as the number of authorized agents for secondary calls.
  • The manual dialing campaign now has a new mode of phone handling. If the manualdialing campaign type is set to “Agent Phone Entry”, the agent will have a textbox for phone entry instead of contact navigation. Multiple phone numbers may be entered at once. The Agent Console will create a new contact with the entered phone numbers and (if the Automatic Dial on View flag is enabled in the campaign) will try to dial the numbers sequentially until one of them answers the call. These created contacts appear as ordinary contacts in the CSV download for the campaign.

Fixed bugs:

  • Tweaked license verification code path in Agent Console in order to cut 1-2 seconds from each operation performed by the agent, and up to 4 seconds from the initial console loading.
  • Implemented storing of the number used in a call transfer attempt on a manualdialing call.
  • Fixed activation state on the lateral panel of manualdialing campaigns – previously this panel could appear closed even if the activation button (pointing hand) was displayed as active.

Changelog version 1.1.0-0

Changes:

  • New feature: implemented webchat agents. Once the required number of agents have been licensed, a chat dialog can be embedded in a public web page. The page visitor may enter a nick and a topic and will then enter a chat session. Agents with chat service enabled will see the new conversation and may now enter the chat session and chat with the page visitor.
  • As a prerequisite for the above functionality, the agent identity is now separate from the voice channel to use. During the agent lifetime the administrator may associate it with several telephony extensions, or none at all. The update migration will generate standard agent nicks from existing assigned voice channels.
  • Large re-structuring of agent administration module. Now static and dynamic agents appear in a single listing.
  • Campaign Monitoring: implemented generation of campaign evaluation events. These events allow the supervisor to know when the dialer is evaluating the campaign to see if calls should be generated.
  • About Us: added links to online changelog in dinomi.com site.
  • EXPERIMENTAL implementation of REST URLs for campaign contact upload: https://user:password@dinomisrv.example.com/rest.php/[ccpro_campaign_out|ccpro_campaign_manual|ccpro_campaign_autoivr]/campaigns/{CAMPAIGN_ID}/contacts . Please contact soporte@palosanto.com for instructions on how to integrate this in your installation.

Fixed bugs:

  • Fixed incorrect installation of logrotate configuration file (with incorrect +x permission) that causes the logfile to grow indefinitely without ever being rotated.
  • Fixed handling of incoming and manualdialing campaigns without assigned forms.
  • ACD Performance Display: prevent division by zero if there are no calls in examined interval.
  • Optimizations to save database reads of data that dialer already has in memory. This should improve the following ECCP event paths: dialing progress, agent linked to call.

Changelog version 1.0.0-38

Changes:

  • Agent Monitoring: now the realtime monitoring shows the extension used by the static agent for the agent login.
  • It is now possible to define the ShortCall threshold per-campaign, rather than in the global configuration. Additionally the autoivr campaign now ignores the short call threshold by default, and it has to be explicitly enabled per campaign. This prevents the common case of campaign calls consisting of a very short recording from automatically being classified as short calls.

Fixed bugs:

  • Fixed severe bug in which an incorrect verification of the MySQL password in /etc/elastix.conf breaks DINOMI installation if the call_center_pro database did not previously exist, with a (incorrect) message that the stored password is invalid.
  • Disabled excessive phpagi logging in multiple places where it interferes with the legitimate webserver logs.

Changelog version 1.0.0-37

Changes:

  • For Elastix 2.x the minimum required version is now 2.5.0-11, because this version first introduced the FontAwesome icon font used in several DINOMI modules.
  • If the pigz package (multithreaded gzip compression) is available, bulk recording downloads will use it to accelerate the recording tarball compression by using all cores of the DINOMI server.
  • Manual campaigns now have an attribute that signals that the agent must claim a contact as exclusive by the act of viewing the contact. This mitigates the issue of one agent being unable to dial a number in a contact because a second agent already started dialing the same contact.
  • Agents Monitoring: use FontAwesome icons instead of image files. Use an icon instead of the word “LOGOUT” for visual consistency. The status tags associated with the icons are now translatable. Removed useless pagination in the realtime report grid. Fixed translation inconsistency that caused the report title to always display in English.
  • Agents Monitoring: added buttons to collapse queues in the realtime report so the supervisor can collapse all but the particular queue to be examined.
  • The outgoing and incoming campaign listings now have icons to jump directly to the Campaign Monitoring report for the corresponding campaign.
  • (internal) Multiplexing of ECCP sessions in one TCP/IP connection,for future functionality.
  • The dialer no longer hardcodes /var/spool/asterisk as the base directory for recording files, and instead parses this from the Asterisk configuration files on startup.

Fixed bugs:

  • Fixed dialer bug in which an unexpected close of a TCP/IP connection after the internal event loop stopped expecting data to read from the socket, but with pending data to write, could cause the process (usually ECCPProcess) to enter an infinite loop that consumes all the CPU time and also spams the log with PHP socket error messages.
  • Fixed dialer bug in which the maximum number of channels per campaign only limited the number of generated calls in a single campaign evaluation cycle, instead of the total number of active campaign calls (as intended). This could cause call connection failures if the trunk actually enforces a simultaneous call limit.
  • Fixed bug in Incoming Calls Monitoring in which an infinite refresh loop could be created if a campaign used a queue but was outside the time range for the campaign, and a call was received on that queue.
  • Fixed problem in DINOMI dependencies for Elastix 2.x, if the php-pecl-json package was not already installed, that caused any attempt to install or update DINOMI through “yum” commands to drag an incompatible dependency on the php53-json package.
  • Now, when a agent handling a manual call schedules a new phone on the contact and also activates the option to schedule to the same agent, the dialer will assign exclusive ownership of the contact to this agent.
  • Added a validation check when installing/updating the RPM package so that the MySQL password in /etc/elastix.conf is actually valid, and aborts the install/update if not.

Changelog version 1.0.0-36

Changes:

  • Bulk recording download: there is now a button in the Calls Detail report labeled “Recordings TGZ”. When clicked, this button will generate and download a gzipped tarball with the call recordings for all calls appearing in the current report with the active filters. For the remote Asterisk scenario this functionality requires copying an updated ccprorecordings.php file to the web document root of the Asterisk server.
  • (For developers) Implemented a framework for plugins that handle form data to be saved through the Agent Console. This allows writing plugins that save data to alternative backends without touching the core implementation of the Agent Console.

Fixed bugs:

  • Fixed regression that broke ability to make a call to the automatic IVR for the remote Asterisk case.
  • When the static/dynamic agent list is updated in the web GUI, the list of valid agents in the dialer is now automatically updated.
  • Error messages in the Agent Console are now slightly more descriptive.
  • Fixed potential bug in which an agent could be used with incorrect ID if it has been activated and deactivated several times.

Changelog version 1.0.0-35

Changes:

  • Implemented download of Do Not Call database.
  • ACD Balance: extend report to separate incoming calls into answered and abandoned calls.
  • Agent Console: use icons instead of labels in action buttons in order to save screen space.

Fixed bugs:

  • Add php-json dependency to package in order to import php-pecl-json dependency in Elastix 2.x. The php-pecl-json package is used in the licensing timeline module.
  • Fix incorrect consistency warnings when generating autoivr calls.
  • Allow update from a DINOMI ISO version without autoivr support to one that does without forcing an explicit value for FastAGI IP when saving configuration in the General Configuration module.
  • Fix scenario in which the dialer will keep generating calls on a disabled campaign if some calls are still active when the campaign was disabled.
  • Fix repeated attempts to use the DeviceStateRefresh AMI command when Asterisk reports the command is not supported.
  • Implement telling apart a genuine AMI error from an agent without call in the transfercall and getchanvars ECCP requests.
  • Fix incorrect update of a random outgoing campaign when transferring a call on a manual dialing campaign.
  • Efficiency By Agent: remove HTML encoding and HTML tags when downloading in CSV/PDF/XLS formats.
  • Performance by Day: change line graph into bar graph to handle better the single-data-point scenario.
  • Various fixes in handling of expired campaigns: date range of campaign is checked when the campaign exits its time range, in addition to checking it on midnight. If the dialer loads an active campaign with a date range behind current date, it is automatically marked as expired. All campaigns with expired date ranges are marked with an icon, and simple reactivation is prohibited.
  • Call Duration Histogram: fix behavior when the date range spans a single day.
  • Fix problem in DINOMI ISO in which a dot (.) character in the username or password could confuse the CURL library and prevent download of remote recordings.

Changelog version 1.0.0-34

Changes:

  • Allow autoivr/outgoing campaigns may now specify the context in which outgoing numbers are dialed in the “use dialplan” mode (the default). For compatibility, the default value is “from-internal”.
  • Allow autoivr/outgoing campaigns to specify a custom CallerID to use in the generated call.

Fixed bugs:

  • Dialer: improve campaign handling in order to not evaluate recently-deactivated campaigns.
  • Dialer: prevent scenario in which scheduled calls may cause a NULL object reference when fetching call information.
  • Dialer: prevent incorrect state transition if a call receives an OriginateResponse after being linked to an agent. In some scenarios this causes a call to be marked as failed even if it has been assigned to an agent.
  • Dialer: prevent SQL error if MIXMONITOR_FILENAME is assigned for an autoivr call that is routed through an outgoing trunk/route with recording enabled.
  • Dialer: use a channel variable to tag calls in the direct trunk dialing scenario in order to identify the outgoing channel and therefore being able to identify the failure cause if the call fails.
  • Dialer/Agent Console: fix scenario in which form pause was terminated even if form save fails.

Changelog version 1.0.0-33

Changes:

  • Implemented a verification for queue date/time schedule when creating/updating campaigns. This replaces the previous verification and allows two or more campaigns to use the same queue at different times of the day in overlapping date ranges.
  • Optimized ECCP worker processes so they open an AMI connection only when the ECCP request needs it.
  • Optimized wait for terminated process to reduce delay on dialer shutdown .

Fixed bugs:

  • Fixed bug that prevented honoring the number of free DINOMI licenses in DINOMI ISO. This fix was previously published in DINOMI ISO version 1.0.0-32.1 .
  • Fix bug in ccprorecordings.php script that prevented download of remote recordings of type .wav49 . This fix requires the script to be replaced in the remote Asterisk system.
  • Fixed error in use of CURL API that prevented the use of dot (.) and at (@) characters as valid characters in the AMI username or secret when checking the FastAGI remote IP.
  • Fixed label for team list dropdown in Calls Detail module that could be interpreted as if all teams were available, rather than just the ones for the current team supervisor.
  • Fixed excessive memory use when downloading call CSV for outgoing campaigns.
  • Fixed error that prevented the use of http (instead of https) as the transfer protocol for remote calls. This affects mainly DINOMI ISO with FreePBX 13 as remote Asterisk.
  • Implemented experimental detection of scenario when chan_agent agent is idle/disconnected but app_queue still considers the agent as busy. The attempted fix requires a patched Asterisk (11.25.3-3 for Elastix 4).

Changelog version 1.0.0-32

Changes:

  • Licensing: the licensing mode that allows a number of agents that are valid for a limited time range, previously available in DINOMI ISO, has been ported to DINOMI for Elastix. All previous licenses are considered perpetual with the previous number of agents.
  • Licensing: the license ranges module from DINOMI ISO has been ported to DINOMI for Elastix.
  • Login Logout module: the time invested in manual dialing calls is now shown as a separate value from the outgoing calls.
  • New call duration histogram report (ccpro_rep_call_duration_graph) that shows a histogram of the call duration distribution for campaigns, as well as the call answering time histogram.
  • The IVR Audios and IVR Scripts module now remember the last extension used for testing, so it does not have to be entered again.
  • Both IVR Audios and IVR Scripts now assume a global language setting instead of assuming the Elastix language as the recording language.
  • Agent Efficiency module (ccpro_gestion_agente) now shows data for manual dialing campaigns.
  • Agent Console: the scheduling dialog now shows a label with the scheduling mode (same agent vs. any available agent) to prevent confusion.
  • All CSV loaders can now specify the field separator. This allows CSV upload of files created with Latin American versions of Excel that use semicolons (;) as field separators.
  • Use icons instead of labels for campaign actions in order to save space and improve looks.
  • All campaign adminstration modules now show the campaigns in reverse order of campaign date range.
  • Agent Monitoring module now shows the FreePBX queue label in the realtime report.

Fixed bugs:

  • Fixed a bug that caused all team supervisors to be able to view campaigns not assigned to their teams, like general supervisors can.
  • Fixed inability to delete an autoivr campaign due to a bug in the delete warning verification.
  • Agent Efficiency module (ccpro_gestion_agente): fixed various implementation bugs.
  • Fixed SQL error in dialer engine that caused errors in some manual dialing operations.

Changelog version 1.0.0-30

Changes:

  • Added check to see if uploaded IVR audio is actually playable by Asterisk (.wav only).
  • Tweak prediction model to improve the prediction quality for about-to-finish calls.
  • Re-structure outgoing call generation to prevent having to read the database every 3 seconds. This change mitigates possible deadlock scenarios on heavy call generation or when other applications are concurrently reading the DINOMI database.

Fixed bugs:

  • Fixed bug that broke campaign filtering by particular supervisors. The symptom was a failure to list campaigns in the Campaign Monitoring realtime module.
  • Fixed bug in Agent Console that caused failure to assign the break name if the agent entered a pause while handling an active call.
  • Any license installation or update will now restart the dialer. This is required for the dialer to obey the updated number of agent licenses.
  • Fixed bug in outgoing/autoivr call generation that, in case there were multiple calls to make in an iteration, could lead to incorrect duplicate dialing of some calls and non-dialing of other calls, with call reference leaks.
  • Both call generation to test IVR behavior and IVR audios now include a dummy Caller ID number in order to appease trunks that reject calls with missing Caller IDs.
  • Contact number upload through CSV files now allow pound (#) and asterisk (*) characters as valid digits in numbers.
  • Update dialplan context used to send scheduled outgoing call to same agent to use the FreePBX 11 method to check for recording start. This should fix recordings in the scheduled call scenario.

Changelog version 1.0.0-29

Changes:

  • New functionality of Automatic IVR outgoing calls, with audio playback. A dialed client interaction script may be configured that lists the audio files to be played back, when to read DTMF options, and what values to store in the database for each pressed digit. Playback of integer values, digit sequences, letter sequences and monetary amounts are supported. The same interaction script may use multiple languages if the translated audios exist in each language package in Asterisk. The collected data may be downloaded in CSV format just like the other campaign types. Each interaction script may be tested without a campaign by using an existing Asterisk extension for playback. Audio administration is supported including recording through an extension and uploading an audio file in one of the formats supported by Asterisk.
  • Removed unnecessary cap to number of licensed agents on the number of agents displayed in agent configuration modules and agent monitoring. This is required to allow creating more agents than currently licensed when only a subset of agents will be logged-in at any time.

Fixed bugs:

  • Prevent scenario in which an agent extension can be logged-out as a result of a registry expiration on the associated extension, even if the agent is currently handling a call.
  • Fixed scenario in which rejection of the initial login call for a static agent would cause a hang of the login process in the Agent Console instead of immediately announcing a login failure.
  • Fixed incorrect update of the DNC flag that caused an incorrect outgoing record to be updated.
  • Fixed bug in Agent Console that caused the break name text to not be cleared if the agent logged out while in break and then logged in again.
  • Fix incorrect CSV format in manualdialing campaign downloads if the contacts did not have any attributes.
  • Cap the wait timeout for calls to finish while shutting down the dialer to 10 seconds. This prevents some scenarios that cause multiple instances of the dialer to be simultaneously running.
  • Fix inability to assign a dial context other than from-internal to an outgoing campaign.

Changelog version 1.0.0-28

Changes:

  • Initial implementation of agent call spying from Campaign Monitoring module. When the agent has an active call, the associated row will now show an eye icon. Clicking on the eye will show a modal dialog with a phone extension to dial and a call spying mode. The resulting call allows listening into the agent conversation with the client, and (depending on the spying mode) whisper to the agent or barge into the call.
  • AMD Config: added button to reset dialog to recommended values.
  • Queues: added “Agent events” column in monitored queues report that shows whether the queue has the eventmemberstatus and eventwhencalled flags enabled. These events must be enabled to use the unanswered call audit report, and enabling them improves the queue monitoring performance for outgoing calls. If the flags are not enabled, a link is supplied to the FreePBX queue configuration (only for Elastix version).
  • Queues: show FreePBX friendly label if available.

Fixed bugs:

  • Dialer: fixed bug that caused infinite error loop in the log file if an incoming call arrives to a queue that is being monitored but has no incoming campaign assigned to it. Also fixed a recursive debug dump ocurring during the same error. OTRS Ticket 2017052310000764.
  • Dialer: lower timeout when waiting for error cause of a failed call from 60 to 10 seconds.
  • Dialer: stop counting failed calls waiting for an failure cause as calls waiting to enter a queue in an outgoing campaign.
  • Dialer: (internal) add integer validation to all integer parameters to ECCP requests.
  • Assign Agents: fix bug in implementation of configuration save that caused failure to update the queue configuration file for static agents if there are many such agents.
  • Fixed unpaired HTML tag in DINOMI standard form.
  • AMD Config: handle scenario when amd.conf file does not exist, mainly when using a remote Asterisk.

Changelog version 1.0.0-27

Changes:

  • The Callcenter Config module has been reorganized using tabs to group related options.
  • The Callcenter Config module now checks that all credentials (to DINOMI database, to FreePBX database, and to Asterisk AMI) actually work before saving data, if any of them have been changed. This verification is shown in a modal dialog.

Fixed bugs:

  • Fixed bug when scheduling an outgoing call that caused the scheduled call to fail to inherit the attributes of the original contact, when the contact had multiple numbers and the call was bridged using a number other than the first one.
  • Fixed path to service file that caused a failure to start or stop the dialer service when using a recent sudo version under CentOS 7.
  • Fixed race condition in dialer startup script that could cause the dialer to be considered stopped even when active.
  • The configuration of static agents can now handle the initial absence of the agents.conf file in Asterisk.
  • Fixed statistics updates by the dialer to be done only for outgoing campaigns.
  • Removal of ACTIVE campaigns are now blocked. Additionally INACTIVE campaigns are also blocked from removal if the dialer informs that there are still pending calls from a recently-inactive campaign. This prevents SQL errors caused by trying to update the status of a campaign that no longer exists.
  • For compatibility with FastCGI deployments, responses sent using Server-Sent Events (Agent Console, Agent Monitoring, Campaign Monitoring) are padded to 4096 bytes. This prevents messages from lingering in the FastCGI buffer instead of being immediately flushed.

Changelog version 1.0.0-26

Changes:

  • The Incoming Queue Monitoring now displays the queue label assigned by FreePBX.

Fixed bugs:

  • Fixed regression in rewrite of Agent Console that caused inability to enable the Handled button for manual calls.
  • Fixed error that prevented dialer service from being properly controlled from the General Configuration module because of the service rename.
  • Fixed CSS style that caused unreadable text in focused buttons in several places, especially in the General Configuration module.
  • Disabled dialplan installation through AMI in order to prevent potential corruption of the Asterisk dialplan.
  • Report need for eventwhencalled flag in a queue exactly once in order to prevent log spamming.
  • Implemented more robust way to terminate dialer processes on SIGTERM.

Changelog version 1.0.0-25

Changes:

  • The RPM package has been renamed to “dinomi-callcenterPRO”.
  • New functionality for recycling of outgoing campaigns. When using the campaign recycling option, the administrator can select a subset of contacts or numbers that were tried/not tried, contacted/not contacted, or with particular values filled in a dynamic form. The selected subset of contacts and numbers may be reset to be redialed in the same campaign, or copied into a brand-new outgoing campaign.
  • Changed URLs to point to new domain dinomi.com

Fixed bugs:

  • Fixed bug that prevented (in some scenarios) timezone information from being loaded properly by the dialer in CentOS 7/Elastix 4.
  • Fixed inability to remove a form field if at least one contact has previously filled a value that references this field. Now the associated collected data is removed too.
  • Fixed scenario in Assign Agents module that displayed the main queue listing regardless of whether the queue assignment was successful. This could cause user confusion because the user never saw the error message.
  • Fixed regression in Assign Agents module that caused a failure to assign agents to a queue that previously had no agents assigned.
  • Partial fix to paths to help files in modules.
  • Relaxed validation of valid AMI user when downloading remote recordings.
  • Fixed slowdown when saving static forms with many (> 100) fields.
  • Tweak AMD dialplan context in order to improve recording detection.
  • Fixed incorrectly-named PHP exception that caused errors when displaying available queues, especially under Elastix 2.
  • Fixed regression in Callcenter Config that prevented saving the disabled flag for predictive behavior.

Changelog version 1.0.0-24

Changes:

  • Auxiliary working contexts (for agent-scheduled calls and AMD) can now be verified and installed from the general configuration module. This also works for a remote Asterisk.

Fixed Bugs:

  • Fixed: problem caused by a limitation in the maximum number of POST variables in PHP 5.3.9 and later, that causes failure to save forms with many fields (> 500).
  • Fixed: problem that caused failures when determining the state or disconnecting a dynamic agent with a friendly name.
  • Fixed: race condition in outgoing calls generation, that causes generation of calls when there are newly connected calls that take several seconds to enter the queue.
  • Fixed: error in general configuration module that prevented saving changes in the configuration.

Changelog version 1.0.0-23

Changes:

  • Agent Console rewrite to avoid page reloading when starting and ending the agent login. This change allows the use of the WebPhone as an agent extension.
  • Ability to configure a remote FreePBX.
  • Optimization to mitigate database contention when updating group status of outgoing call contacts.
  • Optimization to verify inactivation of finished campaigns only when detecting system date change instead of every 3 seconds.
  • Logging of excessive latency time of database operations for debugging.

Fixed Bugs:

  • Fixed: incorrectly-applied style in Agent Console that caused drop-down lists on forms to be displayed with concatenated items in some browsers.
  • Fixed: situation where an Originate attempt that immediately fails to dial can cause an attempt to write NULL on a database column that does not accept NULL, which leads to an infinite loop.
  • Fixed: paging error in Calls Detail report when trying to go to the next page of a report that shows the calls of the current day without applying any filters.
  • Fixed: problem when displaying context to be used on outgoing calls when activating and deactivating AMD.
  • Fixed: problem when saving form data with some missing values.

Changelog version 1.0.0-22

Changes:

  • Switched licensing server hostname to cloud.dinomi.com.
  • Delay agent logout in SIP extension unregister scenario for 10 seconds. This is required for partial compatibility with Webphone.

Pulsa aquí para añadir un texto

Pulsa aquí para añadir un texto

Pulsa aquí para añadir un texto

Pulsa aquí para añadir un texto

Pulsa aquí para añadir un texto