07-10-2014 07:32 AM
Does anyone have a JAR that they could send me that allows for Dynamic Menus W/ Dynamic Exit states? I've tried to do it in Studio w/o a JAR and it is messy and I'm not even sure that it will work. If anyone has a JAR that they could send me, I should be able to modify it for my env.
Here is the scenario that I am trying to fulfill:
To hear your refund status again, press 1 - Static menu option
<more refunds>To hear your next refund press <X>. (2 or more PaymentIDs from TaxpayerRefundInformation StoredProceedure)
<If Fees> To hear a listing of the fees paid, press <X>. FeesPaidFromACH (1=yes, 0=no)
<State Exits> To check the status of the of your State refund, press <X> (StateRefund from ivr_Taxpayerexists StoredProceedurte).
To return to the main menu, press 9. - Static menu option
To repeat this menu, press *. - Static menu option
Hope this isn't asking too much.
P.s. its CVP 10
07-16-2014 06:29 AM
Hi Ryan,
I would request you to refer Dynamic Element Configurations from Programming Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio, Release 10.5(1).
Refer - Unified CVP API Introduction
if you want to use the jar file for all your studio and vxml server
apps, then place the jar file in these 3 locations.
Studio (then restart studio)
C:\Cisco\CallStudio\eclipse\plugins\com.audiumcorp.studio.library.common_x.x.x.-SNAPSHOT\lib
VXML Server (then restart VXML Server service)
C:\Cisco\CVP\VXMLServer\common\lib
Studio Debugger:
C:\Cisco\CallStudio\eclipse\plugins\com.audiumcorp.studio.debug.runtime_x.x.x-SNAPSHOT\AUDIUM_HOME\common\lib
Reference - place of jar files
Thanks and Regards,
Geevarghese
07-16-2014 09:14 AM
You CAN create dynamic configurations for a Form element to dynamically
configure the Settings (DTMF/Voice input) and Audio Prompts. BUT - I
don't think there is any way that you can create exit states dynamically.
07-16-2014 02:07 PM
Janine:
You don't happen to have a JAR that will do this do you? I don't know how to start a java element, but I can modify the code if I already have one.
07-16-2014 02:40 PM
Here's an example of a Dynamic Config for a Form element that I use in my CVPD-Java Programming Class.
It's not the best java ever written, but it gets the job done.
You could always come to training! I teach CVPD-Java once every few months in the US.
And I'll be in Paris in Sept!
//These classes are used by dynamic voice element configurations.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.audium.server.AudiumException;
import com.audium.server.proxy.VoiceElementInterface;
import com.audium.server.session.ElementAPI;
import com.audium.server.xml.VoiceElementConfig;
//com.mycompany.JaninesDynamicDBVoiceMenu
public class JaninesDynamicDBVoiceMenu implements VoiceElementInterface {
public VoiceElementConfig getConfig(String name, ElementAPI data, VoiceElementConfig defaults) throws AudiumException {
// *******Ignoring base config from Studio. Must re-instantiate 'defaults' ***
defaults = new VoiceElementConfig();
// Set up the Audio prompts for the initial audio
VoiceElementConfig.AudioGroup initialAudioGroup = defaults.new AudioGroup(
"initial_audio_group", true);// true=allow bargein
// Set All Required settings
defaults.setSettingValue("inputmode", "both");
defaults.setSettingValue("noinput_timeout", "5s");
defaults.setSettingValue("form_max_noinput_count", "3");
defaults.setSettingValue("form_max_nomatch_count", "3");
defaults.setSettingValue("confidence_level", "0.4");
defaults.setSettingValue("modal", "false");
defaults.setSettingValue("field_name", "foundation_fld");
defaults.setSettingValue("maxnbest", "1");
defaults.setSettingValue("secure_logging", "false");
//create the audio items for.wav <insurancetype>, press.wav, <keypress>
VoiceElementConfig.StaticAudio promptFor = defaults.new StaticAudio("For ", "for.wav");
VoiceElementConfig.StaticAudio promptIns;// get this from the DB
VoiceElementConfig.StaticAudio promptPress = defaults.new StaticAudio(" press ", "press.wav");
VoiceElementConfig.StaticAudio promptDtmfKey;
// Connect to DB to get caller's insurance types
Connection con = null;
Statement st = null;
ResultSet rs = null;
// get a connection to dbhere.
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/rx", "root",
"root"); // rx is the db name
// this reads and displays all the records in the rxtable
st = con.createStatement();
System.out.println("SELECT INSTYPE FROM INSURANCE WHERE ACCTNUM="+data.getElementData("getAcctnum", "value"));
rs = st.executeQuery("SELECT INSTYPE FROM INSURANCE WHERE ACCTNUM="+data.getElementData("getAcctnum", "value"));
int index=0;
while (rs.next()) {
// get values by col index or by name
String instype = rs.getString("instype").trim();
index+=1;
promptIns=defaults.new StaticAudio(instype, instype+".wav");
promptDtmfKey=defaults.new StaticAudio(index+". ", index+".wav");
initialAudioGroup.addAudioItem(promptFor);
initialAudioGroup.addAudioItem(promptIns);
initialAudioGroup.addAudioItem(promptPress);
initialAudioGroup.addAudioItem(promptDtmfKey);
// now do the Settings for voice_keywords and dtmf_keypresses
defaults.addSettingValue("voice_keyword", instype); //omit this if doing DTMF only
defaults.addSettingValue("dtmf_keypress", index +"["+instype+"]"); //1[auto]
}
// Add the initial Audio Group to the Voice Element Configuration.
defaults.setAudioGroup(initialAudioGroup);
// Return the new configuration
return defaults;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if(rs != null) rs.close();
if(st != null) st.close();
if(con != null) con.close();
} catch (SQLException e) {
}
return defaults;
}
}
07-17-2014 11:36 AM
janinegraves You rock...as usual. I may be interested the class. Do you have an offering that would allow me to attend remotely?(TelePresence, WebEx, etc)
Let me know.
07-17-2014 02:42 PM
Yes, we offer remote training using a combo of HiDef videoconf and
Webex. Go to www.TrainingTheExperts.com/courses.html and you'll see the
classes that allow remote training.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide