Avaya Aura CM
Syntelate XA supports several CTI (computer telephony integration) solutions for voice calls. One of these solutions is integration with Avaya Aura® Communication Manager via Avaya Aura® AE Services TSAPI.
Our integration with TSAPI has been compliance tested by Avaya.
How It Works
At a very high level, here’s how Syntelate XA’s integration with TSAPI works.
Telephony Login
Where a Syntelate XA workzone has been configured to use TSAPI, the agent will see the Telephony Login dialog box upon selecting that workzone.
Telephony Toolbar
Once logged in to the TSAPI-enabled workzone, a telephony toolbar is pinned to the top of the agent’s desktop. It is via this that the agent performs most telephony operations.
The current CTI state (shown at the top of the toolbar) defines the buttons that are shown and whether they are clickable or grayed out.
The following table lists the CTI states in which each button is visible and clickable.
Button | CTI State(s) in Which Visible and Clickable |
---|---|
Answer | Ringing |
Dial | Preview, Wrap Up, Worklist |
Cancel preview | Preview |
Hold | Talking, Consult Dialing, Consult, Consult Receiver, Conference, Conference Receiver |
Unhold | Hold |
Hang up | Dialing, Talking, Consult Receiver, Conference, Conference Receiver |
Blind transfer | Talking |
Consult | Talking |
Retrieve | Consult Dialing, Consult, Conference |
Transfer | Consult Dialing, Consult, Conference |
Conference | Consult |
The agent can both hang up and close an interaction record by clicking a completion button. A completion button is clickable in the following CTI states: Preview, Talking, Wrap Up, Conference.
Note: Any buttons in the telephony toolbar that you do not wish to use can be hidden. This is done via the appsettings.config file for Syntelate XA.
Telephony Logout
When the agent logs out of a TSAPI-enabled workzone (by clicking and then Log out), Syntelate XA logs them out of TSAPI.
The agent can only log out when their agent state is Not ready.
Supported Functionality
The following functionality is supported:
- Go ready / not ready
- Answer (inbound calls)
- Dial (outbound calls)
- Cancel preview
- Hold/Unhold
- Hang up (by agent/customer)
- Blind transfer
- Consult
- Conference
Going Ready
When an agent clicks Ready in the CTI toolbar, their phone is also set to ready, if they are set up to receive inbound calls.
For each workzone, you can define whether:
- The workzone is outbound only.
- The workzone accepts inbound calls but only for agents in a particular agent group.
- The workzone accepts inbound calls for all agents.
If an agent is not set up to receive inbound calls, their phone is never set to ready. Clicking Ready in Syntelate XA does, however, allow them to be passed other types of interaction, such as outbound calls to make, emails, or chats.
Note: At the end of each call, Syntelate XA checks whether the agent is set up to receive inbound calls. Syntelate XA also performs this check every 30 seconds while the agent is waiting for a call.
This lets you move an agent into or out of the inbound agent group to meet demand.
Going Not Ready
When the agent clicks Not ready, Syntelate XA prompts the agent to select a not ready reason.
You must define the not ready reasons that you want to use and also associate each with an Aux reason code. Syntelate XA passes this Aux reason code to TSAPI when the agent’s state is set to Not Ready.
If the agent goes not ready while on a call, their agent state is set to Pending Not Ready. This changes to Not Ready upon completion of the call.
Note: If you have not set any not ready reasons, the agent will be set Not Ready or Pending Not Ready immediately upon clicking Not ready (without having to first select a reason).
Answer
When an agent clicks Answer to accept an inbound call, the following fields are populated in the interaction record:
- LKTL_CLI: Calling line identification
- LKTL_DDI: Direct dial-in
- LKTL_UCID: Universal call identifier
- LKTL_UUI: User-to-user information
For existing customers, this lets Syntelate XA match on the customer’s phone number and then display the customer’s details to the agent.
Dial
If the agent clicks Dial, the Dial window shows.
The agent can use this window to make outbound calls.
Note: If the agent is viewing a record that contains a phone number, the agent can also click the or
button beside the phone number to dial it.
immediately dials the customer, whereas
sends the customer’s number to the Dial window.
Cancel preview
Syntelate XA can pass outbound calls to the agent in preview. This lets the agent preview the customer’s details before making the call.
If the agent decides not to make the call, they can click Cancel preview. This completes the call using the completion code that has been defined for the workzone. The agent then moves onto the next item in their workload.
If the agent is set up to receive inbound calls, an outbound record in preview can be interrupted by an inbound call.
Hang up
If the agent is disconnected from the customer during a call — for example, due to the customer hanging up — a message informs the agent of this.
The agent can hang up by clicking Hang up in the CTI toolbar. Alternatively, the agent can both hang up and close the interaction record by clicking a
Blind transfer
There are two ways in which the agent can transfer the customer to another number:
- Blind transfer
- Warm transfer (in other words, transferring from a consult)
With blind transfer, the agent is immediately disconnected from the customer upon initiating the transfer. As such, the party to whom the call is transferred comes at it “blind” (with no introduction from the initial agent about what the customer is calling about).
Consult and Conference
Consult lets the agent speak to another party while the customer is on hold. To use consult, the agent’s phone must have exactly two line appearances. Syntelate XA does not support more than two line appearances for an agent phone.
While on a consult, the agent can do the following:
- Transfer: Transfers the call to the other party and ends the call for the agent (“warm transfer”).
- Retrieve: Drops the other party from the call and takes the customer off hold.
- Conference: Takes the customer off hold and lets them participate in a three-way call with the agent and the other party.
Syntelate XA supports both agent consult and external consult.
With agent consult, the other party is another agent in Syntelate XA who is logged into a workzone that uses the same universe (“agent B”). While on a consult, agent B can see the customer’s details in their desktop but cannot edit them. Agent B’s telephony toolbar shows appropriate buttons based on their role as consult receiver.
If agent A transfers the call, agent B’s desktop becomes editable and their telephony toolbar updates as appropriate.
With external consult, the other party is either:
- Anyone other than an agent logged in to Syntelate XA
- An agent logged in to Syntelate XA but on a workzone that uses a different universe.
Note: With agent consult, transfer immediately closes the record for agent A and puts agent A into a ready or not ready state as appropriate.
With external consult, transfer puts agent A into wrap-up.
EXAMPLE
Emily, a customer of Inisoft Travel, has a query about her hotel. She calls Inisoft Travel but mistakenly dials the Business Travel number instead of the Personal Travel number. She gets through to Zac.
Zac quickly realizes that Emily has got through to the wrong person, and so he clicks Consult and then selects the Personal Travel hunt group (agent consult). This puts Emily on hold. Zac’s call is passed to Jack, and Zac briefly explains to Jack what Emily is calling about. He then transfers the call to Jack (warm transfer).
Jack speaks with Emily to find out more about her problem. Realizing that he needs to speak with the hotel to sort the matter, he clicks Consult and then dials the hotel’s number (external consult). This again puts Emily on hold. Jack speaks with the hotel and gets to the bottom of the matter.
Jack now clicks Retrieve, which ends the call with the hotel and takes Emily off hold. Jack is now able to tell Emily the answer to her query.
What You Need
For Syntelate XA to integrate with Avaya TSAPI, you must have:
- Avaya Aura® Communication Manager
- Avaya Aura® Application Enablement Services
- The TSAPI Client installed on the Syntelate XA server
Workzone Configuration
In Syntelate XA, all CTI integrations are configured in Designer's Workzone Editor. Here is a screenshot of the configuration screen in Workzone Editor.
The following three settings in a CTI workzone must be completed to create a telephony channel in Syntelate XA:
-
CTI: Offers types of telephony to choose from.
-
CTI configuration (JSON): This is where you specify the telephony server connections.
-
CTI run options (JSON): This is where you specify the telephony behavior at runtime, in other words, how Syntelate XA should handle calls on the Syntelate XA Agent Desktop.
The CTI configuration and run options need to be provided in JSON format.
Below, you'll see examples and descriptions of each option.
CTI configuration (JSON)
{
/* Standard settings */
"CtiSource": "TSAPI",
"CtiApiUrl": " ",
"AutoLogin": false,
"RecordLoginDetails": true,
"PopOnOutgoing": true,
/* TSAPI server settings */
"ServerName": " ",
"Username": " ",
"Userpassword": " ",
"TimeoutSeconds": " ",
"PrivateDataVersions": " ",
"LoginShortCode": "# ",
"cancelPreviewCode": "~PrvCncl~",
/* Mobile XA (telecommuter mode) settings */
"DMCC": {
"AESAddress": "xxx.xxx.x.x",
"AESPort": "xxxx",
"CMAddress": "xxx.xxx.x.x",
"CertificateName": "",
"UseSSL": false,
"Protocol": "x.x.x",
"Extensions": [
{
"ExtnNo": "xxxxx-xxxxx",
"ExtnPwd": "xxxxxxx"
}
],
"PstnPrefix": "x"
}
}
Standard Settings
The standard settings are required.
JSON Key | Description |
---|---|
CtiSource |
Default value: An empty string. Valid values: A string that is either "POM", "TSAPI" or "IPOffice". Defines the type of telephony integration. |
CtiApiUrl |
Default value: An empty string. Valid values: A string that contains an absolute URL. Defines the URL of the Syntelate XA Web API for the CTI, hosted on your Syntelate XA instance. We recommend you host Syntelate XA near the phone system (on the same domain or in the same data center) to avoid latency issues. |
AutoLogin |
Default value: true Valid values: true | false Determines whether Syntelate XA will automatically log in the agent. If AutoLogin fails for any reason, Syntelate XA shows the log in dialog to the agent so they can log in manually. We recommend setting this to true. |
RecordLoginDetails |
Default value: true Valid values: true | false Determines whether the agent's login details will be stored in the AgentLastLogin table after they first successfully log in. We recommend setting this to true. |
PopOnOutgoing |
Default value: true Valid values: true | false Determines whether the Dial telephony button will pop a new interaction record to the agent desktop if it doesn't already have a interaction record open. Only affects agents who dial an outbound call while in Not Ready or Waiting. |
TSAPI Settings
JSON Key | Description |
---|---|
ServerName |
Default value: An empty string. Valid values: A string. Defines the TServer name for the Avaya Communication Manager (CM). |
Username |
Default value: An empty string. Valid values: A string. Defines the CT user name for Avaya Aura® AE Services. |
Userpassword |
Default value: An empty string. Valid values: A string. Defines the CT user's password. |
TimeoutSeconds |
Default value: 0 Valid values: A positive integer. Defines the number of seconds that Syntelate XA should wait for a response from a command. |
PrivateDataVersions |
Default value: An empty string Valid values: A string that is a series of positive numbers delimited by full points, for example, "4.2.0". Defines the TSAPI version. |
LoginShortCode |
Default value: An empty string. Valid values: A string that is a positive number prefixed by a hash symbol. This is not required but can be used if the softphone cannot log in to TSAPI using the TSAPI setAgentState command. In which case, you can specify a LoginShortCode to enable agents to log in. The code is in the format of a hash key and integer, for example, "#11". |
cancelPreviewCode |
Default value: An empty string. Valid values: A string that is a completion code present in the COMPLETION_CODES table. Defines the completion code to use when the agent clicks Cancel preview. References the CODE field of the |
DMCC Settings
AE Services Device, Media, and Call Control (DMCC) is used by Syntelate XA Mobile (the telecommuter mode of Syntelate XA). You should only include the following settings if you are using Syntelate XA Mobile.
JSON Key | Description |
---|---|
AESAddress |
Default value: An empty string. Valid values: A string that is an IP address. Defines the IP address of your Avaya Aura Application Enablement Services (AE Services) server. |
AESPort |
Default value: An empty string. Valid values: A string that is a positive number. Defines the port number of the AES IP address. |
CMAddress |
Default value: An empty string. Valid values: A string that is an IP address. Defines the IP address of your AES Communication Manager. |
CertificateName |
Default value: An empty string. Valid values: A string. Defines the name of the SSL certificate. |
UseSSL |
Default value: false Valid values: true | false Dependent on CertificateName. If CertificateName is provided, UseSSL determines whether the SSL certificate is enabled. |
Protocol |
Default value: An empty string. Valid values: A string that is a series of positive numbers delimited by full points, for example, "2.4.5". Defines the DMCC version number. |
Extensions [ { "ExtnNo": " ", "ExtnPwd": " " } ] |
ExtnNo: Defines the extension number or range of extensions that represent the Syntelate XA Mobile agents' phone numbers. Default value: An empty string. Valid values: A string that is a positive number or a range of positive numbers, for example, "5" or "0000-1111".
ExtnPwd: Defines the password for the extensions. Default value: An empty string. Valid values: A string. |
PstnPrefix |
Default value: An empty string. Valid values: A string that is a positive number, for example, "9". Defines the prefix Syntelate XA Mobile should use when dialing external numbers. |
CTI run options (JSON)
{
/* Go ready options */
"GoReadyOptions": {
"IncomingCallsAgentGroup": 0,
"OutboundOnly": false,
"OutboundOnlyAuxCode": 0,
"GoReadyWithManualIn": false
},
/* Call options */
"CallOptions": {
"ExtnLength": 5,
"ExtnLengthComparison": ">",
"ExternalPrefix": "0",
"SupportDeviceIdPartialMatch": true,
"HangupClearCall":false,
"NailupAni":"00000"
},
/* Wrap timer options */
"WrapTimer": {
"Countdown": true,
"CountdownTimeoutSecs": 30,
"CountdownAddTimeCount": 1,
"CountdownAddTimeSecs": 10,
"autoCompleteCode": "AUTOWRAP"
},
/* Inbound options */
"InboundOptions": {
"PopInboundInNotReady": true,
},
/* Blind transfer options */
"BlindTransfer": {
"OriginCompare": "9999",
"TransferTimeout": "00:10:00",
"ShowSameInteractionRecord": true,
"FieldsToCopy": [
"FORENAME",
"SURNAME",
"LKTL_AGENTNOTES"
]
}
/* Consult options */
"ConsultAsExternalOnly": false,
}
Go Ready Options
The GoReadyOptions settings determine whether the agent state will remain Not Ready in TSAPI even if the agent is Ready in Syntelate XA.
Note: You can override these settings by providing skill membership settings on the phone system.
JSON | Description |
---|---|
IncomingCallsAgentGroup |
Default value: 0 Valid values: A positive integer. Defines the agent group number that will be set Ready for inbound calls. References the AgentGroupNo field of the AGENTGROUPS table. If you omit this setting, then all agents will be available for inbound calls (unless you also set OutboundOnly to true). |
OutboundOnly |
Default value: false Valid values: true | false Determines whether the workzone is outbound only. Set to false if it will handle both inbound and outbound calls. |
OutboundOnlyAuxCode |
Default value: 0 Valid values: A positive integer. Defines the Aux reason code that tells the CTI system that the agent is busy handling calls and it should not pass the agent inbound calls. |
GoReadyWithManualIn |
Default value: false Valid values: true | false Determines whether the agent needs to manually click Answer to pick up an inbound call. Set to false if inbound calls should be answered automatically. Exception: the settings of the agent’s phone (their extension number) can override this. |
Call Options
The CallOptions group lets you configure the agent phone.
JSON | Description |
---|---|
ExtnLength |
Default value: 0 Valid values: A positive integer. Defines the number of digits in internal agent phone extensions. If you have varying lengths of internal extension (for example, a mix of 4 digit and 5 digit extensions) then set this to the higher number (and set ExtnLengthComparison accordingly). |
ExtnLengthComparison |
Default value: Empty string. Valid values: An operator (such as !=, >, or >=). Determines when ExternalPrefix is assigned to a phone number, based on ExtnLength. For example, if ExtnLength is 5 and ExtnLengthComparison is !=, then ExternalPrefix is assigned to any phone number with a length other than 5 (numbers with 4, 7 or 11 digits, and so on). |
ExternalPrefix |
Default value: Empty string. Valid values: A positive number. Defines the prefix Syntelate XA should use when dialing external numbers. |
SupportDeviceIdPartialMatch |
Default value: true Valid values: true | false |
HangupClearCall |
Default value: true Valid values: true | false Determines whether the Hang up button completes the interaction record in Syntelate XA and also disconnects the call in Avaya Aura CM. |
NailupAni |
Default value: Empty string. Valid values: The POM ANI (CLI) number. Defines the POM Automatic Number Authentication (ANI), also known as the caller line-in (CLI) number. Applies exclusively to POM Blend environments where TSAPI handles inbound calls. NailupAni establishes a persistent, nailed-up call via TSAPI and prevents nail-up calls from popping a record in Syntelate XA. You can find the POM ANI (CLI) number in your Avaya Experience Portal, under POM Global Settings. |
Wrap Timer Options
JSON | Description |
---|---|
Countdown |
Default value: true Valid values: true | false Determines whether automatic wrap-up of calls is enabled. If true, calls are wrapped up when the countdown is complete. When true, Countdown is dependent on the other wrap timer options in this group. |
CountdownTimeoutSecs |
Default value: 0 Valid values: A positive integer. Defines the number of seconds that the wrap timer counts down from. |
CountdownAddTimeCount |
Default value: 0 Valid values: 0 | 1 (as integers, not strings) Determines whether the + ADD Time button is displayed on the Agent Desktop. 0 is false and 1 is true. If you set this to 1, then you need to include the option CountdownAddTimeSecs. See below. |
CountdownAddTimeSecs |
Default value: 0 Valid values: A positive integer that represents a time in seconds. Dependent on CountdownAddTimeCount. If you have set CountdownAddTimeCount to 1, then you need to include this option to specify how much time the +ADD TIME button adds to the timer. You can set it to 0 to force the wrap timer to count up rather than down. |
autoCompleteCode |
Default value: Empty string. Valid values: A string. Dependent on Countdown. If you set Countdown to true, when the timer reaches zero, the autoCompleteCode is stamped on the interaction record to log that it has been completed. |
Inbound Options
JSON | Description |
---|---|
PopInboundInNotReady |
Default value: true Valid values: true | false Determines whether an inbound call will pop an interaction record to agents in Not Ready. |
WorklistNotReadyDelay |
Default value: 0 Valid values: A positive integer. Defines the number of seconds that the Syntelate XA Worklist Engine waits before passing the call to the Workload of an agent in Not Ready. |
Blind Transfer Options
JSON | Description |
---|---|
OriginCompare |
Default value: An empty string. Valid values: A string. Defines the location code of the call to be transferred. An inbound call is assigned a call ID (the location code) by Avaya Aura CM. When the call is transferred it needs to preserve the call ID so that Avaya Aura CM knows that the transferred call is a continuation of the original call and not a new call. You need to specify this to enable Blind Transfers. |
TransferTimeout |
Default value: An empty string. Valid values: A string that is a time formatted as "HH:MM:SS". Defines the time in HH:MM:SS format that a transferred call will wait for the third party to answer it before the transfer is abandoned. In which case, the call remains live with the agent and must be completed by them. |
ShowSameInteractionRecord |
Default value: true Valid values: true | false Determines whether Blind Transfer will transfer Agent A's interaction record to Agent B (true) or create a new interaction record for Agent B (false). If you want a new interaction record to be created, then you also need to specify the FieldsToCopy (see below). |
FieldsToCopy |
Default value: An array of empty strings. Valid values: Comma-delimited strings of field names in Agent A's interaction record. Dependent on ShowSameInteractionRecord. If ShowSameInteractionRecord is false, you need to include this option if you want Blind Transfer to create a new interaction record for Agent B when Agent A transfers a call to them. FieldsToCopy lets Syntelate XA populate the new interaction record with data copied from Agent A's interaction record. |
Consult Options
JSON | Description |
---|---|
ConsultAsExternalOnly |
Default value: true Valid values: true | false Determines whether, for consult calls, Syntelate XA pops a new interaction record to the consulted party.
|
ShowConsultToastMessage |
Default value: true Valid values: true | false Defines whether the agent will be notified by Windows that Syntelate XA has passed a Consult to them. The notification is displayed in the bottom-right corner of the Windows desktop. Note: To enable Windows toast notifications, you need to add the following key to your Syntelate XA AppSettings.config file: <add key="Notifications" value="true" /> |
ShowConsultNotificationMessage |
Default value: true Valid values: true | false Defines whether the agent will be notified by Syntelate XA that an agent has passed a Consult to them. The notification is displayed in the bottom-left corner of the Syntelate XA Agent Desktop. |
Admin Options
JSON | Description |
---|---|
ListenFac |
Default value: An empty string Valid values: A string in the format of an asterisk and a positive number, for example, "*90". Defines the Feature Access Code (FAC) number used by Avaya Aura CM to initiate a Service Observing Call. In Syntelate XA, you can use the Listen button in the Agent Control Centre to silently dial into and listen to the agent's call. |
BargeFac |
Default value: An empty string Valid values: A string in the format of an asterisk and a positive number, for example, "*91". Defines the Feature Access Code (FAC) number used by Avaya Aura CM to initiate a Service Observing Call. In Syntelate XA, you can use the Barge button in the Agent Control Centre to barge into (in other words, join) the agent's call. |
Not Ready Reasons
Not ready reasons are held in the CTINOTREADYREASONS database table.
You can manage the not ready reasons either from the configuration desktop or directly in the database.
For guidance on using the configuration desktop to manage the not ready reasons, see
If you prefer to use the database, ensure that you add a new record for each not ready reason. For guidance, see CTINOTREADYREASONS.