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