New Features

KeyTResolved Date Release Notes SubjectRelease Notes Content
JTELDEV-6867Presence now supports Cisco v15 JTAPI (role PRES)

The presence aggregator now supports V15 of the Cisco JTAPI / PBX. The exact version incorporated is 15.0.1.12900-4.

JTELDEV-6746StorySalesforce - Click to Dial from Mini Client Calls History and ACD Events

When a click to dial is made from the call history or an acd event in the mini client, now the UserData field is used for the popup information sent to salesforce, instead of the telephone number, if it is available. This will result in a popup of the associated record instead of a search and screen pop which was performed before.

JTELDEV-6796StoryDialler REST API - Changes

DiallerContacts - Import

Two additional parameters are available:

Query ParameterValueComments
resetContacttrue / false / not specifiedIf true, the contact is reset if it already existed. The result code, if recorded, is deleted and the number of dialling attempts is set to 0.
If false, the contact is not reset.
If not specified, the behaviour is as before (no change to the contact).
For contacts which do not yet exist (i.e. there is no duplicate), the newly created contact is already in the reset state.
unlockContacttrue / false / not specifiedIf true, the contact is unlocked and is available in the Dialler.
If false, the contact is not unlocked.
If not specified, the behaviour is as before (the contact will be unlocked).
If the contact does not exist (i.e. there is no duplicate), the newly created contact is already unlocked.
(This parameter is a clarification of the previous behaviour so that a contact can be specifically not unlocked, as previously it was always unlocked).


DiallerCampaigns - Clone

Added two parameters in the JSON body:

Body JSONValueComments
dtFromDate / TimeIs used as the value for dtFrom in the campaign.
dtToDate / TimeIs used as the value for dtTo in the campaign.
JTELDEV-6744StoryDialler - Addition of "Skip" and "Dial Now" Buttons in Dialler Contact Preview

We have enhanced the dialler's contact preview functionality by introducing two new buttons:

  • Dial Now: Stops the contact preview and initiates a call to the contact immediately, allowing agents to proceed without waiting. This button could be rendered or not by enabling the following Resource: “Acd.AgentHome.Dialler.CallProcessing.SkipDiallerPreviewAndDialNow
  • Skip: Ends the contact preview without calling the contact and prompts the agent to set a result code for the skipped contact. This button could be rendered or not by enabling the following Resource: “Acd.AgentHome.Dialler.CallProcessing.SkipDiallerPreviewAndSetResult”. Once skip button is clicked, you can undo the skip using the new button “Cancel Skip” in the result code.
JTELDEV-6785StoryPBX Users - New Fields and new Filter

The following fields have been added to the PBX Users Table:

  • Department
  • Extra Data

The visibility of the fields is controlled using the resources:

  • portal.Acd.AgentHome.CallProcessing.CallTransfer.PbxUser.Department
  • portal.Acd.AgentHome.CallProcessing.CallTransfer.PbxUser.ExtraData

The field Extra Data can use new lines in the data, for formatting the field’s content over several lines.

The data filter in Agent Home, Agent Home Braille and the Mini Client can be setup to use a full text filter over the following fields:

  • Name
  • DialTel (the telephone number)
  • UserInfo1
  • Email
  • Department
  • ExtraData

This is set using the resource:

  • portal.Acd.AgentHome.CallProcessing.CallTransfer.PbxUser.FullTextFilter

Note, by standard, this resource is set to “prohibit inheritance” and so it will not be active, even after an update. If you wish this functionality to be available on your system then you will need to setup this resource. If it is not set, the behaviour is as previously.

If set, the filter behaves slightly differently to previously:

  • There is no wildcard character
  • Every word typed in the filter will be searched for (partial search) using AND
  • Only the start of words is considered. This is due to restrictions on the full text indexing capability of the database engine.

IMPORTANT NOTE:

  • The database engine will as standard, only index the first three characters in each word
  • To change this behaviour, the configuration file for the database engine must be changed to add: innodb_ft_min_token_size = 1 (on all instances including the slaves)
  • The database engine must then be restarted
  • When the parameter is enabled, it is necessary to re-create the full text index PBXUsers_FT_IX1 This can be performed using the commands (on a master database):
    CALL JTELWeb.Utils_DropIndex( 'JTELWeb', 'PBXUsers', 'PBXUsers_FT_IX1' );
    CALL JTELWeb.Utils_CreateFulltextIndex( 'JTELWeb', 'PBXUsers', 'PBXUsers_FT_IX1', 'ClientsTextID, Name, DialTel, UserInfo1, Email, Department, ExtraData' );
  • This behaviour can be enabled by your jtel partner, or the jtel service team
