For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

eva-evg-connector
Syntphony Conversational AI

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:

Property
Value

Method

POST

URL

/conversations

Type

application/json

Request body and response body

Name
Type
Required
Description

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

Name
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Description

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

Name
Type
Description

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

Name
Description

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

Name
Type
Description

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?