Call Center 1.5-4.2 – Changelog

Call Center 1.5-4.2 (September 13 2011)
- Dialer (ECCP): extended "transfercall" request to work with calls connected
  to an agent that were not tracked by the dialer.
- Dialer (ECCP): fixed bug in which a transfer request of an incoming campaign
  call into an outgoing campaign queue results in a new incoming agentlinked 
- Dialer (ECCP): fixed bug in which a transfer request of an incoming campaign
  call into a incoming campaign queue (the same one the call came from or a 
  different one) results in an agentunlinked event with an incomplete agent
- Installer: add section in extensions_custom.conf that will hold required
  callcenter extensions for extra functionality.
- Dialer (ECCP): implement "schedulecall" request
- Dialer (ECCP): allow call to be hung up when agent is both busy and paused.
- Dialer (ECCP): implement "getrequestlist" request
- Dialer (ECCP): fixed a 200-byte-per-request memory leak on XML response ID 
- Dialer (ECCP): implement "getcampaignstatus" request
- Dialer (ECCP): implement "transfercall" request
- Dialer: write true outgoing channel, not Local@from-internal, to current_calls
  table. Also reuse stored channel at hold time instead of querying the channel
  again from Asterisk. May fix Elastix bug #796.
- Dialer: remove use of deprecated ereg* functions from Predictivo.class.php
- Dialer: fixed regular expression for parsing of 'agent show' report that 
  missed DAHDI channels (and possibly other custom channels).
- Dialer: fix accounting of parked calls (for Hold) in incoming-calls case.

Call Center 1.6 – Changelog