JTELDEV-6741StoryGPT Bot - Now configurable via Web UI

It is now possible to create LLM based bots using the Web UI for the chat connector.

A new tab “LLM” has been added. This contains the following settings:

SettingExampleComments
Endpointhttp://acd-chatbot1:4005/webhooks/rest/webhookThe endpoint which is running the jtel LLM connector. This could be in your local installation, or could be provided by jtel in the cloud.
Routing Application
Select a routing application from the dropdown which will be run of the bot or user ends the conversation.
Modelgpt-4o-2024-08-06The model to use.
API Key
The API key for your subscription.
Temperature0.3The temperature for the model.
Maximum Answer Tokens16384The maximum number of tokens to be requested in the answer.
Maximum Total Tokens128000The maximum total tokens for the conversation including any information embedded in the initial prompt.
Prompt
The prompt for the LLM. This should include any information you wish to embed. Note that markdown is a good choice to structure the information correctly for the LLM.


The chat connector will then communicate with the LLM connector to execute the required functionality.

Exactly what kind of conversation is had - depends totally on how you instruct the LLM in your prompt.

JTELDEV-6769Innovaphone Connector - Linux Support

The innovaphone connector can now be deployed on Linux using .NET Core.

JTELDEV-6764StoryDialler REST API - Contacts History not guaranteed to be sorted

When retrieving the contact history for a contact using the REST API, the contact history was not explicitly sorted. Whilst the database engine appears to retrieve the records in physical order (i.e. the order in which they were created) this behaviour is not documented and therefore not guaranteed. An ORDER BY clause has been added to ensure the contact history is in the same order as it was created.

JTELDEV-6742StoryACD-E-001 - Report Improvements and Additional Columns

The report ACD-E-001 has been extended. The following additional columns are provided:

  • Comments - any comments entered by the agent or system are shown
  • Distribute Time - the time spent in a distribution state (enter system or distribution state)
  • New Time - the time spent at an agent in the status “New”
  • Seen time - the time spent at an agent in the status “Seen”
  • Calls time - the time spent by agents on phone calls, whilst the event is in the “New” or “Seen” status
  • Waiting Time New - the net time the event was waiting in the “New” status. This is calculated as: New Time - Calls time
  • Handling Time - the net time the event was waiting in the “Seen” status. This is calculated as: Seen Time - Calls time
  • Transaction Codes - a comma separated list of transaction codes recorded in each state

Below each event, the sums of these columns are calculated.

At the bottom of the report the summary includes the total, minimum, average and maximum values of the new columns (except for transaction codes) and the total number of events in the report.

See this page for more details: https://wiki.jtel.de/display/JPW/ACD-E-001+-+ACD+Events+Details+Report

JTELDEV-6736Workflow / IVR Applications - indexed variable access

It is now possible to access variables using indexes in workflow / IVR applications. This is achieved using an index variable.

NOTE: THIS FEATURE IS ONLY AVAILABLE WHEN USING THE NEW TELEPHONY SERVER.

Consider the following data, which could be returned from a REST API call:

{
  "records": [
    {
      "name" : "record1"
    },
    {
      "name" : "record2"
    }
    {
      "name" : "record3"
    }
  ]
}

When the workflow engine parses the above data, the following variables will be created:

$records.0.name = record1
$records.1.name = record2
$records.2.name = record3
$records.count = 3

Note the new count variable, which is added whenever a JSON Array is parsed.

Now it is possible to use an index variable to access the individual records.

Declare a variable $index and set it to 0.

Consider the following expression:

$records.$index.name

Previously, the result of parsing this expression would have been:

$records.0.name

Now, if the variable parser replaces a part of an expression, it will attempt to parse the result again. This will result in the above result being parsed again, which produces the output:

record1
JTELDEV-6722StoryIVR - new variable cockpit_result

A new variable cockpit_result has been added, which contains the result of the last cockpit variable function. This is set to 0 at the start of the call. After every cockpit variable operation, it is set to 1 if the operation was successful, and 0 if not.

This can, for example, be used to limit the number of parallel calls within an application. The cockpit variable should be a counter, and the logic to increase the counter can be implemented with compare and increment. The increment is only performed, if the value is below a defined maximum value. The counter should then be decremented at the end of the call, if the value of the cockpit_result variable is 1 → which means the counter was successfully incremented during the call.

JTELDEV-6719Callbacks - Prepend the new message to the existing one when a duplicated callback is created.

When a duplicated Callback is created, it was just creating a new comment saying A further callback request was made by the caller.

