Home
        IC Cookbook - Intervoice
         Contents
1.           Properties 2 3 Ei Problems     l Console ae  A DTMF Menu  gt  ID   dtmiMenu_vopvah    Name   NewsWeatherSportsMenu   EEN  General   Menu   Prompts   Standard   Properties    Events   Right click to Edit       Specify Prompt Attributes  Comments Leading   Trailing   Event      Type    TTS      Prompt troup   Holnput 1    Prompt      Sorry I did n    Expression       Sorry I did not receive any input       Fallback Text        Specify a condition For the prompt     Figure 6 6   Completing the New Event Prompt  Now go ahead and create the second Prompt Group using the same process as in Figure 6 3  This prompt  group will also have a Nolnput event Scope  but in this case  the Prompt Count attribute will be 2  This second  prompt will only be played if the caller makes a second Nolnput error on the same menu  You can refer back to  our previous discussions to see what that actual text for each prompt should be     Properties 2 3  e Problems    Console     amp  DTMF Menu  gt  ID   dtmfMenu_vopvah    Name   NewseatherSportsMenu        General Menu   Prompts   Standard   Properties     i  ANAN lee ie Balk Specify attributes For the event prompt group   Comments Leading   Trailing Event       EE   Scope     Nolnput      Prompt Group   Falnput 1  Prompt   Sorry I did not receive any input     Prompt Count  2a o O  Prompt taroup   Molnput_2 Do Reprompt    true  Prompt    Sorry I still did not receive any input      Present As     sequence    OOO  Condition    true          Fi
2.          iese esse see ee EE Ee ee AR EE ee ee ee ee AR EE Ee ee ee ee RE ee ee ee ee ee ER EE ee ee 88  FOUE Aos  6   a  Ui  N Piel EIOUP   sms a nt ene noe ee Ee oe Ee ee eee ene EE 89  Figure 7 6 2 Deininga New Pi DI sa ee ete Se es AE N Dei sais SE Re ee oe eine ei AE 89  Figure 7 7   Completing the New Prompt               ccccccccccssssseeeceeeeeeseeeeeeeeeeeeeeeeeeeeeeeesseeeseeeeeeeeessaeseeeeeeeesssaaeeeeeeess 90  Figure 7 8   Completed Prompt Groups and Messages for Nolnput  NoMatch  and MaxSpeech Timeout          90  Figure 7 9   Selecting the Event Handlers for the Errors         ees sesse ee ses ee ee ee ee ee ee ee Ee ee ee ee Ee ee ee ee ee ee ee Ee ee ee ee EE ee 92  Figure 7 10   Defining the Maximum Number of Errors        iese sees ee ee ss ee ee ee ee ee ee ee ee ee Re ee ee ee Re ee ee Re ee ee ee EE ee 93  Figure 7 11   Default Event Process in the Event DiagraM          sees ss ese esse ees ee se ee ee ee ee ee ee ee ee ee ede ee ee Re ee ee ee ee ee 94  Figure 7 12   Adding Event Entry Components to Event DiagraM          ees ss sesse ee sesse ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 95  Figure 7 13   Event Process Component with Customized Errors Actions        ees ees ees ee ee ee Ee ee ee ee ee ee EE ee 95  Figure 7 14   Connecting Event Entry Components to Event ProcesS           ees sees ees se se ee ee ee ee ee ee ee ee ee ee ee ee 96  Figure 7 15   The Completed Event Entry ConnectionS         sees ese ee ee ee ee ee Ee ee ee ee ee ee RE EE 
3.      Properties 2 Bi Problems    do     Call Begin  gt  ID   callBegin_jidgup     Specify variable names to store the attributes     Comments ANI Variable    CallerPhoneNa             Debugger DNIS Variable  1    Figure 4 1   Defining the ANI Variable Name    Next  add the CallerPhoneNo variable to the document   s Name List    E Properties   5 Wr Problems    amp  Dialog  gt  ID   dialog_fikmap   General Specify dialog start attributes     Events    Comments        ivoice Voice_Personalization diagram          ivoice Voice_Personalization diagram      diagram v  g  Debugger      Deae OOOO oooO    Figure 4 2   Passing the Caller Phone Number variable    Copyright    2013 Convergys  All rights reserved        45    To add the CallerPhoneNo variable to the documents Name List     1   2     In the Call Personalization diagram  click the Dialog icon     In the Properties view   Name List field  type CallerPhoneNo as the variable name  no duotes   See  Figure 4 2     This causes the variable to be passed to the Voice diagram for more processing after the Voice  diagram is called from the Call Control diagram  After the Voice diagram has the phone number  it can  check for a match in the database     Save the project     Note  As an alternate approach  you could design the call flow to do the database check in the Gall  Control diagram and pass the database results in the Name List  Either approach can work  but this  sample project will keep all the database operations in the Voice
4.      Route the PlayAccountNum and the StorePhoneAndAccountNo legs of the call flow to the  Goodbye component  No labels are necessary     Remaining Diagram Errors    To get rid of an error condition on the database query component     1   2   3     4   5   6     Select the RetrievePhoneNo component  and go to Properties view  gt  Events option   In the Error field  select Inline   Connect the RetrievePhoneNo component to Goodbye component  Select the Error pop up     If an error occurs on the first query  the system will play the Goodbye prompt and end the call  This  isn t good UI practice for error recovery  but this recipe focuses on personalization     Connect the Goodbye component to the Voice End component   Arrange the arrows to tidy up your diagram     Check the Problems view and correct any Errors  If you followed the steps  you shouldn t have any     You have completed the Voice diagram for the Personalization application  See Figure 4 12   September 2013 Copyright    2013 Convergys  All rights reserved  54                                                         Voice Personalization diagrarm 2 5     Call Personalization  diagram   im  RetrievePhoneno CheckPhoneNo PlayAccounthurm ld  MotFound  GetAcctho 7     a     Properties   2  21 Problems  E  A  j gt  ID     play_weztiw    Name  Goodbye   General   Prompt   Standard    Events Right click ta Edit    Specify attributes For the prompt group   Comments ad Prompt Group E me    Bargeln   Play While Proceeding with Cal
5.      fee Transfer    92  Voice End     Services  Events    8       EG    Figure 6 17   Updated Event Diagram    After adding the Play components  connect them to the appropriate NoMatchError and NolnputError    Since we got here because of a fairly serious error issue  at this point it is good practice to transfer the caller to  someone that can help  A subsequent recipe  Basic Transfer recipe  will discuss the call transfer in more  detail  For this recipe  incorporate Play and Transfer components into the event diagram  Fig 6 18      a 7 D 1   cw      Voice  diagram     Event diagram os    NoMatchError DidNotUnderstandInput  lt  Palette t    ve peas   d MenuNoMatch TransferTocS  Z    Connections  ErrorAction EE MeriuMNolnput NoINputError NoInputReceived   gt  General    gt  Voice   amp  Set Language     Subdialog     Pz Transfer  T Voice End      gt  Services      Events    g    ee         a Play     a  EG    Figure 6 18   Transfer Component Added to Event Diagram    The details of the Play and Transfer components will not be covered here  Refer to the BasicTransfer recipe  for more information about transferring to an operator  If you are trying this recipe in a test environment that  doesn t have transfer capability or a handy live operator  you can leave out the Transfer component  Just play  the appropriate error message  and end the call     Each Play component will contain a specific message to instruct the caller of what is going on  For  DidNotUnderstandInput Play c
6.     Dm Mm ae o    From the Voice drawer  add a Collect component to the right and below the If component   Label the component GetAcctNo    Select the GetAcctNo component    In the Properties view  gt  General option  gt  Prompt tab  select Prompt   no text     In the Type field  select TTS     In the Expression field  use single quotes and type   Welcome new user  Please enter your four digit  account number     See Figure 4 7     C  Properties 2   2  Problems m ala   amp   Collect  gt  ID     collect balyow    Name   GetAcctNo     General Grammar   Standard   Properties      Events Right click  to Edit    Specify Prompt Attributes  Comments    PromptGroup   Default      Debugger     nee Type    Espressian   Welcome new user  Please enter your Four digit account number       Fallback Text        IE        i    Figure 4 7   Collect Prompt Properties    Select the Properties view  gt  General option  gt  Grammar tab   In the Mode field  select    dtmf      Accept the default weight     1 0          In the URL field  specify the URL as   builtin dtmf digits  length 4     This is a built in grammar defined in VoiceXML  When you set the length to 4  the user must key in  exactly four DIMF digits  As soon as the user types in the fourth digit  the call flow will exit the Collect  component in the default path  See Figure 4 8     September 2013 Copyright    2013 Convergys  All rights reserved  51     N l E  Problems        PID     collect_balyow    Name     GetAcctho           Prom
7.     setTimeout icxmil    Ja 1 1     z       AsyncEvent  diagram     Asyncevent  icxml    gettityForecastBy ZIP  diagram  getCityForecastBy ZIP  icxmil  getCityWeatherBy2IP  diagram  getcie Weatherby IP  icxml     see   getweatherinFormation diaaram    B get w eather Information  icxml  H E voice    jim    1     jm    jmp      Figure 5 2   Web Weather Service Folders    Based on the WSDL provided in the wizard  the wizard created several subroutines that can access  the weather service  In the Package Explorer  expand the subroutines  gt  process folder to see the  names of the diagrams and to gain an idea of what the subroutines will do     6  To display the weather subroutine process diagram that the web services wizard created  double click  the getCityWeatherbyZIP diagram file     In the diagram window  select the Script component  yellow scroll icon      8  Inthe Properties view  gt  General option  notice the contents of the script  See Figure 5 3     September 2013 Copyright    2013 Convergys  All rights reserved  58       getCitywweatherByZIF  diagram 2 3 N     E    DAE  oe  1S  ie     OF          Note            AA Conditional        L         oh Zoom     General  F             f  Properties 52  N Ta   amp  Script   pees Specify either an External javascript File name or Inline Script block  Only the selected Script Type below will be propagated   Comments Script Type     External Script    Inline Script    Enter an Inline Script  try      Packages  com  intervoice  s
8.    debugger    H  resources  Ep Subdialog  EIE scripts G82 Transfer  2 WebContent    ty Voice End     Services  Events    Figure 1 6   First Voice Diagram    The Voice diagram has two icons   e Green    represents the beginning state of the voice diagram  e Red    represents the end state of the voice diagram    To the far right is the Palette view with various drawers  Figure 1 6   Use these components to build  your application flow  Since Voice diagrams deal only with the interactive voice dialog  you will use  many components in the Palette   s Voice drawer     For now  you can close the other drawers in the Palette   e Click the folder of a drawer to close it     e Click again to open a drawer     Note  Later  you will use other components to define functions in Call or Process diagrams  for  example     e Answering a call  e Launching a voice dialog    e Stepping through a database procedure    September 2013 Copyright    2013 Convergys  All rights reserved  6       Tahoma EE ed  G Package Explorer   3  Es    E TE  Helloworld       Event iczml    Voice  diagram     Voice  ic  ig   H E resources   E WebContent       Figure 1 7   Voice Diagram files    In the Package Explorer  expand the voice folder to see the files that were created when you created the Voice  diagram  Figure 1 7   For information on the other files  see the Interaction Composer User s Guide     Adding a Play Component to a Diagram  To add a    Hello World    prompt   1  Inthe Voice drawer of the Palett
9.   2  Move your cursor near the bottom of the list  and select ICS Grammar Builder     The ICS Grammar Builder is launched  see Figure 3 4      Inter  oice Grammar Builder    1 0 02  unnamed  Ioj x   Eile Edit Help    Grammar Type   custom T      f  Phrases FO Phrases   Synonyms    Phrases       Phrase    Add    Update         Figure 3 4   ICS Grammar Builder    At the top  accept the default Grammar Type  which is Custom  and the Phrases option     At the bottom  in the Phrase field  type news     At the bottom right  click Add  or press  lt Enter gt    The word News is entered into the grammar and into  the large Phrases area in the middle     6  Repeat steps 4 and 5 for weather and sports   Figure 3 5 shows the Grammar Builder with the grammar     Note  The Grammar Builder automatically arranges them in alphabetical order     September 2013 Copyright    2013 Convergys  All rights reserved  36    11   12   13   14   15          Grammar Builder    1 0 02  unnamed  Edited     Fil   Edit Help    Grammar Phrases   Ignore Phrases        Phrases      Phrases   Synonyms    Phrases       Phrase       Figure 3 5   Building a Grammar    In the Grammar Builder   s menu bar  select File  gt  Save  The Save window opens  automatically  pointing to the SoeechNewsWeatherSports folder     Expand the resources  gt  grammars  gt  en US  US English  folders     In the File name field at the bottom  type snwsgrammar for the  ivgr grammar filename       On the bottom right  click Save     This w
10.   Transfer  gt  ID   transfer_bewyiw    Name   TransferCall                             General Properties   Grammar  Comments Specify Transfer attributes   Transfer Type     Blind v  Destination Expression    transferExtension   a  Connect Timeout     Max Time     Transfer Audio     Result Variable  a  441 Options  Application to Application Expression    g  Call Analysis   Call Progress   Override ANI      I       Retry Count On Failure To Complete Transfer          Pause Between Retries To Complete Transfer  ms   j       Figure 8 8   Completed Transfer Component    Making the Final Connections to the Components    Since the Transfer component has now been completed  connect all the Calculate components to the  Transfer Component    Note  These are default connections  You don t need to add a label    Finally  connect the Transfer component to the Voice End component  The completed Voice diagram will look  similar to figure 8 9     September 2013 Copyright    2013 Convergys  All rights reserved  106    a r   rn   gt   yoice diagram 24    GetNewAcctInfoExtension    SpeechMainMenu CheckMainMenuSelection  default    Loans    NewAcctInfo    PlayGreeting    CustomerServiceRep    Figure 8 9   Completed Voice Diagram    Final Notes for Application Completion    Once all components are attached  complete the Call diagram under applications  gt call  See Recipe 1      Hello World  This is needed for the application to be able to work in a runtime environment     TransferCall    GetL
11.   but in this simple recipe  the caller only gets one chance     Add another Play component under the Play Weather Report component  and label it  WebWeatherSvcError     Connect the GetWeather component to the WebWeatherSvcError component  and select the error  connection option     Set the WebWeatherSvcError TTS prompt to play    The Weather Service is not currently available  Call  back later        In the WebWeather  gt  call folder  create a new Call_ WebWeather diagram  see Recipe 1    Set the Call WebWeather diagram to the Voice_WebWeather diagram     To complete the diagram     1   2   3     Connect the ZipcodeError Play component to the Voice End component   Select Create Event Connection and then select the Error popup     Connect the WebWeatherSvcError Play component to the Voice End component and label it  WebError     Connect the PlayWeatherReport Play component to the Voice End component and label it Success   Save your project  All red x   s should be cleared     Figure 5 9 shows the completed Voice_WebWeather diagram     September 2013 Copyright    2013 Convergys  All rights reserved  67      voice diagram  lt 5    Get zipcode Get Weather Play weather Report    wj oes A     error Zip error ex  Error   Web weather Svc Error      ar  Web error           Figure 5 9   Final Web Weather Diagram    This completes the web services weather recipe   13  Package your project     14  Upload the WAR to a runtime system to test that it will play the weather report     Septe
12.   process for a completed application and runtime execution     Interaction Composer Packaging Process    Interaction Composer   in Eclipse        Resource SCXML Browser  files     Audio    SCXML  SC Engine     Grammars   ETC        Packaging       Web Application  Container   WAR         To deploy the application  the developer loads the final WAR file into an application server  When the SCXML  documents are executed  the code dynamically generates snippets of VoiceXML and CCXML code which are  then presented to the appropriate client side browsers to execute the dialog segments     September 2013 Copyright    2013 Convergys  All rights reserved  viii    Recipe 1  Creating Your First IC Application    Hello World       Approximate time  30 minutes  depending on prior experience    Reference  For the Interaction Composer User s Guide  select Help  gt  Help Contents and select this guide  from the Contents pane     What you will learn with this recipe   e Creating an Application Project  e Creating a New Voice Diagram  e Creating a Call Diagram  e Playing a Prompt  e Using TTS for a Prompt  e Packaging Your Application Project    Creating an application project   To help you get familiar with Interaction Composer  the HelloWorld project will be very basic   e Answers the phone  e Plays a    Hello World    prompt  e Hangs up    To start building your application project     1  In Interaction Composer  IC   create a new workspace named HelloWorld  The Interaction Composer  pers
13.   the simplest approach is to design a separate error exit in the Collect  component     To create a separate error exit in the Collect component     1   2     Select the Collect component   In the Properties view  select the Events option on the left   In the list of event handlers  set each event to Inline   See Figure 3 3      Inline means that the system will handle the errors in the same diagram space as the regular voice  flow  so the Collect component should provide a specific exit path for these error events     Save the project     September 2013 Copyright    2013 Convergys  All rights reserved  33    n  Ygice_S5peech  diagram se N 7   A    T      h  P MenuResult   7    SN SMEenu SHvySSelect II                 s Bi Problems      amp   Collect  gt  ID   collect_xipcem    Name   SNWSMenu     General Select event handlerts3      Events    j Error    Inline    a TERE   MaxMoMatch    Inline  Debugger    MaxNoInput     MaxSpeech Timeout        Figure 3 3   Setting the Error Paths for the Collect Component  Now the Collect component will have two exit paths that will be made available when connecting its outputs   e Default exit path   taken when a valid menu selection is made     e Error path   taken when any error occurs     September 2013 Copyright    2013 Convergys  All rights reserved     34    Collect Component and Grammar Builder    In a speech application  callers can say anything they want in response to a menu prompt  Therefore  the  voice user interface designer 
14.  77    Figure 6 9 shows the DIMF Menu Properties view  gt  Events option     The Error event covers errors that are not caller input errors  Hopefully  you won t encounter these  kinds of errors very often    It is important to understand that the MaxNoMatch  MaxNolnput  and MaxErrors events will only occur  when a pre set maximum error count has been reached       Properties 2 5 rah Problems     l Console     amp  DTMF Menu  gt  ID     dtmfMenu vopvah    Name   NewseatherSportsMenu     General Select event handler s    Events Error    Ignore  Comments NoMatch    Ignore    MoInput    Ignore    MaxErrars  E    Figure 6 9   News Weather Sports Menu Error Events    By default  all of these error counters are set to Ignore     Now that we want to be more user friendly  we can use the dropdown event handler selections to uniquely  specify how to process each error type  For each specific event counter  you should define the particular event  handler that you want to execute when that maximum error count is reached    All of the event counters have the same set of options     Ignore   When a maximum count is reached  the DTMF Menu component exits on the default exit  path  You would only use this if you didn   t want to do anything special on the max error condition   which isn   t normally good practice    Note  Since the maximum count in our first menu recipe was set to one  we simply took the default exit  path out of the menu component on any error  This wasn t very user friend
15.  Do Reprompt values for each Prompt  Group  Your completed Prompt Groups will should be similar to Figure 7 8     E  Properties 22  2  Problems   EE  console pee ed     amp  Collect  gt  ID   collect_fusjax    Name   SNWSMenu        General Prompt   Grammar   Standard Properties    Events Right click  to Edit    Specify attributes For the prompt group   Comments E  PromptSroup   Default 1  Prompt    would you like the Scope    MaxSpeechTimeout wt  Prompt      Sorry I did not get  ee Nevlateh 1 Present    a  E  PromptSroup   NoMatch_1 ae  J r  El  PromptGroup   NoMatch 2  J P P J Bargeln     Prompt      Sorry that still is n  E  PromptGroup   MaxSpeechTimerc  Prompt      Sorry khak was boc        Promptsroaup   MaxSpeechTimeout_2       Prompt      Sorry that was still    Figure 7 8   Completed Prompt Groups and Messages for Nolnput  NoMatch  and MaxSpeechTimeout    If you have seven prompt groups in your Prompt pane  you have completed the error prompt configurations   The first time the caller speaks an invalid choice  Prompt Group    NoMatch_1 will be played  The second time  the caller speaks an invalid choice  Prompt Group NoMatch_2 will be played  The third time the caller soeaks  an invalid choice  the error counter will have reached its maximum count  At this point processing will go to the  event handler     September 2013 Copyright    2013 Convergys  All rights reserved  90    The Event Handler    We covered the functionality and rationale for the Event Handler in som
16.  ECMA object  CallRecord     The caller s account number should also be stored in that same record  For this example  assume that the  database schema placed the caller   s account number in the CallRecord acctNum section of the CallRecord  object and that it is a text variable  Design this sample call flow to             2 PP N AN eS IM      mk      O    Pass the TTS engine the CallRecord 0  acctNum variable  Play that account number to the caller     Play goodbye and hang up     Add a Play component to the right of the CheckPhoneNo If component    Label it PlayAccountNum    Select the Play component    In the Properties view  gt  General option  gt  Prompt tab  select Prompt     no text    In the Type field  select TTS    In the Expression field  use single quotes and type    Welcome back  Your account number is      Click in the Prompt area  and the text is added to its name    Right click the new prompt  and select Insert a new prompt below     Select Prompt     no text       Inthe Type field  select TTS       In the Expression field  type the ECMA name for the account number  CallRecord 0  acctNum    Multiple prompts in a single prompt group will be played sequentially  The first prompt plays the  message  The second prompt inserts the caller s account number as a text string  The TTS engine  renders both and plays     Welcome back  your account number is 1234        Congratulations  You have just created your first compound prompt  A compound prompt mixes a  fixed promp
17.  MenuResult result   without quotes      Note  This points the Case process to the specific result from the Collect component  The result  variable in the Collect component was named MenuResult  MenuResult is a compound ECMAScript  object  JavaScript   not a simple scalar variable  The specific place in the MenuResult object that  contains the Collect result is named MenuResult result     In the Else Label field  type Error  This creates one exit path  labeled Error  for the Case component  If  the MenuResult variable contains a value other than one of the three text strings     News       Weather    or     Sports     the call flow takes this exit path     In the Result Equals column of the Case Values table  use single quotes and type    news     In the Then Label column  type News  with no quotes      The Case component now has an exit path labeled    News     If the MenuResult variable matches the  string    news     then the call flow takes the News exit path     For the Weather and Sports exit paths   a  To the right of the Case Value row  click the Append Row button twice to add two rows     b  Repeat steps 4 and 5 to complete the columns with the weather and sports text  See Figure 3 7      September 2013 Copyright    2013 Convergys  All rights reserved  39    2  Problems oT       2 Case  gt  ID   case neffak    Name   SNWSSelect     Specify an Expression and Case Value   Comments MenuFesult result al    Result variable    y        O  Specify Case Values    Result Equa
18.  Reporting  D ya Loans OY g   Play     amp  Set Language      Subdialog  GetcustServiceRepExtension    p  Az Transfer    T Voice End      gt  Services    gt  Events    CustomerServiceRep         na    fa oe ry Free ey          Figure 8 6   Adding in Transfer Component    For this sample project  label the component TransferCall  In this case  we are trying to make the labels as  descriptive as possible  See figure 8 7     GetWew AcctintoExtension       TransterCall  fo  default GetLoanExtension  Servicekep    GeEtTLustServiceRepextension    Figure 8 7   Labeling Transfer Component    September 2013 Copyright    2013 Convergys  All rights reserved  105    Completing the Transfer Component    Select the Transfer component  and examine the Properties view  There are several parameters for the  Transfer component that can be manipulated  One helpful parameter is the Transfer Audio parameter  With  this parameter  an audio message can be played during the transfer  However  for this particular recipe  we  are only concerned with the Transfer Type and the Destination Expression  Notice  that for Transfer Type  you  choose a value from the dropdown box  In this case  we will choose Blind  this will designate the transfer as  being a blind transfer discussed earlier in this recipe   For the Destination Expression  we will use the variable  transferExtension that we assigned on the previous Calculate components  See Figure 8 8      e VO    C  Properties   3  e Problems  J Console     
19.  Transfer Component Added to the Event Diagram  Finally  go to the Palette  gt  Voice drawer and add a Voice End component after the Transfer component   Connect the TransferToCSR component to it  See Figure 6 20   Note  IC requires this component to clean up the call and reset the state of the application  The Transfer  component doesn   t take care of this automatically  even though it has effectively transferred the call from the  application  With the completion of the Event diagram  we have successfully modified the  NewsWeatherSportsMenu to support error recovery         Voice  diagram    Event diagram   3    Event diagram a   NoMatchError DidNotUnderstandInput  lt   Palette i  e MenuNoMatch Ca TransferTOCSR derd dae ee  ad sa  fg  NoInputReceived BH dan    Ra Voice    PlaySystemError  amp P Set Language  i     Subdialog   2 Transfer  T Voice End     Services     Events  Figure 6 20   Added Voice End Component to the Event Diagram  Final Notes for Application Completion  After all components are attached  proceed to Package Explorer  gt  applications  gt call  and complete the  Call diagram  See Recipe 1     Hello World  Remember that the call control diagram is required for the  application to operate correctly in a runtime environment  Now  the application is complete and ready to be  packaged to create the war file  See Recipe 1     Hello World  After you complete the package export and  create the war file  you are ready to put your application into runtime  You hav
20.  a new ICS Application Project called BasicTransfer followed by the creation  of an ICS Voice Diagram  For more specific information about creating the project and voice diagram  refer to  Recipe 1     September 2013 Copyright    2013 Convergys  All rights reserved  101    Adding Play  Collect and Case Components to Voice Diagram    For specifics about adding and configuring the Play  Collect  and Case components  see Recipe 3  Speech  NewsWeatherSports   Create the flow in the following order     e Play component labeled PlayGreeting   o TTS  o Expression     Welcome to Your Home Town Bank      e Collect component labeled SpeechMainMenu   o TTS  o Expression     What would you like to do  Please say new account information  loans  or  customer service representative      e Case component  labeled CheckMainMenuSelection  where we check the spoken response from the  caller at the SoeechMainMenu  The Case component will branch based on the caller   s spoken input   o Expression  MenuResult result  o Else Label  default  o Result Equals  3 rows    NewAcctlnfo      Loans      CustomerServiceRep   o Then Label  3 rows   NewAcctinfo  Loans  CustomerServiceRep    Now  our updated Voice diagram will be displayed as the following  see figure 8 1            t Interaction Composer   Basic lransfer applications voice Voice  diagram   Intervoice Development Studio SEE    File Edit Diagram Navigate Search Project Run Window Help  jim EA  PT  3 EA Interaction c          Tahoma vio wIBI A gt
21.  and knowledge to create and run an application    This cookbook hits the highlights of IC without getting bogged down too much in the details of dialog design or  the vast array of rarely used options available with the IC components  One of the main purposes of Interaction  Composer is to allow developers to design user friendly dialogs without having to get into the details of  VoiceXML  CCXML  or SCXML  IC defaults its    dialog error recovery and reprompting strategies to industry   standard methods  which provide reliable recovery processes if the developer doesn t want to deal with these  issues     The IC Users Manual is a reference manual  It provides details about each feature with all the options  available  Typically  you would use it as you design an application and need to look up a specific feature of a  component that you don   t understand or to find a specific function     While you read this cookbook  be sure to have Interaction Composer installed on your computer nearby  As  you read through each recipe  you should follow along on your computer  creating the recipe     September 2013 Copyright    2013 Convergys  All rights reserved  vii    CONVERGYS    Overview of Developing  Packaging  and Deploying  Here is an overview of how IC builds an application and how that application is deployed   The application developer starts by launching Eclipse  which has been preconfigured with the IC plug in     e The Eclipse Integrated Development Environment  IDE  is a 
22.  application project to a library project   However  the NewsWeatherSports project doesn t need any external routines  Click Next to see  this window  then  click Back to return to the main wizard screen  Another recipe will explain how  to create a library project and link to it     4  Click Finish  The NewsWeatherSports project is added to the Package Explorer  see Figure 2 2      E Package Explorer 2 3      i Deployment Artifacts  HE  Helloworld  EREA News weatherSports  E i applications  tL call  E i process  El voice      config  HI debugger  EL resources      scripts  2 WebContent       Figure 2 2   Starting to build the News Weather Sports application    In the Package Explorer  expand NewsWeatherSports and then expand the applications folder  6  Right click the voice subfolder     Hover over New and then click ICS Voice Diagram in the list   See Recipe 1  Figure 1 4  except  that the additional NewsWeatherSports folder will now be in the Package Explorer      September 2013 Copyright    2013 Convergys  All rights reserved  19    Building the Voice Diagram    When you click New  gt  ICS Voice Diagram  the New ICS Voice Diagram wizard opens     1     2  3   4    You could accept the default Voice name  but to help distinguish diagrams  type Voice_NWS diagram   Click Finish  The Voice_NWS diagram flowchart opens in the Canvas  see Figure 2 3     On the right  in the Palette  expand the Voice drawer    Select the DTMF Menu component  and add it to the workspace     Tip  L
23.  condition For the prompt        Figure 2 6   Trailing Prompt Properties    5  Inthe Type field  select TTS     6  Inthe Expression field  use single quotes and enter    Please make your selection now     Figure 2 7        Properties x HE Problerns ey  UO       General   Events Right click  to Edit  EE   Specify Prompt Attributes  Comments Leading   Trailing   Event     ees CY  Debugger    P Prompt   no text          Please make your selection now  a    Specify a condition For the prompt        Figure 2 7   Trailing Prompt Properties    7  Save your application project     In the lower right  a Condition variable defined with each trailing prompt still allows external program control of  which  if any  trailing prompt will be played     This completes the design of the leading and trailing prompts     September 2013 Copyright    2013 Convergys  All rights reserved  24    Adding Menu Prompts  To define the three main menu prompts   1  Inthe DTMF Menu   s Properties view  gt  General option  click the Menu subtab     Be sure that Menu Group     no name is selected     Left click Menu Item     no name    In the Type field  select TTS    In the Expression field  use single quotes and enter    Press one for News      In the Menu Item Name field  enter a unique name  News    In the DTMF Key field  select    1    from the list   See Figure 2 8      O Hd Se p eS w wY     e Problems     l Console        amp  DTMF Menu  gt  ID   dtmfMenu_qaghah    Name   NewsWeatherSportsMenu     Gener
24.  debugger     resources  HE scripts  2 WebContent    File name    Voice Hello orld  diagram        es        Figure 1 5   Creating a Voice Diagram file    Note  The tree view highlights the appropriate default folder location  You can only add a diagram to a  related folder  for example  add call related diagrams to the call folder and voice related diagrams to the  voice folder  If you select another folder type  a validation error displays in the header area of the  creation wizard window     Note  In the File name field  the system creates a unique default name and adds a  diagram extension   You can rename the file  but you must keep the  diagram extension     4  For this sample project  you could accept the default filename  However  you will create several Voice  diagrams  so type Voice_HelloWorld diagram to distinguish them     5  Click Finish  and a Voice diagram flowchart opens in the Canvas view  Figure1 6      September 2013 Copyright    2013 Convergys  All rights reserved        Voice HelloWorld  diagram    M  Package Explorer   5   HE voice HelloWorld diagram 22   E  E  7  lt e Palette   gt      W Hello World  7    s   ag  B  applications ie 3   EE  H E cal onnections    L process    General  EE voice 2 Voice oo       is ASVNECE vent  diagram a Collect     dsyncEvent icxml l       Event diagram d  Custom Collect     Event icxml      gee DTMF Menu     2 _ Goal Reportin  Voice HelloWworld  icxml   5 porting    2 Worksheet ws GE Play       config  EP Set Language   
25.  diagram     Capturing Name List Variables in the Voice Diagram    To capture the Name List variables     1   2   3     At the top  select the Voice_Personalization diagram tab    Click the Voice Begin icon    In the Properties view  gt  General option  click the Append Row button on the right   In the Parameter Name column  type CallerPhoneNo   See Figure 4 3     CallerPhoneNo is the parameter name referenced in the Dialog component as the variable in the  Name List  It names the parameters to be passed from the call diagram to the voice diagram     E  Properties 2 3 ch Problerns ay       Voice Begin  gt  ID   voiceBegin_tadwul     General Specify the parameter names referenced in the Dialog component   comments Row Parameter Mame  Debugger Er CallerFhoneNo  d          Figure 4 3   Naming the Passed Variable    5  Save the application project     September 2013 Copyright    2013 Convergys  All rights reserved  46    Checking the Database    The system now has the caller   s phone number  To determine whether this is a new or repeat caller  the  system can query the database to see if that phone number is present in the database     To create the call flow   1  Inthe Palette  gt  Services drawer  double click the Database Retrieve component   Label it RetrievePhoneNo  See Figure 4 4     3  Inthe Properties view  gt  Data Source and SQL fields  see Figure 4 4 or enter your own database  schema     Important  Since the detailed database component properties such as the database
26.  ee 53  Figure 4 11   Database Update properlieS        iis ee EE EE ee ee EE ee ee EE ee ee ee Ee ee ee RE ee ee ee EE Ee ee ee RE ee ee ee EE ee 54  Figure 4 12   Final Personalization Recipe issie dd ME SE N dk tuned ed oe ee AE WA 55  FOUE 5 Is VV CD SEVIS S Wa ae e E E E sees e 5   Figure 5 2   Web Weather Service Folders              ccccccccssessseeceeeceaeeeeeceeeeseeaeeeeeceeeeeeeseeeeeeeeeeessuaaaeeeeeeeessssaageeeeess 58    September 2013 Copyright    2013 Convergys  All rights reserved  V    CONVERGYS    Figure 5 3   Process Diagram for the Web Weather subroutine               ccccccseeeeeceseeeeeneeeeesueeeeeeaeeeeesaaeeeeeeaeeeesaees 59  Figure 5 4   ICS Project Library Reference Wizard    ee ee EE EE ee ee EE ee ee ee ee EE ee ee ee RE ee ee ee ee ee EE ee 60  Figure 5 5  WebWeather Application ss eo EE DE Ee EE ED ee EG cre ome EE GE ree 61  Figure 5 6   Selecting the Weather Subroutine          ies ee ee EE ee RE Ee ee ee ee RE ee ee ee ee ee EE ee ee ee ee ee Ee EE ee ee 62  Figure 5 7   Java Weather Object Attributes         see ee Ee ee ee EE ee ee ee ee Ee ee ee ee ee ee Ee ee ee ee ee ee EE ee ee ee ee ee ee ee ee 64  Figure 5 8   Playing the Weather Report    ss sees ss ee ee EE Ee ee ee ee EE ee ee EE Re ee ee ee EE ee ee EE ee ee EE Ee ee ee EE Ee ee EE ee ee ee 66  Figure 5 9   Final Web Weather Diagram         ees ee ee ee ee ee ee Ee ee ee ee ee ee ee RE ee ee ee EE ee ee ee ee Ee ee ee EE ee 68  Figure 6 1   Copying Selected Components from NewsWe
27.  ee ee EE ee ee Ee ee ee ee ee ee ee ee ee Re ee ee ee ee ee ee ede EE Ee 106  Figure 8 9   Completed Voice Diagram aeieeiaii ee ee ee EE ee RR EE ee ee a aa ee ee Ee ee ee eek ee RE Ee ee ee ee Ee ee 107    September 2013 Copyright   2013 Convergys  All rights reserved  Vi    CONVERGYS    An Introduction to Interaction Composer Studio    Overview    Interaction Composer Studio  IC or ICS  is Convergys    strategic graphical tool for developing interactive voice  applications  IC uses a graphical flowchart paradigm which turns dialog design into an easier process of  drawing a flowchart  IC   s architecture also provides support for future extensions that enable multimodal  application design     The IC flowchart tool hides many of the complex details involved in building a voice application  allowing an  application developer to focus on the high level dialog flow  Much of the complexity of an automated dialog  deals with user entry timeouts  error recovery  reprompting schedules and other issues  IC defaults these  issues to industry standard rules and values  allowing the developer to concentrate on the main dialog flow and  user experience  The developer can still access these dialog details in IC  but IC keeps the details out of the  way until needed     Typically  the application developer should use IC initially to define the high level dialog flow  without worrying  about the details of error recovery and validation  The goal of the dialog designer is to make the inte
28.  is executed when a maximum count is reached  In subsequent sections we will describe how to set the  maximum counts for each counter  as well as how to configure the specific event handler that is called when  that maximum count is reached     Here are the definitions of each counter     MaxNoMatch  This counter increments each time the caller enters an option that is not a valid menu option  If  the caller enters 7 in the NWS recipe for example  that will increment the MaxNoMatch error count     MaxNolnput  This counter increments each time the caller fails to enter a selection before the entry timer times  out  If a caller doesn   t respond to the menu prompt with any input  that event will increment the MaxNolnput  counter     MaxErrors  This counter counts the sum of MaxNoMatch and MaxNolnput errors  Either type of error will  cause this counter to increment     Error  This counter counts errors that are neither a MaxNoMatch nor MaxNolnput  error  These are typically  system or programming errors  For example  a TTS error  or a missing audio prompt file  will count as this type  of error  These kinds of errors are usually catastrophic  since it means that the system can t play a specific  prompt  You won t get to set a maximum error count for this condition  The max count for this condition is  forced to one  and you cant change it  You will be able to select an event handler for this condition  however     September 2013 Copyright    2013 Convergys  All rights reserved 
29.  name and SQL  query are dependent on which database you use and how the database schema is structured  this  screenshot has sample text that you can modify later when you set up the actual database and know  the correct values     e Sample Data Source  modify for your own database      java  comp env persdb     e Sample SQL  modify for your own      select   from persdb where ANI         4  Inthe Properties view  gt  Result Variable field  type a variable name that will carry the result of the  database query  for example  CallerRecord  It will pass the results of the query to other components     5  In the Row Count Variable field  type RowCount  That puts the number of rows returned from the  database query in the RowCount variable  This variable can check whether the query was successful     6  Inthe Error Variable field  type DBError  That places any error returns in the DBError variable  This  variable checks whether any errors occurred on the query     7  To the right of the SQL Parameter area  click the Append Row button     8  Since the variable name for the SQL Parameter already exists for this sample project  click the ellipsis  button  three dot button  on the right of the Expression field  In the Expression Editor  expand the  Document variable folder  double click CallerPhoneNo  and then click OK     i         Co  Properties 7   2  Problems ial       Database Retrieve b ID     databaseRetrieve_cabtiv    Name   RetrievePhoneNo     Specify database retrieve attrib
30.  place  Otherwise  we would have to define this  process for each menu  which could clutter up a voice diagram significantly  Better yet  it would be great if IC  would provide one central place to put handlers for all kinds of commonly occurring events  not just errors  That  would keep our diagrams tidy  and make maintenance much easier     IC has a solution for these issues  and it is called the event handler  Errors aren t the only reason to calla  common handler routine  which is why we call it an event handler rather than an error handler  In our DTMF  Menu recipe  all of the events we want to catch are essentially multiple error retry conditions  However  that is  only a few of the common events that might occur in an application  and we would like to centralize all of these  types of events in a common place  That place is the Event Handler     Configuring the DTMF Menu Max Error Counters    Click on the DTMF Menu component   s Properties view  gt  Events option  on the left   You should see four error  counters   Error  MaxNoMatch  MaxNolnput  and MaxErrors  Remember that these four specific parameters  are counters  not direct routine calls  They won t do anything but count the occurrences of a specific error type   until a maximum count is reached  However  when that count is reached  they will trigger a call to the event  handler that we select     This section of our recipe will define how these counters work  and how to define the appropriate event handler  that
31.  that will be played when  a caller makes an entry error  The messages we define will be played whenever the caller makes a NoMatch  or Nolnput error  The DTMF Menu component allows us to play different error messages to the caller for each  error type  Also  different messages can be played on subsequent occurrence of the same error  by the same  caller  In all cases  a unique error message can be played on each error occurrence with a caller  until the  maximum error count is reached     As you will see  the DIMF Menu component has a lot of flexibility as to how you can build an error recovery  dialog  We need to keep that in mind as we design the error help messages  It is a good idea to think through  just what you want to say  and when you want to say it  before starting to configure the DTMF Menu component  properties     Best practices recommend that we limit caller error retries to three  in most menu situations  If the caller makes  a mistake  we want to make that first help message brief  If the caller makes the same error a second time  that  help message can be a bit more detailed  If the caller makes a third mistake  the third and final error message  should explain basically that we are giving up  and at this point the caller will exit the DTMF menu component   typically to be handed off to a live agent     Later in this recipe  we will show you how to set the maximum number of entry errors to 3  which is what best  practices recommend  For now  we will build al
32.  the details of what happens if we encounter a maximum error condition     September 2013 Copyright    2013 Convergys  All rights reserved  93    Completing the Event Diagram    From our previous error recovery recipe  you should remember that the Event diagram is located under the  applications  gt  voice folder  This Event diagram will be configured in about the same way as in the last recipe   except that we will use two new entry points or event handlers  which are different than the DTMF Menu error    event handlers we used previously   One would think that we wouldn   t treat speech menu errors any differently than touchtone entry errors  Max  errors in DIMF and speech menus have very similar meanings  However  there are some subtle differences     such as the details of what is said in the error prompts      didn   t HEAR any input  vs   didn   t RECEIVE any input   etc  We won t necessarily take advantage of these subtleties in this recipe  but the extra entry points make sure    that we could     Launch the default Event diagram by double clicking on the file in the voice folder  This process follows the  same steps as in the previous chapter so we won t go into as much detail here   See Figure 7 11      J   Event diagram   3 EZ Voice  diagram  f N     N  7 a  B          u  Error Action    D   DI    E  Properties 22 E console  Event Process    General Define event handler names and event actions        Event Action    Comments Row Event Name  EP Error ErrorAction    
33.  the escalating prompt  sequence it is to be played  In the Scope attribute  select Nolnput  That way  this new prompt will play on the  first occurrence of a Nolnput error  For the Prompt Count  accept the default 1  See Figure 7 4     E  Properties 23 EN Froblems El Console ae oF     amp  Collect  gt  ID   collect_fusjax    Name   SNWSMenu       gt     General Prompt   Grammar   Standard   Properties  Right click to Edit   EES id Specify attributes For the prompt group    El  Promptisroup   DeFaulk_1    Comments  Prompt    Would you like the ne scope   Nolnput ooo O  Default    El  Promptsroup   Molnput 1       Prompt Count  re l A    Prompt   no text     a R ere     NoMate       RE ociiee Max SpeechTimeout a         Figure 7 4   Selecting Scope for Prompt Group    After we have changed the scope and prompt count of a prompt group  the name of the prompt group will  change  As in the DTMF Menu  the Prompt Group name is defined by a combination of the scope followed by  September 2013 Copyright    2013 Convergys  All rights reserved  88    the prompt count  The Scope is set to Nolnput and the Prompt Count is defined to be 1 so the name of that  prompt group is Nolnput 1   See Figure 7 5   Set the Do Reprompt field to true from the dropdown box  This  means that we will play the Default_1 prompt again for the caller if the first Nolnput error occurs  This is helpful  because it reminds the caller what their choices are     E  Properties 23 Problems     l Console  ego    a Col
34.  y  amp   STD Bir OB   ke   FE   wh NM Ex    100   He Package Explorer 2    0 voice diagram   3  A    B v  lt e Palette b    n BasicTransfer N    Qp        applications      GS call L gt  Connections     je process OD  Conditional    oe     Connection       gt  voice      AsyncEvent diagran G   Default   gt   AsyncEvent icxml    General    i  s5  Event diagram gf Break  Mad Gee p_i es Calculate  gg  Voice diagram       G  ras Pa  KO  sa  HL config   10 Sa  2 Voice  H  resources g Collect       amp  aes    Custom Collect   S WebContent al E  GettingStarted  html    Services  Q Alarm  EN Database Call  EF Makai Yara Edit     Events  4   Event Entry  Event Return   i  gt     Figure 8 1   Updated Voice Diagram  Now that we have added the base components to our Voice diagram  we are ready to explore the new    components and ideas that this recipe introduces  Our next step is to add Calculate components to the Voice  diagram     September 2013 Copyright    2013 Convergys  All rights reserved  102    Adding Calculate component to Voice Diagram    A Calculate component is used to calculate expressions and assign values to variables  From the Palette   s  General drawer  add three Calculate components to our Voice diagram  placing the Calculate components to  the right of the Case component  We want each of the three Calculate components to assign a different value   phone number  to the same variable name  depending on which branch is taken from the Case component     Label the thre
35. 15  PACKAGING YOUR APPLICATION as ee Ee ee ee Ee ee Ge ee oe EG Re SE GE E GE ee 16  Recipe 2  DTMF  Touch Tone  Menus    skeie ore e N Kees eN ei ed NE Ode W Es ae ee NN Ke be ee de N Ke Ee 18  CREAT THE PROIBE Tas oe ER ee ee Re EE ee GE OE ee Ge Ee ED ES 18  BUN DING THE VOICE DIAGRAM EE RES EO OR GE oie ca GE RE a acu EE ne GE GO EER EE Ge ER EE GE SE EG EG 20  DEFINING THE DT ME MENU PROMPTS wvcssssscscssdenieveacsvencsscecsrpanuewondescancsepaieevsnscavewsepebsowenudsdassuseduswsencsvanaesbbssusscbedseeteies 21  OVERVIEW OF DTMF MENU PROPER TIES sessie sein ees SEE see es ee EG ee be EN Ge Ee ie SG ee Ge Ge ee Ge ie ee ele ee Ge ne oe 21  ADDING PRE AND POST MENU PROMPTS  iese Sue GESE SS Oe Ge Ee Se se SR Ee bee be ee Ge Ge Ee See gee Se ed Ges ee ee ee Ge i Se ee ee Ge 22  ADDING MENU PROMPTS ee Ee SERE Se EE GE ee ee GE Ge Ge EG EE sew GE PG EG EG GEE DE EE N EE 25  CONNECTING DTMF MENU EXIT PATHSS es ese ges Ge GES GE ee Ee ee Se Re EG GE EE Se Ee Ee Gee Ge ee EG SE ee Ee EG GE Gee 26  CONFIGURING THE NEWS WEATHERSPORTS PLAY COMPONENTS         ees ees see sees see see sees ee ee se ee ee ee ee ee ee ee ee ee ee ee 21  PIA INGO DY do A E A EK EE 28  BE ie dd ROG E OE A E E EE 28  HANDEN MENU ERRERS 2 ooi E A EE E EE EEA EEEE 29  BID INE LS OP 66 ke  SR E EE T E 30  Recipe 3  Speech Enabling a Touch Tone Application    ee EER Re EER RR ee EER RR REG E E ER R R R Ee GE ER 31  NEW PROIECT SETUP EE RE N KOEN 31  ADDING COMPONEN TS assets iesso sense ie ee ae ee ee ee ek 
36. 54 8130 Tel   1 972 454 8130       Eastern hemisphere    During normal office hours  contact one of the following regional support offices     Fax  0161 495 1007 Fax   44 161 495 1007  Fax  0611 184 4444 Fax   49 611 184 4444    Fax  6395 4277 Fax   65 6395 4277  United Arab Tel  04 429 0602 Tel   971 4 429 0602  Emirates Fax  04 429 0601 Fax   971 4 429 0601       After hours support calls    If your contract includes after hours support  contact           National dialing International dialing  JUK    _   Tel  0208 750 6387 Tel   44 208 750 6387    Note  After hours calls are directed to a Support desk  where you can record your problem details  You will be  contacted as soon as possible     September 2013 Copyright    2013 Convergys  All rights reserved  108       
37. Ee ee ee Ge ee de 70  DEFINING ERROR EVENT MESSAGES esse Seer ee see Ee ee ees ae Ge Ge se Ee ee Ge es ne se ese EG ea ee ae ee es Ge 12  OP Te ey NEPAD ARE OE EE OE ER KO N OE EE ES NE EE RE N 17  CONFIGURING THE DTMF MENU MAX ERROR COUNTERS         esse see see see sees ees ees see ee see ee ees ee ee ee ee ee ee ee ee ee ee T1  SPECIFYING THE EVENT HANDLERS FOR EACH ERROR CONDITION           ccccscccsccssccsscceccesceuccesscuscenccesseuscesccesseuscesees 79  SETTING THE MAXIMUM ERROR RETRY LIMIT         ee ees esse sees see se ee see ee ee ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 80  COMPLETING THE EVENT DIAGRAM ae sesse See RE Se ee Ee Geo eie Dee ee E ed Go E Re Ge ee ee e be ii ge 80  DEFINING THE NEW EVENT ENTRY COMPONENTS          ccccsccssccssccnscesccscenccenccsceuccesscesseuccesscessescsesccessecsesscussecsenseuss 82  FINAL NOTES FOR APPLICATION COMPLETION           ccccscccssccsccssccucccsccusceucccsccsceuccesseesseuccesccesseussesscussessenscusseuccenseuss 85   Recipe 7  Best Practices Error Recovery for Speech NewsWeatherSporlts          ccccsssssessesseessesnees 86  WHAT THE ERROR RECOVERY FOR SPEECHNEWS WEATHERSPORTS APPLICATION DOES             scceecesscsscescscescessens 86  WHAT DOES ERROR RECOVERY ACTUALLY MEAN         cccccccceccseccceccssccncccuccusceuscesccuscescesscescesscesseussesscusceuscenscusceuscs 86  DEVELOPING THE CALL FLOW vsssccccsassccdensnscasaranncsgaennancoatdaead Ge Ge ee Gee Ee Ee Ee ee Ge Ee Ee SE BOE ee OE EE Ge GE Ge S
38. Ee ee ee ee ee EE ee ee ee 96  Figure 7 16   The Updated Event Diagram         ees sesse ee ee ee ee EE Ee RE ee ee Ee ee ee ee Ee ee ee RE ee ee ee Ee ee ee ee RE ee ee ee EE ee 97  Figure 7 17   Transfer Component Added to the Event DiagraM         sees ese eek EE ee ee EE Ee ee ee Ee ee ee RR ee ee ee ee 97  Figure 7 18   Final Event Diagram        ees sees ss ee ee ee ee ee ee ee ee Ee ee Ee ee ee ee ede EE ee Ee Re ee EE ee ee EE ee ee Ee ee ee EE ee ee EE ee ee EE ee ee ee 98  Figure 8 1   Updated Voice DiaQram              cccccccssssceccccceeeecccceeeecececauuseceeseusuececsauueeeeessauseeeessausseeeeessuseeeessaaaeeess 102  Figure 8 2   Adding the Calculate Components              ccceeeecccceeceeeeseeeeeeeeeeeaeeeseeeeeeeeeseeeeeeeeeeeessueeeeeeeeessssaeaaaeses 103  Figure 8 3   Completing GetNewAcctInfoExtension Calculate Component                ccseeeeeeeeeeeeeeeeeeeeeeeeeeseaeaeees 103  Figure 8 4   Completing GetLoanExtension Calculate Component               cseeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeseeeeeeeeeeesaaanes 104  Figure 8 5   Updated Voice Diagram with Calculate ComponentS          iss ees ee EE Ee ee ee EE ee ee ee Ee ee ee ee RE ee 104  Figure 8 6   Adding in Transfer Component          sees ee EE ee ee Ee ee ee ee ee ee ee ee ee Ee ee ee ee Ee ee ee ee ee ee ee ee ee 105  Figure 8 7   Labeling Transfer Component          ee ee EE ee ee ee Ee ee ee ee ee ee ee Ee ee ee ee Re ee ee ee Ee ee ee ee ee ee 105  Figure 8 8   Completed Transfer Component         
39. Endpoint  diagram      setTimeout  diagram    ET getCityForecastBy  IP diagram          E    EE getCityweatherBy ZIP  diagram  o bee  getWweatherInformation  diagram  H E voice    Cancel    Figure 5 6   Selecting the Weather Subroutine    This list of subroutines is essentially the same list as the diagrams in the Package Explorer  earlier     September 2013 Copyright    2013 Convergys  All rights reserved  62    For this sample application project that reports the current weather  select the  getCityWeatherByZip diagram subroutine and click OK     IC does the following   e Populates the ZIP Description field    e Populates the Parameter Name column with the parameter ZIP  IC will try to populate the  passed subroutine parameters whenever it discovers them     In the Subroutine Call   s Result Variable field  tyoe CurrentWeather  This variable holds the weather  data that comes from the web service     In the Value column of the row for Zip  enter the value Zipcode result    Save the project       To the right of the Result Variable field  click the selector icon       Confirm that you have defined your subroutine input and output variables     a  Expand the Document Variables folder  You should see two document variables    CurrentWeather and Zipcode   If CurrentWeather is not there  go back and save the project      b  On the Variable Selector window  click Cancel       Connect the GetZipcode component to the GetWeather component  This is a default connection     When the w
40. Error Prompts    For now  we can see that if the caller keys in an invalid option  Prompt Group     NoMatch_1 will be  played  The second time the caller inputs an invalid option  Prompt Group   NoMatch_2 will be played  The  third time  the caller    keys in    an invalid option  we should reach the Maximum Error count and exit the DTMF  Menu component  We dont need to define a third error prompt in the Menu component  as we will play that  prompt in an external event handler  which we will describe in the next section     September 2013 Copyright    2013 Convergys  All rights reserved  76    The Event Handler    Now that we have defined the initial error processes and messages for our menu  we need to define what  happens when the caller can t get their menu selection right  even after three tries  We might want to transfer  the caller to a live agent  or perhaps verify that this customer has enough value to merit a live agent  Perhaps  we could send the caller to a separate speech input menu and prompt the caller to speak their choice  instead  of using the phone keypad for the selection     No matter what we do to recover from multiple menu errors  it is likely that we will want to define a similar  process for most of the menus in our application  In this recipe we only have one DIMF Menu  but in a large  application there can be dozens of menus  It would be nice if we could define a standard maximum error   handling process for all of the menus in an application  in one
41. Event Names properties by default  Error   Menu Error  Menu Timeout  Collection Error  Collection Timeout  and Host  These names comprise the six  standard entry points for the Event diagram  The default actions for all of the Event Names are defined as  ErrorAction by default  For this recipe  we will only be concerned with three Event Names  Error  Menu Error   and Menu Timeout  Remember that these are the names of the events that we defined in the  NewsWeatherSportsMenu        Voice diagram    Event diagram 2 3   lt e Palette  b  amp  c hr    2 Connections 4    CE  Conditional       Connection    Ex       E  P        ErrorArtan       General HE  gf  Break  E Callate   gt  Voice a  g Collect  Es EE      Lo  Services 9  g Alarm  id Mi  gt  Py es Soe i    29  n E    E  Properties 2   fi Problems   GJ Console        Event Process  gt  ID   eventProcess_zutmay     Define event handler names and event actions        General   Comments Row Event Name Event Action  a   e     Error ErrorAction    Er Menu Error ErrorAction  a     Menu Timeout ErrorAction  Em Collection Error ErrorAction x    Collection Timeout ErrorAction  EF Hast ErrorAction       Figure 6 12   Default Event Process in the Event Diagram    Note  For more complex applications you don t have to stick to the six standard entry points  These standard  Event Names are not the only event handlers we can define  The Event Process component allows you to add  more custom event names and EventActions if you like     Begin b
42. General    Events      Specify Prompt Attributes    Comments E PromptGraup   DeFault 1  Prompt    Welcome to the Type    TTS    Debugger    Prompt   Please enter the Expression       Please enter the zip code of the area For which you want the curr    aa    Fallback Text        Figure 5 5   WebWeather Application    September 2013 Copyright    2013 Convergys  All rights reserved  61    Calling the Weather Subroutine  To call the library subroutine to get the current weather report   1  Inthe Palette  open the General drawer     2  Adda Subroutine Call component to the right of the GetZipcode component on the diagram  and  label it GetWeather     Select the GetWeather Subroutine Call component     In the Properties view  gt  General option  click the entry selector icon to the right of the Subroutine    Name field  white square with a green arrow pointing to the upper right   The Subroutine Entry  Selector window opens     5  Expand the WebWeatherServices  gt  subroutines  gt  process folders  See Figure 5 6                Getzipcode Getweather IR    Fe    E Properties x St Problems   EJ console aal Tm    Subroutine Call  gt  ID     subroutineCall_vazpev    Name   GetWeather           General Select a Subroutine Diagram  Comments      Subroutine Nam subroutine Entry Selector    Debugger      Subroutine Diagrams    Result Variable        Select a Subroutine Diagram el    H E webweakher  Specify Parameter El webWeatherSvc  ean B E subroutines  H E call  H   2 process        _set
43. General option  gt  Prompts tab  gt  Event subtab   Then right click in the Event area  and click Add a new event prompt group   See Figure 6 3         Properties 23     Problems   El console ee    O    A DTMF Menu  gt  ID     dtmfMenu vopwah    Name   NewseatherSportsMenu              Ft  General Menu   Prompts   Standard   Properties    Events Right click to Edit  Comments Leading    Trailing   Event  Add a new event prompt group            l sm         Figure 6 3   Adding an Event Prompt Group  The Prompt Group name will automatically be generated for you     When a Prompt Group is initially created in the event window  you won t see that groups    attributes to the  right of the prompts box  You must click on a Prompt Group name in the box to highlight it  and then the  attributes for that group display  Click on our first Prompt Group name  Prompt Group     Nolnput_1 and  that group s attributes display  Note that the Prompt Group is automatically named Nolnput 1  The name is  defined by a combination of the Scope  error type  attribute  followed by the Prompt count  Changing the Scope  and Prompt Count attributes in the fields on the right will change the Prompt Group name in the Event box     September 2013 Copyright    2013 Convergys  All rights reserved  73    You should set the attributes for the first Prompt Group as shown in figure 6 4     C  Properties 23     Problems   EE  Console s     HR    6 DTMF Menu  gt  ID     dtmfMenu vopvah    Name   NewsWeatherSportsMen
44. Intelligent Voice Portal    version 6 7    Interaction Composer Cookbook    60001693  September 2013    CONVERGYS    Trademarks  Copyright    2013 Convergys  All rights reserved   Convergys refers to Convergys Corporation or any of its wholly owned subsidiaries     Outthinking  Outdoing  is a registered service mark of Convergys  Convergys  the Convergys logo  Edify  Voice Interaction Platform  Edify  Electronic Workforce  EVIP  Intervoice  InVision  Media Exchange and  RealCare are trademarks and or registered trademarks of Convergys in the United States and or other  countries  including but not limited to in Chile  China  Costa Rica  Guatemala  and Honduras  where  Convergys is a registered trademark  Parts of the described systems may be covered by one or more  issued or pending U S  or other patents     All other trademarks not owned by Convergys that appear in this document are the property of their  respective owners  who may or may not be affiliated with  connected to  or soonsored by Convergys or its  subsidiaries     If Customer is a U S  Government user  the System  Software  Functional Specifications and or  Documentation are provided with RESTRICTED RIGHTS  Use  duplication and disclosure by the U S   Government are subject to restrictions as set forth in Federal Acquisition Regulation  FAR  clause 52 227   19  c  2  or successor regulation thereto  Manufacturer is Convergys Corporation or its subsidiaries  201  East Fourth Street  Cincinnati  Ohio 45202     The 
45. Menu Error ErrorAction    Menu Timeout ErrorAction    Collection Error ErrorAction  EP Collection Timeout ErrorAction    Host ErrorAction    Figure 7 11   Default Event Process in the Event Diagram    From the Events drawer  add two new Event Entry components into the Event diagram  These will be to  handle the new Collection Error and Collection Timeout error conditions  When we configured the Collect    component s error counters  we lumped all of the errors that indicate some kind of user action into one category      the Collection Error  We also set the Collect component such that if we never get any input from the user  we  will call the Collection Timeout error  Figure 7 12 shows this step     September 2013 Copyright    2013 Convergys  All rights reserved  94       Event diagram   3    Yoice diagram            Error Action    D DI    Figure 7 12   Adding Event Entry Components to Event Diagram       Configuring the New Event Entry Components    Now that we have added in the two new Event Entry components  we can integrate them into the  Event diagram  Select the Event Process component in our diagram  In the Properties view  go to the  Event Name s Collection Error and Collection Timeout entries and configure the Event Action properties   Set the Collection Error event action to CollectionNoMatch and the Collection Timeout event action to  CollectionTimeout  See Figure 7 13     E Properties 23  Al Problems   EJ console w      Event Process  gt  ID   eventProcess_cozpe
46. Notice the red and green arrows on the voice diagram  This shows the direction of  the components  In this case  NewsWeatherSportsMenu is highlighted  Direction into this component is via  Voice Begin  Direction out of the component is via Play components     News  Weather  Sports  or Goodbye         A s mm A i     Z  Voice diagram    Voice diagram 25       gt     News           File  gt     of Cut    Weathe 9   Delete   Copy      ind  Format  gt    he    F Show Properties View    Goodbye    er     Figure 6 1   Copying Selected Components from NewsWeatherSports Voice diagram      i A      Fz  VYoice diagram        n3  wWalather  NewsWeathersSsporteMenu      7 Sports Goodbye  gt  x    Pi    DefaultError       Figure 6 2   Components Pasted into ERNewsWeatherSports Voice Diagram    This new Voice diagram already has all of the main menu prompts and properties defined  since they were all  copied from our original DTMF Menu diagram  All we have left to do is add the error recovery dialog flow  and  we will be done  Most of this work will be just setting the properties in the NewsWeatherSports Menu  component  Notice again the green arrows on NewsWeatherSportsMenu  Notice also that there is no red  arrow  The red arrow will appear after VoiceBegin and NewsWeatherSportsMenu are connected    September 2013 Copyright    2013 Convergys  All rights reserved  71    Defining Error Event Messages    The first step in designing an error recovery dialog is to define the individual messages
47. OE ke N ee Ge ee EE AE oe ed OE oe EG oe ee 32  ENTERING THE COLLECT COMPONENT PROPERTIES           ees ese ee sees sees see ee ee ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 33  ERROR HANDLING IN THE COLLECT COMPONENT          ee ees ees see sees see se ee see se ee se ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee 33  COLLECT COMPONENT AND GRAMMAR BUILDER         ee ee sees see sees see ees se ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 35  COLLECT COMPONENT  REFERENCING A GRAMMAR         ee ees ees sees see see se ee see ees se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 38  COLLECT COMPONENT  GRAMMAR PROPERTIES        cccccsccssccsccsccusceuccesccucseuccesceusceuccusceusceuccesceucsesceussecsesseusseuscenceues 38  CONFIGURING THE CASE COMPONENT        ccccscccscccssccucccsccsceuccesccscesccessecseuccescesceuccescecsenscessessesccusseecsenseuseescenceues 39  COPYING A PARTIAL VOICE DIAGRAM    ees ees see sees se ee se ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 40  CONNECTING THE COPIED COMPONENTS esels esse ele ee ee Ge eie Si ere Ge ee ee Se panied no ee ee EE ie ee ie bee 41  EPROR HANDLING IN COLLEC T orenen E Ee 41    September 2013 Copyright    2013 Convergys  All rights reserved  ii    CONVERGYS    Recipe 4  Personalization and Databases        iss RR ee EER RR REGEER RR RR REGEER RR KERE EER RR Rae EER RR N Rae EER RR Rae EER RR 43  OVERVIEW OF THE PERSONALIZATION RECIPE           ees ese sees 
48. S TYPES OF TRANSFER           ccccceccssccssccnccsccusceuccusccusceccenccescesceuccesceuscensseeseuscenccesceussensees 100  WHAT IS THE PURPOSE OF THE CALCULATE COMPONENT          ccccccccsccceccsccucccuscenscesccescesccesceuscenssesceuscenccesceuscensees 101  DEVELOPING CALL BEOOG ES Ee ee De N GE 101  ADDING PLAY  COLLECT AND CASE COMPONENTS TO VOICE DIAGRAM          cccccsscceccsccssceeccescescesccescenccesseuscensees 102  ADDING CALCULATE COMPONENT TO VOICE DIAGRAM    ees ee ees see see sees see ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee 103  DEFINING THE CALCULATE COMPONENTS    PROPERTIES         cccccscccssccsccscccccnccesceuccenccusceueseuscuscensseeseussenceesceuscencees 103  ADDING A TRANSFER COMPONENT TO THE VOICE DIAGRAM    ees see sees see ees sees see ee se ee see ee ee ee ee ee ee ee ee ee 105  COMPLETING THE TRANSFER COMPONENT          ee ees esse see see see ees se ee ee ee ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 106  MAKING THE FINAL CONNECTIONS TO THE COMPONENTS           ee ees ees see sees see ees se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 106  FINAL NOTES FOR APPLICATION COMPLETION         ees ees see sees see see sees see ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 107    September 2013 Copyright   2013 Convergys  All rights reserved  iv    CONVERGYS    Table of Figures    Figure 1 1  Creating a new application project    ee RE EE EE ee EE Ee ee ee Ee ee ee ee EE ee ee ee Ee ee ee EE EE ee ee ee EE ee ee 1  Figu
49. Web Services Recipe Does    This recipe builds an application that will report the current weather at a user   s location  When the system  answers the call     e The application will prompt the user for a zip code to determine their location   e The application then calls a web service to provide a current weather report for that zip code     e The weather report text is extracted from the web service weather object and played to the user  through text to speech     The Web Services Wizard    This recipe explains how to use the ICS web services wizard to develop a set of library routines to access a  web based current weather report and forecast for any U S  zip code  You must enter the URL of the web  service WSDL document  and the wizard completes the request     A web service uses standard web protocols to provide dynamic information over the web  A web service  defines the information that it can provide using a web document written in a dialect of XML called WSDL  Web  Services Definition Language   Typically  the WSDL document is available on the web  so it can be  downloaded by any process wanting to access that web service  The WSDL document describes the details of  the service interface and is designed to allow an automated process to discover the access methods for the  service and create the processes required to access those services     This is also what the Interaction Composer web services wizard does  If you point the web services wizard to a  WSDL doc on th
50. ace outside  the text box     To label an existing pipe that doesn t have a label    a  Select the connection by clicking on it  and start typing  A label will appear    b  Continue typing    To edit an existing connection label    a  Select the connection  and press F2    b  Start typing to delete the old label  or click inside the blue highlighted box to insert a change     September 2013 Copyright    2013 Convergys  All rights reserved     Automatically Arranging the Diagram  When adding icons  the alignment may not be exact  To automatically align or rearrange the icons   1  On the toolbar  click the Arrange All button  Figure 1 10         Figure 1 10   Arrange Button    The icons align   See Figure 1 11         mm  g Bila  4      gt      Ee SE Ga    E od    Voice  diagram x f  T Y Hellawyarld    Figure 1 11   Auto Arrangement    September 2013 Copyright   2013 Convergys  All rights reserved  10    Prompt Types    Finally  create a prompt on the Play icon   1  Left click the Play icon and its Properties view appears below the diagram window  see Figure 1 12      Tip  You may need to raise the view divider above the Properties view        4 i    a     Voice diagram 25    Hellav orld       gf Play  gt  ID   play_cuzzoq    Name   HelloWorld      Prompt  Standerd    Events Right click to Edit  GEE E Prompt Group Specify Prompt Attributes  Debugger       P EES Type   Message Dil n O  Fallback Text    o O     O               Specify a condition or mark a Bargeln occurrence For 
51. al  Cenu Y prompts Standard   Properties          Events Right click to Edit Specify Prompt Attributes       Menu G  N Weather Sport  Comments enu Group   News Weather Sports Type   TTS     Debugger Menu Item   Mews        Menu Item   weather  Press one For News         Menu Item   Sports Set the System Message sequence to play  before  or  after  the prompt or to  never  play     Play System Message  v             Fallback Text     Specify attributes for the menu item      News    GEED J    Condition    true                Figure 2 8   Creating Menu selections    9  Right click Menu Group and from the options  select Add a new menu item   10  Left click Menu Item     no name and configure the following   e Type   TTS  e Expression field   use single quotes and enter    Press two for Weather      e Menu Item Name    Weather  e DTMF Key field      2     11  Right click Menu Group and from the options  select Add a new menu item   12  Left click Menu Item     no name and configure the following   e Type   TTS  e Expression field   use single quotes and enter    Press three for Sports      e Menu Item Name    Sports    e DTMF Key field    S     September 2013 Copyright    2013 Convergys  All rights reserved     In the Menu Group Name field  type News Weather Sports   You can copy and paste this name      mavoo    ba    ba    29    Connecting DTMF Menu Exit Paths    To connect the component icons to represent the dialog flow     1   2     Click the connection pipe between the Voi
52. all  after three presentations of the menu prompt  The caller s phone microphone may be on mute   or some other issue  This condition is often treated differently than the other caller input max error conditions     On the SNWS Collect Menu component  go to Properties view  gt  General option  gt  Standard tab  On this tab  you will see where you can set the four maximum count limits for the four counters  Max Errors  Max No Input  Max No Match  and Max Speech Timeout  Remember that the fifth counter  called the Error counter  counts  system errors  and it   s max count is not configurable  as it is always set to one  therefore  Error is not in this list   Figure 7 10 shows the Standard tab settings after we have completed setting all of the fields       Properties  3  2  Problems sd      O    g Collect  gt  ID     collect  gabzec    Name   SNWSMenu        General   Prompt   Grammar   Standard   Properties    Events Specify standard collect attributes   Comments Field Name     Debugger Slot Mame       sary   Result Variable    ManuPesul  Input Made     soice   Max Errors   Max Mo Input   Max Mo Match     Max Speech Timeout     ea  foo  oa    oo   lt   lt   ee t t HI MI t    Fallback    true    Figure 7 10   Defining the Maximum Number of Errors    Setting the counter maximums and event handler associations for each counter completes the work we need to  do in the Collect component for this recipe  The remaining work will be done in the Event diagram  which will let  us define
53. all control diagram  you must configure the Dialog component to indicate  which voice diagram to execute after answering the incoming call  For the other components  leave the default  configurations     1  Left click the Dialog component  The Dialog Properties view displays  See Figure 1 16     iit Interaction Composer   HelloWorld applications call Call_HelloWorld  diagram   Interaction Compos    Sele    File Edit Diagram Wavigate Search Project Run Window Help    Tek Bie  O Q  i wx    EEL E   Fi interaction c        mm SI B At BEAST   as    t  Package Exp 2  am es Voice HelloWorld  diagram     Call_HelloWorld  diagram              RS HelloWorld   gt  fg applications      HS cal  EE process  HLS voice   L config  lL debugger  El resources    ELE scripts Dialog  gt  ID   dialog_yirseq    gt  WebContent    E  Properties 3  2  Problems    General Specify dialog start attributes     Events Type    application  yoicexml xml  Comments    Debugger  Mame List     Result Variable     E       9 Invalid Field  Please enter a value For Source              Figure 1 16   Call Control Diagram  2  Inthe Properties view  be sure the General option is selected   In the Type field  accept the default   4  Inthe Src field  for Source   click the down arrow     A list of available voice diagrams is displayed  For this sample project  you have created the  Voice _HelloWorld project  so that diagram name should be displayed in the list     5  Select that Voice_HelloWorld diagram option   6  From 
54. and the enterprise must design prompts that guide a caller to speak from a list of  words and phrases that the speech recognition engine has been programmed to recognize for each specific  prompt  This is known as directed dialog     Typically  designers and developers try to constrain a caller s reply to a prompt by explicitly stating the available  choices  For example  a prompt that plays     Would you like your account balance or a transfer of money     produces a more predictable response from the caller than    How may   help you        They must also carefully design and develop grammars that can cover a range of possible caller responses to  a prompt  A well designed script generates greater speech input accuracy     The list of expected words and phrases is called the grammar  When callers frequently use words or phrases  that aren t in this grammar  designers and developers can add them to the system     The grammar is a text file coded in an XML format called GRXML  Grammar files  usually with a  grxml  filename extension  can be stored in the following     e Locally in the IC application or library project     e Remotely at an alternate location on the same server or on a separate server  To access these  grammars  a fully qualified HT TP based URL that is visible to the VoiceXML Browser is required     e Inthe speech engine  internal grammars    e VoiceXML Browsers also allow grammars to be coded inline in VoiceXML     Note  VoiceXML Browsers and speech engines t
55. are registered trademarks of Oracle and or its affiliates  Other names may be  trademarks of their respective owners     September 2013 Copyright    2013 Convergys  All rights reserved     CONVERGYS    Table of Contents    ONER VM ARE OE N OO ato nen DA OE EN OE EE eels as dap ace EE RE N HEN VII  WHY SHOULD I READ THIS COOKBOOK         ee ees ees see sees see ees se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee VII  OVERVIEW OF DEVELOPING  PACKAGING  AND DEPLOYING         ee ees ees sees see ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee VIII  Recipe 1  Creating Your First IC Application    Hello World    ees ee RR RR EE RR RR RE R RR RR EER RR KEER RR RR EER ER RE 1  CREATING AN APPLICATION PROJECT osse SOEN ee eb ee Bi tees se Go DiE oe ie Ee De Se ie SEA BOS Gee Se oe De Ee ee ke ee DOE Ge ie 1  COREA ING LINE VYOLE DIAGRAM cesses sie SO Ne ES GE Re Ge BOE Ge ERG OO oe SEGE Dee EE DE Ee Se ED IE mesh 4  ADDING A PLAY COMPONENT TO A DIAGRAM    ees ese ee see sees see se ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 7  AUTOMATICALLY ARRANGING THE DIAGRAM        ees esse es ees see se ee se ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 10  ROSA hy EE RE EE EA OE RE EE RO EE OE 11  CREATING A CALL CONTROL  DIAGRAM oi se SE RE oe Ge Ee ee GE ee oe ee Ee Ge Ee ee OE Ge ee EG ee 14  LINKING THE VOICE DIAGRAM TO THE CALL DIAGRAM    ees ees sees se ee se ee ee ee ee ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee 
56. atherSports Voice Diagram          iis sees RE ee 71  Figure 6 2   Components Pasted into ERNewsWeatherSports Voice Diagram    sees sesse ee ee ee ee Ee ee ee 71  Figure 6 3   Adding an Event Prompt Group  uses Kn n es N ee ed ON GR ee Re ER WE 73  Foe cA  Nanput 1 Promp GOD aa ER aa ee ee Ee ee Re ere 74  Figure 6 5   Defining a new Event Prompt               cccccseccccceseseeceseeecseseeeceaeeeceaaeeeecsaaeessuaeeessaueeessageeessaageeesseeessaass 15  Figure 6 6   Completing the New Event PrompE         eise esse ee ese ee ee ee EE Ee ee ee ee ee ee ee ee ee ee EE Ee ee ee ee RE Ee ee ee ee ee Ee EE ee ee 75  Figure 6 7   Completing the Second Prompt Group           iese esse ee ee EE ee ee ee RE ee ee ee ee ER ee ee ee ee ee Ee ee ee ee ee ee EE ee 75  Figure 6 8   The Completed Set of Error Prompts           iese sesse ee ese ee Ee ee ee ee ee Ee ee ee ee ee Ee Re ee ee ee RE ee ee ee ee ee ee Ee 76  Figure 6 9   News Weather Sports Menu Error Events          iis ees ese ee ee see se ee ee ee ee ee ee ee ee ee ee ee ee Ee ee ee ee ee EE ee ee ee 78  Figure 6 10   Selecting the Event Handlers for the Errors         iese ees see ee ee ee se ee ees ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee EE ee ee 79  Figure 6 11   Defining the number of ErFOFS        ees sesse ee ss ee se ee EE ee ee Ee ee ee Ee ee ee ee EE ee ee RE ee ee ee Ee ee ee ee RE Ee ee ee ee ee 80  Figure 6 12   Default Event Process in the Event DiagraM          sees sees ees ees ee ee ee ee ee ee ee ee ee e
57. back Text field is not activated for TTS  It is only used if the prompt is an audio file   and the system can   t locate the audio file  Then the system will use the fallback text to render TTS     Note  The Condition attribute field allows the developer to select which set of leading prompts will  be played  when under control of an external variable     Note  The leading prompt list is played only once  If the overall menu is reprompted because the  user didn t make a selection  Nolnput error  or selected an invalid entry  NoMatch error   the  replay will skip the leading prompt and start with the menu selection prompts     For a Trailing prompt   1  Inthe left pane  select the Trailing subtab     Note  The trailing prompt is always played after the menu selection prompts even when there is an  error reprompt     In the Trailing area  right click to get the options   Select Add a new trailing prompt   similar to Figure 2 4 except that you select Trailing tab      Note  A Prompt     no text entry is added to the Trailing edit area  The trailing prompt does not support a  prompt group  so you cannot define a list of trailing prompts  just a single trailing prompt     4  Inthe Trailing area  select Prompt no text  see Figure 2 6      September 2013 Copyright    2013 Convergys  All rights reserved  23       General    Events Right click to Edit    comments Leading Ewent    Debugger    Specify Prompt Attributes    Type    Message ID wt    Prompt   no text     Create    Specify a
58. btain the caller   s phone number from the caller ID  information  After the call control program has the caller s phone number  pass the phone number to the Voice  diagram for further processing     To associate the Call Control diagram with the Voice diagram   1  Inthe Gall Personalization diagram  click the Dialog icon to select it     2  Inthe Properties view  gt  Src field  select the Voice_Personalization diagram  This indicates to the  call control diagram which voice diagram to execute after answering the phone     3  Save the application project  This should clear the red x errors from your call control diagram   To assign a variable name to the callers    phone number  ANI    1  Inthe Call Personalization diagram  click the Call Begin icon     2  Inthe Properties view  gt  ANI Variable field  enter a variable name  such as CallerPhoneNo  no  quotes     Tip  Copy CallerPhoneNo from this text  because you ll be pasting it into several fields     Note  ANI stands for Automatic Number Identification  It will be the caller s phone number  which is  part of the Caller ID data passed during the ringing process     Note  This sample project won t use the DNIS information in the Caller ID  so you don t need to assign  DNIS a variable name  DNIS stands for Dialed Number Identification Service which lists the phone  number that the caller dialed  See the Properties view in Figure 4 1     September 2013 Copyright    2013 Convergys  All rights reserved  44    September 2013     
59. cation  It prompts the caller for their zip code and then calls the WebWeatherSvc library to get the  live weather report for that zip code area     The following steps for collecting a caller s zip code are broad guidelines  For detailed steps  see the  DTMF collection example in the Personalization recipe     In the WebWeather application project  create a Voice_WebWeather diagram   See Recipe 1     Add a Collect component that will collect the caller s zip code  and label it GetZipcode  Connect the  VoiceBegin component to the GetZipcode component     September 2013 Copyright    2013 Convergys  All rights reserved  60    7  Inasingle Prompt Group  add two TTS prompts    e Text for first prompt     Welcome to the weather application     See Figure 5 5    e Second     Please enter the zip code of the area for which you want the current weather report      8  Select the Grammar tab  As in the Personalization recipe  the grammar attributes are    e Mode field    select    dtmf      e Weight      1 0      e URL    builtin dtmf digits length 5      Note  The digit length is set to 5 for a zip code  instead of 4 as in the Personalization recipe   9  Select the Standard tab  In the Result Variable field  type Zipcode   10  In the Input Mode field  select    dtmf      11  In the Slot Name field  enter    MEANING        12  In Events option  gt  Error  select Inline     Voice WebWeather diagram    3 am  GetZipcode aK  E         ka  T    EE  E  Problems   EE  Console a 0        4    
60. ce Begin and End icons     Hover over the handle on the terminating end of the pipe  Voice End icon  to get cross hairs  then click  and drag the pipe to the DIMF Menu icon     Select the DTMF Menu component and then hover the cursor over it until an attachment connector  appears     Drag the DTMF prompt connector handle to the News Play component  A pop up menu displays with  two options  see Figure 2 9      Mews    2   Create Default Connection    4     Mews weater sports HIEFLI ME GA Create Conditional Connection       Figure 2 9   Connecting menu selections    Select Create Conditional Connection  A second pop up menu displays     Note  Typically  use the Default Connection for error exits or other conditions out of the normal dialog  flow  For more information see a later recipe or the Interaction Composer User s Guide     For the News Play component  select News from the pop up menu   If you don t see the News pop up  menu  confirm that you created all the menu prompts on the previous page      Hover the cursor over the DTMF Menu component until an attachment connector appears   Drag the DTMF prompt connector handle to the Weather Play component     Select Create Conditional Connection       Select Weather     Repeat steps 5 through 8 using the Sports branch     Note  As each branch is connected and you select one of the pop up Menu Item names  that name is  removed from future pop up lists     September 2013 Copyright    2013 Convergys  All rights reserved  26    See F
61. cxml  http  actions  4xisSSLSocketFa j  chory  initialize     var locator   new  Packages  WebWeathersvc  WeatherLocator    var Service   iF   ws   getWeatherSoap endpoint     undefined           Figure 5 3   Process Diagram for the Web Weather subroutine    In the diagram  notice that the wizard generated two outcomes for the process subroutine  e success path  e error path    9  To use this subroutine  expand the WebWeatherSvc  gt  subroutines  gt  voice folder and open the  Voice diagram     10  On the Voice diagram  add a Subroutine Call component     11  When you connect that Subroutine Call component to subsequent components in the main diagram   you will see two choices for the connection     a success connection and an error connection  IC  automatically configures the exit paths of subroutine components to match the number of outcome  paths in the subroutine     The Properties view of the subroutine displays the auto generated JavaScript code that the wizard created to  access the various Java classes provided in the weather service  To see the actual Java code that the wizard  created for the weather services     1  Inthe Package Explorer  navigate to WebWeatherSvc project  gt  src folder  gt  WebWeatherSvc folder   2  Double click each  java source filename to view the Java source for the various methods     Tip  In a live application  there may be delays before the weather web service returns the weather report data   You may have to modify the web services    Tim
62. d        General Define event handler names and ewent actions    Comments Row Event Mame Event Action       Error ErrorAction    Menu Error ErrorAction  a   Er Menu Timeout ErrorAction    Em Collection Error CollectionNoMatch  Er Collection Timeout CollectionTimeout    Hast ErrorAction       Figure 7 13   Event Process Component with Customized Errors Actions    September 2013 Copyright    2013 Convergys  All rights reserved  95    Now we can connect the Event Process component to the Event Entry components  and select the appropriate  connector for each type of error path  Figure 7 14 shows the path selection mechanism  and Figure 7 15 shows  the completed connections      eS  Event diagram   s b   voice diagram    O L    2    f   CollectionMoMatch       CollectionTimeout    Erroraction  D  DI    Figure 7 14   Connecting Event Entry Components to Event Process        Eyvent  diagram 25 B     Voice  diagram    TT    CalectionHaMatin    eo    CollactionT irrecut    D 9    Figure 7 15   The Completed Event Entry Connections       au                     September 2013 Copyright    2013 Convergys  All rights reserved  96    Now add the Play components for each error path that will notify the caller of the specific problem that was  encountered  and what we are going to do about it  Label the NoMatch Play component  DidNotUnderstandInput  and the Nolnput Play component NolnputReceived  Remember that you can label  a component on the diagram by pressing F2 or by selecting that comp
63. d the Transfer Component    What the Basic Transfer Recipe Does    In previous recipes we showed you how to use the Transfer component to transfer a caller to an operator if  they were having trouble  In this recipe we will use the Transfer component a bit differently  We will be doing  transfers  but it won t be because the caller has made too many mistakes  This recipe sets up a fictional bank  called    Your Hometown Bank    with three departments     e New Accounts  e Loan  e Customer Service    Our recipe will allow the caller to choose which department they want to transfer to  essentially automating the  job of a receptionist  This type of application is often called an    automated attendant     and is quite common in  many retail businesses  This recipe introduces the Calculate component as well as the Transfer component   We also make use of the Play  Collect  and Case components which have been covered in previous recipes     What does Transfer Actually Mean     Transfer means that the caller is going to be connected with another party  The party can be a call center  agent  customer service representative  or even another voice response application  For example  imagine that  you want to get information on opening a new bank account  You simply call the phone number associated  with the bank   s voice response application  You will then most likely hear a greeting followed by a list of  options  If you select the    open new bank account    option  the voice respo
64. de ee ee EE ee ee GE ee ee ee 81  Figure 6 13   Adding Event Entry Components to Event Diagram           ees sesse ee sesse ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 82  Figure 6 14   Event Process Component with Customized Error AciONS        ees ee ee ee ee ee ee Ee ee ee ee ee ee 82  Figure 6 15   Connecting Event Entry components to Event Proces           esse ees ees se se ee ees ee ee ee ee ee ee ee ede ee ee ee 83  Figure 6 16   Connections Completed            iii ee ee EE ee ee ee ee ee ee EE Ee ee ee ee AE ee ee ee ee ee ER RE ee ee ee ee EE ee ee ee 83  Figure 6 17   Updated Event Diagram         iese ee EE RE RE EE ee ee EE Ee ee ede RE Ee ee RE ee ee ee EE ee ee ee EE ER ee ee ee ee ee EE Ee 84  Figure 6 18   Transfer Component Added to Event DiagraM         iese ese ees ee ee ee ee ee ee ee Ee ee ee ee ee ee ee ee ee ee ee EE ee 84  Figure 6 19   Completed Transfer Component Added to the Event Diagram                ccccccccecesssseeeeeeeeeeaaeneeeeeeees 85  Figure 6 20   Added Voice End Component to the Event DiagraM          ees sesse sesse ese ee ee ee ee ee ee ee ee ee ee ee ede ee 85  Figure 7 1     Copying Components from Speech NewsWeatherSports Voice Diagram          iis renn 87  Figure 7 2   Pasted Components into ERSpeechNewsWeatherSports Voice Diagram    sees see esse se ee ee 87  Figure 7 3  Adding an Event Prompt GrOUD         sesse esse ee ee EE ee ee ee AR EE ee ee ee a a ee ee ee ee ee RE ee ee 88  Figure 7 4   Selecting Scope for Prompt Group
65. de of system and other   hopefully rare  errors that may occur  for which we don t have a specific strategy     For Menu Error  tyoe MenuNoMatch to replace Error Action  For Menu Timeout  tyoe MenuNolnput to replace  Error Action  There are no predefined names for these actions  so you must type the name  See Figure 6 14        Properties 23 E Problems   EE  Console      Event Process  gt  ID   eventProcess_zutmay        General Define event handler names and event actions   Comments Po Event Mame Event Action  En Error ErrorAction  se ME ee  MenuNoMalch    Menu Timeout bWenuMolnput  En Collection Error ErrorAction  En Collection Timeout ErrorAction  Es Hast ErrorAction    Figure 6 14   Event Process Component with Customized Error Actions  Once the Event Actions for MenuNoMatch and MenuNolnput have been defined  they can be used in the event    diagram  Each unique Event Action will be presented to us as a possible connector from our Event Process  component when we begin connecting it to other components in the event diagram     September 2013 Copyright    2013 Convergys  All rights reserved  82    Click on the Event Process component and connect it to one of the newly added Event Entry components   You will see a connection selection menu when you add the connection  See Fig 6 15   Select the  MenuNoMatch option  Then you can connect the Event Process component to the other Event Entry  component and select the MenuNolnput selection                    Voice  diagram    Eve
66. e     In the System Message field  specify a system message to be played  For example  a system  prompt of the word    Press    could be prepended to a prompt that plays    one for News        Prompts tab     Defines three additional types of prompts that can be spoken in association with the  main menu selection prompts  You can use audio files or TTS rendered text     O    Leading Prompt    When the menu is executed  this prompt plays before the system lists the  menu options  For example  the system might play     Welcome to the News  Weather  and  Sports line    before it plays     Press one for           Trailing Prompt     Played after the last menu option is played  For example         Press 3 for  Sports     Then the trailing prompt is played     Please make your selection now        Note  If the caller makes a menu selection and barge in is activated  which it is by default   all  unplayed menu options  as well as the trailing prompt  will be skipped     Event     Allows you to specify prompts to be played if an error prompt is specified and either  of the two main error events  Nolnput or NoMatch  occurs     Standard tab     Provides the developer with more options for how a menu Is presented  including error  retry limits  barge in status  and slot filling  These options are defaulted to the most commonly used  values  for this sample project  accept these defaults     September 2013    Copyright    2013 Convergys  All rights reserved  21    e Properties tab     Al
67. e  left click the Play icon     2  Release your finger and move the mouse pointer to the Voice diagram  The mouse pointer changes to a  box plus pointer  which indicates that the pointer is holding a component     3  Move the box plus pointer beneath the Voice End component on the diagram  left click again and the  icon is added to the Canvas at that location   See Figure 1 8      Note  When you add the Play icon onto the workspace  a text box is automatically displayed near the  icon     September 2013 Copyright    2013 Convergys  All rights reserved  7    4  Inthe text box  type HelloWorld as a label for this Play icon   No spaces in the label      Note  On the diagram  be sure to label components wherever possible since labeling helps developers  understand what each component does  If you click off of a component without labeling it  the label box  disappears  If you want to label a component later  select that component and begin typing  The label  box will appear as you type  To edit an existing component label  select the component and press the F2  key  This will put the selected component   s label field into edit mode        Ay Or ST mae og       S O     Voice diagram 2 3       so     Hellov arld   gram                    nil         Figure 1 8   Adding an icon    In this diagram  the first icon is Voice Begin  By default  it has a flow connection to the Voice End icon   To reroute the dialog flow from the Voice Begin to the Play icon     1  Click the connection pip
68. e Calculate components GetNewAcctinfoExtension  GetLoanExtension  and  GetCustServiceRepExtension respectively  Select the component  and start typing your label     Note  If you need to edit it an existing label  you can select the component and press the F2 key  which will put  the label in edit mode     After adding and labeling the three Calculate components  our Voice diagram should look like figure 8 2        Voice diagram  3   lt 2 Palette  N Ol Q La 2     Connections  GetNewAcctInfoExtension carer    df Bes     amp   Calculate  gS Case  PlayGreeting SpeechMainMenu CheckMainMenuSelection GetLoanExtension       Comment  C s   ma    E Continue  Ab sen   8  GoTo Target    GetCustServiceRepExtension    Qi  Oy  amp  Interaction  Contipue     Voice      gt  Services     Events    Figure 8 2   Adding the Calculate Components    Defining the Calculate Components    Properties    We need to define a result variable in this recipe that will carry the extension number that will be passed to the  Transfer component to execute the transfer  This will be the result variable in all three Calculate components     Select the first Calculate component  GetNewAcctinfoExtension  and type the result variable name in the  Calculate component   s Properties view  gt  General option  gt  Result field as transferExtension  If this first  Collect component is executed  the transferExtension variable will be assigned the extension number of the  New Account Information department     In the Expr
69. e Event Handlers for the Errors    This configuration allows us to have unique error handling processes for similar classes of errors  If we reach  this point in the dialog  a Nolnput or timeout error means that the caller has never entered anything during the  complete menu dialog  even after multiple help prompts  A Menu Error means that the caller has entered  something  but it was wrong     three times  There may also have been some timeouts in this process  but at  least the caller seems to be trying  A pure Error means that there was an error with the prompt mechanism  or  some other system error  that was not caused by the user  Best practices dictate that these three conditions  should cover the primary error states in any menu  which is why IC has predefined them     September 2013 Copyright    2013 Convergys  All rights reserved  79    Setting the Maximum Error Retry Limit    Before we can start defining what our event error handlers will do  we need to set one more thing in the DIMF  Menu component     the error retry limits  To prevent a key entry challenged user from endlessly attempting to  make an erroneous selection  we need to limit the number of user input errors that can occur  We typically give  the caller three times to get their selection right  If the caller fails to make a valid selection after three tries  they  most likely need help from a live person  so we would typically transfer the caller to an operator     To set the retry count limits  select 
70. e GE GR DO Ee SEE 87  DEFINING THE ERROR EVENT MESSAGES IN SNWSMENU           ee esse see see see see see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 88  THE EVYEPNTHANDLE osc TO N OE OR EE EE 91  THE COLLECTION COMPONENTS    MAXIMUM ERROR COUNTERS         ee esse see sees see see see ee ee se ee ee ee ee ee ee ee ee ee ee ee 91  SPECIFYING THE EVENT HANDLERS FOR EACH MAX ERROR CONDITION         ee ee ese ee sees sees see see se ee ee se ee ee ee ee ee ee ee ee 92  SETTING THE MAXIMUM ERROR RETRY LIMITS          ee esse sees sees se ee sees ee ee ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 93  COMPLETING THE EVENT DIAGRAM uses sas dei siese be eie ee ee ee ee ed ee ee ee ee be ee ke es ee ee Ge ee ee ER 94  CONFIGURING THE NEW EVENT ENTRY COMPONENTS          ccccseccssccesccsccesceuccesceuccenccesseessesccussessesccesseescenccuseeuccenseues 95  FINAL NOTES FOR APPLICATION COMPLETION           ccccscccssccsccesccscccsscscenccesccusseucceuscesseuccesccusseuccesscusseussenscussenceeceuss 98    September 2013 Copyright    2013 Convergys  All rights reserved  jii    CONVERGYS    RECIPES  oe    IMMA EG OE ee nan en eee eee eee ene eee 99  WHAT THE BASIC TRANSFER RECIPE DOES            c cccccseccecccuccecescccuccuscesccesccesceuccesccscesccesseuscenscesseussenseusceuscesseusceusss 99  WHAT DOES TRANSFER ACTUALLY MEAN   u       ccccccccscccsccscccuccesceusccuscenccesccuscesccesseuscecsesseesseeccesseussenccesseseenscusceuscs 99  WHAT ARE THE VARIOU
71. e TTS engine renders the prompt as audio based on this fallback text     Delete the extra Play component  You won t need it for this recipe     To edit or delete messages that you have created     1     2  3  4   5    In the Package Explorer  go to  lt ProjectName gt   gt  resources  gt  audio   Double click Messages msg    To edit a Message ID or fallback text  click in a field    To delete  select a row and click the Delete Row button  red X     Save the project and close the Messages msg tab above the Canvas view     Note  Optionally  you can begin by defining your messages and fallback text and then select them ona  Play  DTMF Menu  or Collect component     Tip  When the application flowchart is completed  the IC tool can generate a list of   o Message IDs that you defined for each prompt  o Fallback text that you specified for that Message ID    You can give this list to a voice talent as an application script  The voice talent can use it to record the  audio prompts in a recording studio  For more information  see the Interaction Composer User   s Guide     For recorded audio and URL Type     if    2     Set the Type field to URL   With this option  the field beneath it is labeled Expression     In the Expression field  specify the URL that points to where a prerecorded audio file resides     September 2013 Copyright   2013 Convergys  All rights reserved  13    Creating a Call Control Diagram    An IC application also needs a higher level of control that associates the 
72. e between the Voice Begin and End icons  Handles appear on both ends of the  connection pipe     2  Hover over the handle on the terminating end of the pipe  Voice End icon  to get cross hairs  then click  and drag the pipe to the Play icon  The pipe should now stay connected to the Play icon     Tip  When connecting actions  start at the originating icon and then make the connection to the  terminating icon     This connection arrow communicates to the system that after the dialog begins  it should go to the Play  icon and play the prompt     3  Hover the mouse over the HelloWorld Play icon  and a new pipe appears   Tip  Do not select the icon  just hover  Hover on the side that   s closest to where you want the pipe     4  Hover over the terminating handle of that pipe  and drag the handle to the Voice End icon  red  amp  white X  with a dialog balloon   See Figure 1 9 for the completed diagram     September 2013 Copyright    2013 Convergys  All rights reserved  8    wa    hk    FF    Mio MIB S  A   amp    4  TEIR    RT E  S      oice  diagram  E3  des          Hellovyorld    agram  wml       Figure 1 9   Icons all Connected    Note  A text box appears next to the pipe after it is connected  allowing you to label that particular leg  of the dialog flow  This text box only appears with newly created pipes  so dragging an existing pipe to  a new connection won t cause it to appear     For this sample project  you do not need to label the connection  Just click on the white sp
73. e detail in Recipe 6  so we won t say  much more about it here  Suffice it to say that we will be configuring the Collect component in our recipe to  route the call flow to the event handler when any maximum error count is reached in any of the error counters  in the Collect component  This is best practice for all menus in an application  which allows the handling of  critical errors to be located in one place in the application  This simplifies maintenance and reduces clutter in  your diagrams     The Collection Components    Maximum Error Counters    The Nolnput and NoMatch errors that callers make in Speech menus are very similar to the DTMF menu errors  of the same name  However  there is the one additional error condition for speech   the Speech Timeout error   Each error type has an error counter of the same name in the Collection component  so there are three speech  error counters in the Collect component  Along with those three error counters  there are two other error  counters  one for system errors  Error  and one that counts any kind of user input error     Nolnput  NoMatch  or  SpeechTimeout  MaxErrors   So we have a total of five error counters in the Collect component     MaxNoMatch   This counter increments each time the caller soeaks a selection that is not a valid menu option   If the caller says    Music    in the Collection component menu for example  that will increment the NoMatch error  count     MaxNolnput    This counter increments each time the cal
74. e ee EE ee ee ee Ee ee ee ee ee ee ee RE ee ee ee ee ee ee ee ee ee ee EE Ee 27  Figure 2 11   Connecting the dial  g siseses reiasa ee RR EE Ee ee ee ee ee a EE ee ee ee ee ee RE Ee ee ee ee ee EE ee ee 28  Figure 2 12   DTMF Menu Advanced Properties         ies see se ee EE Ee ee EE Ee ee ee EE ee ee ee ee ee AE ee ee ee EE Ee ee ede EE Ee ee 29  Figure 3 1     Creating a New Project          ees ee Ee RE Ee ee EE ee EE ee ee EE ee ee ee ee AE ee ee EE ee ee EE ee ee EE Ee ee EE ee ee EE ee ee Ee 31  Figure 3 2   Starting the Voice Diagram Design    ee ee EE ee ee AA Ee ee ee ee ee ee EE Ee ee ee ee RE ee ee ee ee ee Ee EE ee ee 32  Figure 3 3   Setting the Error Paths for the Collect Component           see ee Ee ee EE Ee ee ee ee ee ee RR ee ee ee EE ee ee 34  Figure 3 4   ICS Grammar Builder               cccccccccscseccccecceeeeeeeceeeecceeeeeseceeceeeeseeseeceeeeessaeeaseeeeeeeesssaaaeseeeeessaaaaseeseees 36  Figure 3 5   Building AGE  oe ODE aie cede moda ES ee ee AG Ee Se ee Oe eer ei EE ES 37  Figure 3 6   Standard Collect Properties             cccccccccccccsssssseceeeeeeeeeeeseceeeeesseeesseeeeeeesseeeseeeeeessssaeaeeeeeeeeessaeaeeeeeees 39  Figure 3 7   CASE COMPONENT PLOPEItiS             ccccseeccccccessseececceeeeceeeceeeeceeseueeeeeeessaueeeeeseeaeeeessseaeeeeesessaaeeeessageesess 40  Figure 3 8   Copying parts Of a voice diagram          sesse ee ee ee ee ee ee Ee ee ee ee ee ee ee ee ee ee ee Ee Ee ee ee ee ee ee ee RE ee ee ee ee RE ee 41  Figure 3 9   Com
75. e now been successful in  creating your Error Recovery NewsWeatherSports application project  Congratulations   85    September 2013 Copyright    2013 Convergys  All rights reserved     Recipe 7  Best Practices Error Recovery for Speech  NewsWeatherSports  Contributed by Melissa Tatum     Approximate time  50 minutes  depending on prior experience  What you will learn with this recipe   e The Types of Errors That Occur in a Speech Menu   e How to use the Collect Component With Error Recovery  e How to define the number of errors allowed when processing the Collect component   e Understand where the Error prompts are defined in the Collect component     e Understand the Event diagram     What the Error Recovery for SoeechNewsWeatherSports Application Does    As we stated in the previous recipe  the menu is one of the most important parts of a dialog system  Recipe 3   s  SpeechNewsWeatherSports recipe showed us how to present a caller with a spoken menu of choices  using  IC   s Collect component which is the speech equivalent of the DTMF Menu component  With the Collect  component  the caller will make a menu selection by speaking one of the menu choices presented in the dialog     Just like our first DTMF Menu recipe  the first SoeechNWS recipe wasn   t very user friendly  If the caller made a  mistake by speaking an invalid selection or waited too long to speak a choice  that caller was dumped out of  the application with nothing but a    goodbye        Now we need to make 
76. e tabs     Click Finish    In the call control diagram  select the Dialog component  third component    In the Dialog   s Properties view  be sure the General option is selected    In the Type field  accept the default     In the Src field  select Voice _NWS diagram from the list  This links the call diagram to the voice  diagram     Save the application project   All the red x   s should be gone in both the call diagram and the folders     When the red x   s are gone  package your project as a  war file  See the steps in the Hello World  recipe  However  in Package Explorer  be sure to select the NewsWeatherSports root folder instead  of HelloWorld     Export the runtime WAR file so you can test this recipe     September 2013 Copyright    2013 Convergys  All rights reserved     30    Recipe 3  Speech Enabling a Touch Tone Application  Approximate time  25 minutes  depending on prior experience  What you will learn with this recipe   e Building a Menu for both Speech and DTMF input  e Building a Speech Grammar  e Using the Case Component  e Copying parts of a diagram  e Logging errors  With this recipe  you will design an application project similar to the DTMF recipe except that this recipe will  handle speech input from the caller to make menu selections   New Project Setup  To create a new speech project   1  To simplify the workspace  close any open diagrams by clicking the X on each tab above the Canvas   2  Click File  gt  New  gt  ICS Application Project  The New ICS A
77. e web  it will access the document and use it to create all the methods required to access that  web service  The wizard puts all of those processes in an IC library project so that they can easily be called by  your application     September 2013 Copyright    2013 Convergys  All rights reserved  56    Using the Web Services Wizard  Tip  Close any open diagrams and collapse the folders in the Package Explorer   To use the Web Service Library wizard to build the weather service access   1  From the Interaction Composer menu bar  select File  gt  New  gt  ICS Web Service Library     The ICS Web Service Library wizard opens  see Figure 5 1         it Mew ICS Web Service Library    Create an ICS Web Service Library from a WSDL file     4    Specify JDK 1 6 home directory  WSDL File location and a target ICS library project     JDK 1 6 Home Directory  f A   les  j E    C  Program Files Javaljdk 6 024    Browse     WSDL Location     http  iiwsf cdyne com WeatheriWS Weather asmx WSDL  wsf cdyne cor Weathers  yeather  asme  w SDL  Browse       Target ITS Library Project  WebWeatherve 0000    Browse          ve  Create new project       Figure 5 1  Web Services Wizard    2  To point the wizard to the location of your JDK main folder  click Browse next to the JDK x x Home  Directory field and select your folder location  for example  C  Program Files Java jdk1 6 0_ 24     3  Inthe WSDL Location field  enter the URL of a location for a weather service WSDL document on the  web  so that 
78. eather subroutine is called  it will access the web service and put all the weather data it  receives into the Java object that you named CurrentWeather       Save your project     September 2013 Copyright    2013 Convergys  All rights reserved     63    Finding the Java Methods for the Weather Object    Now  you must identify the specific pieces of weather data that will be contained in the CurrentWeather Java  object  so that you can construct the weather report prompt  You will need the names of the Java methods that  extract each piece of weather data from the object  You will use those names to generate the spoken weather  report for the caller     To find the callable names of the weather methods in the CurrentWeather object  look at the Javadoc that the  web services wizard created in the weather service library     1  Inthe Voice _ WebWeather diagram  select the Get Weather Subroutine Call component   2  Inthe Properties view  look at the Subroutine Diagram   s Description field  It should be similar to   Method description for getCityWeatherByZIP  Return type is WebWeatherSvc WeatherReturn    This means that the name of the WebWeatherSvc Java class that describes the methods you ll need is  called the WeatherReturn class     In the Package Explorer  expand the WebWeatherSvc  gt  javadoc folder     Right click index html  and select Open With  gt  Web Browser  This opens a browser in the Eclipse  Canvas view  The left pane of this Javadoc displays the All Classes navi
79. ection that is not in the list of valid choices as defined in the DIMF grammar    e Caller fails to make any selection at all  Typically  there is a maximum entry timeout associated with  any DTMF menu  If the user has made no selection  and that timer expires  we have an error  That  scenario is an entry timeout  or in the VXML vernacular  a NoEntry error     When we design voice response applications  we want to make the caller s experience as pleasant as possible   Therefore  if a caller makes an error  give the caller helpful information about what went wrong  and then let    September 2013 Copyright    2013 Convergys  All rights reserved  69    them try it again  If we can present pertinent  helpful messages to the user when they make an error  and then  propose a retry  the user may be able to recover from his error situation without too much frustration  The  unhelpful first error    goodbye    that we designed in our first Menu recipe  is a good way to create an  unsuccessful  and very unhappy caller     Unfortunately  some callers just cant seem to get it right  even with the best of help  To avoid tying up a  confused caller in a never ending loop of help messages and retrials  we must at some point give up trying to  help  A good general rule is to give a caller three times to correct an error  If we get to that point in an error  recovery dialog  it may be best to enlist a live agent on the call to see if they can help  or go to some other plan  to discover the ca
80. eft click the component  drag the mouse to the appropriate location on the Canvas  and left click  again to add the component to the diagram window     When you add the DTMF Menu component  a label text box displays  Label the DTMF Menu component  with a descriptive name such as NewsWeatherSportsMenu     From the Voice drawer  add a Play icon to the right of the DIMF Menu component and label it News     Add another Play icon and label it Weather  Add a third Play icon for Sports  see Figure 2 3            Voice NWS  diagram E3    22 Palette b    ie      EPE     Connections  General     voice d    4  gi Collect    ES Custom Collect    Si  DTMF Menu    N Goal Reporting    as Play dd    ES i FH        Services     Events    Figure 2 3   News Weather Sports initial layout    Before you can connect the components  you must define the DTMF Menu component s menu selections and  properties     September 2013 Copyright    2013 Convergys  All rights reserved  20    Defining the DTMF Menu prompts    To define the DIMF Menu component options     1  Design the prompts that the system will play to the caller  This sample project has     Greeting     Welcome to the News  Weather  and Sports access line        Menu options     Press one for the latest news  press two for the current weather  and press  three for sports        Closing prompt     Please make your selection now        2  Add the phrases to the appropriate components in the call flow diagram     The DTMF Menu component has many 
81. elect an event handler for this condition  however     September 2013 Copyright    2013 Convergys  All rights reserved  91    Specifying the Event Handlers for Each Max Error Condition    The next step in completing our soeech menu error recovery recipe is to define what specific event handler will  be called when a specific error counter reaches its maximum  You should remember how we did this in our    previous recipe  as this will be much the same process  except there is one additional error counter we need to  configure     Select the Collect component and click on the Events tab  You will see that there are five counters   Error   MaxNoMatch  MaxNolnput  MaxSpeechTimeout and MaxErrors  These error counters are used to keep track of  how many errors a user makes while in the Collect component  As before  you can use the dropdown box to  specify how you would like to proceed if one of the counters exceeds its maximum count     For each error counter we can choose the event handler that will be executed if that counter hits its max level   We discussed the rationale behind event handlers in the previous recipe  so you should understand that the  selections in the dropdown boxes of each counter simply represent entry points into the global event handler  which we will define in the next sections     Use the dropdown box to select the event handler for each error counter  Best practices dictate that the  following event handlers should be chosen for each counter     For Erro
82. em    am going to transfer you to someone who can help     Then add the Voice End component and make    sure everything is connected up  See Figure 7 18        Event diagram   2    Voice diagram   Event  diagram  DidNotUnderstandinput Palette    gt  Select  3 CollectionNoMatch DI Ca ae  ollectionNoMa a  TransferTOCSR EndTheCall    gt  Connections       Collection Timeout   C   EA  Conditional  NoInputReceived   L nngccion  ErrorAction     u    General  OW af  Break  hd      gt  Voice  ErrorOnsystem    ey Collect  vr         eo     W   gt  Services  F alarm       Events  4  Event Entry    Figure 7 18   Final Event Diagram    Final Notes for Application Completion    After all components are attached  go to Package Explorer and complete the Call diagram under applications   gt  call  Save everything  export the package and create the War file  After you complete the package export  and create the war file  you are ready to try out your error recovered Speech Menu recipe  You should keep  this recipe around  as you will find it very handy  whenever you build any application that has a Speech menu in    it  Great job     September 2013 Copyright    2013 Convergys  All rights reserved  98    Recipe 8  Call Transfer  Contributed by Melissa Tatum     Approximate time  30 minutes  depending on prior experience  What you will learn with this recipe    e Understand the Meaning of Transfer   e Understand the Various Types of Transfer   e Understand the Calculate Component    e Understan
83. eout parameter from the default to deal with longer than normal  delays  You can also redirect the location of the web service using the Endpoint method  To change the default  values of these parameters in the web service when the default values are not appropriate for your application   insert calls to the setEndpoint and or setTimeout methods before you call the getWeatherByZIP method in  your main diagram     September 2013 Copyright    2013 Convergys  All rights reserved  59    Building the Weather VUI    Now  the weather getting subroutines are in place  To create the main application project     1        From the Interaction Composer menu bar  select File  gt  New  gt  ICS Application Project and name the  project WebWeather     Do NOT click Finish yet     Click Next to access the Library References wizard  This allows you to link the WebWeatherSvc  Library to the main application  See Figure 5 4              it New ICS Application Project    ICS Library References    Select referenced ICS libraries    Referenced projects        Figure 5 4   ICS Project Library Reference Wizard    Check the box next to WebWeatherSvc to indicate that this library project is to be associated with the  WebWeather application project     Click Finish  This ensures that when you package the WebWeather application into a WAR  the  WebWeatherSvc library will be included in the WAR package     This wizard creates a standard IC project where you will build the VUI portions of the weather  appli
84. er User   s Guide     For recorded audio and Message ID Type     1   2     i    Add a Play component and select Prompt     no text   In the Type field  accept the default Message ID     Message ID indicates to the system that a prerecorded audio file exists  This is the most common  option for commercial or enterprise applications because audio prompts that are recorded by a  professional voice talent are more natural sounding and more easily understood than synthesized text   to speech  TTS  playbacks  At some point  a voice talent will need to record all the audio files ina  recording studio     The field beneath is labeled Message ID  Enter a unique value in this field to represent this audio file   This value can be a number or a  wav filename  For example  enter 1 or hello     If you have existing Message IDs and Fallback text in the Messages msg file  you can type the  Message ID in the field and the Fallback Text is automatically populated  Optionally  you can select the  green launch arrow for the Message Selector dialog box and select from existing IDs     In the left pane  click Prompt     no text  The Message ID field becomes red italic font  On the lower  right  the Create button is activated     At the center right  click Create  This logs the message ID and fallback text into the system so it can  be tracked to avoid ID duplication     In the Fallback Text field  use single quotes and enter the text of the message  If the audio file cant be  found at runtime  th
85. eral option  click the Grammar tab     In the Grammar s URL field  enter the location of the grammar  In this case  since the grammar is in  the local grammar folder  you can just use single quotes and enter    snwsgrammar grxml       Click in the Grammar entry   s Edit area or white space  The  grxml filename displays     Save the project     Collect Component  Grammar Properties    In this section  you will     Define the name of the variable that will hold the grammar results outcome  This will allow the Case  component to determine the outcome of the menu selection  The Case component can then select the  correct branch to execute     Define the Slot Name of the semantic slot that was filled by the caller s utterance     Note  Grammars can have multiple semantic slots  which allow a caller to input several pieces of  information in a single utterance  For example  the utterance    I want to fly to Boston from Dallas  tomorrow    has three semantic slots     e from   for example  Dallas  e to   for example  Boston  e time   or example  Tomorrow    Multi slot grammars can be useful in certain situations but they are more difficult to design  so this  recipe will use a single slot grammar     To define the name of the variable that will carry the grammar results outcome     1     Select the Collect component   In the Properties view  gt  General option  click the Standard tab     In the Slot Name field  use single quotes and type    slot1     This is the slot name automatica
86. es between Domains Using a Name List  e Using a Database for Persistent Storage  e Using an If Statement  e Using TTS to play the content of a Variable    e Using Built in grammars    Overview of the Personalization Recipe    With this recipe  you will build a Personalization application project  Personalization means that this application  will try to identify the caller and then tailor the subsequent dialog to that particular caller  This is a very simple  personalized application  but it provides the framework for a large variety of personalization applications     In the web world  websites are personalized by requiring a user to log in to the website  thus identifying the  user  Once logged in  the user can set various preferences for the site  including the language used  site  layout  and much more  When the user returns to that site on subsequent visits and logs in  the user   s  preferences are stored so that the application can implement them     The telephone system has a caller ID feature that presents the callers phone number and or the caller s name  to the called party during the ringing or alerting process  In many automated applications  this caller ID is  sufficient to identify the user to the application  though more secure applications can require a PIN or other  identification from the caller before accessing sensitive information  Caller ID allows telephone applications to  immediately recognize who is calling without making the caller type in logon info
87. ession field  type the phone extension value  For this recipe  we have defined the integer 6113131  as the extension number for the New Accounts department  In a production application  the extensions to  various departments should be obtained from the bank   s telephone directory  See Figure 8 3     E  Properties   3  2 Problems   EE  Console   or       amp   Calculate  gt  ID   calc_mutrew    Name   GetNewAcctInfoExtension     General Specify a Result Variable and Expression   Comments Row Result Expression    transferExtension 6113131     x       Figure 8 3   Completing GetNewAcctlnfoExtension Calculate Component    September 2013 Copyright    2013 Convergys  All rights reserved  103    We will continue with the same process to define the second Calculate component  This time we are assigning  6118964 to the transferExtension variable  which is the Loan departments    extension  see Figure 8 4   Note  that this is a different extension number than the previous Calculate component  Depending on which  Calculate component is executed coming out of the Case component  the transferExtension variable will be  assigned to different extension numbers     E Properties   2  gt       Problems  EJ console ey St     amp  Calculate  gt  ID   calc_vitrol    Name   GetLoanExtension     General Specify a Result variable and Expression   Comments Row Result Expression    transferExtension 6118964         Figure 8 4   Completing GetLoanExtension Calculate Component    Finally  complete the 
88. gation page     5  Inthe All Classes list  click WeatherReturn   The WeatherReturn class opens with all of that Java objects    attributes and access methods     Here is the brief list of the weather attributes contained in the weather object taken from the  WeatherReturn Javadoc     WeatherReturn Javadoc    public WeatherReturn boolean success   java lang String responseText   java lang String state   java lang String city   java lang String weatherStationCity   short weatherlD   java lang String description   java lang String temperature   java lang String relativeHumidity   java lang String wind   java lang String pressure   java lang String visibility   java lang String windChill   java lang String remarks     Figure 5 7   Java Weather Object Attributes    The names of methods used to extract these attributes from the Java object are also listed in the  Javadoc  For example  examining the Javadoc  the name of the method for obtaining the current  temperature is getTemperature  If you want to play a prompt of the current temperature  extract the  text string containing the temperature using the call CurrentWeather getTemperature    The  open closed parenthesis indicates the JavaScript method call     Tip  In IC  after you open a specific document in a browser  IC will remember that action  Above  you  selected index html  and then Open With  gt  Web Browser  The next time you open that document   you won t need to navigate again  Just double click the document  If you doub
89. gure 6 7   Completing the Second Prompt Group  September 2013 Copyright    2013 Convergys  All rights reserved  75    You can finish up the prompt groups for the NoMatch errors as well  The completed set of error prompt groups  will be similar to Figure 6 8  You might ask why we re not defining three prompt groups  since we have  specified that we will set the maximum number of errors to be 3 for Nolnput and NoMatch  That is because we    are going to specify that a third consecutive input error will take us out of the DIMF component altogether  We  will cover this step in the next sections     E  Properties   3  gt      Problems  EJ console Ra EI     DTMF Menu  gt  ID   dtmfMenu vopvah    Name   NewsWeatherSportsMenu    A  General Menu   Prompts   Standard   Properties    Events Right click to Edit    Specify attributes for the event prompt group   Comments Leading   Trailing   Event       Scope    NoMatch       Prompt Group   Nolnput 1 i  Prompt      Sorry I did not receive any input     Prompt Count    2       Prompt Group   Holnput  2   Prompt    Sorry I still did not receive any input                 Do Reprompt    true                      Prompt Group   NoMatch_1 Present As       sequence       H Prompt    Sorry that is an invalid selection  Please try again En   Es  ee Prompt Group   NoMatch 2 L    Prompt      Sorry that is still an invalid selection  Your options are 1 for News 2 For Weather or 3 for Sports      i       lt      v    Figure 6 8   The Completed Set of 
90. hat follow the W3C standards must also support a set of  standard built in grammars  IC also supports these grammars in the URL field  These built in grammars cover  both speech and DTMF input simultaneously     e Boolean  Yes No     e Currency  Dollars     e Date   e Digits   e Number  e Phone   e Time    This sample application project won t use the standard grammars  You will need to create a unique one   However  you won t need to learn the details of GRXML at this point  You can use the Interaction Composer  Grammar Builder to do a preliminary design of the grammar     This will be a very basic grammar  the single words News  Weather  or Sports  with no synonyms  Therefore   when you test the application and grammar on the phone at a later time  be sure to speak only the words and  phrases that exist in this grammar that you created  A real life grammar would include synonyms and other  phrases that a caller might speak  like    I want the News    or    Give me Sports        Note  Currently  the ICS Grammar Builder only supports single   slot grammars  You can add words  phrases   and synonyms     After you create a grammar  you will save two files   e Grammar Builders representation file  with an  ivgr extension    e Actual GRXML grammar file  with a  grxml extension    September 2013 Copyright    2013 Convergys  All rights reserved  35    To build a grammar for this application project   1  Inthe Package Explorer  right click the SoeechNewsWeatherSports project folder 
91. he CallerPhoneNo variable   The name appears in the Edit expression area at the bottom     Click OK  The variable is added to the Expression field     Click in the second Expression row     Click OK     The row values of the SQL Parameter list are assigned to the corresponding values in the SQL query  on a top down  left right basis  The parameter in the first row  i e  topmost  of the SQL parameter list  is assigned to the left most  i e  first question mark  variable in the SQL query  See Figure 4 11     September 2013 Copyright    2013 Convergys  All rights reserved  53        PE Properties 23    E Database Edi         i Problems   7 oF    i torePhoneAndAcctNo         ID     databaseEdit_wepyjoz    Name     General Specify database edit attributes   Events  Data Source  jawarlcompieneipersdh ial  Comments Note  This value will override the default data source value in the DBclient svr File     Debugger INSERT INTO perstable  7  7 1 VALUES a    Specify SOL Parameter    t      Row Expression    Er CallerPhoneNa  EF New Acct Mo result    Le   Le        Figure 4 11   Database Update properties    Saying Goodbye    1     Connect the If component to the GetAccountNo Collect component  and click the NotFound pop up  as the exit path     Connect the Collect component to the StorePhoneAndAcctNo Database Edit component  No label is  necessary     From the Voice drawer  add a Play component and label it Goodbye   Modify Prompt     no text to a TTS prompt     Thank you  and goodbye   
92. hen transferring to a line that you Know will be answered  either by a  live person or another IVR system     A blind transfer typically signals the end of any dealings that the application will have with the calling party  The  IVR application normally ends immediately after a blind transfer step  There are ways to do wrap up after a  blind transfer  in the event handler routines   but since the original caller has been transferred to another line   there isn   t anyone for our IVR application to talk to  Voice operations  Play  Collect  after a blind transfer are  useless  Database clean up or other maintenance operations are about all that can be done at this point  and  they will have to be done in the event handler routines     The Blind transfer has a second type of transfer that is for VoIP only  It is known as SIP  Session Initiation  Protocol  transfer  Again  after the call is connected to another party  we have no information available about  the status of the call transfer     Consultation transfer    This is basically an extension of the blind transfer  Remember that a blind transfer  didn   t provide us any information about the status of the call transfer  and it didn   t give us any options  even if  we did know what happened to the call  Once a blind transfer is made  the IVR application is    out of the loop     and the call is essentially ended  as far as the IVR application is concerned     A Consultation transfer gives us some information about what happe
93. hich can  occur during a DIMF menu dialog  It can play unique error messages for the different types of errors that a  caller might cause  It also keeps track of the total number of each type of error that occurs  and it will perform  specific actions if a preset maximum of errors is reached  The menu component will handle much of the lower   level work of error handling  so you the developer can focus on the main parts of the dialog design  The DIMF  Menu component is one of the more powerful components in the IC toolbox     So how do we add these helpful error dialogues to our NWS recipe  That is the main subject of this recipe     Developing the Call Flow    To begin  create a new project for this error handling version of the NewsWeatherSports recipe  However  we  won t need to build this recipe from scratch  Our original DTMF Menu recipe   2  has the basic menu stuff in it  that we need to start building the error recovery process  Just copy the original NWS DTMF Menu recipe to this  new project  as a basis of our new error recovery recipe  This will save us from having to rebuild the original  DTMF Menu recipe and re enter all of the properties in the original recipe     Create a new ICS Application Project in IC  and name this new project ERNewsWeatherSports  for the error  recovery version of our DIMF menu recipe  Then create an ICS Voice diagram  For specific information about  creating a project and voice diagram  refer to Recipe 1 s    Hello World    recipe  Then  
94. igure 2 10 for the current call flow diagram        m EE  Voice  diagram sd       News Weather SportsMeru Mews       Figure 2 10   Connecting the Play Legs    Configuring the NewsWeatherSports Play Components    To configure each Play component with a prompt message that informs the caller which option was taken in the  dialog flow     1     Select the News Play component  gt  Prompt     no text  and set the TTS to play    You have reached  the News application        Select the Weather Play component and set the TTS to play    You have reached the Weather  application        Follow the same steps for the Sports Play component   Add a new Play component to right of the three previous components  and label it Goodbye     Configure this component to play    Thank you for using the News  Weather  and Sports service   Goodbye        Note  For now  the application won t access actual live news sources  That will be covered in a more  advanced section of this cookbook  This call flow just informs the caller which menu leg was taken     Connect each News  Weather  and Sports component to the Goodbye component  You don t need to  label the connectors     No matter which service is selected  the Goodbye message will play after any selected service has  completed     September 2013 Copyright    2013 Convergys  All rights reserved  27    Playing Goodbye  To connect the rest of the diagram   1  Drag the red Voice End icon to the far right of the Goodbye component     2  Connect the Goodb
95. ill save the  ivgr file for that grammar  The snwsmenu ivgr file does not appear in the IC  Package Explorer  In Windows Explorer  navigate to your workspace and then to the  lt projectName gt   resources  gt  grammars  gt  en US folder     In the Grammar Builder   s menu bar  select File  gt  Export GRXML File  gt  OSR Nuance 9 0   Expand the resources  gt  grammars  gt  en US  US English  folders    In the File name field at the bottom  type snwsgrammar for the  grxml grammar filename   On the bottom right  click Save    At a dialog box  click OK     This will save the  grxml file for that grammar  The snwsmenu grxml file does not appear in the IC  Package Explorer  In Windows Explorer  navigate to your workspace and then to the  lt projectName gt   resources  gt  grammars  gt  en US folder     Note  To edit a previously created grammar  launch the Grammar Builder  Then  from the menu bar   select File  gt  Open  Navigate to the resources  gt  grammars  gt  en US folder  and open the appropriate   ivgr file  It will open in the Grammar Builder     September 2013 Copyright    2013 Convergys  All rights reserved  37    Collect Component  Referencing a Grammar    You have created a custom grammar and stored it locally     To reference it in the Collect component     1     2  3  4   5    Close the Grammar Builder   You don t need to do an additional Save    In IC  be sure the Voice_Speech diagram tab is selected    Select the Collect component    In the Properties view  gt  Gen
96. important functions  You can add all three sample prompts to this  single component  It also provides options for error handling     By default  barge in is activated  As soon as the caller presses a DIMF key  the system will transition to the  option the caller selected without playing the remaining menu options or any trailing prompt     Typically  the menu would have navigational selections  such as     Press four to hear the menu again    and     Press five to exit     However  this introductory recipe will just have basic options  Even if the caller doesn t  specifically end the call  the key entry timeout will eventually end it anyway     Overview of DTMF Menu Properties    Here   s an overview of the contents of the Properties view  gt  General option     Menu tab  Defines each menu item that will be played to the caller and a group name for the items     O    O    Each menu item will have an associated DTMF key    Each menu item will indicate whether that particular menu item is active  this value could be a  variable if you are building dynamic menus      In the Prompt Attribute area of the menu item  the Type field indicates whether the prompt is  in a prerecorded audio file or text that will be rendered by a TTS engine  If an audio file is to  be used for a prompt  you can specify the filename or message ID for that audio file  In  addition  you can define fallback text for TTS rendering of each audio file if the required  prerecorded message is not found at runtim
97. it  Instead   the application simply confirms to the caller     Your account number is XXXX     The TTS engine renders  the account number to the caller     e The callers record can contain any other personal information that you elect to store in the database     September 2013 Copyright    2013 Convergys  All rights reserved  43    This sample application project utilizes a database  which is not a standard part of the IC runtime environment   Therefore  this sample recipe will make some assumptions about the database  For runtime when you test your  recipe  be sure to use an appropriately configured database     Creating the Voice Diagram    Tip  For this sample project  to save time  you can copy the sample names  usually in bold font  from this  document and paste them into the fields  However  be sure you manually type in any single quotes as  Interaction Composer does not recognize the curly font     1  Create a new application project and name it Personalization  For a reminder  see Recipe 1     2  After creating the Personalization project  create a Voice_Personalization diagram in the  Personalization  gt  applications  gt  voice folder     Creating the Call Control Diagram    For the next step  create a Call_ Personalization diagram in the application  gt  call folder  For a reminder of the  steps  see Recipe 1     Creating a Call Control Diagram        Passing Variables from Call Control to the Voice Diagram    Next  configure the Call Personalization diagram to o
98. l Diagram           cccccccccccccccecceeeeeeeeeeeeeeseeeseceeeeesaesueaeeceeeessseeeeseeeeeesseeessaeeeeessssaaageeeeeees 15  Figure 1 16  CallGontrol Die ER ES EE Ee i E ee ee ER 16  Figure 1 17   Packaging Your Application si eo We Ee Ge ba EE Re SE ee Ge ed 17  Figure 2 1  Create a new ICS Project   News Weather Sports         see EE Ee ee Ee EE ee ee ee ee ee ee ee ee EE ee ee ee 18  Figure 2 2   Starting to build the News Weather Sports application    Ee ee EE Ee ee Ee ee ee RE ee ee ee ee RE ee 19  Figure 2 3   News Weather Sports initial layOU          ees ee ee ee EE Ee ee ee ee ee ee RE ee ee ee ee RE ee ee ee ee ee Ee EE ee ee 20  Figure 2 4   Adding a leading prompt GrOUD       eie sesse ee Ee ee EE ee RR EE ee AE ee ee ee AR ee ee Re ee ee ee ee ee ee Re ee ee ee ee ee 22  Figure 2 5 Leading Prompt ProperlieS  ss EE EEN EE Ee ee ee Ge ee 23  Figure 2 6   Trailing Prompt Properties          iese esse ee ee ee ee EE Ee ee EE Ee ee EE Ee ee EE ee ee EE Re ee ee ee EE ee ee EE ee ee EE ee ee EE ee ee EE ee ee ee 24  Figure 2 7   Trailing Prompt Properties               ccccccccccssseeeceeeeeceeeseeseeeeecsaueeecseaeesseeeessageeessageeessueeeessaeeesseeeessaass 24  Figure 2 8   Creating Menu selections             ccccccseeecccccsseeeceeeeueeeceeeceeeseceessseaseeesseseceessueseeeeesseaeeseesssaeseeessaageeess 25  Figure 2 9   Connecting menu SClECHONS se ER RE EER Doe Ee DER entuty De AS Re DE De ol 26  Figure 2 10  Connecting the Play LEGS          see se ee RE ee e
99. l Flow    Play Behavior  v     li    gt     Figure 4 12   Final Personalization Recipe    Remember  this application utilizes a database  which is not a standard part of the IC runtime environment  For    runtime when you test your recipe  be sure that an appropriately configured database is present     To test the finished application  call the system from two different phone numbers and give two different  account numbers  When you call back from either one of the phones  you ll hear the account number    associated with that specific phone     Congratulations again  With the personalization recipe  you have developed the framework for many powerful    applications     September 2013 Copyright    2013 Convergys  All rights reserved     55    Recipe 5  Accessing Web Services    Approximate time  45 minutes  depending on prior experience  What you will learn with this recipe    e How to use Web Services   e What a WSDL is   e How to create a web services library subroutine   e How to pass variables to from a subroutine   e Finding the Java methods and attributes   e How to speak the data obtained from a web service   e How to handle errors  Requirements     e Correct version of the Java SE JDK  Standard Edition  development kit on your development  system  The web wizard will remind you which JDK SE version must be used with your IC version     e Internet access on your system  since you will be using a real weather web service to build your  application project     What the 
100. l of our error recovery prompts assuming that the caller will get  up to three tries to get their entry right  If the caller makes a valid entry at any time during the error recovery  process  take the caller out of the menu component  and on to the appropriate menu path they have selected  If  the caller makes three errors without a valid entry  take one of several Max Error exits from the Menu  component  depending on what kind of errors have been made     In this best practices example  we want to present a different help prompt each time the caller makes an error  in that single menu  The first error by the caller will trigger a prompt that provides a basic description of the  problem  and then brings the caller back to the selection state in the dialog  If the caller makes the same entry  mistake again  play a different prompt that gives a bit more detail about the error that the caller made  before  letting them select again  This will hopefully help the caller to get the correct entry in the second try     If the caller still fails to make a valid entry on the third try  exit the DIMF Menu component  and go for more  expert help  This technique makes the error recovery dialog somewhat complex  but this is the most user   friendly process  This technique is called    escalating prompts     and this escalating capability is built into the  DTMF Menu component     To build an escalating error recovery dialog  you simply have to define a prompt group in the DTMF Menu  comp
101. le click an HTML  document to open it for the first time  IC will open the document in a text window  displaying the HTML  source  Opening HTML docs as source is the default behavior for IC     September 2013 Copyright    2013 Convergys  All rights reserved  64    Designing the Weather Report Prompt    Before you code the weather report prompt  the best practice is to design the prompt structure  That helps the  prompt coding to go faster     Here is a sample weather report that can be played to a caller      The current weather in Dallas is partly sunny  and the temperature is 75 degrees  Thanks for calling      To make this sample recipe easier  use only three weather attributes    e weather city  Dallas    e weather description  partly sunny     e temperature    The weather report prompt will have six sequenced TTS prompts        The current weather in      CurrentWeather getCity     This the JavaScript call for the city name    tie    CurrentWeather getDescription     The JavaScript call for the weather description     and the temperature is      CurrentWeather getT emperature     The JavaScript call for the temperature     degrees  Thanks for calling        Note  The text prompts require single quotes  The JavaScript does not     September 2013 Copyright    2013 Convergys  All rights reserved     65    Playing the Weather Report    To construct the weather report prompt     1  Inthe Voice WebWeather diagram  add a Play component to the diagram  and name it  PlayWeatherRe
102. lect  gt  ID   collect_fusjax    Name   SNWSMenu                 General Prompt   Grammar   Standard    Properties    Evens Right click  to Edit  Specify attributes For the prompt group   Comments El  PromptGroup   Default 1  Prompt      would you like the Scope    Nolnput  Prope   no kext    Bargeln     Figure 7 5   Nolnput 1 Prompt Group    Now that the Nolnput 1 Prompt Group has been defined  let   s define the specific prompts  Notice below  Nolnput 1 Prompt Group  we have Prompt     no text defined  Highlight Prompt     no text and you will be able  to define the specific prompt to be played when Nolnput 1 is encountered   See Figure 7 6      E  Properties 22 Int Problems     l console    ea la     amp  Collect  gt  ID   collect_fusjax    Name   SNWSMenu              General Prorript   Grammar I Standard l Froperties   i  Events   e Right click to Edit    Specify Prompt Attributes  Comments El  PrompkGroup   Default 1  Prompt    Would vou like the Type    Message ID w  SO comers Message    A  Prompt   na text pa    Specify a condition or mark a Bargeln occurrence For the prompt     Figure 7 6   Defining a New Prompt  Just as we defined prompts on previous recipes  highlight the Prompt   no text under Prompt Group        Nolnput_1 and define the message to be played  In the Type field  select TTS  For the Expression  use single  quotes and type   Sorry   did not get that  Please speak your selection   See Figure 7 7     September 2013 Copyright    2013 Convergys  All righ
103. ler fails to speak their selection before the entry timer  times out  If a caller doesn   t say anything at all after the menu prompt  that event will increment the Nolnput  counter     MaxSpeechTimeout   This counter increments each time a caller talks longer than allowed  after the menu  prompt  If a caller just keeps talking after the menu prompt  this event will increment the SpeechTimeout  counter     MaxErrors   This counter counts whenever a NoMatch  Nolnput  or Speech Timeout error occurs  This  essentially keeps the sum of the three user error types  For best practices we typically don t want to allow the  caller to make more than three errors of any type  After that  we want to go to the event handler  This counter  makes that kind of behavior easy to set up     The time settings for the various    didn t talk     and    talked too long    parameters are defined on the Properties  view of the Collect component  The specifics of these are not covered in this recipe     Error   This counter counts errors that are not NoMatch  Nolnput  or Speech Timeout errors  These are  typically system or programming errors  For example  a TTS error  or a missing audio prompt file  will count as  this type of error  These kinds of errors are usually catastrophic  since it means that the system can t play a  specific prompt  You won t get to set a maximum error count for this condition  The max count for this condition  is forced to one  and you can t change it  You will be able to s
104. lick success since the Play Weather Report component is the successful    Snecity a condition or mark a Barmen nrritrenre For Fhe or        weather report path  On the next page  you ll build an Error path  See Figure 5 8     September 2013 Copyright    2013 Convergys  All rights reserved  66    Error Handling    The following types of errors can occur     Caller doesn   t enter a zip code  Caller enters an invalid code     Web service fails  either because the service is down or the connection to the web is not working     For this sample project  you will design the error leg and two error prompts     10     11   12     Zipcode  explaining that the caller has entered an invalid zip code  or didn t enter anything at all   web service fails   In the diagram under the GetZipcode component  add a Play component and label it ZipcodeError   In the Properties view  select Prompt     no text    In the Type field  select TTS    In the Expression field  type    The zip code you entered is invalid       Open the GetZipcode Collect component  On the left side  select the Events option     In the event handler   s Error field  set property from Ignore to Inline  This will configure the GetZipcode  component to have a second exit path for all errors     Connect the GetZipcode component to the ZipcodeError component  and select the Error  connection property that displays     Note  In a production application  the application would probably allow the caller try again for a valid  zip code
105. line 2 3       Package ICS Application          Figure 1 17   Packaging Your Application    The Package ICS Application wizard opens     3  Inthe Project field  accept the default  HelloWorld  and click Finish  In the Package Explorer  a  new Deployment Artifacts folder is created  IC puts all your diagrams  projects  and WARs into the  Workspace folder  HelloWorld  that you specified when you first opened IC     4  Expand the Deployment Artifacts folder  It contains the HelloWorld war file     September 2013 Copyright    2013 Convergys  All rights reserved  17    Recipe 2  DTMF  Touch Tone  Menus    Approximate time  35 minutes  depending on prior experience   What you will learn with this recipe    e Using the DTMF Menu Component   e Defining DTMF Menu Options   e Understanding the Default Path   e Handling Simple Errors   e Leading and Trailing Prompts   e How Events Work    This recipe explains how to build touchtone menus with branching  using a sample news weather sports  application project  When a caller calls into this DIMF automated system  the system prompts the caller with  options for news  weather  or sports  To simplify the coding  this recipe uses a touchtone keypad for the menu  selections instead of spoken commands  the caller can press 1 for News  2 for Weather  and 3 for Sports  After  the caller selects an option  the system will state which service was selected  thank the caller  and exit     Note  Later recipes explain how to use WSDLs to access web ser
106. ller s requirements  In this recipe we will show you how to define a unique exit from the DI MF  menu component if a maximum error count is reached  You can make that exit path do whatever makes sense   in your particular context     In our NWS recipe  the caller hears the following spoken menu      For News press 1  For Weather press 2  For Sports press 3       If the caller makes an error and presses the    seven    key on their phone  gently inform the caller that seven is  not a valid option  Explain that the valid options are one  two  or three  In the other caller error scenario  the  caller fails to make any selection at all after waiting an appropriate time  In this case  firmly inform the caller that  they should press the touchtone key representing their selection  now  The Menu component has all of the logic  to play these help prompts  built in  All you have to do is configure the prompts     If the caller still has a problem after a second try at it  give them a final  third chance to get it right  If they mess  that up too  it   s likely that they need more help than our automated agent can provide  In this situation normally  hand them off to a live operator  to see what their problem is  If you don   t happen to have a live agent handy   for this recipe you can just substitute a prompt saying    this would transfer to a live operator    when that path is  taken     The DTMF Menu component has built in error features that can detect the errors described above w
107. lly placed in  the menu grammar by the grammar editor for a single slot grammar     In the Result Variable entry field  type the result variable  MenuResult  with no quotes   This defines  the name of that document variable     In the Input Mode field  select    voice    since the sample project only allows speech input and no key  input  See Figure 3 6     September 2013 Copyright    2013 Convergys  All rights reserved  38       Properties   5    Ei Problems eT SE    a Collect  gt  ID     collect  sipcem    Name   SNWSMenu                                     Prompt   Grammar  Standerd J properties Ooo l        i    Comments Field Name     Debugger Slot Mame     slot1     Events Specify standard collect attributes     Result Variable  MenuResult    Input Mode     hoth   Max Errors   Max Mo Input   Max Ha Match     Max Speech Timeout     el a  t a a      Fallback    true       Figure 3 6   Standard Collect Properties    Previously  when you set all the error event handlers to Inline  it created an error exit path from the Collect  component  Later in this recipe  after you define some of the ending prompts  you will connect that error exit     Configuring the Case Component    At this point  the system would collect and identify the user s selection  In this section  configure the Case  component to route the selection to the appropriate Play component     1   2     Select the Case component     In the Properties view  gt  General option  gt  Expression field  enter the string
108. lows you to set properties of the ASR engine  DTMF detector  TTS engine  or  Audio playback engine used by the system  These properties include    Nolnput    timeouts  recognition  confidence levels  and other signal processing engine parameters  In addition  you can add and set  new properties specific to a certain engine  For this sample project  accept these defaults     Adding Pre and Post Menu Prompts    1     A oF ER N    10     In the diagram  left click the NewsWeatherSportsMenu DTMF Menu component  The Properties  view displays below     On the left  be sure that the General option is selected    Raise the divider bar between the Canvas and the Properties view   In the General option  select the Prompts tab    Select the Leading subtab    Right click in the edit area  and an option displays     Select Add a new leading prompt group  see Figure 2 4         Fi  d  1   LI     Properties     Ef Problems     amp  DIMF Menu  gt  ID     dtmfMenu fovdey    Name   NewsWeatherSportsMenu     Menu CPrompts standard Properties 2  Events   Right click  to Edit  Comments Trailing   Event  Debugger  Add a new leading prompt group    _    g       aa n      x    si      ES    Figure 2 4   Adding a leading prompt group    Note  The edit area adds a Prompt Group   1 instead of just a Leading Prompt because this allows  different leading prompt lists to be played  depending on some variable such as the caller   s status  or capabilities     You can add several leading prompts to the prom
109. ls E    Then Label E       Heys  Mews  Weather    Weather     ss   ag       sports    Sports       Figure 3 7   Case component properties    Copying a Partial Voice Diagram    Now  you need to add     Three Play components to play News  Weather  and Sports     Goodbye Play component for the ending and error exits    Since you already designed and diagrammed that part of the call flow  you can simply copy those four Play  components from the previous DTMF NewsWeatherSports recipe     1   2     A oo p    In Package Explorer  expand the NewsWeatherSports project   This is the DTMF project    In the applications  gt  voice folder  double click the Voice_NWS diagram file     Now you have two voice diagram tabs  one for the speech NWS project and one for the original DTMF  NWS project     Do one of these   e Inthe DTMF Voice_NWS diagram  select the four Play components and their connectors     e Click in the white space at the edge of the four Play components and drag a select box  around all four components  Be sure to leave the DIMF menu component and the Voice End  component out of the selection box  as their equivalents are already in the new diagram     Check to make sure that the News  Weather  Sports and Goodbye Play components are highlighted   Also include the three connectors between the NWS Play components and the Goodbye component     From the IC menu bar  select Edit  gt  Copy   Click the Voice_Speech diagram tab   Place the mouse pointer to the right of the Case compo
110. ly  since the default exit  simply played    Goodbye    and hung up  However  it kept things simple for our first menu recipe   Inline   Creates a new exit path from the DTMF Menu which allows us to build our own error handler   right on the voice diagram  We normally want to avoid this scheme also  since it would clutter up our  diagrams with all of these individual error handlers  We will normally always want to handle the max  error condition for menus in the same way  with every menu  We would use the inline option only if we  have a unique event handling routine we want to execute on one specific menu    Error   Menu Error   Menu Timeout   Collection Error   Collection Timeout   Host    Except for Ignore and Inline  all of these selections are the name of a predefined Event Handler routine that we    Can use     September 2013 Copyright    2013 Convergys  All rights reserved  78    In reality  there is only one event handler with multiple entry points  which allows you to see all of the global  event processes in one diagram  This makes it easy to change the behavior of a particular event globally   without having to search the diagrams for all of the occurrences of that event process  These standard events  have been selected from extensive experience to be events that commonly occur in most every application     Specifying the Event Handlers for Each Error Condition    At this point  we need to define the specific event handlers that will be executed when any error cou
111. mber 2013 Copyright    2013 Convergys  All rights reserved     68    Recipe 6  DTMF Error Recovery    Contributed by Melissa Tatum   Approximate time  60 minutes  depending on prior experience  What you will learn with this recipe   e What Errors Occur in a DTMF Menu   e What Error Recovery Does  e How to Configure the DTMF Menu Component to Handle Error Recovery  e Global Event Handling  e Defining Maximum Error Counts for the DIMF Menu component     e Event diagrams     Purpose and Usage     What the DTMF Error Recovery Recipe Does    The Menu is one of the most important parts of a dialog system  as that is where we determine what a caller  wants to do  Recipe 2   s NewsWeatherSports  NWS  showed how to present a caller with a menu of choices   using IC s DTMF Menu component  The caller makes a menu selection using the touchtone keypad on the  phone     That first NWS recipe demonstrated the basics of menu selection  but that recipe wasn   t very user friendly  If  the caller made a mistake entering their selection  or waited too long to enter their choice  they are summarily  tossed out of the application with an abrupt    goodbye     There are no second chances with that recipe  We must  do much better  if we want to build an application that people will want to use     This recipe will show you how to modify the original NewsWeatherSports recipe to make it more user friendly   We want to give fumble fingered and slow responding users extra chances to get their keyed ent
112. n below     oe DS    oo        Voice  diagram x Event  diagram     Voice diagram    MaxErrors       Error       Figure 7 1     Copying Components from Speech NewsWeatherSports Voice Diagram    Ok Ok    Pa  i Event  diagram    Voice  diagram 23    QD Sh W S Menu l Mews  a  E SNS Select Ca t    ews  DI Weather  Weather TA    Sports Error    Figure 7 2   Pasted Components into ERSpeechNewsWeatherSports Voice Diagram    September 2013 Copyright    2013 Convergys  All rights reserved  87    Defining the Error Event Messages in SNWSMenu    The next step involves defining the specific error messages for our error recovery dialog  We want to specify  unique messages for the NoMatch  Nolnput and MaxSpeechTimeout errors  We also want to escalate the error  messages if the caller makes a second error of the same kind  just like in the DIMF Menu case     The error messages will be played as long as the number of errors encountered is less that the max number of  Errors defined  see Figure 7 3   We will set the maximum number of errors to 3  just like the DTMF Menu     Select the Collect component  and go to Properties view  gt  General option  gt  Prompt tab  Here is where we  will discover that adding prompts in a Speech menu is slightly different than in the DIMF Menu  You should  see that there is no Event subtab under the Prompts tab  All of the prompts  the original default menu prompt  and the error prompts  are all in the one Prompts tab pane     The original main or default promp
113. n the left of the Properties view  append a row  and  enter a comment such as     This is a Menu Collect Error          Connect the output of the Log component to the Goodbye component  and label that connection    MenuError     The Log component logs the error and also combines all the error exit paths into a single error path to  help clean up the diagram     Typically  you would use a more advanced error handling scheme  but this provides a basic  introduction     For better readability  select the MenuError connector  and then drag it below the other connectors   Connect the Goodbye Play component to the Voice End component and label it End    Save the application project  Any error indicators  red x   s  on the diagram should disappear   Package and deploy the project     When you test this project  remember to speak only the Menu words you added to the grammar     Currently  the voice diagram should resemble Figure 3 9         ET EE g     Voice diagram es  gt     Voice diagram    Hews       a    Weather    Mews    a    Goodbye    Ed SMS Menu SMWYS Select Weste Ca D   gt   Je   MenuResult eS Error l   A      Sports       Sports    Menu Error    Figure 3 9   Completed Speech NWS Voice Diagram    September 2013 Copyright    2013 Convergys  All rights reserved  42    Recipe 4  Personalization and Databases    Approximate time  35 minutes  depending on prior experience  What you will learn with this recipe   e Obtaining a Callers Phone Number Automatically  e Passing Variabl
114. ne menu  except the user input is speech   not a keypad  If the user says an invalid selection  a NoMatch error is generated  If the caller doesn t speak a  response to the prompt within the time allotted  a NoEntry error is generated     However  a speech menu has one additional error condition that DIMF menus don   t have  The new error  condition is called SoeechTimeout  This error occurs if the caller talks too long in response to the menu prompt   A DTMF Menu cant have a    Talk too long    error  since pressing a valid key will make the selection  even if the  key is held down long after the selection is triggered     September 2013 Copyright    2013 Convergys  All rights reserved  86    Developing the Call Flow    Tip  Close all diagrams  and collapse the folders in Package Explorer    Create a new project  and name it ERSpeechNewsWeatherSports  Create a Voice diagram   Open the SpeechNWS recipe project  Recipe   3    Open the recipe s SpeechNWS Voice diagram   Select the following  See Figure 7 1  the selected components have a black box around them    e SNWS Menu   e Case component SNWS   e Four Play Components  News  Weather  Sports  and Goodbye    e Do not copy the lower Error Log component    Right click the mouse on one of the selected components and select Edit  gt  Copy    Open the newly created ERSpeechNewsWeatherSports application and paste the components into  the Voice diagram  see Figure 7 2     7  Reconnect the Voice Begin and Voice End components as show
115. ned after the transfer  and better yet  it  allows us to do something about it  A consultation transfer will let us know about whether the caller was  successfully connected with the called party or not  If the caller was not successfully connected  the IVR  system can take back the transferred call  and give the caller other options which we can define in our voice  response application  However  if the caller is successfully connected to the transferred party  then the  consultation transfer will end the IVR system   s participation in the call  just as the blind transfer does     A Consultation transfer should be used when we aren   t sure whether the transferred number is good or not   This allows us to give the original calling party other options  if the transfer isn   t successful     Bridge transfer   This transfer keeps our IVR application    in the loop    even after a transfer has been  successfully completed  lt lets the application monitor a transferred call  and    take back    that call if it hasn t  ended  caller hung up      The most important feature of the bridged call transfer is the fact that after the transfer has been made  the IVR  system can still    listen    to the original calling parties    audio on the transferred call  The IVR won t recognize the  audio from the transferred  called  parties    line  but it can recognize if the original caller presses a DTMF key  or  speaks a    hot word     Thus if an application requires that a caller have the 
116. nent     Right click the mouse and select Edit  gt  Paste  The four Play components  their connectors  labels   and properties are added to the Speech project     All the Play properties have been copied with the components     Figure 3 8 illustrates your current voice diagram     September 2013 Copyright    2013 Convergys  All rights reserved  40    a eee   AE ER     Voice  diagram 24   Voice  diagram    Voice Begin SAYS Menu SAYS Select       Mews de     sr     Weather      Goodbye          MenuResutt  gt    Sports    S  Pia       Figure 3 8   Copying parts of a Voice diagram    Connecting the Copied Components    To connect the Play components to the rest of the diagram     1     ot ea e O TY    10     11     Select the Case component    Hover to get a connector  then drag the connector to the News Play component   In the connection box  click the Create Conditional Connection option    Select the News option for the label    Repeat steps 2 through 4 for the Weather and Sports exit paths    On the Case component  hover to get a connector    Drag and add the connector to the Goodbye component     Select Create Default Connection  The connection is automatically labeled Error since you  configured it earlier     The Default path is the path that any Case error  the Else clause  will take   Click a white area of the Canvas     Click the Error connector  and then drag the middle of the Error connector below the call flow to make  it easier to view     Save the project     Erro
117. nse system simply connects you  with the bank   s New Accounts customer service representative  With this connection  you have just  implemented a transfer     September 2013 Copyright    2013 Convergys  All rights reserved  99    What are the Various Types of Transfer     This section explains the three basic types of transfers  blind  consultation  and bridge     Blind transfer    This is the simplest type of transfer  The IVR system places a call to a new number  and the  caller is transferred to that new line  At the same time  the IVR application that made the transfer is completely  disconnected from the call  Making a blind transfer usually assumes that the application is finished dealing with  the calling party  and has handed off the caller to be dealt with by a live agent  or another IVR application  If the  application needs to get a transferred caller back if the transfer is unsuccessful  or if the transferred call has  completed  we would use one of the other types of transfer     A blind transfer doesn t give the IVR application any information about what happened with the transferred call   A blind transferred call could ring with no answer  get a busy signal  get a wrong number announcement  or  even get a call rejection  but the transferring IVR application will not know what happened  Only the transferred  party  original caller  will Know what happened with the transfer  since they will be listening to the call   s  progress  Blind transfers are best used w
118. nt diagram ES   mil     lt e Palette   gt     if d   GAT  MenuNoMatch 3 i  MenuMolnput    2 Connections     General     Voice     Services  L  Events he  4B  Event Entry  A Event Return   lt  ll    gt   Figure 6 15   Connecting Event Entry components to Event Process  Label the Event Entry components at this time with the appropriate labels  NoMatchError for the NoMatch  Event Entry component  NolnputError for the Nolnput Entry component  and SystemError for the system  error entry component  See Figure 6 16        Ynice  diagram oS  Event diagram x    HoMatchError se Palette  CROCE Mra      MenuNoMatch 3   l   Event Process  k  Connections  MenuNolnput NolnputError    General  ENON AEA Voice     eo    Services  p   gt  Events       4k  Event Entry  F Event Return         we    Figure 6 16   Connections Completed    September 2013 Copyright    2013 Convergys  All rights reserved  83    It is good practice to play a message to the caller about what happened after a MenuNoMatch or MenuNolnput  event is encountered on the Event diagram  In that way  the caller will know what the problem is  and what to  expect  So add Play components after each of these events  See Fig 6 17        Voice  diagram od  Event diagram   S      E  MOMatCHEFFOF DidMotUnderstandInput  lt e Palette   gt   de ada   a aw   t MenuNoMatch  Z  l  Connections  EMOFACHION 6 ctemnerror MenuNolnput Nolnputerror NolnputReceived L  General         Vopice E  5 a B     eo ae Play    ET  Set Language    dH Subdialog  
119. nter  reached its maximum in the DIMF Menu component  Remember that the DIMF Menu component will keep the  caller in its internal dialog flow until they make enough errors to reach one of these max error counts  or the  caller makes a correct entry   So if we reach the point in the dialog where an error counter has hit the  maximum  the caller has already caused several  or in our case  3  errors     For each of these error counters  use the dropdown list to select an event handler that will be processed if that  counter exceeds its maximum count  The IC event handler diagram will perform a specific task for each  predefined event  and then exit     For this sample recipe  use the Menu Error  Menu Timeout  and Error event handlers  Since these three events  can happen in any menu in our application  the best practice is to have a common handler for all of them     For Error select Error   For MaxNoMatch select Menu Error  For MaxNolnput select Menu Timeout  For MaxError select Menu Error    This process gives us a unique error handler for two error counters  Error and Timeout  and a third exit for  either NoMatch or MaxError counters  Figure 6 10 shows the event handlers selected for best practices     C  Properties 2  FI Problems   El Console  g DTMF Menu  gt  ID     dtmfMenu vopvah    Name   NewseatherSportsMenu     General Select event handleris      Events Error    Error    EnEn NoMatch     FHolnput    Menu Timeout       MaxErrors    iglesias    Figure 6 10   Selecting th
120. oanExtension    GetcustServiceRepExtension    Now  the application is complete and ready to be packaged to create the war file  See Recipe 1     Hello    World     After you complete the package export and create the war file  you are ready to put your application into  runtime  You have now been successful in creating your Basic Transfer Application  Congratulations     September 2013    Copyright    2013 Convergys  All rights reserved     107    Technical support    If you have a technical question or problem related to a Convergys product  refer to your service contract  and or support guidelines for your Convergys representative contact information     If you have a technical question or problem related to a Convergys product  check your service contract and or  support guidelines to find your regional support office location and contact information     You can access RealCare by     1  RealCare Customer Self Service Portal  http   support convergys com irj portal   You must register  to obtain a user name and password      2  Email address  RealCare  TS convergys com  3  Mailing address  17787 Waterview Parkway Attn  RealCare  Dallas TX 75252    Otherwise for assistance  contact technical support in one of these geographical areas     e Western hemisphere  e Eastern hemisphere    Western hemisphere    For 24 hour support  contact the following regional support office     National dialing International dialing    Tel   800  955 4688 Tel   1 800 955 4688 or    Tel   972  4
121. omponent  the system plays   Sorry   did not understand your input  Now   will  transfer you to someone who can help        For NolnputReceived Play component  the system plays     Sorry   still did not receive any input    am going to  transfer you to someone who can help     See Figure 6 18     Note  Remember to connect the Event Entry component with the Play component  Add in a Transfer  component and make the connections from the Play component to the Transfer component  See Figure 6 18     September 2013 Copyright    2013 Convergys  All rights reserved  84    The last error action for this sample recipe is the ErrorAction event  By default  the ErrorAction connects to a  default Event Entry followed by a connection to an Event Return  Delete the Event Return and have the Event  Entry play an Error message and connect to the Transfer component  This is the path that will be followed  when the Error Event handler from the NewsWeatherSportMenu component is processed  This is the path that    is taken for system errors  See Figure 6 19        yoice  diagram    Event diagram 22   s5 Event diagram      HoMatchError  DidWotUnderstandinput  lt e Palette   gt      ae   Qag   in MenuboMatch    Oo T4 TransferTOCSR  2 Connections  l MenuMolnput MolnputError MI ELIBEES IE Wer    General  Error Action p Shes  SystemeError hm C  Voice re             ap Play    PlaysvstermError G Set Language    del  Subdialag  fee  Transfer    3  voice End     Services   Events  Figure 6 19   Completed
122. omponent label when you first add the component  label it later by  selecting the component and pressing the F2 key  rename      6  Connect the Voice Begin component to the Collect component   Connect the Collect component to the Case component     Label this second connection MenuResult  as it represents the passing of the result of the menu  selection to the Case component     Figure 3 2 illustrates the voice diagram at this point           Voice diagram 52  Voice Begin MYNS Menu SMS Select             MenuResutt DE       Figure 3 2   Starting the Voice Diagram Design    This diagram represents the start of the speech input voice script  where the system plays a menu prompt to  the caller  The result of the callers menu selection will be passed to the Case statement  which will branch  execution to the appropriate task depending on the caller s selection     September 2013 Copyright    2013 Convergys  All rights reserved  32    Entering the Collect Component Properties    To define the properties of the Collect and Case components     1     2  3  4   5    Click the Collect component to select it    Beneath the diagram  in the Properties view  gt  General option  select the Prompt tab   Click the Prompt     no text entry    In the Type field  select TTS     In the Expression field  use single quotes and enter the prompt text     Would you like news  weather  or  sports        In a real project  you could add more Prompt Groups to handle various error conditions such as  Noln
123. onent for each of the prompts you want to use  In our case we will have two NoMatch prompts  and two  NoEntry prompts for the basic escalation steps  In each case  the first prompt for an error will be brief  and the  second prompt for the same error will have more detail  If the caller makes a third error during the menu  process  the maximum error count event will occur  Once this third error event occurs  we will use an event  handler process that is external to the DIMF Menu component to deal with that condition  The prompts that are  played after the third error are defined in the event handler outside of the DIMF Menu component     September 2013 Copyright    2013 Convergys  All rights reserved  72    Here is an example of the escalated prompts for when a menu entry error occurs     1  First NoEntry Error        Sorry  but   did not receive any input       2  Second NoEntry Error        Sorry  but   still did not receive any input  Please make your  selection now       3  First NoMatch Error        Sorry  but that is an invalid selection  Please try again       4  Second NoMatch Error        Sorry  that is an invalid selection  Your options are 1 for News  2 for  Weather  and 3 for Sports        We need to create four Prompt Groups to hold these four error prompts  Then we can configure the conditions  under which each prompt will be played  All of this can be done within the DIMF Menu Properties view     To create the four Prompt Groups  go to the Properties view  gt  
124. onent with the mouse and start typing     Configure the DidNotUnderstandInput Play component to play    Sorry   did not understand your input  Now    will transfer you to someone who can help     Configure the NolnputReceived Play component to play     Sorry      still did not receive any input    am going to transfer you to someone who can help   Remember to connect  each Play component with the appropriate Event Entry Component  See Figure 7 16        Event diagram 23   z  Woice diagram  i Event  diagram    DidMotUnderstandinput    CollactionNoMath    eo si    Collection Timet    Erroraction go        a    Figure 7 16   The Updated Event Diagram       NolnputRecenved       Now  from the Voice drawer  add a Transfer component  Make the connections from the Play components to  the Transfer component  See Figure 7 17       Event diagram ii    Voice  diagram SG  Event  diagram    DidNotUnderstandirput    z CollectionNot latch      eo     ui    TransferToCor    Collection Tirneout F         NoInputRecetved Fe    D  DI    Figure 7 17   Transfer Component Added to the Event Diagram    September 2013 Copyright    2013 Convergys  All rights reserved  97    We still need to define what happens on the basic Error Action event  which is the default path taken when the  Collect component encounters a system error condition  Get rid of the Event Return component  and adda  third Play component for the third error path  The Play prompt should play    There has been an error with the  syst
125. onents must have a valid  play expression and be connected to a valid next dialog step      Aa a    Sometimes  a caller has an input error  a caller presses another DTMF key that was not an option  or the caller presses no DTMF key   Or another type of error occurs  For these default errors  the  system plays    Goodbye    and hangs up     Tip  Drag the middle of the DTMF  gt  Goodbye connector handle down below the call flow     6  Save the project  All red X   s should disappear and any corrected Errors are cleared from the  Problems list     September 2013 Copyright    2013 Convergys  All rights reserved  29    Adding Call Control    You have completed the voice dialog portion of the News Weather and Sports application  To complete the  project  add a Call Control diagram to the application project  See the Recipe 1   s call control call flow for an  example  and then complete these steps     1   2     a a ED    Create a Call Control diagram  NWS call folder  gt  New  gt  ICS Call Diagram   In the wizard   s File name  type Call_NewsWS diagram     Note  The file name must be unique  but you could accept the default Call diagram name  The Hello  World project also had a Call diagram  Because these are two separate projects with their own  separate call folders  the Call diagram name would be unique to each application project     However  since you have several Voice and Call diagrams in this sample project  typing a descriptive  name will make it easier to differentiate th
126. option to return to the original IVR  application after a transfer has been made  use the bridged transfer     A bridge transfer also reports information about the call transfer process  including whether the called party was  busy  or didn t answer  In addition a bridge transfer will report how a transferred call ends  indicating whether  the caller or the called party  perhaps a customer service representative  hung up the phone     September 2013 Copyright    2013 Convergys  All rights reserved  100    Use a bridged call transfer if we want to give a transferred caller the option to return to the original IVR  application  after a called party  transferred to party  hangs up  Alternatively  we can allow the calling party the  option to return to the original IVR application anytime during the transferred call  under the callers control  by  using a DTMF key or some other asynchronous event     For this sample recipe  we will be using the simple Blind transfer     What is the Purpose of the Calculate Component     The Calculate component is used to evaluate expressions  and assign values to variables  that are used ina  call flow  The expressions are defined in ECMAscript  In this recipe  we are using the Calculate component to  simply assign department phone numbers to specific variable names  and those variable names will be used in  the Transfer component  With that being said  lets get started on our call flow     Developing Call Flow    Start by opening IC and creating
127. ou should define a specific  prompt for that group  You will notice below Prompt Group Nolnput_1   there is Prompt   no text defined   see Figure 6 5   This will create the location for our first error prompt  which will be played on the first Nolnput  error by the caller     C  Properties 2  Ek Problems   E  console a    rO    A DTMF Menu  gt  ID   dtmiMenu_vopvah    Name   NewsWeatherSportsMenu              General  Menu   Prompts   Standard   Properties    Events Right click to Edit   l l ee Specify Prompt Attributes  Comments   Leading    Trailing   Event    Type    Message ID    f   Prompt Group   NoInput_i       Fallback Text       f    Specify a condition For the prompt     1    September 2013 Copyright   2013 Convergys  All rights reserved  74    Figure 6 5   Defining a new Event Prompt    Figure 6 5 shows the newly created prompt in the first Prompt Group  We still need to define the specific  properties of that prompt  particularly what it will play  Just like defining prompts on previous recipes  highlight  the Prompt under Prompt Group     Nolnput 1 and define the message to be played in the Prompt Attributes  fields  Notice that we are again using TTS as in previous recipes to avoid having to record actual audio  prompts  Therefore for Type select TTS from the dropdown box rather than using the default Message ID  For    this first Nolnput error condition  use single quotes and set the prompt expression to     Sorry   did not receive  any input     See Figure 6 6
128. our SpeechNewsWeatherSports speech menu just as user friendly as we made our  DTMF Menu  The same philosophy about retries  escalating prompts  error counts  and centralized event  handling applies to soeech menus just as it does in keypad menus  We want to make sure those users who  don t enunciate clearly enough  or are hesitant to proclaim their choice  will have more than one chance to get  their selection right  See the first few sections of the Recipe 6 on DTMF error recovery     As with the DTMF Menu  we will try to show what we consider best practices in dealing with errors that callers  often make when selecting menu choices using speech  This recipe will focus on using the Collect component  to implement those best practice error recovery schemes     We have already discussed much about error counters and event handlers in the previous recipe  so we won t  go into that much detail here  We will assume that you understand the basics of the event handler  and will just  touch on the differences from the DTMF Menu component error handling  Our goal will be to come up with a  user friendly Soeech menu dialog structure that you can reuse in any application     What does Error Recovery Actually Mean     There are three speech errors that can occur in the Collect component     one more than what can occur in a  DTMF Menu component  Two of the speech menu errors are the same as in a DTMF Menu   NoMatch  and  NoEntry  The meanings of these errors are the same as in a touchto
129. ources  E  scripts   2 WebContent    Figure 1 3   Getting Started screen    September 2013 Copyright    2013 Convergys  All rights reserved  3    Creating a New Voice Diagram  1  Inthe Package Explorer  click the plus sign     by the applications folder to expand it   2  Right click the voice folder   3  Hover over New  and then select ICS Voice Diagram  See Figure 1 4     Note  Figure 1 4 has many diagram options  Several are described in other recipes     E Package Explorer 2 OO    Ae Y       i Hellowarld  E i applications          b gt  call  HE process   E config  BIS Application Project  H E debugger  30 Into    ICS Library Project        resources Open in New Window si Ge Era  riese show In Alt ShiFt w PR Diagram     gt  WebContent   J  Copy Ctrlec ir ICS Voice Subroutine Diagram  Es Copy Qualified Name pea ITS Voice Block Diagram      Paste Ctrl Ag ICS Call Diagram     Delete Delete a ICS Call Subroutine Diagram  a ICS Call Block Diagram  i Fl  a pa ICS Process Diagram  Refactor Glk  Shirk T F    fat IC5 Process Subroutine Diagram    b     Figure 1 4   Creating a Voice Diagram    September 2013 Copyright    2013 Convergys  All rights reserved     The New ICS Voice Diagram window opens  see Figure 1 5       it New ICS Voice Diagram   aI     ICS Yoice Diagram    Og d Cd    Create anew ICS voice Diagram     E m E    Enter or select the parent Folder     Helloworld applications voice        2 Helloworld  E i applications  L  call    gt  process     gt  voice  HI config  FI
130. pective opens in Eclipse     2  When IC opens  close the Getting Started tab  You can read it another time     3  From the IC menu bar  select File  gt  New  gt  ICS Application Project  See Figure 11     it Interaction Composer   Interaction Composer Studio        wie Edit Source Refactor Navigate Search Project Run Window Help  Hew AlESPIFEER d E  1C5 Application Project      ICS Library Project     FP  Project       Open File          red TLS Voice Diagram    ER Cerise   ae ICS Voice Subroutine Diagram  eels Voice Block Diag        E  E          Figure 1 1  Creating a new application project    September 2013 Copyright    2013 Convergys  All rights reserved     The New ICS Application Project wizard opens  see Figure 1 2     In the Project name field  type the project name  For this recipe  type HelloWorld    Note  The project name has no limit on length  but it cannot have spaces  The name must be unique  and cannot already exist in your workspace  The best practice is to name the project the same as your    workspace  For example  the workspace HelloWorld would have the project name HelloWorld and the  workspace Banking would have the project name Banking     Typically  check the Use default location checkbox  This is checked by default  This will put the  project into your default workspace folder     it New ICS Application Project    ICS Project    Create a new ICS Project    Project name    Hello orld    Use default location      C  Documents and Settings UserNamer wo
131. pleted Speech NWS Voice Diagram             cccccccsessecccecceeceeeeeeceeeeeeeeeeseeeeeeeeeessaeeeeeeeesessaaaeeeeeees 42  Figure 4 1   Defining the ANI Variable Name              cccccscscccccssssesceecseeeceesceeeeceeeseeesceceesueaseeeesseaaeeeessaegeeeseessaeeeess 45  Figure 4 2   Passing the Caller Phone Number variable               cccccccecccccecceeeeeeeeeeeseceeseeeeseeeeessaeeesessueseeeessaaeeeees 45  Figure 4 3   Naming the Passed Variable               ccccccccssseeeeeceseeeceeeeeeeseceescaeeseeeeesseeeseessaeaeeeeesseaeeeesssaaageeessaaeeeess 46  Figure 4 4   The Database Query and the Database PropertieS          sees ee ee Ee ee Ee ee ee ee ee ee RE ee ee ee Ee ee ee 47  Figure 4 5   Checking the Database Query Result           sees ee ee ee EE Ee ee Re ee ee ee ee RE ee ee ee ee EE ee ee ee ee ee Ee Ee 48  Figure 4 6   Connecting the Found Path          ees sesse ee EE ee EE Ee ee ee ee ee ee ee ee ee ee ee ee ee Re ee ee ee Ee ee ee ee ee ee ee ee EE ee 50  Figure 4 7   Collect Prompt Propertie S         eise ee ee ee ee ee EE ee ee EE ee ee ee ee ee Re ee ee ee ee Ee ee ee ee ee ee EE Ee ee ee ee ee EE ee ee ee 51  Figure 4 8   The Collect component DTMF Grammar propertie S          ees ee Ee ee Ee ee ee ee ee ee Re ee ee ee ee ee 52  Figure 4 9   Naming the Collect Component Result Variable         esse ee EE Ee ee ee ee RE ee ee ee ee ee ee ee 52  Figure 4 10   Get Account No  and Database Edit components           ees ee ee ee AR Re ee ee ee ee ea EE ee
132. port   In the Prompt Group  add six additional the prompts for the multi part weather report  See Figure 5 8   3    For Type for each  select TTS  The text prompt expressions require single quotes  The JavaScript  does not   You can copy below for each prompt  However  manually type in the single quotes       The current weather in      CurrentWeather getCity     This the JavaScript call for the city name       is      CurrentWeather getDescription     The JavaScript call for the weather description       and the temperature is       CurrentWeather getl emperature     The JavaScript call for the temperature      degrees  Thanks for calling             Voice WebWeather  diagram E3             ma  Getzipcode GetWeather PlayweatherRepart    IE  IE       eF  C  Properties 27     Problems   El Console  e     E  a Play  gt  ID   play_xuwzov    Name   PlayWeatherReport   n A  General Prompt   Standard      Events Right click  to Edit  Ed Specify Prompt Attributes  Comments    Prompt troup    on in  Type  ITs    Debugger Prompt      The current weather i Yp  Prompt   ene eee Expression       degrees  Thanks For calling      Prompt   is  Prompt   Currentyeather getDescriptiont   Fallback Text       Prompt      and the temperature is  Prompt   Current eather  getTemperaturet       Prompt      degrees  Thanks For calling       lt  ii    Figure 5 8   Playing the Weather Report    4  Connect the Get Weather component to the Play Weather Report component     5  For the connection option  c
133. pplication Project wizard opens  In the Project name field  type SoeechNewsWeatherSports   Tip  Remember  no spaces in the project name     4  Click Finish  The project is added to the Package Explorer   See Figure 3 1      Pi   t  O   Q gt     SS eee    F 3  E Package Explorer 63 5     li Helloworld  H E News WeatherSports    Figure 3 1     Creating a New Project    5  Create a Voice_Speech diagram for this application project  See Recipe 1   s    Creating a New Voice  Diagram        Create a Call Speech diagram  also described in Recipe 1     Point the Dialog component of the Call_ Speech diagram to the Voice Speech diagram that you just  created     8  Save the project  and the red x   s should disappear     Now  you can build a speech enabled menu to let the user speak their selection for news  weather  or sports     September 2013 Copyright    2013 Convergys  All rights reserved  31    Adding components  To add components   1  At the top of the Canvas  select the Voice_Speech diagram tab   2  From the Palette   s Voice drawer  double click a Collect component to add it to the call flow diagram     Note  The Collect component is similar to the DTMF Menu component except that the caller can speak  a menu selection instead of keying it in on a touchtone phone     Label the Collect component SNWSMenu   This stands for SoeechNewsWeatherSports    From the Palette   s General drawer  add a Case component   Label the Case component  SNWSSelect     Note  If you forget to type a c
134. products  specifications and content described in this document are subject to continuous  development and improvement and Convergys is entitled to change them at any time  Convergys is not  liable for loss or damage of any nature whatsoever arising or resulting from the use of or reliance on  outdated information  Convergys does not warrant that the material contained in this documentation is  free of errors  Any errors found in this document should be reported to Convergys in writing     THIS SYSTEM  SOFTWARE  FUNCTIONAL SPECIFICATIONS AND OR DOCUMENTATION CONTAIN  CONFIDENTIAL INFORMATION AND TRADE SECRETS OF CONVERGYS  USE  DISCLOSURE  AND  REPRODUCTION ARE PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF  AN OFFICER OF CONVERGYS     Any entity or person with access to this information shall be subject to this confidentiality statement  If  you have received this document via e mail in error  please send the e mail to the originator  indicating  that you received it in error  If you have received a hard copy of this document in error  mail this  document in its entirety to Convergys Corporation  201 East Fourth Street  Cincinnati  Ohio USA 45202     Windows NT  Windows 2000  Windows 2003  Windows 7  and Windows 2008 are registered trademarks  of Microsoft     This product may include software developed under Apache Software License  Version 2  Copyright     2004 2013 The Apache Software Foundation  http  www apache org    All rights reserved     Oracle and Java 
135. pt  and all the leading prompts in the list will be  played before starting the menu selection list     In the Leading area  select Prompt     no text   In the Type field on the right  select TTS  see Figure 2 5      Note  Typically  speech is preferred  However  to save time on this sample project  TTS allows you  to deploy and test the application project without having to record the prompts  The prototype  deployment is much easier     For information on all the DTMF Menu component properties  see the Interaction Composer  Users Guide     In the Expression field  use single quotes and type the leading prompt text    Welcome to the  News  Weather and Sports access line      See Figure 2 5      September 2013 Copyright    2013 Convergys  All rights reserved  22    Tip  You can copy the above text and paste it into IC  but manually type the single quotes as the  curly font causes an error in IC     C  Properties 5 2 Problems sd    4    A DTMF Menu  gt  ID     dtmfMenu fovdey    Name   NewsWeatherSportsMenu              General Menu   Prompts   Standard    Properties      Events Right click  to Edit          Specify Prompt Attributes  Comments Leading Trailing   Event         DE   Debugger            Prompt Group   1 zas    Prompt   na text a  Specify a condition For the prompt       lt      lt  ii    gt     Figure 2 5   Leading Prompt Properties    Note  When you click Prompt     no text or save the project  the Expression text displays in the  Leading area     Note  The Fall
136. pt Standard   Properties    General       Events Right click  to Edit  Specify attributes For the grammar     Comments Grammar   builtin dtrnf fdigitsrlenath     Debugger  Weight    builtin dtmF  digits length 4     Figure 4 8   The Collect component DTMF Grammar properties    tl        11  Select the Properties view  gt  General option  gt  Standard tab   12  In the Slot Name field  type    MEANING    including the quotes   13  In the Result Variable  type New_Acct_No  See Figure 4 9   14  In the Input Mode field  select    dtmf              f    Properties Wi   cn Problems Ef   E    collect J ID     collect_balyow    Name   GetAcctNo   General Prompt   Grammar   Standard   Properties       Events Specify standard collect attributes     Comments Field Name     Debugger Slot Mame   WEANING      Result variable New Acct Ho  CInput Mode    demF   Max Errors    4   Max Mo Input    1   Max Mo Match    1    Max Speech Timeout    1    Fallback    true    Al  Al  Al  Al  A  a  Al  a    l    PT  New Acct    Figure 4 9   Naming the Collect Component Result Variable    15  Because this is just a sample recipe for Personalization  in the Properties view  gt  Events option   accept the default error events as Ignore     This is not good VUI practice  as it routes all of the error paths out the same default path as the  success path  Future recipes will explain error handling options and procedures     16  Connect all the components     September 2013 Copyright    2013 Convergys  All righ
137. put or NoMatch  However  for this sample project  leave the error handling to the default  which  will exit after one error with no error prompts or menu reprompts     Unlike the DTMF Menu component  the Collect component does not create separate output legs for each menu  option  As the default  all successful menu selections as well as any error conditions exit the Collect component  in the same default path after setting the result variable     The Case component must inspect and interpret that menu result variable and branch to the appropriate task   This means  however  that there is not any separate default path for an error exit from the Collect component  as you configured for the DTMF Menu component     Error Handling in the Collect Component    At this point in the call flow  two options exist for handling errors     Let all errors go to the Case component along with the valid menu selections  and let the Case  component determine the path  Since the result variable from the Collect component is an ECMAScript  object  data structure   the case statement will have to parse the result variable and then branch to the  appropriate exit     Or    Define a separate error exit in the Collect component by specifying Inline handling of errors in the  Collect component     Note  IC provides additional error handling options  such as an asynchronous error handler process   For more information  see the Interaction Composer User   s Guide     For this sample application project
138. r Handling in Collect    At this point  the easier call flow design would be to route all of the errors to the Goodbye Play component and  then exit  However  the Collect component has five possible error exits  Error  Nolnput  NoMatch  Speech  Timeout  and MaxErrors  If the system logs a Collect error  its helpful to know exactly which of those errors  occurred  You will also need to add a Log component to track the menu errors     To configure the system to log the menu errors     1   2  3   4    D    In the Palette on the right  open the General drawer  click the Log component and release the mouse   Move the cursor below the SWNS Menu Collect component  and then click in the Canvas    Label the Log component ErrorLog    Hover over the Collect component  connect to Log component  and select the first error condition label     Repeat step 4 to connect the other four error exit paths     September 2013 Copyright    2013 Convergys  All rights reserved  41    11   12   13   14   18     For better readability  after you make all the connections  select a connector  hover at the middle point  to get double arrows  then drag the connectors apart and or move the connector labels     Click the Log component  and go to the Properties    view  gt  General option     In the Log Expression column  enter the text MenuResult  no quotes   This will log the contents of the  MenuResult variable  ECMA object  any time a Collect error occurs     Optionally  you can click the Comments option o
139. r select Error   For MaxNoMatch select Collection Error   For MaxNolnput select Collection Timeout  For MaxSpeechTimeout select Collection Error  For MaxErrors select Collection Error    Figure 7 9 shows the appropriate event handlers set for each error counter     E  Properties 23 N Problems   El Console m o      Collect  gt  ID   collect_fusjax    Name   SNWSMenu        General Select event handler s    Events Error    dis    Figure 7 9   Selecting the Event Handlers for the Errors    September 2013 Copyright    2013 Convergys  All rights reserved  92    Setting the Maximum Error Retry Limits    We still need to define the number of errors that we want to allow the caller  before we bail them out of the  Collect component altogether  to get more help  This configuration process is almost identical to what we did in  the DIMF Menu Error recipe  except with speech  we do have one additional error type     the  MaxSpeechTimeout error     With best practices  the Max Speech Timeout max count error is just handled with the same event handler that  does error handling for Max No Match and Max Errors  This makes some sense  since reaching any of these  three max error counts  NoMatch  SpeechTimeout  or MaxError  means that the caller has provided some  input  but just couldn   t get it right  Even after three tries  Only the Nolnput counter represents a different  condition  since a max count condition on the Nolnput counter means that the caller never made any input  attempts at 
140. ractive  dialogs as natural as possible  allowing callers to interact with their information with minimal effort and  frustration  IC lets the developer focus on those issues  Once the main flow has been established  then the  designer can work on lower level issues such as error recovery and database interfaces     Why Should   Read this Cookbook     Each cookbook application is essentially a    recipe    for a common type of application   Read this cookbook   e To learn how to use Interaction Composer to build interactive voice dialogs quickly and efficiently     e To see how Interaction Composer works before committing to learning the language and or to building  a full application  Many developers want to learn a new tool by writing a basic application  without  having to reference all the features and options     e To start developing with Interaction Composer as soon as possible  Pick two or three recipes that are  similar to the kinds of applications you intend to build  Later  you can combine these pieces into your  application     e To get an overview of the features and functionality of Interaction Composer by following a few of the  step by step recipes for simple applications     e To learn dialog design as a beginner  If you have never designed a voice dialog  the cookbook will  lead you through the process  step by step and you can use the Interaction Composer tool to build     e A basic Hello World voice application  e These applications cover the minimum steps
141. re 1 2   New Project Wizard ie ak vs Ve AN EA EN as ke NM ee N AA EE ee EN Se Rea KERN AA Ra wek ed EEN EG Nu Ek SSA waa WRK kes 2  Fidure 13  Gelling started See    so ENE Re EE Ed ee ER GEN ee N EEEE eo Ee ee Ee 3  Figure 1 4   Creating a Voice DiagraM        esse ees see ee RR EE Ee ee ee ee ee ee Re EE ee ee ee ee ee ee ee ee ee Ee ee ee ee ee ee ee ee EE Ee ee ee 4  Figure 1 5   Creating a Voice Diagram file             ccccccccceseececeeceeeeeeeceeeeceeeseeseeeeeeseeeeseeeseaaeeeesseageeeesssaeeeeessegeeeeesags 5  Figure 1 6   First Voice Diagram             ccccccccseseccceeseeceeeseeecsaueeecsaseeessaeeeesseeeessaeeessaueesssageeessageessaseeessaeesessagesessages 6  Figure 1 7   Voice Diagram fileS         see ee EE RE RR EE ee EE Ee ee EE ee ee EE Ee ee EE ee ee EE ee ee EE ee ee ee ee ee EE Ee ee EE ee ee EE ee ee EE ee ee EE 7  Figure 1 8 sAdding an actio GOP    ed re Pd Ee ge ee oo Re Ge reed ee N Dr 8  Figure io IEG IE OC CO se EE DA E GE aden oe 9  Fidite 1  Os D O Es ses ae Ge De EE N Ee ele ei LE RE Ee ee 10  Fidure 1 11  AUTO Arrandement sis vers Ese oa ke oa ge ES Ge ee OG OG es eo Ee ek De 10  Figure 1 12   Defining the So Ui oe EO ER EE N N OE EN 11  Figure 1 13   Final Voice Diagram with Prompt Properties           sees ss es ee ss es ee ee ee ee Ee ee ee ee ee Re ee ee ee ee Re ee ee ee ee ee ee 12  Figure 1 14  Creating a Call Diagram cseiiceseccsectastideoccnacavezssevtegsnoeudaqveeneaseenadeusseneeceeei aaia ara E iais 14  Figure 1 15   Creating a Cal
142. result  This recipe won t use  the value  but naming the variable removes an error flag from this component  Typically  this is  flagged when the variable that holds the menu option that the caller pressed has not been defined     4  For this basic recipe  accept the default settings  See Figure 2 12     e MaxErrors   When set to 1  and 1 input error occurs  the call flow exits the DTMF Menu  component and takes the Default path towards the Goodbye component   See steps below    No error prompts or reprompts will be played  This isn   t the best dialog design  but  for now  it  keeps things simple  A later recipe will handle more user friendly error recovery schemes       Properties 2 3 ci Problems   EE  console s            A DIMF Menu  gt  ID     dtmfMenu gaghah    Name   NewsWeatherSportsMenu     General   Menu    Prompts  Standard   Properties      Specify standard attributes For the menu        Events       Comments Field Name     Debugger      a  Result variable  Ni Sresult    Max Errors    1     s    lt   H     2 HY A    Max Molnput    1   Max MoMatch    1  Fallback    true  Bargeln        Figure 2 12   DIMF Menu Advanced Properties    To fix the    default    error problem    Select the DTMF Menu component    Hover the mouse over the DIMF Menu component to get another connector handle    Drag that connector handle to the Goodbye component    At the pop up menu  select Create Default Connection    In the connector label text box  type the label DefaultError   Play comp
143. ries right  with  some helpful comments along the way  We will try to show    best practices    in dealing with errors that callers  often make when using touchtone menus  We will focus on how to implement those best practices when using  the DIMF Menu component  To understand the error handling aspects of the DIMF Menu component  we will  need to understand more about event processing in components  specifically the Error  Menu Error  and Menu  Timeout events     Also  this recipe will explain event handlers and event diagrams  which is how IC deals with common conditions  that may occur multiple times in a single application  Instead of handling the same condition over and over in  your diagrams which causes lots of diagram clutter  IC provides a mechanism to route commonly occurring  conditions to a central event handler  where the response to a specific common condition can be defined once   in one place  Our goal with be to create a user friendly DTMF menu dialog structure that you can reuse in any  application     What does Error Recovery Actually Mean     When presented with a touchtone menu dialog  callers make two common errors    e Caller makes a selection that is not in the list of valid choices  For example  suppose the caller is  presented with three choices     Press one for News  two for Weather  and three for Sports     If the caller  selects seven  this is an invalid selection  or a NoMatch error  A NoMatch error will occur any time that  a caller makes a sel
144. rkspaces Hellworld      Working sets     Add project to working sets       Figure 1 2   New Project Wizard    If HelloWorld is your first IC application project  the window will not have a Next button  only Finish and  Cancel buttons  If you had created other projects previously in your workspace  the wizard would have  a Next button  which would allow you to link other projects and libraries to this new project  However   the basic HelloWorld application will not need any other projects or libraries  Another recipe will cover  libraries and linked projects     6  Click Finish     September 2013 Copyright    2013 Convergys  All rights reserved  2    7  Inthe Package Explorer pane on the left  click the plus sign     by the HelloWorld project folder to  expand the tree view  Figure 1 3      Tip  You can close any Eclipse views  the various panes in the Eclipse window  that you re not using   for example  you may not need the Outline view for the recipes  If any of the Eclipse views get closed  or rearranged  right click the Interaction Composer perspective box in the upper right corner of the  view  and then select Reset  This resets the window arrangement in Eclipse  It won t delete or change  anything you have entered        it Interaction Composer   Interaction Composer Studio       File Edit Source Refactor Navigate Search Project Run Window Help       ct HOG Or ihe     E Package Explorer 23   O  AS       oe Helloior id    H  applications   L config  E i debugger       res
145. rmation     IVR applications can take advantage of the caller ID capability to simplify and personalize applications   Personalized preferences and interactions such as presentation language  task sequences  reminders  and  immediate access to non sensitive information  can be driven from the caller s ID  which greatly simplifies  regular users    experiences     New caller    For a new caller or someone calling from a new phone  the caller s phone number is not in the  database  If the application   s database query doesn t return a match for the phone number  the application will  assume that the caller is new     e The system will prompt for a four digit account number  play it back to the caller  and then store the  account number in the database along with the caller   s phone number     e When the system adds the callers phone and account numbers to the database  it creates a record in  the database for that caller  Both should be stored in the same database record     Existing caller   When the call is received  the Personalization application captures the caller s ID  phone  number  and then uses that phone number to query the database  The phone number is the    key    to that user   s  record  and the account number is just another field in the caller s database record     e If there is a match for the caller s phone number in the database  the database returns the record     e The application extracts the account number and therefore does not prompt the caller for 
146. see see se ee sees se ee see ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 43  CREATING THE VOICE DIAGRAM cr cotetetedeceasneicatecaedeuseunnasncdodesededeatavosddes beumsensoosengabasunaeanaunaseen souemens lt otecesbaounaeeemenensd 44  CREATING THE CALL CONTROL DIAGRAM         ccccceccssccscccsccscccsccscenscessesceuccuscecceuscessescenscusseuscesscessescesscusseccenceuss 44  PASSING VARIABLES FROM CALL CONTROL TO THE VOICE DIAGRAM           ccccseccssccecccsccuccenccescceuccusceuscenseuscenscenceues 44  CAPTURING NAME LIST VARIABLES IN THE VOICE DIAGRAM    esse sees ee sees ees ees see see see ee ee ee ee ee see ee ee ee ee ee ee ee 46  CHECKING WAS Gorse OE rosie dere de OE OE N OE N N EE EE Ee EE ah OE EO N 47  USING THE IF COMPONENT TO SELECT A PATH          ccccccccsccceccscccuccceccsceuccenccuscencsesssesceccesccessessesseusseuscesscussencsenceuss 48  PLAYING THE ACCOUNT NUMBER           ccccscccscccsccsscccscccceuccusccsceuccesscusseuccesseussesccesseusseccesseusseecsesseusseussenscusseuccenceuss 49  COLLECTING A NEW ACCOUNT NUMBER        c ccscccssccscccsccusceucccsccscenccusseccenccusseucseuscusseuccenccusseuscesscusseuscenccusseuccenceuss 51  STORING THE ACCOUNT NUMBER AND PHONE NUMBER    ees ees ees see ees sees see ees ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 53  SAVING CIO OYE shea cca WEE OE EO EO EE N Ee 54  REMAINING DIAGRAM ERRORS         cccccsssccssccescccscccsscccsccescccsceusccessseucceusccescceusseusccuseceusseusseuscseucseusceuscseee
147. seusceusceeuesens 54   Recipe 5  Accessing WED Services seek e eN ee ev Ri WEN Gee ke ee de We Ee in wee Gee Ee Ge ee ie 56  WHAT THE WEB SERVICES RECIPE DOES oase esse ees Ge Eed Gee Ese Ee Ee ie Gee Ge Se Gee ee ee ee Ee ee ee ee 56  THE  WEB SERVICES WIZARD ee Se Gee N se ese Gee Ee ee ee ee Ee Oe Ee Ge ee Ge re ee oe EO RE GE ee 56  USING THE WEB SERVICES  WIZARD es ee ese oen ees Eie EEEE Ge Ge Gee Oe es ee ee ee Gee ORE GE ee 57  BUILDING TEE WEATHER VER ees ee ee ee oe ee RE ee ee OG EG ee don canal  ee ee Gee Ge ED EE ee 60  CATLINGTHE WEATHER SUBROUTINE ae sees ee ee ee oe Ge Se Ee GE ee N EE Ge 62  FINDING THE JAVA METHODS FOR THE WEATHER OBJECT    ees see sees see sees see ee ee ees see ee ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee 64  DESIGNING THE WEATHER REPORT PROMPT           ees ee see esse ee se ee see es ee ee se ee se ee see ee ee ee se ee ee ee ee ee ea ee ee ee ee ee ee ee ee 65  PLAYING THE WEATHER REPORT NS eo De De ee EP GE EE eee 66  Ede  def VIP 8 ie ET ER EE EE OE N N OE N N ee 67   Recipe 6  DIMF Err  r ReGOVelV    asse eke De cess n seems EEE ee ie ai ee sien ee He 69  WHAT THE DTMF ERROR RECOVERY RECIPE DOES          esse ees ee see see ee ee see see ees ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 69  WHAT DOES ERROR RECOVERY ACTUALLY MEAN         ees ee sees sees es se ee se ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 69  DEVELOPING THE CALLE LOW is esse de see ie ee ee Ee ee ge ee ee Gee Ge ne ee ee ie ese 
148. software framework that supports  application software development     e Eclipse is written primarily in Java for portability  but Eclipse doesn t promote a specific programming  language  The Eclipse framework allows plugin components which can expose a specific programming  methodology  Convergys has designed a plugin for Eclipse that exposes a graphical user interface to  the voice application developer  and that UI is focused on allowing a developer to design voice dialogs  by drawing flowchart diagrams     e To make a developer s job easier  all Eclipse plugin components are bundled into the install program     Then the developer creates a project in IC and draws a flowchart of the application flow in that project  As the  developer designs the flow diagram  IC builds an internal data structure that captures the flow essentials  Each  time the developer saves the flowchart  IC creates various files that contain all of the information defining the  logic flow as well as the data required to display the flowchart icon positioning and connectivity     When finished with the dialog design  the developer saves the project and then packages the application into a  WAR  Web Application ARchive  file  The WAR file will contain all of the files and data necessary to run the  application  including audio recordings  grammars  and SCXML documents  as well as an SCXML browser and  any other runtime processes required to execute the application  This diagram illustrates the packaging
149. st practices error recovery        Properties 2 5  2  Problems   E  console    A DTMF Menu  gt  ID     dtmfMenu vopwah    Name   NewsWeatherSportsMenu        General   Menu   Prompts    Standard    Properties    Events Specify standard attributes For the menu   Comments Field Mame     Result Variable    W   Sresulk  Max Errors    3  Max Holnput    3  Max MoMatch    3    Fallback    true     s    lt   H ey HH HY    Bargeln     Figure 6 11   Defining the number of Errors    Completing the Event Diagram    Just because the IC event handler diagram has predefined entry points for standard dialog events doesn   t  mean that what the event handler does is also standardized  In most cases any of these max count menu  errors would cause a simple explanation prompt to be played  followed by a transfer to a live operator  but it is  easy to add more comprehensive dialogs in the event handler     September 2013 Copyright    2013 Convergys  All rights reserved  80    The Event diagram is located in the voice folder along with the Voice diagram  Double click on the diagram file  in the Package Explorer to display the Event diagram in the main window  See Figure 6 12  The default  Event diagram only has three components     an Event Process component  an Event Entry component  and an  Event Return component     Click on the Event Process component  Gear  to select it  Look at the Properties view to see the Event Process  components    properties  See Figure 6 12  The Event Process has six 
150. t    Would you like the news  weather  or sports     should already be in the  prompt box  We defined this in the original SNWSMenu  and then copied all the components and their  properties from the original recipe  The default Prompt Group holds our initial prompt  which plays the options  for the caller  If you select the default Prompt Group  you will see that the Scope attribute has been set to  Default  This is the Scope you should always use for the standard prompt in a Collect component  as it will  cause that prompt to be played as soon as the Collect component is executed     In the Prompt Group area  right click in a blank space  and select Insert a new prompt group below  see  Figure 7 3   The new Prompt Group will be automatically labeled Default_1  until we change its attributes     C  Properties 5  Hi Problems   EE console  eo      Collect  gt  ID   collect_fusjax    Name   SNWSMenu        General Prompt   Grammar   Standard   Properties E A  Events Right click to Edit    Specify attributes For the prompt group        Ed PromptGroup   Default_1       Comments  Prompt    Would you like the ne Scope    DePaul w  Insert a new prompt group above  o Reprompt   Insert a new prompt group below      Delete this prompt group       Figure 7 3   Adding an Event Prompt Group    Select the new Prompt Group  Its attributes display in the right pane  Just as in the DTMF Menu  this is where  you select the type of error  Scope  for which you want this prompt played  and when in
151. t the parent Folder     Hello World applications call       W   Hellowarld  EE build    gt  settings  E i applications  L  gt  call     process  2 voice  HI config  HI debugger  Fr resources       scripts  2 WebContent    File name    Call HelloWorld diagran dem      Cancel          Figure 1 15   Creating a Call Diagram    4  Inthe File name field  you could accept the unique default name  Call diagram  However  for this  sample project  type Call HelloWorld diagram    5  Click Finish    6  Inthe Package Explorer  expand the call folder  The Call Diagram wizard has created the files    that define a basic default call diagram     Linking the Voice Diagram to the Call Diagram    In the Canvas view  note that the call diagram contains four component icons representing the four basic steps  of a call     call arrival  answer  voice dialog  return  and a call end  Typically  these default steps are all that  most call applications require     In the Package Explorer  notice that a red X appears by the Call HelloWorld diagram file  as well as the call   applications  and HelloWorld folders  This indicates that you must enter a required parameter or attribute before  the application will be complete     In the Canvas view  note that a red X also appears on the Dialog icon  which is the third icon from the left  That  indicates where you must add the required parameter     September 2013 Copyright    2013 Convergys  All rights reserved  15    To clear up the error condition in the c
152. t with a variable prompt to deliver some information to a caller  Now  every time the same  caller calls  the application plays their account number     September 2013 Copyright    2013 Convergys  All rights reserved  49    Connect the components on the voice diagram     1     Select the connection between the Voice Begin and Voice End components     Click the Voice End   s terminating handle  and drag it to the RetrievePhoneNo database component     Connect the RetrievePhoneNo database component to the If component     All of these connections are default connections  so you don t have to make any connection type  selections     Connect the If component to the Play component     Select Create Default Connection since the Else condition of the If component is the default path   Previously  you labeled the Else path Found so the connection is automatically labeled now     On the toolbar  click the Arrange All icon  See Figure 4 6     Play Account Num    Retrieve Phone Ho Check Phone No Found    Ds   S   Se          k    Figure 4 6   Connecting the Found Path    September 2013 Copyright    2013 Convergys  All rights reserved     50    Collecting a New Account Number    lf a caller s phone number is not found in the database  prompt the caller to enter it using the keypad on their  phone  After the system collects the phone number  code the call flow to save the account number with the  phone number in a new record in the database     To capture the callers account number     l 
153. the NewsWeatherSports DTMF Menu component in the voice diagram  In  the Properties view  gt  General option  select the Standard tab  See Figure 6 11  This is where you can set the  properties for the Max Errors  Max NoMatch and Max Nolnput counters     In our original NWS recipe these maximum counts were all set to 1  Change the three max count values to 3   to follow our best practices for DTMF Menu error handling  The caller will stay in the DTMF Menu component  until he either makes a correct entry  or reaches one of the max error limits     Setting the max error counts as shown will allow the caller to have three NoMatch errors  where an invalid  option is chosen   or three Nolnput errors  where the caller experiences a timeout     basically caller doesn   t    key  in    anything   or a combination of these errors that add up to three  which we specify in MaxErrors  If one of  these maximums is reached  the call flow leaves the DIMF Menu component through the error exit and goes to  the event handler     To get a better understanding of MaxErrors  here   s an example  If a caller has two NoMatch errors and one  Nolnput error  then Max Errors will now be three  At this point  we will execute the processing that is defined  for MaxErrors  which we will define in the event handler sections  An easy way to understand MaxErrors is to  realize that this is just a combination of NoMatch and Nolnput errors encountered  Figure 6 11 shows the  completed error count entries for be
154. the TTS engine    can resolve       yoice diagram 23   A  Hellovvorld d      Properties 23   Problems GT Em    a Play  gt  ID     play cuzzog    Name   HelloWorld     General Prompt   Standard  Events Right click to Edit   bel Specify Prompt Attributes  Comments     Prompt Group    Prompt      Hello World    Type    TTS       Debugger  Expression       Hello World       Fallback Text     Specify a condition or mark a Bargeln occurrence For the prompt     Condition       Mark     Figure 1 13   Final Voice Diagram with Prompt Properties    8  From the IC menu bar  select File  gt  Save     Hello World    displays under the Prompt Group     This saves your flowchart and all of the associated attributes  grammars  prompts  other files  and  components and puts them in the appropriate folders under the HelloWorld project folder     Note  Click in the Voice diagram view outside the Play icon  and the Properties view will return to the  overall Properties view     If a red X appears on a component after the Save operation  an error exists with the configuration of  that component  Review the steps you made when you configured that component     September 2013 Copyright    2013 Convergys  All rights reserved  12    Add another Play component  Don t connect it to the other components because you ll be deleting it  This will  just demonstrate how you would complete the Type field for audio messages     For a description of all other options in the Type field  see the Interaction Compos
155. the menu bar  select File  gt  Save  The error condition  red X  should clear   When the voice dialog completes  control will return to the call diagram voice icon and then exit to end the call     Note  The Canvas view now has two tabs above its window  one for the Voice diagram and one for the Call    diagram  You can view either of them by clicking on the tabs  If the Getting Started tab is still there  you can  close it     Packaging your Application    Now  you can bundle the application with the voice diagram and call control diagram into a  WAR file and  deploy it  WAR stands for Web Application aRchive  and this WAR file contains all the components that are    September 2013 Copyright    2013 Convergys  All rights reserved  16    needed to run your voice application on an application server  When you are ready to test your application   deploy this WAR file to an application server     To package all your application files   1  Inthe Package Explorer  right click the HelloWorld project folder   2  Inthe middle of the list  select Package ICS Application  see Figure 1 17      E Package Explorer   3 S O    Call diagram  ES 7      pit  o e EN   Mu       applications TA  H  call  E i process Open in New Window  Ege voice Show In  i AsvncE we i  E AsvncE ve EE Copy      Event  die E3 Copy Qualified Name    Event icx  2  Paste    OE  mo  Voice dia     Delete    Voice ic  al Wworkshes Build Path  b  config Refactor  Dl Ea J  L       lii pg Import       py Export       n  Out
156. the prompt     al    Mark     Figure 1 12   Defining the Prompt    2  Inthe Properties view  be sure the General option is selected on the left       Be sure the Prompt tab is selected   4  Under PromptGroup  select Prompt     no text  On the right  the Specify Prompt Attributes area  displays   5  Inthe Type field  select TTS     Typically  prerecorded audio is better quality at runtime than text to speech  However  for this sample  application project  you won t be recording any prompts  Therefore  specify all audio as TTS  It will be  rendered by the TTS engine at runtime     In an actual project  TTS is useful for playing text that cannot be defined during development  such as     e emails    e web news articles    September 2013 Copyright    2013 Convergys  All rights reserved  11    6  When you select TTS  the field beneath it is labeled Expression   See Figure 1 13      7  Inthe Expression field  use single quotes and type the text of the prompt phrase     Hello World     This  phrase will be rendered at runtime by the TTS engine     Tip  To speed up the development  you can copy the above text  Hello World  and paste it into the  field  However  you must manually enter the single quotes  IC gives an error when you paste from  Word     Note  Spaces are acceptable in phrases     Note  The TTS text can also be a variable or expression that resolves to some text  In this case the  fallback text will be used if the variable or expression fails to resolve to something that 
157. the system will know how to retrieve the WSDL doc     A typical weather web service is provided by the web services company Cdyne  Please note that  Convergys has no control over this web site and WSDL     In the wizard   s WSDL Location field  enter this URL  which is the location of their weather service  WSDL document     http   wsf cdyne com WeatherWS Weather asmx WSDL    A test web page that uses the Cdyne weather web service is located at   http   ws cdyne com WeatherWS Weather asmx op GetCityWeatherByZIP    You can use that browser page utility to view the XML WSDL document that the web service returns     4  Inthe Target ICS Library Project field  enter a name for the weather web service library project  In this  sample library project  enter WebWeatherSvc     5  Atthe bottom right  click Finish     The wizard creates the library project WebWeatherSvc  The wizard will access the WSDL over the  web and place the weather services it created in the new library project folders     September 2013 Copyright    2013 Convergys  All rights reserved  57    It may take a few seconds to create the new library  When it finishes  the folders are listed in the  Package Explorer  See Figure 5 2     8 Package Explorer ES       E       E  Helloworld  E  Mewsweather Sports  Bs Personalization  H E SpeechWews WeatherSports     WebWeathersvc  Bl config  H E javadoc  H E resources  H E EE  El subroutines  H E call       setEndpoint  diagram     setEndpoint icxnil       setTimeout  diagram 
158. third Calculate component labeled GetCustServiceRepExtension  Here just as in the  previous two Calculate components  assign the customer service representatives extension to  transferExtension  This time we assign 6113333 to transferExtension     Now all of the Calculate components are complete  At this point  CheckMainMenuSelection Case component  can attach to the designated Calculate component  again refer to Recipe 3 SpeechNewsWeatherSports for    information on connecting the case component to other components   The updated Voice diagram with the  connections from the Case component to the Calculate components is now in place  see Figure 8 5      oe       mw   gt   Voice diagram        GetNewAcctInfoExtension    NewAcctInfo CQ   D   x     i i CheckMainMenuSelection  PlayGreeting SpeechMainMenu default Ere    CustomerServiceRep    GetCystServiceRepExtension    Figure 8 5   Updated Voice Diagram with Calculate Components    September 2013 Copyright    2013 Convergys  All rights reserved  104    Adding a Transfer Component to the Voice Diagram  Finally  from the Palette   s Voice drawer  add a Transfer component to the Voice diagram  see figure 8 6          n     ei   lt  gt   Voice diagram       lt 2 Palette  Ir EN N  kAAar     GetNewAcctInfoExtension    Connections    OY iet   S General  NewAcctInfo     gt  Voice    C awe Collect  D gs Custom Collect    i j CheckMainMenuSelection DTMF Menu  PlayGreeting SpeechMainMenu default GetLoanExtension  amp              PS Zg Goal
159. ts reserved  52    Storing the Account Number and Phone Number    To store the caller s account number in the personalization database along with the caller s phone number     1     From the Services drawer  add a Database Edit component to the left of the GetAcctNo component     2  Label it StorePhoneAndAcctNo   3  Select the Database Edit component  See Figure 4 10   Et Voice Personalization diagram 7   gt     E    10     Enter the value New_Acct_No result  12     PlayAccountlum  lt j    RetrievePhoneNo CheckPhoneNo         amp  Found ED     P A  o  GetAcctho StorePhonesnd  cctio        Figure 4 10   Get Account No  and Database Edit components    The Properties view  gt  Data Source field defines the database that the system will access  The exact  content will depend on your database schema  Here is an example        java  comp env persdb     The SQL field must contain the query to be executed  and it needs to reference the two parameters in  the SQL INSERT statement  Again  the exact content will depend on your database schema  Here is  an example  enclosed in single quotes         INSERT INTO perstable        VALUES      Note  The SQL statement can   t use any variables unless they are defined in the SQL Parameter area   To the right of the SQL Parameter area  click the Append Row buiton twice    Click in the first Expression row  and then click the ellipsis button  The Expression Editor opens     In the left pane  expand the Document Variables folder and double click t
160. ts reserved  89    E  Properties  3 E  Problems   E  Console rd      a     amp   Collect  gt  ID     collect  fusjas    Name   SNWSMenu                       General Prompt   Grammar   Standard   Properties    Events Right click  to Edit  Mu Specify Prompt Attributes  Comments El  PromptGroup   Default  1  Prompt   Would you ike the Type   demp  raup bees i Expression       Sorry I did not get that  Please speak your selection    al  Prompt      Sorry I did mot get    Specify a condition or mark a Bargeln occurrence For the prompt        a    Mark     Figure 7 7   Completing the New Prompt    Add a second Nolnput error Prompt Group  Then add two escalating NoMatch prompt groups to the Prompt  pane  Finally  add two Speech Timeout prompt groups to the pane  Speech Timeouts are our new type of  error  and they occur when the caller talks too long when making a menu selection  This kind of error can t  happen with a DIMF menu     Remember that we only need two Prompt Groups for each error type  since we are going to set the maximum  error counts for all types of errors to three  So  on the third error we will jump out of the Collect component and  go to the Event Handlers which we will define later in this recipe  The previous DIMF Menu recipe covers the  rationale behind the event handlers in more detail  Also  remember that with the second occurrence of each  error type  the prompt messages get more specific     Make sure that you set the appropriate Scopes  Prompt Counts  and
161. u     ED  General   Menu    Prompts   Standard    Properties    Events Right click  to Edit    Specify attributes For the event prompt group      a  Comments Leading   Trailing   Event      Scope   HolInput    E Prompt Group   Nolnput  1    Frompt   no text Prompt Count    1    Do Reprompt    true    Present As       sequence       t p t t      a Condition    true    Figure 6 4   Nolnput 1 Prompt Group    The Scope attribute for this first prompt is set to Nolnput  which specifies the type of error that will launch  this prompt  The Prompt Count is set to 1  specifying that this particular prompt group should be played  only on the first Nolnput error that occurs  The Condition attribute of true makes this error prompt play  every first time that the Nolnput error occurs  A more complex Boolean expression for this attribute can  vary this rule     Setting the Do Reprompt attribute to true means that the system will play the NewsWeatherSportsMenu  prompts again for the caller after the error prompt  This includes the leading prompts as well as trailing  prompts  If you don t want to play the leading prompt on each error each time  place the leading prompts in a  Play component in front of the Menu component  and take out the leading prompt message from the DIMF  Menu component  In this example  we are choosing to play the leading menu prompt each time  since itis a  part of the DIMF Menu component     After you have finished setting the attributes for our first prompt group  y
162. uilding our custom event handlers by adding two additional Event Entry components onto the  Event diagram  to the right side of the diagram  The Event Entry component is located on the Palette  gt   Events drawer  This gives us three Event Handler entry points total  which will cover the three different error  handlers we want to create  See Figure 6 13     September 2013 Copyright    2013 Convergys  All rights reserved  81        i aa z      Voice  diagram    Eventdiagram 25    2 Palette    Sw        Connections      General      Voice      Services   2 Events  2 Event Entry  4  Event Return          E       Figure 6 13   Adding Event Entry Components to Event Diagram    Defining the New Event Entry Components    Now that we have added in the two new Event Entry components  integrate them into the Event diagram   Select the Event Process component which is the first component in our Event diagram  The Event Process  component properties allow us to configure the Event Action associated with each Event Name  Figure 6 12  shows the Event Process component properties where we can associate the entry points in the Event Process  component to specific Event Entry components     Remember for this recipe  we are only concerned with three events  Error  Menu Error and Menu Timeout  For  two of these error events we will define a different Error Action  rather than using the default of ErrorAction   The default ErrorAction will execute the generic error handler deals with the multitu
163. urns  The ECMAScript expression for the test is RowCount    0  This expression will be  true if the CallerRecord is empty     If the CallerRecord variable is empty  the RowCount will be zero  and the ECMA expression you typed  will be true  If the expression is true  the component will take the exit labeled in the Label field  in this  example  NotFound     If the CallerRecord variable is NOT empty  the call flow takes the Else exit path from the If component   In this example  it is labeled Found to indicate that there was something in the record returned from  the database  See Figure 4 5       Yoice_Personalization  diagram x i Call  Personalization  diagram    RetrievePhoneho CheckPhoneno Al 25 palette   gt     N                    N    D SA      Fe VI Connections  lt 2  id ul      gt  al oe   ER od    Q Properties os     Problems rd do       If  gt  ID     if vekgec    Name   CheckPhoneNo       gt     General Specify conditional Expression and unique name   Comments Row Expression  l  9   Es RowCount   0 d        eXe       id NT    Figure 4 5   Checking the Database Query Result    September 2013 Copyright    2013 Convergys  All rights reserved  48    Playing the Account Number    This technique is used extensively in many applications  so it is useful to understand the process     If the callers phone number is found in the database  the system can use the Database Retrieve component to  retrieve the phone number record from the database  In this example  you named this
164. utes        Events Data Source    java  compensi persdb  Al  Comments Hote  This value will override the default data source value in the DBclient s  c File   Debugger SOL       select   From persdb where AWI   7    Result Variable    CallerRecord    Row Count Variable    RowCount        tl   2      Error Variable    OBError    Specify SOL Parameter    Row Expression Type    B  Ese d    EE    omn     GallerFhonelda       Figure 4 4   The Database Query and the Database Properties    September 2013 Copyright    2013 Convergys  All rights reserved  47    Using the If Component to Select a Path    To check whether the database query was successful     1     a p g ED oN    In the Palette  gt  General drawer  add the If component to the right of the Database Retrieve  component     Label it CheckPhoneNo  See Figure 4 5    Select the If component    In the Properties view  gt  Expression column  type RowCount    0    In the Label column  type NotFound    At the bottom  in the Else Label field  type Found    Specify conditional expression and unique name fields    This defines the exit paths from the If component   e Found   The call flow takes this path if the database query returns a callers record   e NotFound   The call flow takes this path if the query returns empty     To check whether the length of the data in the CallerRecord variable is zero  the Database Retrieve  component provides a RowCount variable that returns the number of rows or database records that  the query ret
165. vices for news  weather  and sports  The  WSDLs extract the appropriate text from a website  which the text to speech engine then plays to the caller   Creating the Project    To keep your workspace simple  collapse the HelloWorld project folders in the Package Explorer and close any  diagram tabs above the Canvas     1  Click File  gt  New  gt  ICS Application Project  The New ICS Application Project wizard opens  see  Figure 2 1       t Mew ICS Application Project    ICS Project    Create a new ICS Project    Project name    News WeatherSports     Use default location      C Documents and Settings UserNemer workspaces Hellaworld      Working sets       Add project to working sets    G 7    C Ca Les     Figure 2 1  Create a new ICS Project   News Weather Sports          2  Inthe Project name field  type your project name  for example  NewsWeatherSports     September 2013 Copyright    2013 Convergys  All rights reserved  18    Remember that there can   t be any spaces in the project name  so News Weather Sports with a  space between the words is not allowed     3  Be sure that the Use default location checkbox is checked  This adds your project to your default  workspace folder along with the HelloWorld application project     Note  A Next button displays on the New ICS Application Project wizard that wasn   t there when  you created the    HelloWorld    application  When you create a library project  its name will be  available in the next window in case you want to link the
166. voice diagram with a telephone call or  other launch process  For the sample HelloWorld application  this higher level is the call control level     E Package Explorer 2 3    gt  O    voice HelloWorld  diagram 22  si Mid Hellovorld                 Helloworld ra   ai  C  sl applications D T4 Dr      gt  EI      G  process LL ICS Application Project  E  voice Go Into    ICS Library Project  EL config Py  Project          Open in Mew Window    El resources As  B E audio 2 Copy Ctrl C ee ICS Voice Subroutine Diagram  HE en US BS Copy Qualified Name   ee ICS Voice Block Diagram  HE systen TE Paste Ctrl z ls ICS Call Diagram  g a Messa a  Delete Delete F    ICS Call Subroutine Diagram    Figure 1 14   Creating a Call Diagram    The call control diagram configures the system to wait for an incoming call  When the call arrives  the system  answers the phone and starts running the voice dialog  If you want  the call control can run several voice  diagrams in sequence  When the last voice dialog is finished  the system ends the call and hangs up     1  Inthe Package Explorer  expand the applications folder   2  Right click the call folder   3  From the list  select New  gt  ICS Call Diagram  See Figure 1 14     The New ICS Call Diagram wizard opens  see Figure 1 15   By default  the call diagram folder is  highlighted     September 2013 Copyright    2013 Convergys  All rights reserved        it New ICS Call Diagram    ICS Call Diagram    Create a new ICS Call Diagram     Enter or selec
167. we ll use the original  NewsWeatherSports application as our starting point  and then just add the error recovery dialog to it     To prepare this new Voice diagram for the NWS components we are going to insert  stretch the Voice Begin  and Voice End components apart  and delete the connector  You will be pasting the old NWS recipe  components in between the Voice Begin and End components    Now go back and open the original NewsWeatherSports recipe  Then launch that recipe   s Voice NWS diagram  from the Package Explorer window  You should have the old recipe   s Voice diagram showing in the main  diagram window  Select the NewsWeatherSportsMenu component  as well as the four Play Components   News  Weather  Sports  and Goodbye  all at once  You can select all of the components by starting at one    September 2013 Copyright    2013 Convergys  All rights reserved  70    corner and dragging a box around the components you want to select  or use Control click to select unselect  each component individually  You don   t need to select the green Voice Begin or red Voice End components   as those components are already in our new project     After the components are selected  you will see that they have a black box around them   right click the mouse  on one of the selected components and select Edit  gt  Copy  see Figure 6 1   Then  go back to your newly  created Error Recovery NewsWeatherSports application and paste the components into the Voice diagram   see Figure 6 2   NOTE  
168. ye component to the Voice End component  You don   t need to label the  connector     This will end the dialog after the Goodbye prompt     3  Save the project to clear all but one of the errors  The diagram should resemble Figure 8 11     F e      yoice diagram   3  gt         7 Mews    Weather    News Weather Sports wenn T4           Figure 2 11   Connecting the dialog    Diagram Errors    If you ve configured all the components correctly  only one red X should remain on the diagram   s DTMF Menu  component     To investigate any problems in the diagram   1  Beneath the Canvas  select the Problems view  next to the Properties view    Note  This view lists all problems in a diagram  no matter which component is selected in the diagram   2  Expand Errors  Two required features of the DTMF Menu are missing  default and resultVariable   In the diagram  click in the white space or on another component     In the Problems view  double click one of the Error rows  The DIMF Menu component is selected in  the diagram  To correct these two errors  see the next section     lf another component has a red X on it  one of its required attributes may not be configured correctly     September 2013 Copyright    2013 Convergys  All rights reserved  28    Handling Menu Errors   To fix the resultVariable error   1  Select the DTMF Menu icon in the diagram  and then click the Properties view   2  Select the Standard tab     3  Enter a variable name in the Result Variable field  for example  NWS
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Princess Water Machine Plus  LEPA B450-MB power supply unit  C.A.S. - Analyzer      Samsung SGH-E900 Uživatelská přiručka  Archer FAQs PDF  警報設定器  100906 catálogo int de enfe y cuadro basico  Instructions techniques d`installation et d`entretien    Copyright © All rights reserved. 
   Failed to retrieve file