Integrating different programming models

You can provide voice access to business applications using VoiceXML alone, but more advanced (and efficient) system requirements can be met by integrating CCXML with VoiceXML or Java. Figure 1 shows how CCXML can be used to directly drive telephony operations, while invoking multiple VoiceXML dialogs or Java applications to manage interaction with a caller.

Figure 1. Integrating different programming models from CCXML
This figure shows how CCXML can call VoiceXML dialogs or Java applications, while it manages call handling and telephony operations

Figure 2 shows how a VoiceXML dialog, whether invoked from a CCXML application, or directly from call routing, can make use of the <object> tag to get access to Java classes, including voice applications created with the Java API, or state tables.

Figure 2. Integrating different programming models from VoiceXML
This figure shows how the VoiceXML object tag can be used from VoiceXML dialogs to invoke voice applications written using Java beans or state tables, as well as other Java classes.

Figure 3 shows how a Java application that has been invoked either from a CCXML application, or directly by call routing, can be used in an integrated system to make calls to existing state table applications or custom servers, as well as handling some telephony functions.

Figure 3. Integrating different programming models from Java
This figure shows how a Java application can be used to call a Custom server or some legacy business logic.