Call Center 1.6 (October 17 2011)
- Agent Console: complete rewrite.
  This version of the Call Center module has a completely rewritten Agent 
  Console based on the Elastix CallCenter Protocol (ECCP). This rewrite is 
  intended to showcase the capabilities of ECCP and become the reference 
  implementation for an ECCP client. Some highlights of the rewrite:
  - The previous Agent Console polled the webserver every 4 seconds for updates
    on the agent state. This polling gets multiplied by the number of simultaneous
    agents and becomes a heavy burden on the server CPU with more than a few
    tens of agents. The new Agent Console switches to Long Polling 
    ( in which the
    browser is left waiting for a response for up to 2 minutes at a time while
    the server listens to state change events with very little CPU usage. This 
    is made possible thanks to ECCP events. Fixes Elastix bug #114, probably 
    fixes Elastix bugs #412, #489, #637.
  - Agent Console now works correctly in Internet Explorer. Tested with IE6, IE8
    and IE9. Fixes Elastix bug #30.
  - The previous console visual layout is now reimplemented using jQueryUI. This 
    introduces niceties such as decent tabs, dialogs with shading, and themed
    buttons, as well as greatly simplifying and reorganizing the JavaScript
  - The previous Agent Console depends on the agent being willing and able to
    close the agent session correctly from within the interface. Failure to do
    this results in corrupted (stale) session and break audit records. This 
    corruption is the probable root cause of Elastix bug #494. The new Agent 
    Console is immune to this failure scenario, since the audit record update
    is now done by the dialer daemon process.
  - The agent audit now properly handles the case where an agent is deactivated
    and reactivated multiple times while keeping the same agent number. Fixes
    Elastix bug #990.
  - As a result of improved handling of the interface state, it is now possible
    to switch to other Elastix modules while the agent is logged in, then switch
    back to the Agent Console, which will display the correct interface state.
    It is even possible to close the browser while handling a call, then log 
    back into Elastix, and choose the agent number and extension previously used,
    and "log-in" back into a correct console session, as long as the agent   
    telephone call is kept open all the time.
  - The Transfer capability is expanded to any arbitrary extension/queue. Partial
    fix for Elastix bug #419.
  As a side effect of the rewrite, may also fix Elastix bugs #879, #796, #414.
- Dialer (ECCP): implement "getcampaignlist" request
- Dialer (ECCP): log out an agent immediately if login succeeded but audit 
  record cannot be inserted.
- Agent Information: fix division by zero on no connection time.
- Incoming calls monitoring: fix use of undefined array index.
- Campaigns In: new module to define campaigns for incoming calls 
- Campaigns Out: include NoAnswer and Abandoned calls in CSV report too.
- Agents: Do not leave newly created or modified agent without an ECCP password.
  The ECCP password is autogenerated if required. Also, assign an ECCP password
  at install/update time.
- ECCP Users: new module for administration of ECCP authorized users
- Dialer (ECCP): fix requests for agents that are not assigned to any queue.
- Dialer: fix bug in which a request for outgoing calls would repeatedly request
  already retried calls until the retry limit even if calls with lower retry
  numbers were available.
- Dialer (ECCP): fix bug in which an agent that has just been called Hangup on
  would show as offline instead of online in getagentstatus request.
- Dialer (ECCP): implement new events "pausestart" and "pauseend".
- Dialer (ECCP): fix incorrect parameter verification in "getcallinfo" request
- Dialer (ECCP): implement "getqueuescript" request
- Dialer (ECCP): the "getcampaigninfo" request has been extended to return 
  additional form attributes "name" and "description" in the <form> tag.
- CHANGED: module agent_console, verify if function "obtenerClaveAMIAdmin" 
  exists, if not the password is set with "elastix456"
- CHANGED: changed the password "elastix456" of AMI to the password set in 
- Dialer (ECCP): implement "filterbyagent" request
- Dialer (ECCP): Added the following fields to response for "getagentstatus" 
  request: onhold pauseinfo remote_channel callinfo . 
- Login Logout: fix time format representation for time in calls. Fixes Elastix
  bug #705.
- Dialer (ECCP): fixed bug that prevented the hold/schedulecall/transfercall
  requirements from working after agent entered a pause while still connected
  to a call.

Call Center 2.2.0-6 – changelog

Call Center 2.2.0-6 (February 18 2014)
- CHANGED: Agent Console, Campaign Monitoring, Agent Monitoring: the Elastix 
  framework sends an error in a JSON response if a rawmode request is made with 
  an invalid/expired session. Check for this response and alert/redirect to 
  Elastix login page if received.
  SVN Rev[6483]
- FIXED: Hold Time: fix construction of SQL query from previous rewrite. Fixes
  Elastix bug #1858.
  SVN Rev[6480]
- CHANGED: Campaign Monitoring: update Ember.js to 1.3.2
- CHANGED: Campaign Monitoring: update Ember.js to 1.3.1, Handlebars to 1.2.1.
  SVN Rev[6453]
- FIXED: Agent List: small rewrite of repair action handling to unbreak previous
  commit. Now takes advantage of jQuery.
  SVN Rev[6397]
- CHANGED: Agent Console, Campaigns, Do not Call List, External URLs, Queues,
  Clients, Ingoing Campaigns, Agents, ECCP Users, Callback Extensions, Breaks,
  Form Designer, Form Preview, Reports Break, Calls Detail, Calls per hour, 
  Calls per Agent, Hold time, Login Logout, Ingoing Calls Success, Graphic Calls 
  per hour, Agent Information, Agents Monitoring, Trunks used per hour, 
  Incoming calls monitoring, Campaign monitoring, Configuration: For each module 
  listed here the english help file was renamed to en.hlp and a spanish help file 
  called es.hlp was ADDED.
  SVN Rev[6354]
- FIXED: Agent Console: fix corner case in which an incorrect JSON encoding in
  non-SSE mode of the logged-out event right at the start of status checking
  would lead to an endless loop of browser requests. Fixes Elastix bug #1759.
  SVN Rev[6312]
- CHANGED: Dialer (ECCP): add new optional parameter datetime_start to requests
  getcampaignstatus and getincomingqueuestatus to allow specifying the start
  date of calls belonging to the object. This is groundwork for rewriting the
  Incoming Calls Monitoring report using ECCP.
  SVN Rev[6278]
- FIXED: CallCenter: Fix multiple modules to define their own DSN instead of
  relying on the definition in Elastix core. Fix Elastix bug #1795.
  SVN Rev[6264]
- CHANGED: Form Preview: complete rewrite. Try to take advantage of the field
  generation of PaloSantoForm as much as possible. Remove dead xajax references.
  SVN Rev[6263]
- FIXED: Dialer: during an Asterisk restart, the startup time reported by
  CoreStatus may get stuck at year 1969 for a few seconds, and break the 
  detection of a restarted Asterisk instance. Fix by rejecting and retrying the
  call until a valid date is returned.
  SVN Rev[6262]

Call Center 2.2.0-7 – changelog

Call Center 2.2.0-7 (September 19 2014)
- CHANGED: Dialer (ECCP): create new request getmultipleagentstatus. This 
  request allows for a report of agent status for a group of agents at once.
  This cuts down again on the number of ECCP requests required for the Agent
  Monitoring report. Part of the fix for Elastix bug #1820.
  SVN Rev[6739] 
- CHANGED: Dialer (ECCP): create new request getmultipleagentqueues. This
  request allows for a report of agents subscribed on queues for a group of
  agents at once. This cuts down on the number of ECCP requests required for
  the Agent Monitoring report. Part of the fix for Elastix bug #1820.
  SVN Rev[6737]
- CHANGED: Do Not Call List: complete rewrite. This rewrite uses ordinary grid
  pagination instead of loading the entire recordset in memory, and simplifies
  the support libraries. Additionally a new index is added to the dont_call
  table to speed up lookup by caller_id. Finally, a small utility is now 
  provided to load a CSV file to the DNC list from the command line. Fixes 
  Elastix bug #1984.
  SVN Rev[6734]
- CHANGED: Form Designer: tweak error message handling to integrate it better
  into current Elastix theme.
  SVN Rev[6733]
- FIXED: Form Designer: only field removal should be blocked if a form is used
  by a campaign. Other operations must be allowed.
  SVN Rev[6732]
- CHANGED: Form Designer: clean up grid used for form field manipulation.
  SVN Rev[6728]
- FIXED: Form Designer: re-add method that is used by both Outgoing Campaign and
  Incoming Campaign modules, as a compatibility stub.
  SVN Rev[6727]
- CHANGED: Form Designer: complete rewrite. This rewrite removes the use of
  xajax, fixes a few potential SQL injection scenarios, streamlines the form
  creation interface, and updates the report grid to the latest support.
  SVN Rev[6726]
- CHANGED: Dialer (ECCP): add debugging information to getagentstatus request to
  catch inconsistent state being returned to the client.
  SVN Rev[6720]
- CHANGED: Dont Call List: remove unused xajax reference
  SVN Rev[6718]
- CHANGED: Incoming Calls Monitoring: complete rewrite. This rewrite removes the
  use of xajax and periodic database reads, and replaces it with an ECCP client
  that uses Server Sent Events if available, just like the Agent Console. This
  also fixes a serious scenario where a query that takes more than 5 seconds
  would cause the server to accumulate unfinished SQL queries.
  SVN Rev[6717]
- CHANGED: Dialer (ECCP): emit queue number (if available) when linking and 
  unlinking a call, to save the client the trouble of asking for it. Required
  for next commit.
  SVN Rev[6716]
- FIXED: Dialer (ECCP): fix copy/paste error in previous commit to SQL files.
  Add additional indexes for calls.
  SVN Rev[6715]
- FIXED: Calls per Agent: replace ambiguous filtering system with a cleaner
  filter that properly validates that agent and queue are both numeric. Also
  fix Elastix bug #1976.
  SVN Rev[6714]
- FIXED: Dialer (ECCP): optimize the getagentactivitysummary request by inserting
  keys and restructuring queries to only run once per request, instead of once
  per agent.
  SVN Rev[6710]
- CHANGED: Campaign Monitoring: update Ember.js to 1.5.1, Handlebars to 1.3.0.
  SVN Rev[6648]
- CHANGED: Dialer: disable PDO::ATTR_EMULATE_PREPARES on all MySQL PDO connections
  in order to use native prepared statements instead of the default PHP emulation.
  Workaround for PHP bug #44639. Might fix Elastix bug #1844.
  SVN Rev[6489]