Now, it also prepends the new Message to the existing one.

JTELDEV-6717Report ACD-S-007 - Hangup Seconds and Service Level Seconds now selectable from 0 to 120

In the Service Numbers Report ACD-S-007, the service level seconds are now selectable from 0 to 120 instead of the stepped ranges which were previously used.

JTELDEV-6710Acd Agent Performance Report - ACD-A-003 - new columns

The following columns have been added to the report:

  • Login Calls Time
  • Login Calls Count
  • Login Calls Max
  • Login Calls Average
  • Ready Time

A new option has been added which influences the calculation of “Ready Time” - Ready time includes ring time.

If set, the calculation is as follows:

  • Ready Time = ( LoginCallsTime - CallTime - PostCallTime )

If not set, the calculation is as follows:

  • Ready Time = ( LoginCallsTime - CallTime - RingTime - PostCallTime )

See here for more details: https://wiki.jtel.de/display/JPW/ACD-A-003+-+ACD+Agent+Performance+Report

JTELDEV-6593E-Mail Body Templates - Longtext templates now support html

If the template for the email body starts with <!DOCTYPE html> the body format is considered to be html, and the email format is set accordingly.

Bugfixes

KeyTResolved DateRelease Notes SubjectRelease Notes Content
JTELDEV-6969BugPBX Connectors - creating of PBX Users fails

The automatic creating of PBX users could fail for all PBX connectors. This problem has been fixed.

JTELDEV-6738BugIVR Save Recording does not create SMTP job with blazar

With blazar (the new telephony server), an SMTP job was not created when using the Save Recordings object.
This problem can be fixed with a configuration update, by adding the following to the blazar runProgram.yml configuration:

mapping:
      windows: /acd-store/shared/JTELCarrierPortal/Bin/lame.exe
      linux: /usr/bin/lame    

New versions of the blazar server include this configuration by default.

JTELDEV-6847BugACD-E-001 - Incorrect count when there was no data

In ACD-E-001, ACD Events Details Reports, the count was incorrectly displayed when there was no data. This problem has been fixed.

JTELDEV-6725BugAgent Home Tab "Category" disapears

In the teams plugin, sometimes the category tabs in Agent Home and the mini client would disappear. This problem has been fixed.

JTELDEV-6881BugDialler - Call Blending is not working properly.

Making an incoming call while the agent is connected to a dialer contact does not work properly in a multi telephony server installation (i.e. more than one telephony server). The agent is connected to the next available contact and does not receive an incoming call when it is presented on the same server. This problem has now been resolved.

JTELDEV-6911BugAgent Home - User data neither clickable nor editable.

The agent cannot edit the user data field if a call is received without predefined user data. This problem has been fixed.

JTELDEV-6901BugAgent Home (Braille) - Outbound: The selected group does not remain in 'ACD-Group' field after logout-login.

In the Outbound Call part of Agent Home (Braille), the selected group does not remain in the 'ACD-Group' field but disappears after logging out and logging in again. This has been fixed.

JTELDEV-6905BugIncorrect credentials for Debezium connection results in too many traces being generated.

The service thread should be started only by the first start. The credentials check is implemented to stop server by such critical error.

JTELDEV-6854BugTeams: jtel Plug-In: White screen is displayed when trying to log in via Entra ID

The login via Entra ID was not possible in the jtel tab app inside Microsoft Teams. In fact, a white screen was displayed. This is now fixed.

If Azure force login is configured, the user will directly login to jtel when clicking on the jtel app in Teams.

JTELDEV-6903BugReport ACD-S-003 - Report is corrupted when downloading an XLS report

Downloading the ACD-S-003 report in XLS format does not work properly. This problem has been fixed.

JTELDEV-6899BugManual Dialler - Updating contacts in progress is not working properly.

Using the manual dialler and editing a contact in progress does not work properly. This problem has been fixed.

JTELDEV-6872BugPBX Connector AMIListener (Asterisk) - Should not write to syslog

The AMI listener connector for Asterisk was writing all events to the linux system log. This has been changed.

JTELDEV-6853BugChat Connector - LLM API Key too short

The LLM API Key field was too short to save some of the newer tokens provided, in particular, by OpenAI. This problem has been fixed.

JTELDEV-6842BugTypo in title for Reports DIAL_001 and DIAL_002.

There was a typo in the title of the Reports DIAL_001 and DIAL_002 starting from page 2. This was fixed.

JTELDEV-6760BugPrompts - Re-uploading mp3 files or creating a tarif prompt with mp3 files results in a corrupt wave file.

