EVG Connector
Voice Gateway
The eva-evg-connector is an IVR integration channel for Syntphony Conversational AI.
This guide explains how to set up a project using the eva-evg-connector.
For information about creating flows and configuring the IVR commands used by the connector, see Call properties.
Versions
The eva-evg-connector is a peer dependency of Syntphony Conversational AI. This provides flexibility when selecting the eva-evg-connector client version for the corresponding Syntphony Conversational AI version.
1.x.x
4.3.xβcurrent
Requirements
To build and run the application, use:
Dependencies
The external dependencies of this project are:
Environment variables
Set the following properties to change the default Redis configuration:
The default value of spring.cache.redis.time-to-live is 1800000. This property is not required when you do not need to change the default value.
Get Started
Create a Spring Boot Web Maven project and add the eva-evg-connector dependency to the pom.xml file:
You can create the Spring Boot project using Spring Initializr.
Configure Maven
Configure settings.xml to download the dependency:
How to Include Evg Connector
Add the @EnableEvgConnector annotation to the main application class:
Quickstart
Create a class named DemoService that extends EvgConnectorBase.
The ConversationRequest object is used when calling Syntphony Conversational AI. The parameters sent in this request are described in the example.
The example calls Syntphony Conversational AI to execute a Welcome Flow. For information about configuring the call and its authentication, see Conversation API.
The call executes a flow, receives a response from Syntphony Conversational AI, and generates IVR commands based on the response.
Test the connector
To process a call, the EVG IVR consumes the endpoint provided by the EVG Connector.
The following request is an example that can be used to test the implementation:
Use this JSON to test your implementation.
Conversation service
The following table describes the endpoint used by the EVG IVR:
Method
POST
URL
/conversations
Type
application/json
Request body and response body
evgCallStatus
EvgCallStatus
Yes
An enumeration that represents the status of the call.
telcoData
TelcoData
Yes
Contains call data, such as the numbers making and receiving the call.
context
JSON object
Yes
Helper object used to maintain the call state. It can store data retained during the call, such as the Syntphony Conversational AI sessionCode.
commandList
EvgCommand[]
Yes, unless evgCallStatus is INIT
A list of commands that the IVR executes.
fetch
Fetch
No
Defines IVR behavior when it must fetch a page, URL, or JSON resource.
EvgCallStatus
INIT
Indicates the initial state of the call. This is the first request.
CONTINUE
Indicates a call in progress.
USER_DISCONNECTED
Indicates that the user disconnected the call.
IVR_DISCONNECTED
Indicates that the IVR disconnected the call.
TRANSFERRED
Indicates that the IVR disconnected the call.
ERROR
Indicates an error state.
TelcoData
ani
String
Calling number.
dnis
String
Incoming number.
sipCallId
String
Unique call ID generated by the SBC.
originIp
String
Call source address, corresponding to the SBC address.
customerSipDomain
String
Domain that identifies the provider.
EvgCommand
commandOrder
int
Orders the execution of commands.
commandType
EvgCommandEnum
Enumeration that represents the type of command to execute.
result
EvgCommandResult
Result of the executed command.
EvgCommandEnum
PLAY_AUDIO
Plays audio media. The supported formats are WAV and FLAC.
PLAY_TTS
Indicates the sanitization of text.
PLAY_SILENCE
Plays silence.
VOICE_MENU
Enables the user to interact in the call through voice.
DTMF_MENU
Enables the user to interact in the call through the phone keypad.
DTMF_VOICE_MENU
Enables the user to interact in the call through voice and the phone keypad.
TRANSFER
Indicates that the call will be transferred.
HANGUP
Indicates that the call will be terminated.
EvgCommandResult
status
EvgResultEnum
Enumeration that indicates the execution status of the requested command.
message
String
Contains execution details.
digits
String
User input. The value is populated when the user uses the phone keypad.
transcription
String
User input. The value is populated when the user speaks.
EvgResultEnum
SUCCESS
Indicates that the audio file or TTS synthesizer request command was queued successfully.
ERROR
Indicates that an error occurred in the command. More information is available in the error message.
FILLED
Indicates that the user response to the voice or DTMF menu met the configured criteria, such as the correct number of DTMF digits or a successful transcription.
DISCONNECT
Indicates that the customer disconnected the call while it was being processed. This usually occurs during menus or transfer requests.
NO_INPUT
Indicates that the user response did not meet the configured voice or DTMF menu criteria because the user did not enter a DTMF option or speak any words or phrases.
NO_MATCH
Indicates that the user response did not meet the configured voice or DTMF menu criteria because the user entered an invalid DTMF length or spoke input that could not be transcribed, although noise was detected.
Fetch
fetchTimeout
Long
Default time, in milliseconds, that the IVR waits for a page or JSON fetch.
fetchAudio
String
Path to the default audio file used during IVR platform fetch events.
fetchAudioDelay
Long
Default delay before the fetch audio starts. This is the time, in milliseconds, that the IVR waits while transitioning and fetching resources.
fetchAudioMinimum
Long
Minimum time, in milliseconds, that the fetch audio plays after it starts, even if the fetch result becomes available.
fetchAudioInterval
Long
Time interval between fetch-audio loops. The default value is 0. A value of -1 prevents the audio from looping.
Configure DNIS
The following JSON contains the data and configurable properties that must be provided to Syntphony Conversational AI.
The JSON defines the default DNIS configuration, including the Conversation Property configuration for voice providers.
The properties can be modified individually in flows by using the technical text field in Answer cells.
See Call properties for the configurable fields and their reference values, including TTS (text-to-speech) properties, BargeIn, Flush, audio and text Answer templates, Play Silence, DTMF menu, Voice menu, Transfer, Fetch, Default Error Behaviour, and Regional Expressions, etcetera.
DNIS configuration JSON
Last updated
Was this helpful?