`Britton et al.
`
`54
`
`(75)
`
`METHOD AND APPARATUS FOR
`GENERATING COMPUTER-CONTROLLED
`INTERACTIVE VOICE SERVICES
`Inventors: James T. Britton, Aberdeen, N.J.;
`Lorraine Figueroa, Brooklyn, N.Y.;
`John F. Patterson, Morristown;
`Robert I. Rosenthal, Wayside;
`Richard R. Rosinski, Middletown, all
`of N.J.
`Assignee: AT&T Information Systems Inc.
`American Telephone and Telegraph
`Company, Murray Hill, N.J.
`Appl. No.: 710,605
`Filed:
`Mar. 11, 1985
`Int. Cl."......................... G10L 5/00; G06F 15/20
`a
`364/513.5; 364/300
`Field of Search ................ 379/93, 91; 381/51-53;
`364/513.5, 300, 456,516
`References Cited
`U.S. PATENT DOCUMENTS
`4,060,848 11/1977 Hyatt ..................................... 381/51
`4,084,237 4/1978 Beachem et al.
`... 364/400
`4,315,315 2/1982 Kosslakoff .......................... 364/300
`4,455,619 6/1984 Masui et al. ...
`...... 364/900
`4,553,222 11/1985 Kurland et al. ..................... 364/900
`
`73)
`
`21)
`22)
`51
`52
`58)
`
`56)
`
`Patent Number:
`11
`(45) Date of Patent:
`
`4,785,408
`Nov. 15, 1988
`
`4,602,129 7/1986 Matthews et al. .................... 379/89
`Primary Examiner-Emanuel S. Kemeny
`Attorney, Agent, or Firm-John A. Caccuro
`57
`ABSTRACT
`A user-application program for computerized telephone
`ordering is generated by a system designer who selects
`and interconnects pre-defined program modules and
`subroutines using a graphics terminal. The application
`program allows TOUCH-TONE input data and voice
`response. The present invention describes a Dialog
`Production System (DPS) for generating application
`programs for instructing a computer-controlled voice
`response system to provide computer-controlled voice
`services. The DPS includes interaction modules, each
`defining a basic end-user transaction which can be per
`formed by the system, and methods for specifying mod
`ule interconnection. Each interaction module controls
`the intercommunications with other modules and con
`trols the devices which interface to the system. To
`design a dialog program to implement the desired voice
`service the system designer uses a graphic terminal to
`select and interconnect the modules to define the se
`quence of transactions needed to implement the desired
`voice service.
`
`9 Claims, 24 Drawing Sheets
`
`
`
`
`
`
`
`O
`
`
`
`
`
`
`
`
`
`
`
`
`
`DIALOG
`TERMINAL
`
`DIALOGPRODUCTION -109
`PROGRAM
`
`DPS
`PROCESSOR
`
`APPL
`PROGRAM
`
`08
`
`BUSINESS
`COMPUTER
`
`07
`
`Page 1 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent
`
`4,785,408
`
`
`
`
`
`
`
`
`
`Page 2 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 2 of 24
`
`4,785,408
`
`FIG 2
`
`
`
`2O
`
`
`
`2O2
`
`
`
`2O3
`
`
`
`204
`
`CALL, DPS
`
`INITIALIZE DPS
`TERMINAL
`
`DISPLAY WINDOWS
`
`INITIALIZE TREE
`DATA STRUCTURE
`
`DISPLAY TREE
`
`
`
`Page 3 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 3 of 24
`
`4,785,408
`
`FIG. 3
`
`GA) FROM FIG. 2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`WAIT FOR
`TERMINAL INPUT
`
`MODE
`WINDOW
`INPUT
`
`GLOBAL.
`WINDOW
`INPUT
`
`INSERTION
`NINDOW
`INPUT
`
`EDIT
`COMMAND
`NINDOW
`
`PROCESS INPUT
`FROM MODE WINDOW
`F.C. 3
`
`PROCESS INPUT TO
`GLOBAL WINDOW
`FIG 11
`
`PROCESS INPUT TO
`INSERTION WINDOW
`FIG 5
`
`PROCESS INPUT TO
`EDIT COMMAND
`WINDOW
`
`Page 4 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 4 of 24
`
`4,785,408
`
`
`
`NAVIGATION
`WINDOW 1
`INPUT
`
`NAVIGATION
`INDOW 2
`INPUT
`
`FORM
`WINDOW
`INPUT
`
`FILE
`WINDOW
`INPUT
`
`PROCESS INPUT TO
`NAVIGATION
`WINDO
`FIC, 8
`
`PROCESS INPUT TO
`NAVICATION
`WINDOW 2
`FC, O
`
`PROCESS INPUT TO
`FORM WINDO
`FIG 9
`
`PROCESS INPUT TO
`FILE NINDOW
`FIG, 12
`
`Page 5 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 5 of 24
`
`4,785,408
`
`PROCESS INPUT TO
`INSERTION WINDON
`
`SELECT INTERACTION
`MODULE
`
`SELECT LOCATION
`IN TREE WINDOW
`
`SOO
`
`FIG 5
`
`5O1
`
`5O2
`
`MAKE A NEW
`NODE FOR MODULE
`
`503
`
`BRANCH
`OR
`SNITCH
`
`
`
`505
`MAKE ADDITIONAL
`NODES FOR MODULE
`
`MAKE EXTRA
`NODE FOR
`MATCH MODULE
`
`MAKE NODE
`FOR LOOP
`BACK DISPLAY
`
`506
`
`5
`
`SO
`
`S 1
`
`
`
`YES
`
`ERROR
`
`DISPLAY UPDATED
`TREE
`
`RETURN
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 6 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent
`
`Nov. 15, 1988
`
`Sheet 6 of 24
`
`4,785,408
`
`FIG 6
`
`PROCESS
`INPUT
`TO EDIT
`COMMAND
`WINDOW
`
`DETERMINE
`OBJECT
`IN WINDOW
`INPUT TO
`
`RETRIEVE WHICH
`MODULE
`TO DELETE
`
`
`
`RETRIEVE WHICH
`MODULF
`TO MOVE
`- -
`290
`RETRIEVE WHICH
`MODULE
`TO COPY
`614
`RETRIEVE WHICH
`BRANCH
`TO DELETE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DELETE
`BRANCH
`
`67
`-4 -
`RETRIEVE WHICH
`RETRIEVE WHERE
`BRANCH
`->
`TO MOVE
`TO MOVE
`THE BRANCH
`62 -4 -
`RETRIEVE WHICH
`RETRIEVE WHERE
`->
`BRANCH
`TO COPY
`TO COPY
`BRANCH TO
`
`
`
`
`
`604
`PERFORM
`DELETE
`MODULE
`FUNCTION
`
`RETRIEVE WHERE
`TO MOVE
`THE MODULE
`-61
`RETRIEVE-ERE
`TO COPY
`MODULE TO
`bits,
`PERFORM
`DELETE
`BRANCH
`FUNCTION
`618
`
`
`
`
`
`PERFORM
`MOVE
`MODULE
`FUNCTION
`
`/612
`E.
`MODULE
`FUNCTION
`
`PERFORM
`MOVE
`BRANCH
`FUNCTION
`
`
`
`PERFORM
`COPY
`BRANCH
`FUNCTION
`
`Page 7 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 7 of 24
`
`4,785,408
`
`
`
`(C) FROM FIG, 6
`
`FROM FIG. 6 (D)
`
`FIG, 7
`
`7OO
`
`ADD
`BRANCH
`
`YES
`
`RETRIEVE WHERE
`TO ADD
`BRANCH
`
`PERFORM ADD
`BRANCH
`FUNCTION
`
`RETRIEVE
`TOP OF THE
`LOOP NODE
`
`705
`A
`RETRIEVE
`BOTTOM OF
`THE LOOP NODE
`
`
`
`
`
`-4
`PE
`LOOP
`FUNCTION
`
`RETRIEVE
`WHERE TO
`FIX END
`
`
`
`PERFORM
`FIX END
`FUNCTION
`
`NO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DISPLAY
`TREG
`
`
`
`Page 8 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 8 of 24
`
`4,785,408
`
`PROCESS INPUT TO
`NAVIGAION WINDOW
`
`8OO
`
`DETERMINE OBJECT
`
`N WINDOW INPUT TO I
`
`8O
`
`FIG, 8
`
`8O2
`
`807
`
`ND
`
`NO
`
`809
`
`YES
`
`8
`
`NO
`
`YES
`
`808
`
`YES
`
`PERFORM
`SCROLL UP
`
`81 O
`
`PERFORM
`SCROLL
`LEFT
`
`812
`
`PERFORM
`SCROLL
`RIGHT
`
`NO
`
`8, 13
`
`SCRO
`DOWN
`
`YES
`
`
`
`84
`
`PERFORM
`SCRO
`DONN
`
`8, 15
`
`YES
`
`8 6
`
`DISPLAY
`TREE
`
`RETRIEVE WHICH
`MODULE
`TO DISPLAY
`
`804
`
`DISPLAY
`LEVEL 2
`NAVIGATION
`WINDO FIG,
`805
`
`O
`
`DISPLAY
`LEVEL 2
`FROM FIC. 9
`
`DISPLAY
`ERROR
`MESSAGE
`WINDOW
`
`RETURN
`
`RETURN
`
`Page 9 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 9 of 24
`
`4,785,408
`
`900
`PROCESS INPUT TO
`FORM WINDON
`
`90
`DETERMINE OBJECT IN
`NINDOW INPUT TO
`
`902
`
`903
`N
`
`FIG, 9
`
`
`
`
`
`
`
`NO
`
`
`
`DISPLAY
`MESSACE
`TO USER
`
`906
`ANNOUNCEMENT
`OR PROMPT
`
`
`
`907
`
`GO TO
`RECORD
`
`RETRIEVE
`ANNOUNCEMENT OR
`PROMPT NAME
`
`
`
`
`
`START
`RECORDING
`
`9
`
`YES
`
`PERFORM RECORD
`FUNCTION
`
`RETURN
`
`RETURN
`
`Page 10 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 10 of 24
`
`4,785,408
`
`FIG. O
`
`OOO
`
`PROCESS INPUT
`TO NAVICATION
`WINDOW 2
`
`DETERMINE OBJECT
`IN WINDOW
`INPUT TO
`
`
`
`
`
`OO2
`
`RETURN
`TO LEVEL
`
`
`
`
`
`1005
`
`
`
`DO
`LEVE 2
`FORM
`
`RETURN
`
`DISPLAY
`LEVEL 1
`WINDONS
`
`DISPLAY
`TREE
`
`DETERMINING
`FORM
`TYPE
`
`DISPLAY
`FORM
`FUNCTION
`
`Page 11 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 11 of 24
`
`4,785,408
`
`FIG.
`
`11 OO
`
`PROCESS INPUT
`TO CLOBAL WINDON
`1D
`DETERMINE OBJECT
`IN WINDON
`INPUT TO
`
`1 102
`
`1 103
`
`11 O5
`
`YES
`
`YES-
`
`QUIT
`COMMAND
`
`NO
`
`SAVE
`COMMAND
`
`NO
`
`RETRIEVE
`COMMAND
`
`
`
`YES
`
`NO
`
`1107
`
`HELP
`COMMAND
`
`YES
`
`NO
`
`RETURN
`EXIT CODE
`
`O4.
`
`SAVE
`CURRENT
`DIALOG
`
`1106
`
`SEFE.
`DIALOG
`1108
`
`Bill
`APPLICABLE
`HELP MESSAGE
`
`Page 12 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 12 of 24
`
`4,785,408
`
`FIG 2
`
`
`
`
`
`
`
`PROCESS INPUT
`TO FILE WINDOW
`
`DETERMINE OBJECT
`IN WINDON INPUT TO
`
`RETRIEVE DIALOG
`NAME
`
`
`
`
`
`2O3
`
`UPLOAD
`DIALOG
`
`DOWNLOAD
`DIALOG
`
`
`
`
`
`START
`DOWNLOAD
`
`
`
`PERFORM
`UPLOAD
`FUNCTION
`
`PERFORM
`DOWNLOAD
`FUNCTION
`
`Page 13 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 13 of 24
`
`4,785,408
`
`FIG, 3
`
`PERFORM
`EDIT
`FUNCTION
`
`
`
`PERFORM
`INTERPRET
`FUNCTION
`
`PERFORM
`TUTOR
`FUNCTION
`
`PERFORM
`INSTAL
`FUNCTION
`
`PROCESS INPUT TO
`MODE INDOW
`
`
`
`DETERMINE OBJECT
`IN WINDOW
`INPUT TO
`
`
`
`
`
`
`
`
`
`
`
`
`
`3O6
`N TUTOR
`MODE
`
`
`
`
`
`RETURN
`
`Page 14 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent
`
`Nov. 15, 1988
`
`Sheet 14 of 24
`
`4,785,408
`
`
`
`Page 15 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent
`
`
`
`Z
`
`wae
`
`>——————————————— º | | |—————————————————
`
`wae
`
`wae
`
`4,785,408
`
`
`
`?0NWWW.00 TW8010
`
`Page 16 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`US. Patent
`
`Nov. 15, 1988
`
`Sheet 16 of 24
`
`4,785,408
`
`HOLIAS
`
`
`
`
`
`ANSFONONNYTaKONd
`
`1037109
`
`SAIGON
`
`Viv
`
`
`
`JONVHOXIJOIOA
`
`TWO
`
`INVONSLLV
`
`—————SNOUd0M09YaHLO
`
`JNOJ1NdOW
`
`JAOW
`
`313130
`
`J1NQ0W
`
`Ad00AO
`
`
`
`HONVUGHONVUS
`
`313130
`
`HONVUA
`
`TW9
`
`INVONSLIY
`LNAWSONONNY
`
`(Nad00]
`
`Xld38019
`
`aay
`
`HONVUG
`
`G09]
`
`9OL09\
`
`
`
`SONVWAODNOILVOIAVN1W3A01
`
`$04d8JINGOW
`
`idW0Ud
`
`HONVUE
`
`d001
`
`40044u
`
`ADIOA
`
`QNVAWODVY10374S
`
`BIAd
`
`92091
`
`40071
`
`idWQud
`
`1047109
`
`Lavis
`
`LNAWIONONNY
`
`agivid
`
`TIVISHIBOLI
`
`Lind3H
`
`
`
`SONVANOD18019
`
`INS4)
`
`
`
`90110J01vId
`
`Page 17 of 36.
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`Page 17 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 15, 1988
`
`Sheet 17 of 24
`
`4,785,408
`
`FIG,
`
`7
`
`17OO
`
`CLEAR ERROR COUNTER
`
`17
`
`1703
`A.
`INITIAL PROMPT
`
`1702
`
`CLEAR
`DIGIT
`COLLECT
`
`-
`
`704
`
`17O6
`
`705
`C EAR
`YES. 55
`
`COLLECT IT
`1707
`
`VOICE
`
`NO
`
`1708
`
`1712
`TIME OUT
`ND
`ERROR
`
`1714
`
`71
`
`YES
`
`OVER
`HESSED
`1717
`YES
`
`ANY
`ERRORS
`NO
`
`709
`
`7 D
`
`OWER
`
`SELECT
`
`YES
`
`
`
`1713
`
`TIMEOUT
`PROMPT
`
`INDEX ERROR COUNTER
`
`CLEAR DIGIT COLLECT
`
`1715
`
`1716
`
`
`
`ERROR
`
`1721
`
`GO TO
`ATTEND ANT
`
`TED <>
`
`1718
`
`1722
`
`CLEAR
`DIGIT
`COLLECT
`
`Page 18 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 18 of 24
`
`4,785,408
`
`FIG, 8
`
`
`
`
`
`
`
`
`
`CALLER
`ANNOUNCEMENT
`
`18O
`1.
`
`CONNECT
`DIWA TO
`ATTENDANT
`
`A TENDANT
`ANNOUNCEMENT
`
`TRANSFER
`CALL
`
`1805
`
`DISCONNECT
`
`Page 19 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 19 of 24
`
`4,785,408
`
`FIG.
`IG. 19
`
`CLEAR DIGIT
`
`
`
`
`
`1913
`
`19 2
`
`19
`
`
`
`CLEAR ERROR COUNTER
`1901
`
`900
`
`1902
`
`DIAL
`AHEAD
`
`NO
`
`CLEAR
`DICT
`COLLECT
`
`VOICE OUT INITIA PROMP
`
`1903
`
`1905
`CLEAR
`DIGIT
`COLLECT
`
`
`
`INVALID
`ENTRY
`PROMPT
`
`1909
`
`ANY
`
`ERROR
`
`NO
`NEXT
`MODULE
`
`1917
`
`1914
`
`YES
`
`2. THRESHOLD PROMPT
`
`CLEAR DIGIT COLLECT
`
`
`
`
`
`
`
`OWER
`THRESHOLD
`ACTION
`192O
`
`DISCONNEC
`
`DISCONNECT
`
`Page 20 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 20 of 24
`
`4,785,408
`
`FIG. 20
`
`2OOO
`
`CLEAR
`ANNOUNCEMENT
`COUNTER
`
`2CO
`
`BUILD
`ANNOUNCEMENT
`
`ISSUE ANNOUNCEMENT
`
`ZOO2
`
`2003
`
`2006
`
`NEXT
`MODULE
`
`2004
`r
`
`2005
`
`LAST
`REPEAT
`
`-
`
`NO
`
`PAUSE
`
`INDEX
`ANNOUNCEMENT
`COUNTER
`
`
`
`
`
`
`
`
`
`Page 21 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 21 of 24
`
`4,785,408
`
`F.C.. 2
`
`200
`
`2O
`
`2O2
`
`2103
`
`2O4.
`
`
`
`YES
`
`OPEN
`FILE
`
`INITIAL PROMPT
`
`CLEAR DIGIT
`PROMPT
`
`RECORD VOICE
`
`2105N
`
`YES
`
`21 O6
`
`TIME OUT
`ANNOUNCEMENT
`
`
`
`209
`
`NEXT MODULE
`
`Page 22 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`
`Sheet 22 of 24
`
`4,785,408
`
`FIG. 22
`
`
`
`CLEAR DIGIT
`COLLECT
`
`NEXT MODULE
`
`Page 23 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent Nov. 15, 1988
`FIG. 23
`
`.
`
`Sheet 23 of 24
`
`4,785,408
`
`23OO
`
`CLEAR HOLD COUNTER
`
`22O
`
`SEND TRANSMIT STRING
`
`
`
`
`
`START TIME OUT
`
`
`
`RESPONSE
`DONE
`
`NO
`
`2305
`
`2306
`
`TOO MANY
`TIME OUTS
`
`ES
`Y
`
`2309
`
`ERROR PROMPT
`
`
`
`
`
`23O4.
`
`FILTER
`RESPONSE
`STRING
`
`DISCONNECT
`
`CONTINUE
`
`
`
`232
`
`BRANCH
`
`23 13
`
`DISCONNECT .
`
`TAKE ERROR
`BRANCH
`
`
`
`NEXT
`MODULE
`
`
`
`
`
`
`
`
`
`INDEX HOLD
`COUNTER
`
`INDEX HOLD
`ANNOUNCEMENT
`
`
`
`
`
`
`
`
`
`
`
`23
`
`Page 24 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`U.S. Patent
`
`Nov. 15, 1988
`
`Sheet 24 of 24
`
`4,785,408
`
`
`
`Page 25 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`1
`
`METHOD AND APPARATUS FOR GENERATING
`COMPUTER CONTROLLED INTERACTIVE
`VOICE SERVICES
`
`4,785,408
`2
`ated from the illustrative embodiments shown in the
`drawings, in which:
`FIG. 1 shows a block diagram of apparatus which
`may be utilized to practice the present invention;
`FIGS. 2, 3 and 4 show the basic control structure for
`the Dialog Production System;
`FIG. 5 shows the control processing flow for insert
`ing modules into the dialog flowchart;
`FIGS. 6 and 7 show the control processing flow for
`editing the dialog flowchart;
`FIG. 8 shows the control processing flow for navi
`gating and scrolling in Level 1;
`FIG. 9 shows the control processing flow for enter
`ing and checking Level 2 form parameters;
`FIG. 10 shows the control processing flow for Level
`2 navigation and for displaying Level 2 forms;
`FIG. 11 shows the control processing flow for global
`commands (HELP, SAVE DIALOG, RETRIEVE
`DIALOG, EXIT);
`FIG. 12 shows the control processing flow for
`uploading and downloading a dialog;
`FIG. 13 shows the control process flow for mode
`commands (RUN, TUTOR, INSTALL DIALOG,
`EDIT);
`FIG. 14 shows the basic screen display at the start of
`a dialog creation session;
`FIG. 15 shows a sample Level 2 screen display;
`FIG. 16 shows the basic screen display for Level 1 of
`a simple dialog;
`FIG. 17 shows the run-time flow of the Prompt and
`Branch Interaction Module;
`FIG. 18 shows the run-time flow of the Call Atten
`dant Interaction module;
`FIG. 19 shows the run-time flow of the Prompt and
`Collect Interaction module;
`FIG. 20 shows the run-time flow of the Announce
`ment Interaction module;
`FIG. 21 shows the run-time flow of the Record Voice
`Interaction module;
`FIG. 22 shows the run-time flow of the Play Voice
`Interaction module;
`FIG. 23 shows the run-time flow of the Data Ex
`change module; and
`FIG. 24 shows the format of a table describing the
`indices necessary to specify interconnection of modules
`at a node and to enable linkage to other nodes.
`GENERAL DESCRIPTION-BACKGROUND
`Before describing the present invention, it may be
`helpful to generally describe the operation of a tele
`phone communication system in which the claimed
`Dialog Production System (DPS) for generating com
`puter-controlled voice services may be utilized. It
`should be recognized that the present invention may
`also be utilized in other similar type communication
`systems or as a stand-alone system. Since such systems
`utilize a variety of hardware and programming tech
`niques, no attempt is made to describe the operation of
`any system in which the present invention may be uti
`lized. However, the present invention must be blended
`into the overall program structure of the system in
`which it is used and must be tailored to mesh with other
`features and operations of the system. Thus, in order to
`avoid confusion and in order to enable those skilled in
`the art to practice the claimed invention, this specifica
`tion will describe the operation of the DPS using flow
`charts which describe the logical steps and the various
`parameters required to implement the invention.
`
`TECHNICAL FIELD
`This invention relates to programmable communica
`tion systems and more particularly to a method and
`apparatus for generating computer-controlled voice
`services which involve interactions between a system
`and system users.
`BACKGROUND OF THE INVENTION
`A TOUCH-TONE telephone is a widely available
`device which can access business computer systems to
`provide a variety of customer services. It can function
`as a user terminal for any system application which
`accepts TOUCH-TONE signaling as a user input and
`provides audio or voice response output to the user.
`. Such applications include Data In/Voice Answer
`(DIVA) applications, Voice In/Voice Out (VIVO)
`applications and Voice Store and Forware (VSF) appli
`cations. Such DIVA, VIVO and VSF services (e.g.,
`Inquire-Response, Order Entry, Voice Forms, etc.)
`25
`require that a well engineered dialog be created to con
`trol the interaction between the end-user and the sys
`tem. Creation of such dialogs is the critical part of a
`customer application. Since each application can differ
`both in its logical structure and its specific content, each
`30
`application dialog must be custom-designed. Unfortu
`nately, the myriad of custom applications often require
`that businesses spend considerable amounts of money to
`hire programmers to write and maintain these custom
`programs. What is desirable is to provide an arrange
`35
`ment whereby the non-programmer employees of a
`business can be utilized to develop these customized
`programs.
`SUMMARY OF THE INVENTION
`The present invention provides method and appara
`tus to enable a system designer or producer to create
`application programs for instructing a computer-con
`trolled voice response system to provide a desired user
`45
`interactive voice service. The present invention re
`ferred to herein as the dialog production system (DPS)
`is embodied in the system and utilizes a high level inter
`active environment which enables the system designer
`(program producer) to generate a dialog application
`50
`program to implement the desired telephone/computer
`interactive customer service. According to the inven
`tion, the program producer selects interaction modules
`from a group of predefined interaction modules, each
`module defining one of the possible functions which can
`be performed by the system, and specifies the method or
`means for interconnecting these modules. These inter
`action modules control the intercommunications be
`tween the devices (e.g., a digit collector, signal genera
`tor, etc.) used to implement the particular voice service.
`60
`By selecting two or more of these interaction modules
`including the defining of selectable parameters or indi
`ces and specify the interconnection of these modules,
`the desired dialog program is implemented.
`65
`BRIEF DESCRIPTION OF THE DRAWINGS
`The detailed description of the overall system opera
`tion of the present invention will be more fully appreci
`
`O
`
`15
`
`55
`
`Page 26 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`5
`
`4,785,408
`4.
`3
`Response example, DIVA application program 108
`In the description that follows reference numbers are
`used to identify apparatus or parts of flow charts de
`formats a request to the remote data base, receives a
`response, and plays back, to the customer, an appropri
`picted in a Figure. The Figure which contains the par
`ticular reference number can be determined by using
`ate announcement. If an attendant is needed, the DIVA
`application signals call control unit 103 to have switch
`the first digit when 3 digit reference numbers are used
`(e.g., 310 refers to FIG. 3) and by using the first and
`102 transfer the call to the attendant extension, the ap
`plication may then display on the attendant's terminal
`second digits when 4 digit reference numbers are used
`116 any information relevant to the transaction. The
`(e.g., 1005 refers to FIG. 10).
`application program then disconnects from the caller,
`FIG. 1 shows a block diagram of one embodiment of
`a system that may be used to practice the present inven
`leaving that line free to accept another call.
`10
`While the present invention is described utilizing
`tion. The system of FIG. 1 includes a communication
`system 101 including switch 102 and call or controller
`TOUCH-TONE user inputs and system voice outputs it
`should be understood that it is contemplated that other
`103. In addition to its use with the present invention,
`application could use other types of user inputs and
`communication system 101 may be used to establish and
`system outputs. Thus, for example, within the scope of
`complete calls to the DPS location. According to the
`the present invention it is contemplated that system
`present invention, communication system 101 is used to
`implement the operation of application programs (i.e.,
`voice recognition equipment can be utilized to respond
`dialog programs) generated by the DPS. DPS system
`to user voice inputs. Moreover, if the telephone or other
`equipment includes DPS processor 104, dialog terminal
`user input terminal utilized as a system input device
`105 and memory 106 and may also include business
`includes visual indicators (i.e., LEDs or displays) the
`system output to the user may include signals for dis
`computer 107. As will be discussed in more detail later
`a DIVA application program 108 is generated accord
`play by these indicators.
`ing to the present invention by a dialog producer using
`The apparatus utilized in FIG. 1 are well known. For
`dialog terminal 105, processor 104 and the dialog pro
`example communication system 101 can be any variety
`of PBX systems (e.g., American Telephone and Tele
`duction program 109. Once generated the DIVA appli
`25
`graph (AT&T's) System 85). DPS processor 104 can be
`cation program 108 is stored in memory 106 and ac
`a stand alone processor (e.g., AT&T's 3B2 processor) or
`cessed in response to customer (i.e., user) calls or inquir
`can be incorporated as a utility program in call control
`ies made to DPS processor 104 via communication
`unit 103 or made part of business computer 107. Dialog
`system 101.
`The operation of a typical DIVA application pro
`terminal 105, attendant terminal 106 and the other
`30
`gram 108 can been seen in tracing a service request
`equipment 112, 113, 114 and 115 can be any of a variety
`of well known apparatus. While the present embodi
`when it is accessed by a customer. In the description
`that follows the word customer is used interchangeably
`ment of dialog terminal 105 utilizes a touch sensitive
`screen to select the various displayed operating parame
`with the words user or caller. A caller from either a
`ters of DPS, it is understood that other methods of
`local station at 110 or from a remote station set 111
`35
`selecting the displayed parameters including mouses,
`(connected appropriately via CO line 112) can initiate a
`cursor control and keyboard entry could be used there
`service request. The caller is connected by call control
`103 through switch 102 to the voiceware equipment
`with.
`The following paragraphs describe an embodiment of
`associated with the application. This voiceware equip
`ment typically includes multi-frequency receiver 112,
`a dialog production system (DPS) in accordance with
`the present invention. The architecture of the DPS
`voice recorder 113, voice storage unit 114, voice re
`comprises three levels at which the dialog producer
`trieve unit 115 and attendant terminal 116 which access
`(i.e., the system operator who designs dialog programs
`various ports of switch 102 to receive voice and touch
`tone signaling. The DPS processor 104 operates under
`using DPS) interacts with DPS to specify a particular
`application's characteristics. At any level, the producer
`control of application program 108 to receive status
`45
`is able to check an application program by running it
`from and control the operation of the voiceware equip
`interpretively from the terminal. An important aspect of
`ment. The DPS processor is responsive to control sig
`DPS is the interface provided for the dialog producer.
`nals received over channel 117 from call control unit
`Because of the nature of the Producer Interface, the
`103.
`producer has enforced upon him/her essentially "top
`Typically, as will be discussed in detail in later para
`50
`down' program design discipline. The process of dialog
`graphs, the DIVA application program includes mod
`design is broken into three levels, each comprising a
`ules which control the voiceware equipment to answer
`an incoming call, retrieve the appropriate speech re
`different display (FIGS. 14 and 15) on dialog terminal
`sponse from units 114 and 115, and play it (e.g., and
`105. These levels proceed from global to detailed con
`cerns of the application program being designed.
`initial announcement) to the caller. The response may
`55
`also include a request for a user account number or
`At Level I, illustrated by FIG. 14, the producer uses
`a figural, flow-chart like, specification language to indi
`other user provided information.
`The caller inputs the requested data by means of
`cate the sequence of transactions encountered by the
`Touch-Tone signaling. Touch-Tone receiver 112 de
`end-user. This allows the producer to describe the pro
`codes the signals into ASCII characters, and sends them
`gram structure using large transaction based units,
`60
`to DPS processor 104. The application program 108
`called Interaction Modules. The overall dialog logic is
`established by the organization of these interaction
`includes modules which use this information to branch
`or select the next part of the application program to be
`modules.
`performed. The next step may request other caller in
`At Level II, illustrated by FIG. 15, the producer
`parameterizes each interaction module by specifying
`formation, summon an attendant at terminal 116, re
`65
`quest information from a remote data base in business
`the details of transaction handling. The producer inter
`face prompts the producer through this level, suggest
`computer 107, or take some other action under DIVA
`application program 108 control. In an Inquiry
`ing default parameters where appropriate.
`
`Page 27 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`4,785,408
`5
`6
`Within any interaction module, the producer explic
`the indices or pointers that each node or interaction
`itly sets (or accepts default values of) several parame
`module needs to point to its' child or successive node.
`Unless specific branching takes place, control passes to
`ters. The DPS establishes a required execution environ
`ment for the application program. Thus, details that are
`the first child of each node as its' processing is com
`pleted.
`relevant to the production of good user dialogs (e.g.,
`digit timing standards, error threshold definition, gener
`In Voice services, user transactions share a number of
`alized error treatment, announcement interruptability,
`common elements. A group of standard interaction
`etc.) are consistent across services, applications, and
`modules implement these common elements, and allow
`the producer to design a dialog program by specifying
`CustomerS.
`At Level III, not illustrated, the DPS prompts the
`the desired application in terms of selected ones of the
`producer to record (or otherwise identify) the specific
`group of interaction modules. With reference to FIG.
`announcements etc. to be played to the customer. This
`14, the interaction modules include two types of mod
`can be implemented using any number of well known
`ules: control modules (1401, 1402, 1403 and 1404) and
`recording techniques.
`execution modules (1405, 1406, 1407, 1408, 1409 and
`An easy way to understand the relations among pro
`1410). Control modules are modules which the pro
`15
`gramming modules of the DPS is by means of a flow
`ducer uses to specify the procedural flow of the applica
`chart. Such a format provides to the dialog producer a
`tion. Execution modules are modules which the pro
`perceptual coding of the relevant information necessary
`ducer uses to specify the transaction managed by the
`to implement a particular dialog program. The program
`application. In addition, there are four indices which
`flow, especially for sequential processes, is perceptually
`the producer uses to indicate the start and end points of
`20
`apparent in a flow chart. Flow charts enable tasks to be
`the dialog, or of loops within the dialog. The producer
`traced through the underlying semantics of a program.
`then specifies the sequential execution of the Interaction
`Diagrams or structure charts enforce a modularity on
`Modules by specifying the spatial arrangement and
`program design that allows the dialog producer to work
`connection of the modules on the video display of dia
`with higher order program blocks. For example, see M.
`log terminal 105.
`25
`J. Fitter and T. R. G. Green, "When Do Diagrams
`Control Interaction Modules
`Make Good Programming Languages?', Computer
`The Dialog Production System provides four control
`Skills and the User Interface, New York, Academic
`Press, 1981.
`interaction modules (1401-1404) for the producer to
`A complementary dialog specification using decision
`chose from. These include the Switch, Prompt and
`tables is provided using a production system interface.
`Branch, Match and Loop modules.
`While decision tables may be difficult to use to under
`1. The Switch module (1401) switches between
`stand the flow of a program, decision tables may be
`branches of the program depending on an external
`most effective in expressing logical relations within
`event. The Switch module capability permits the pro
`portions of a program. For example, see J. E. Bingham
`gram producer to specify which of a number of alterna
`35
`and G. W. Davies, A Handbook of Systems Analysis,
`tive program branches is to be used depending upon
`preprogrammed external factors such as time of day,
`London, Macmillian, 1972.
`The DPS includes an interface that uses a hybrid
`day of week, or day of year. Specification of the branch
`representation consisting of a program structure chart
`alternatives, and of the temporal criteria is done by the
`for program construction, combined with forms-based
`producer using the Level II interface. For example,
`40
`decision tables (within the program modules) to provide
`reporting of current stock quotations with attendant
`an interface that assists the producer in understanding
`service might be provided during business hours Mon
`both procedural and structural flow.
`day through Friday. At other times, closing quotes
`Thus, the interaction between the dialog producer
`could be provided when no attendant is available. To
`and the DPS is designed to assure ease of learning, to
`implement this the program producer would write two
`45
`improve understanding, and to simplify its use. The
`similar program branches, and utilize the switch module
`producer can design a dialog simply in terms of the
`and preprogrammed external factors to decide when
`transactions that will be experienced by the end-user.
`each branch is to be active.
`2. The Prompt and Branch module (1402) provides
`Interaction Modules
`the selection or conditional execution of a portion of the
`50
`application program based on digits input from the user.
`Because certain sets of devices are almost always
`used together (e.g., a digit collector and a signal genera
`The Prompt and Branch module plays an announce
`tor for TOUCH TONE Voice applications) an interac
`ment to a user, collects dialed digits made in response,
`and selects the appropriate logical branch of the appli
`tive module can be defined whose purpose it is to con
`cation program given the input. Branch module pro
`trol the interrelated activities of the digit collector and
`55
`vides the producer with the facility of the programming
`an announcement machine. The present invention ex
`tends and elaborates on this concept by defining several
`construct Case. At Level II, the predicate outcome
`table is specified by means of a prompted forms inter
`interaction modules. An interaction module can be
`thought of as a set of software routines which define all
`face.
`aspects of the necessary interactions between the rele
`3. The Match module (1403) provides a similar capa
`vant physical system and the end user for a particular
`bility to that of branch, except that user input is not
`required. The Match module compares two data words
`transaction.
`Controlling the interrelationships among several
`and branches based upon the outcome of the compari
`hardware devices and the end user is a complex task.
`SO.
`4. The Loop module (1404) is equivalent to the pro
`The concept of an interaction module allows this com
`65
`plexity to be embedded in the program so as to be invisi
`gramming construct "Do Until'. That is, the producer
`ble to the producer. As the producer adds or otherwise
`specifies a predetermined number of repetitions of a list
`modifies the dialog flow chart the DPS keeps track of
`or sub-tree. The loop variable may be set either on the
`
`30
`
`10
`
`60
`
`Page 28 of 36
`
`RUIZ FOODS PRODUCTS, INC.
`Exhibit 1018
`
`
`
`5
`
`O
`
`15
`
`25
`
`35
`
`4,785,408
`8
`7
`basis of user input digits, or by a default value specified
`It is implemented much like Rec