CTArchitect 10.3.5
- Updated the way
INFOrequests are handled by CTArchitect. Some SIP-trunks useINFOrequests as a "ping" to check if the call is still active. This is a bad practice sinceSession-Timers/ re-INVITE/UPDATEare meant for this, as explained in RFC 4028 (implemented in CTArchitect 10.4.5). But since Dialogic puts theINFOmethod in theAllowheader, it is not prohibited. From now on, CTArchitect will respond to theINFOrequests with a200response (instead of ignoring theINFOrequest). This only works on systems without HWClient/CTNode, unless you upgrade to 10.4.4.10!
- Fixed possible crash during startup, because the voice channels are not yet initialized while InterHWClientConnections are checked.
- Fixed possible crash when CTNode is passing an empty parameter or extension block to CTArchitect (
GCEV_EXTENSION/GCEV_SERVICERESP).
-
Fixed problem in predictive dialing with randomly dangling calls to CATIs, right after starting the call setup to the agent. This line can be seen in logging:
Invalid line <channel> for agent <agentid> detected. This problem forces the agent to restart CATI, and try again. -
Fixed wrong TaskID in statistics when using transfer. After transfer of call A to call B, TaskID of call B is stored in both calls A and B. Zendesk #26686.
Bug introduced in 10.3.3.26 / 10.3.5.17 / 10.4.0.1, when adding this fix:Fixed an issue with transfering an inbound call to an inbound number, which is put directly into a queue. The destination agent got the task associated with the original inbound number, instead of the transfer inbound number.
- Fixed dangling call after transfer when the first agent ends a task, after transfer to a queue, after the call is routed to the second agent (picked up or not), and after the second agent closes the task. The call is still routed to the second agent, but the call is no longer visible in CATI or CCA. The call can be disconnected by clicking on the disconnect button in the CATI. Fixes Zendesk #20425.
- Redo "Fixed dangling call after transfer when the first (transfering) Agent ends his task after the second agent. (Zendesk #18118)". Initially included in 10.3.5.25, and temporarely reverted in 10.3.5.29. Fixes Zendesk #20425.
- Fixed dangling call after transfer when the first agent ends a task, after transfer to a queue, but before the call is routed to an agent. Fixes Zendesk #20425.
- Temporarely reverted "Fixed dangling call after transfer when the first (transfering) Agent ends his task after the second agent. (Zendesk #18118)". Initially included in 10.3.5.25.
This fix causes a new problem when AgentA closes a task after transfering the associated call to a queue.
This call remains in queue forever (until disconnected by the caller) since it is never routed to another agent that becomes available. The call is also not visible in the CCA calls window anymore.
This problem was added in the original fix on 26/05/2016 in 10.3.5.25. Fixes Zendesk #20425.
- Added logging when Aculab API calls take more than 500 msecs to complete. This line is shown in logging:
Aculab API call '<aculab_api_call>' took <msecs> msecs to compleet (> 500 msecs).
- Fixed possible crash when parsing Reason header from SIP 18x provisional message.
- Fixed crash when stripping '*' or '#' from IVR user input, but the original input was empty.
- Fixed crash when opening IP Registration table during startup of CTArchitect.
- Fixed crash in GUI mode when (re)connecting to CTArchitect-service.
- Fixed dangling call after transfer when the first (transfering) Agent ends his task after the second agent. Fixes Zendesk #18118.
- Fixed issues with sound broadcast (when the play sound was already finished and a PLSEND was received, the error code '2' was incorrectly sent to CCA.
- Fixed crash in WaitForSingleObjectAndPumpMessages when calling thread is not an AFX thread. This fixes at least crashes when run in service mode.
- Eliminated use of AfxGetThread(), since it returns a NULL pointer when the current thread is not a MFC thread. This fixes at least crashes when run in service mode.
- Fixed deadlock during close of Gui-only CTArchitect.
- Fixed a problem in GUI-only mode: the same message box was shown again and again (i.c. every time a message was received on the GUI Socket).
- Added logging of every Call state change and Call state event. Added textual call state text.
- Added more logging about ReleaseCall
- Added logging when a ThreadedMessageBox/MessageBox is shown/confirmed. Added logging of ServiceControl event STOP.
- Fixed possible crash due to incorrect internal handling of strings (CChar).
- Fixed registration problems after collision of RegistrationIDs when multiple nodes are reporting the same ServiceIDs.
- Fixed crash when running as service when a message box is shown from certain threads. The crash was originally seen every midnight when showing the time bomb warning message box.
- Added explicit "unlisten" when putting call on-hold, and no music channel is configured. This prevents the client being able to hear the agent while on-hold.
- Added extra logging when no recording will be moved after QREEND (OnSendEndQuestionRecording).
- Added logging about license expiration time (for operations scripts). Updated frequency (once an hour, every minute when expiration date within one month). Updated datetime format to ISO8601.
- Changed selection of InterHW client connections to circular.
- Fixed problem with CallID numbering. When CCA reported a bigger callid number, it was not taken into account when more than 4 parameters were present in STARTS (which was always the case). Another check that verifies that CCA and CTArchitect are using the same database is now also re-enabled. Better resilience against wrong parameter counts (CTArchitect could crash when a (old) CCA sends a STARTS with insufficient parameters).
- Fixed crash during ReloadWebBox (after receiving RELWEB or RELSKI), when the webbox ID is not found.
- Fixed no audio due to early disconnect of InterHW Connections by maximum call duration in board settings. The connect time is now "reset" to now when the InterHW Connection is taken in use (extending the maximum call duration up to twice the board setting). This message is shown in logging: "Resetting connect time to now, to prevent early disconnect by maxcallduration from board settings. Current call duration was <seconds> s"
- Fixed a problem with no audio when a port was previous used in a listen-in.
- Added explicit "unlisten" when putting call on-hold, and no music channel is configured. This prevents the client being able to hear the agent while on-hold.
- Worked around a problem in Dialogic, when a re-INVITE was received immediately after the INVITE. This resulted in a resultcode 491 instead of 200. This work around requires at least Dialogic HMP 3.0 SU357 (on Dialogic < HMP 3.0 SU357, this work around is not supported). On Dialogic HMP 3.0 SU349, the re-INVITE is never answered...
- Updated handling of PRA alarms, to leave voice channels connected to ISDN channels when a PRA comes up again. Previously, by disconnecting the voice channels from the ISDN-channels after clearing a remote alarm, recordings were not stopped when receiving a REJCAL.
- Reverted erroneous fix
Fixed a problem with complete interview recording not being terminated correctly after a REJCAL (Reject call) is received.Bug introduced in 10.3.5.13.
- Fixed a possible crash due to concurrent access of the (global or LimitTable) limit state from multiple threads. Bug introduced in 10.3.5.16.
- Fixed continuous restart of CTNode by increasing missed pings threshold from 5 (75s) to 8 (120s). For a better monitoring of this TCP connection, SIO_KEEPALIVE_VALS / SO_KEEPALIVE could be used if needed.
- Fixed incorrect call to gc_util_delete_parm_blk during sip registration messages.
- Fixed error and taskfail with gc_MakeCall when using CLI PresentationIndicator Restricted or Unavailable, when setting anonymized headers fail after succeeded gc_MakeCall. Bug introduced in 10.3.5.18.
- Fixed error "SDK 12000 : Error while adding parameter" and other errors regarding parameters. This bug was introduced in CTArchitect 10.3.4.17 / 10.3.5.8 (April/May 2015).
- Added support for RFC3325 "SIP Private Extensions". The new behavior is controlled with the "Presentation Indicator" in the RoutingTable. Make sure that all existing customers getting this change are configured with the correct default presentation indicator "Allowed".
** Set Presentation Indicator to "Restricted", to get the behavior described in RFC 3325 (From: anonymous@anonymous.invalid, Contact: anonymous@<ip-address>, Privacy: id, P-Asserted-Identity: <cli-to-use>@<ip-address>).
** Special request for BVA: set Presentation Indicator to "NotAllowed", to get the behavior described in RFC 3325 except for P-Asserted-Identity, which is set to anonymous@anonymous.invalid.
- THIS VERSION HAS KNOWN ISSUES CONCERNING TRANSFERS &BLENDING. This will be documented later on.
- Fixed an issue with inbound calls that were left in queue forever when using blending. After an agent, assigned to inbound, was unpauzed, he was automatically assigned to outbound even when there were calls in queue and no other agents were assigned to inbound.
- Fixed an issue when recovering an agent: when selecting the agent to assign to inbound, the agent that was most recently assigned to outbound was used instead of the agent that was longest assigned to outbound.
- Fixed an issue with transfering an inbound call to an inbound number, which is put directly into a queue. The destination agent got the task associated with the original inbound number, instead of the transfer inbound number.
- If there are calls in queue, and no agents are assigned to inbound, then an agent must be recovered.
- Changed which agents are included when counting the current number of agents assigned to inbound: agents in Pause or in state "Selecting" (Preview) are no longer included. This solves some unwanted behavior when recovering agents.
- Added handling of Reason-header in provisional 18x message. The reason is parsed, and if it is valid according to RFC 3326 ("The Reason Header Field for the Session Initiation Protocol (SIP)"), the call is immediately dropped, and the disconnect-cause is used in the further handling of the call. Reason headers in the second (or later) 18x message are supported as from HMP 3.0 SU 279. This changes requires an up to date CTNode.
- Added support for multiple 18x provisional responses. Dialogic interprets the first 18x message as an "ALERTING" (even when it is not a ringing), and the following 18x messages as "EXTENSION". This requires HMP 3.0 >= SU 279, and an up to date CTNode.
- Added support for a Global CAPS limit, similar to the Limit table (as introduced in 5.4.0), but applied to all calls. Two registry keys are used: GlobalLimit_MaxCallSetupsPerSecX1000 (CAPS multiplied by 1000, default 0) and GlobalLimit_WindowSizeMSec (WindowSize in milliseconds, default 1000), refreshed every 60 seconds. These settings limit the number of call setups, using a running window. To disable the limit, set GlobalLimit_MaxCallSetupsPerSecX1000 to 0.
- Fixed 2 IVR-outbound call issues when "use LCR tables" is enabled. (1) When retrying, the destination was converted multiple times (e.g. @=sip:@ip@ resulted in @sip:sip:sip:0987654@ip@ip@ip@). (2) the CLI as configured in the routing table was not applied to the outbound call.
- Added extra logging when setting Priority and Skill properties from IVR.
- Reverted "Fixed a problem in blending when the agent was deactivated and activated again in an Inbound group. The agent was not receiving calls anymore. Now, the agent is recovered automatically."
- Fixed issue for manual call with task on screen. When an agent had a task open and a new manual call was started, CTArchitect removed the old call completely now the call is kept in state task only so further processing is possible.
- Added extra logging for Predictive (abandon call).
- Fixed recorded file not being closed, causing missing (all) recordings.
- Added logging when closing a file handle (log level >= high).
- Fixed race condition during Duty Swap. This could cause (1) an agent to get a Number Selection dialog in CATI even when an outbound call was in queue, and (2) an agent to get both a Number Selection dialog AND the inbound call (CTScript/Askia). This is fixed by sending the REJCAL answer earlier than before. Also the CCA needs to be upgraded to solve all cases of the race condition, but both upgrades are independent.
- Fixed a problem in blending when the agent was deactivated and activated again in an Inbound group. The agent was not receiving calls anymore. Now, the agent is recovered automatically.
- Extra logging about data being read (including CTDesign parameters) during AgentLookup, about the selected Agent in InboundCall, and about the Pause status during Agent recovery.
- Added possibility to set up InterHW connections to the Voice NIC. You need to add the Voice NIC IP-Address (and port) in columns 11 and 12 of CClntMap.txt of the Central CTArchitect: e.g. "SlagNode1 192.168.1.110 9070 0 1 9071 0 0 0 0 192.168.1.241 5060". If these fields are omitted, defaults are used (regular "data" IP-Address and port 5060). Be aware that old CTArchitects cannot read CClntMap.txt files with more than 10 columns, so when downgrading, you need to remove the extra columns again.
- Added handling of INVALID_PARAMETER c++ run-time exceptions. When an INVALID_PARAMETER exception is encountered, logging will now be written, and by default the application will halt (as it did up till now). When the startup option "-NoFailFast" is specified, the application will not halt. This will prevent crashes in some situations, until a better solution for the problem is found.
- Added sanity checks on -n and -ni startup parameters. Fixed crash during startup when specifying -n0.
- Added a "hard unblock procedure" to release channels that are remaining in a blocked state forever. The channel is stopped / closed / reopened (2 phases), with 2 seconds between each step. The GUI (only) is blocked during this procedure. To start the "hard unblock procedure", click the Reset button in the channel dialog while holding the Ctrl-key (a confirmation is asked).
- Fixed a bug when a file could be closed multiple times, which causes C++/Dialogic libraries in CTArchitect to crash.
- Fixed a problem with complete interview recording not being terminated correctly after a REJCAL (Reject call) is received. Added extra logging during various voice-channel assignments for audio playback / recording.
- Added extra logging during various voice-channel assignments for audio playback / recording.
- Removed loglines about CheckRecoverAndRelease, which were too verbose.
- Augmented PauseAlarms field to 512 as on Cca
- Updated maximum CLI length (CLIToUse in TableRoute) from 31 to 127 characters. SIP-addresses were sometimes truncated. This problem doesn't affect releases >=5.4.0, since all lengths are now virtually unlimited.
- Fixed incorrect alarm 'Not enough numbers to dial in predicitive mode'. The timings to trigger the alarm are now correctly measured, and the alarm has been renamed to 'Long delay while getting next numbers in predictive mode'. Added more logging to determine where delays can happen.
- Added support for configuring SIP interface &port. In Registry, configure the values HMP1_IPAddress and HMP1_Port under key HKLM\SOFTWARE[Wow6432Node]MI4C\CTArchitect. The keys are automatically created with default values, when they don't exist.
- Added extra logging during agent selection.
- Fixed a problem with agents not receiving calls after they were changed from an outbound group to an inbound group, after receiving the "RELMEM" (Reload Memberships) command. The agent is now recovered shortly after (log lines with "CheckRecoverAndRelease").
- Fix for transfer not working with manual dial (stays in ringing state)
- Added feature to let Supervisor log in AFTER the Cati with the same softphone location when they both are configured as "Pick free softphone".
Requires CCA v5.3.5.7 Requires Cati v5.3.5.4
- Fixed several transfer issues.
- Fixed NoAnswerTime not taken into account when an <ALARM> was received before the NoAnswer timeout was exceeded. Added more logging to troubleshoot call-setups/NoAnswerTime.
- Fixed several transfer issues.
- Fix for transfer problem with inbound call.
- Fixed exception "Encountered an improper argument" when handling EndInterview (ENDINT).
- Fixed a problem with socket messages being dropped after an exception occurred during processing of a previous message.
- Added more logging when the state or assignment is changed, or about the state communicated to CCA.
- Fixed a problem with coverage when the Agent assignment is changing from Inbound to OutboundRequested or from Outbound to Inbound. The assignment change is now rejected when changing the assignment to Inbound when there are OutboundCalls, or to Outbound/OutboundRequested when there are InboundCalls. This will be show in the logging as: e.g. "Agent (<LastName> <FirstName>) with ID <Id>: Prevented assignment change to inbound, because there are <n> outbound calls."
- Added more logging before setting up an outbound call about the used NoAnswerTime, and from where the configuration was read.
- Fixed transfer problems.
- Fixed transfer problem: agent was not released correctly.
- Reverted race condition fix when an agent is disconnected, and reconnected by an other CTNode. The logging is kept for easier debugging. To solve the initial problem, a wait state of e.g. 2 or 1 second is needed between disconnecting the agent (SDK 21000) and connecting the agent (SDK Start call on another channel).
- Fixed race condition when an agent is disconnected, and reconnected by an other CTNode. This could result in "coverage": the second call to the agent fails because the first call is not completely teared down yet.