Re-uploading mp3 files or creating a tarif prompt with mp3 files results in a corrupt wave file. These two problems have been fixed and mp3 files are now always converted to wav files.

JTELDEV-6787BugManual Dialler - Switching to pause status and resuming the dialler leads to the sub-campaign of the dialler not being active.

If you pause the manual dialler after the first call and then resume the dialling, it is not possible to make a new call as the status indicates that there is no active sub-campaign. This problem has been fixed.

JTELDEV-6786BugDialler - Contact number is not displayed in contact preview.

In dialler contact preview , the contact number to be called is not displayed. This problem has been fixed and the contact number will be displayed in Agent Home - Call Details.

JTELDEV-6566BugChat Redistribution after Agent Logout/Login

The following use cases have been fixed:

  • Only two agents are logged in. Agent 1 received the chat and logged off, the chat was distributed to the free Agent 2. If this agent also logged off, but meanwhle Agent 1 had logged back in, the chat was no longer distributed to Agent 1 again.
  • Two agents are logged in. The chat was being offered to Agent 1 or was currently being worked on by Agent 1. Agent 1 logged out. The chat was not redistributed to Agent 2 immediately.
JTELDEV-6778BugMini-Client - Clicking on the Group tab results in a null pointer exception.

When using the miniclient and clicking on the Group tab, a null pointer exception was sometimes produced. This problem has been fixed.

JTELDEV-6766BugAgent Home - CRM link is not clickable when not using http or https

In Agent Home and the Mini Client, the CRM link was not clickable if it used a non standard scheme other than http or https. This problem has been fixed.

From release 3.39, the following method *#

{acdUserStatusBean.CRMFormattedLink}

* is available to the Asciidoc functions library to display the CRM Link correctly when customising the layout.

Prior to release 3.39 a workaround is specifying the link as follows in the layout:

#{(not empty acdUserStatusBean.CRMLink) ? 'link:'.concat(acdUserStatusBean.CRMLink).concat('[').concat(acdmessages['AcdAgent.CRMLink']).concat(',window=_blank]') : ''}
JTELDEV-6761BugWildfly - Old caches are not deleted after Wildfly restart

When the web server is restarted, old caches were not deleted. This could lead to statistical errors in the Supervisor if the cache had become inconsistent because it should have been updated whilst the web server was stopped. This problem has been fixed.

JTELDEV-6757BugAutomatic Callback - Event is redistributed

When an existing callback event is automatically commented by the system, because the caller requests a callback once more, the event was erroneously redistributed by the system. Now, the callback event will remain in the same state when the comment is made.

JTELDEV-6759BugEMail Connector - not possible to create a new incomming mail box

If no mailboxes were previously configured, then it was not possible to create the first new mailbox. This problem has been fixed.

JTELDEV-6758BugPortal Front End - Spanish no longer selectable

Changing to spanish was no longer possible via the portal front end. This problem has been fixed.

JTELDEV-6666BugTAC - Incorrect TAC display when using the transfer type ‘Transfer with query options’

The problem can be reproduced by performing a complete group transfer to a group in which no agent is connected. As soon as the call is in the queue, we connect an agent and answer the call. If the original and the target group have different TACs and the transfer type is ‘Transfer with query options’, the transferred agent receives a TAC popup with incorrect content. This problem has now been fixed.

JTELDEV-6733BugDialler - Result Code Popup too small to show all the content in Mini Client.

The Dialler Result Code popup was too small to show all the content when used in Mini Client. A scrollbar has been added to the popup which allows the display of the full content, in particular when an appointment is being set.

JTELDEV-6730BugRequest Callback 3 - incorrect repeat count

The request callback 3 group action did not count the number of repeats correctly if no number was entered. This problem has been fixed.

JTELDEV-6687BugSupervisor Wallboard - Service Level Gauge

The calculation for the service level gauge did not respect both servicelevel calculation methods. This problem has been fixed.

JTELDEV-6727BugREST API - Dialler Functions

The ForeignSystemID is now set to UserData when a dialler campaign is cloned. This helps identifying the campaign later.

JTELDEV-6714BugReports - ACD-G-004 - Wrong percentage values.

The ACD-G-004 Report was showing wrong percentage values for the Total, Average, Maximum and Minimum in the following columns:

  • In Service
  • Not In Service
  • Hangup <=
  • Hangup >

This has been fixed.

JTELDEV-6715BugManual Dialler - Editing a dialler contact leads to an incorrect tab

In the manual dialler, when a dialler contact is edited and saved or the save is cancelled, the wrong tab is displayed subsequently. This problem has been fixed.

  • No labels