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 
    (http://en.wikipedia.org/wiki/Push_technology#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
    implementation.
  - 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 
  /etc/elastix.conf
- 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.