Orchestration Designer includes a Java-based tool used to create speech, call control and message
applications that comply with the VoiceXML (VXML). Call Control XML (CCXML) and TextXML specifications,
respectively, plus data only and HTML5 applications. The applications primarily provide automated experience
solutions (also known as "self service" solutions) but can also act as the front-end to assisted experience
solutions (e.g. "Experience Manager First" contact center solutions). In addition, Orchestration Designer
enables data to be shared between platforms so that customers can easily switch from automated to assisted
service and vice versa. Speech applications can be deployed on Avaya Experience Portal, Media
Processing Server or Interactive Response platforms; call control and other applications can be deployed on
Experience Portal.
Orchestration Designer comprises plug-ins to the Eclipse integrated development environment, providing an
intuitive drag-and-drop environment for the development and maintenance of speech, call control and message
applications. Developers can select, configure, and link application templates and build reusable modules to
design new automated services and workflows.
Orchestration Designer provides the following interfaces that can used to create sophisticated speech and
call control applications:
VoiceXML
VoiceXML is an XML standard for specifying Interactive Voice Response (IVR) dialogs between a caller and a
self service application. VoiceXML documents are interpreted by a voice browser. VoiceXML is used to create
audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and DTMF key input,
recording of spoken input, telephony, and mixed initiative conversations.
Call Control XML
CCXML is an XML standard that adds telephony support to VoiceXML. CCXML informs the voice browser how to
handle the telephony control of the voice channel, providing finer grained control in caller application
development. Combining CCXML with VoiceXML capabilities enables applications to perform voice dialog tasks
that VoiceXML alone cannot do.
The Orchestration Designer CCXML interpreter supports the following CCXML elements:
CCXML Element |
Functionality |
<accept> |
This element accepts an incoming call. The execution of <accept> element
causes the underlying platform to signal the telephony system to connect the specified
connection to the CCXML platform. |
<createcall> <disconnect> |
A <createcall> element instructs the platform to allocate a connection
and attempts to place an outgoing call to a specified address. The CCXML interpreter receives an
asynchronous event when the call attempt is completed. A CCXML document instructs the platform
to disconnect a connection by using <disconnect>. The underlying platform
sends the appropriate protocol messages to perform disconnect, and send an asynchronous event to
the CCXML document when the disconnect operation completes. |
<join> <unjoin> |
A <join> element is used to connect the audio of two "endpoints" in a
CCXML script. An <unjoin> element is used to disconnect two audio
endpoints which were previously connected with a <join> element. |
<dialogstart> |
A <dialogstart> element is used to start a dialog (for example, VXML) and
associate the dialog with a connection or conference. |
<redirect> |
A <redirect> element causes the underlying platform to signal the
telephony system to send the call to a specified destination. The use of
<redirect> is only valid when a call is in the ALERTING and CONNECTED
states. |
<send> |
A ><send> element is used to send messages containing events or other information
directly to another CCXML Interpreter or other external systems using an Event I/O Processor.
|
<createccxml> (Dialog Designer Release 5.0 and later) |
This element spawns a new CCXML session from the current session. The newly created session is
independent of the current session and these sessions are not related. Existing connections from
the current CCXML session cannot be moved to the new session. |
<basichttp> (Dialog Designer Release 5.0 and later) |
This element permits sending and receiving events between an external interface and a CCXML page
via http. |
Table 1: Supported CCXML Elements
Refer to Avaya Orchestration Designer help documentation for a complete list of supported CCXML elements.
TextXML
TextXML is an XML standard that enables message applications to conduct two-way SMS and email conversations
with users.
Orchestration Designer API
The Orchestration Designer API provides functionality that can be overridden by writing custom code using
standard Java API calls. The API permits adding custom code as follows:
- Using Java API
Java code has to be added in designated API functions. The Orchestration Designer API supports adding
custom Java code in the following areas:
- Dynamic grammars
- Setting the language for multi-lingual applications
- Accessing back-end connectors/API's that are not integrated into Avaya Dialog Designers GUI (for
example: LDAP)
- Dynamic prompts
- Dynamically enabling/disabling menu choices, links, grammars
- Custom markup generation.
Table 2 below displays a list of Orchestration Designer API methods that support addition of custom Java code
Method |
Functionality |
markupLanguageGeneration() |
Generate custom markup. (Only for Markup Language Servlet) |
updateProperties()
updateBranches()
updatefield()
updateChoices()
updateLink()
updatePrompt()
updateGrammar()
|
Affect the VXML generation by altering the runtime objects. Alter by enabling/disabling, or
adding to. Method is invoked prior to ML generation. |
requestbegin() |
Add custom logic. |
servletImplementation() |
Implement a custom servlet. |
initializeServlet() |
Servlet setup before request is processed. |
Table 2: Orchestration Designer API Supporting Custom Java Code
- Servlet nodes - Java and VXML servlet nodesServlet nodes are available in the Orchestration Designer
call flow palette. They can be used to customize the call flow. For example - code can be written in
these servlet nodes for some business logic that the Orchestration Designer does not support natively.
Media Resource Control Protocol (MRCP)
Media Resource Control Protocol (MRCP) was developed jointly by Cisco Systems Inc, Nuance Communications, and
Speechworks Inc. MRCP controls media service resources over a network, examples include:
- Speech synthesizers
- Voice recognition devices
- Signal generators
- Signal detectors
- Fax servers
MRCP is designed to work with streaming protocols like RTSP (Real Time Streaming Protocol) or SIP (Session
Initiation Protocol), which help establish control connections to external media streaming devices, and
media delivery mechanisms like RTP (Real Time Protocol).
MRCP is not a standard but it is published
as RFC 4463 as input for further IETF development in this area.
Interactive Voice And Video Response (IVVR)
Orchestration Designer supports the capability to playback media including audio, video, images and text to
the caller. The Interactive Voice and Video Response functionality is based on SMIL - Synchronized Multi
Media Integration Language interface. Video integration uses SMIL 3.0 Tiny Profile.
The methods below can be customized to override default functionality:
Method |
Functionality |
hookGetMediaURL() hookGetMediaType() |
The hookGetMediaURL() method returns the URL of a media file.
The hookGetMediaType() method returns the media type. Override this method to
dynamically vary a media type.
hookGetMediaType() should be used in unison with
hookGetMediaURL() to indicate the type of media. The
hookGetMediaURL() method will be invoked first and the result will be passed
into hookGetMediaType() to determine type, if necessary.
|
updatePrompt() |
The updatePrompt() method allows access to prompt levels and manipulate prompt
elements programmatically. Override this method to dynamically update prompt elements. |
Table 3: IVVR Methods
Web Services
The Web services interface enables Web service integration through a WSDL wizard that supports SOAP/XML remote procedure calls.
SQL Database
The SQL database wizard provides a simple interface to local or remote SQL databases, using the Java Database Connector (JDBC) architecture.