`
`[19]
`
`[11] Patent Number:
`
`5,619,554
`
`Hogan et a1.
`
`[45] Date of Patent:
`
`Apr. 8, 1997
`
`I ||||l |||I||l| ||| ||||| Illll ||l|| ||l|| lllll ||||| lllll ||||| I||||| Ill ||l|| llll
`US0056l9554A
`
`1011994 Kala:
`:1].
`1111994 Hopper er.
`111995 Heileman, Jr. el al.
`
`....
`
`379188
`39512.37
`. .... 3’?9!6?'
`
`911995 Iammaleddin ................ ..
`White CT.
`...........................
`OTHER PUBLICA-“CNS
`
`3791207
`
`
`
`5,359,645
`5,367,609
`5,384,829
`
`5,448,633
`5,477,541
`
`Samma Archfte.-: Series Portico, {SDS Product Overview),
`1992.
`The Open Architect Network 1'r:.te.vface, “Profit from Open
`Architecture".
`
`_
`_
`_
`Primary Exammer—Kr1sta M. Zele
`Assistant Examfner—Parag Dharia
`‘;..}’f’I:”(“§”A3e"" "’F‘””‘5‘°“‘°’ K°351“"G°1d5‘°‘“&F°"'
`'
`'
`‘
`'
`
`[573
`
`ABSTRACT
`
`‘
`_
`_
`_
`,
`A dlsmbumd "°'°‘= 595191“ and "W109 PT°‘“d‘=S "0103
`scripting and voice messaging to a call processing system.
`According to this system and method, audio voice is
`recorded in frames and the frames encapsulated into data
`packets. The data packets are stored in a database as voice
`scripts or voice messages. To play back a voice script or
`voice message, its packets are sequentially retrieved from
`the database. As soon as the first packet 15 retrieved, the data
`are extracted therefrom and playback can begin. As the voice
`is being Played back I0 a 115?-r 195, Sflbsfiqllenl Packets 316
`retrieved, the data extracted therefrom, and the data bufifered
`for playback. In this n‘1a.nne1', a voice script or a voice
`message can be played back without interruption.
`
`16 Claims, 44 Drawing Sheets
`
`[54] DISTRIBUTED VOICE SYSTEM AND
`METHOD
`
`[75]
`
`Invcnlors; Slew,“ J_ Hogan; Kristi T_ Fehz;
`Douglas R. Murdock;
`J.
`Vercande, all of Cedar Rapids; Roy A.
`Rhodes, Marion, all of Iowa
`
`['13] Assignec: Linl-KUSA Corporation, Cedar Rapids,
`Iowa
`
`[21] Appl. No: 251,623
`
`[321
`[511
`
`Filed:
`Jun. 8, 1994
`Int. Cl.“ .............................. G10L 9100; H04M 1164;
`H04M 3150
`
`1521
`
`11.8. CI.
`
`............................... .. 379167: 379188; 379189;
`379m; 379176; 39512.?9; 39512.31
`[531 Field of Search .................................. 3'19.-'6'1', 88, 39,
`379,142, 112' 71‘ 76‘ 83‘ 37. 370,61. 395,237
`‘Z89, 235
`
`[55]
`
`References Cited
`
`4_232_199
`4,611,095
`4,525,031
`4,699,282
`4,841,574
`4,891,835
`4,905,003
`4.913.322
`5,222,120
`
`U-S- PATENT DOCUMENTS
`11N98” Bmwmgm cl 3]‘ ‘
`gngsfi Asmmh at a_;_ _
`1111986 Lotilo el al.
`911198? Winter ct al.
`611989 Pham at al.
`M19911 Leung et al.
`211990 Helfcrich
`411990 Winter ct al.
`6111993 McLeod eta].
`
`..
`.
`
`379133
`379188
`.. 381131
`41:11
`..
`----3379133
`79.-"96
`
`.. 379183
`
`. 3
`
`. PLAY THREAD
`
`
`AUDIO SYSTEM l510/\/
`VOICE MODULE lS30//
`
`0001
`0001
`
`Apple 1010
`Apple 1010
`U.S. Pat. 8,243,723
`U.S. Pat. 8,243,723
`
`
`
`U
`
`5,619,554
`
`
`_H_mHmohamm................:_
`mmmmmmummam Ira:_07523020mMH9:IrJ.2:_z/E._HHmHH_3Hn_Na.H11: oz:¢zEEE...HH,,./N:mmmmb_H”wfllr
`
`
`mo,_.<mmn_o
`
`$2
`
`Emma
`
`$2
`
`H
`
`ma.
`
`H63
`
`mqomzoo
`
`HHH.
`
`
`
`
`
` NEIrRIrNE_H7N2HHm..................................IH_fJ/1:b\&,EHanHM.3mmzoemaoMmazoambo
`
`
`
`
`
`
`mmmm:H3:H.o7E_<zEEE.
`
`
`
`aoz§..EwEoHHHPHH_mcmHHr.“..................H
`
`
`
`tl«HHH41%.H<2:EU.HH>»wMcanH.EokgmHHmmmm:
`
`0002
`
`
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 2 of 44
`
`5,619,554
`
`
`
`ORIGINATE CALL
`
`AND SEND IT TO
`
`202
`
`MATRIX SWITCH 102
`
`
`
`
` MATRIX SWITCH 102
`
`USES CALL DATA TO
`
`DETERMJNE HOW TO
`
`204
`
`HANDLE AND ROUTE
`
`THECALL
`
`
`
`T0 ROUTE THE CALL
`
`
`FOR A 0+ CALL,
`
`FOR A 1+ CALL,
`206
`PROVIDE OPERATOR
`USE CALL DATA 144
`210
`—"—
`"CALL DATA 146 T0
`
`
`OPERATOR CONSOLE
`
`
`
`108
`
`
`
`
`SEND OPERATOR
`D
`2 3 L COMtvIANDS 143 TO
`MATRIX SWITCH 102
`
`FIG 2
`
`0003
`0003
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 3 of 44
`
`5,619,554
`
`zoa.<z:.mmQ
`
`moecsm
`
`.w..._..
`
`mmmaoambo
`
`mohkm
`
`fl
`
`OZE.<7m©HMO
`
`mmm:
`
`wfl
`
`51:5,,/2
`,3
`
`xxVSqmzzfimo/\OZH..E<ZOHm/
`\,,Irqmzzéu56>
`xxJ///7
`,,.o_n5<35
`
`N2
`
`x//\M455N,/
`
`mo,_.<mmmo
`
`AOMHZOU
`
`.x/Nam
`
`Em<55.moz
`
`mamsum
`
`mobammmo
`
`wmm<.H¢.Q
`
`
`
`mmzommmm|...I
`
`mumZfiq
`
`M____5*
`
`mGE
`
`omoDm>DOE
`
`l.ll11:-amanmmm
`
`an
`
`_
`
`NE
`
`0004
`0004
`
`
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 4 of 44
`
`5,619,554
`
`oz_.:..zuzmm.H
`
`mmmm:
`
`$2
`
`mvmmmmoommA130
`
`%Emu.ME
`
`vGE
`
`3
`
`Emma
`
`<93
`
`0005
`0005
`
`oEe<zuzmB.
`
`Emma
`
`$2
`
`HH
`
`..
`
`Z.E.<Z1U_.mO
`
`
`
`<2:muecsm
`
`
`
`mmmm:mmfioembo
`
`mm
`
`I I
`
`i
`
`mmzowmbo
`
`momma
`
`an
`
`DZE.<ZHm.HmO
`
`<8Hmmmmb
`
`©ZE.<ZH§.mm.H.
`
`m8Hmmmm:
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 5 of 44
`
`5,619,554
`
`START
`
`INITIATE CALL
`
`-
`
`502
`
`CALL PROCESSING
`
`SYSTEM 302
`
`DATA 144
`
`RECEIVES CALL AUDIO
`
`7-504
`
`142 AND CALL
`
`TO HANDLE CALL
`
`NCP 3_o4
`DETERM1NES HOW
`
` NCP 304 INSTRUCTS
`MATRIX SWITCH 306
`
`REGARDING
`
`CALL ROUTING
`
`
`
`
`
` MATRIX SWITCH 306
`
`
`
`DIRECTS TI-IE1 CALL
`
`TO THE DESTINATION
`
`AS TNSTRUCTED BY
`
`NCP 304
`
`DONE
`
`FIG 5
`
`0006
`0006
`
`
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 6 of 44
`
`5,619,554
`
`FIG7
`
`FIG 8
`
`FIG 6
`
`0007
`0007
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 7 Of 44
`
`5,619,554
`
`
`
`CONTROL DATA 324 To
`
`OPERATOR CONSOLE 303
`INDICATING HOW
`TO HANDLE THE CALL
`
`1710
`
`0008
`0008
`
`INITIATE A CALL
`
`REQUIRING OPERATOR L702
`ASSISTANCE
`
`CALL PROCESSING
`SYSTEM 302 RECEIVES
`CALL AUDIO 142 AND
`
`CALL DATA 144
`
`704
`
`NCP 304
`
`DETERMINES THAT
`ORIGINATENG USER
`REQUIRES OPERATOR
`ASSISTANCE
`
`7-706
`
`NCP 304 INSTRUCTS
`
`MATRIX SWITCH 306
`
`b 142 TO OPERATOR
`CONSOLE 308
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 3 of 44
`
`5,619,554
`
`FROM 710
`
`FIG 7
`
`IF THE CALL IS A CALLING CARD CALL,
`
`
`
`
`
`OPERATOR CONSOLE 308 PROMPTS THE CALLER
`
`FORTHECARDNUMBERAND VERIFIESTI-IE
`
`
`
`802
`
`VALIDITY OF THE CARD NUMBER
`
`
`CALLING CARD NUMBER IS VALID,
`IF
`OPERATOR CONSOLE 308 SENDS OPERATOR
`
`RESPONSE DATA TO NCP 304 TO CONFIGURE
`
`THE CALL
`
`NCP 304 INSTRUCTS MATRIX swTTCH
`306 To ROU'I'ETH_"E3 CALL TO THE
`
`CORRECT DESTINATION
`
`806
`
`304
`ACCEPT THE CHARGES FOR THE CALL
`
`FOR A COLLECT CALL, THE OPERATOR VERIFIES
`THAT THE CALLED PARTY IS WILLING TO
`
`303
`
`IF THE CALLED PARTY REFUSES TI-[E COLLECT
`
`CALL CHARGES, OPERATOR CONSOLE 308
`
`TNSTRUCTS NCP 304 TO TERMJNATE TI-[E
`
`810
`
`
`
`
`
`CONNECTION
`
`FIG 8
`
`0009
`0009
`
`
`
`SU
`
`.m
`
`9
`
`5
`
`91
`
`M
`
`J,NaMmo:/mmmMmmémmmfi
`
`55>
`
`
`.m......mamamamo:/mmmmo,5mEHmE
`n...E2855>mzmézomm
`
`5.,aOE
`
`6,.
`
`mucém
`
`Hm
`
`zotam
`
`new
`
`M.NEQ:
`
`
`
`,m05335.05:4155
`
`qomezoumm2o>Mmoapmz
`
`
`13¢“.0E2:mommmoommWmmzommmm
`
`m315mmI~|<H<Q
`
`
`0010
`
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 10 of 44
`
`455,916.,5
`
`rut
`
`
`
`\ Eaommo5>n_zm-.~zomm053%
`
`33mmmale1mm<m<§dmm>mmmmmmmoommmo.SmEHmE
`
`
`
`1rrIIIII1I:u:-nn-nI..IIIII:1I1:III:unII:I-I::III»:II.:...........J
`
`QMOUMMmmm
`
`mm>mmm
`
`NS
`
`
`
`ammurfimmmEfiomN20,?
`
`mam55>
`
`mm.Em>.zoo
`
`33
`
`mammo5>
`
`32
`
`:I:IIIIIII:IIII:III:IIIIIIIIIII:4iJ..Ir:uIIII4
`
`MMO>.C..mnZ
`
`QOMPZOU
`
`mommmoomm
`
`0011
`0011
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 11 of 44
`
`5,619,554
`
`
`
`START
`
`
`
`RECORD VOICE AUDIO
`
`
`
`PACKETIZE VOICE AUDIO INTO
`
`
`
`_"--
`
`1104
`
`T‘-— 1108
`
`—‘-~--
`
`1112
`
`
`
`VOICE SCRIPT 1008
`
`DISTRIBUTE VOICE SCRIPT 1008
`
`SAVE VOICE SCRIPT 1008 IN
`
`DATABASE 1004
`
` T_‘— 1116
`
`FIG 11
`
`0012
`0012
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 12 of 44
`
`5,619,554
`
`START
`
`NCP 304 NOTIFIES VRU 334 THAT A ._‘__
`NEW CALL IS RECEIVED
`
`1204
`
`VRU 334 DETERMINES THAT A
`
`VOICE SCRIPT 1008 IS TO BE PLAYED
`
`---~.__
`
`1212
`
`
`
`
`VRU 334 REQUESTS VOICE SCRIPT
`1008 FROM VOICE SCRIPT SERVER
`1002
`
`VOICE SCRIPT SERVER 1002
`
`RETRIEVES VOICE SCRIPT 1008 AND
`
`SENDS A PACKET OF VOICE DATA
`
`TO VRU 334
`
`// 1262
`NO
`
`1220
`
`/‘/
`MINIMUM # OF
`PACKETS?
`
`YES
`
`
`
`VRU 334 PLAYS VOICE SCRIPT 1008 —1—'
`
`
`
`1224
`
`FIG 12
`
`0013
`0013
`
`
`
`4:.Hef.aPamU
`
`Apr. 8, 1997
`
`Sheet 13 of 44
`
`5,619,554
`
`m_UHO>
`
`mwfimmz
`
`mmrpmmm
`
`3.3.
`
`QZm....__.ZOMm
`
`moebmfiemfi
`
`ma
`
`2DE
`
`mowémmmmm
`
`ma
`
`MMOBHMZ
`
`AOMHZOD
`
`mommmoomm
`
`fled
`
`0014
`0014
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 14 of 44
`
`5,619,554
`
`START
`
`VRU 334 RECEIVES AUDIO MESSAGE -z__ 1404
`
`VRU 334 PACKETIZES AUDIO
`MESSAGE
`
`1- 1408
`
`IVIESSAGE PACKETS ARE
`
`SENT TO FED 904
`
`SEQUENTIALLY NUMBERED AND —1_ 1412
`
`FED 904 ASSIGNS A MESSAGE
`
`NUMBER AND SENDS VOICE
`
`
`
`MES SAGE 1308 TO VOICE IVIESSAGE
`
`_‘—— _ 1416
`
`SERVER 1302
`
`FED 904 SENDS MESSAGE NUMBER
`TO VRU 334
`
`""‘— 1420
`
`FIG 14
`
`0015
`0015
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 15 of 44
`
`5,619,554
`
`
`
`FIG15
`
`
`
`
`
`AUDIOSYSTEM1510/“
`
`
`
`
`
`VOICEMODULE1530/“
`
`MESSAGE
`
`QUEUE 1512
`
`0016
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 16 of 44
`
`5,619,554
`
`
`
`
`
`START
`
`
`
`
`
`VRU 334 INITIATES RECORD
`
`THREAD 1536A-
`
`
`
`INITIALIZE VOICE DATA
`
`PROCESSOR 1500
`
`RECORD AUDIO VOICE
`
`PACKETIZE AUDIO VOICE
`
` _‘—— 1616
`
`
`STORE PACKETIZED AUDIO VOICE
`
`
`
`As VOICE SCRIPT 1003 OR VOICE —v._ 1620
`MESSAGE 1308
`
`FIG 16
`
`0017
`0017
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 17 of 44
`
`5,619,554
`
`START
`
`VRU 334 INITIATES AUDIO RECORD THREAD
`1536A
`
`—‘-~ 1704
`
`MAIN VRU APPLICATION THREAD STARTS
`TIMER IF MESSAGE LENGTH DEFINED
`
`7
`
`”“—— 1708
`
`RECORD THREAD 1536A IN'.[TIALIZES AUDIO
`DRIVER 1514
`
`_‘—-
`
`1712
`
`AUDIO DRIVER 1514 ALERTS AUDIO THREAD
`1534
`
`*7“ 1716
`
`
`
`AUDIO THREAD 1534 DETERMINES IF RECORD
`REQUIRED VIA INDICATORS
`
`1713
`
`TO STEP 1612
`
`FIG 16
`
`FIG 17
`
`0018
`0018
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 13 of 44
`
`5,619,554
`
`FROM STEP 1608
`
`FIG 16
`
`AUDIO THREAD 1534 COMIVIANDS AUDIO
`
`DRIVER 1514 TO BEGIN RECORDING
`
`AUDIO DRIVER 1514 INDICATES RECORD
`
`COMIVIAND ACCEPTED
`
`AUDIO THREAD 1534 SENDS NEXT BUFFER
`
`COMMAND TO AUDIO DRIVER 1514
`
`AUDIO DRIVER 1514 SENDS RECORD BEGUN
`
`EVENT TO AUDIO THREAD 1534
`
`AUDIO DRIVER 1514 INFORMS AUDIO THREAD
`
`1534 THAT BUFFER 1518 IS FULL
`
`TO STEP 1904
`
`FIG 19
`
`FIG 13
`
`0019
`0019
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 19 of 44
`
`5,619,554
`
`FROM STEP 1820
`
`FIG 18
`
`AUDIO THREAD 1534 CHECKS FOR "SILENCE"
`
`*z_._ 1904
`
`
`
`AUDIO THREAD 1534 COMMANDS AUDIO
`DRIVER 1514 TO STOP RECORDING
`
`
`
`TO STEP 1616
`
`FIG 16
`
`FIG 19
`
`0020
`0020
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 20 of 44
`
`5,619,554
`
`FROM STEP
`
`
`
`1612
`
`FIG 16
`
`AUDIO THREAD 1534 PACKETIZES VOICE DATA ——T_
`
`2004
`
`AUDIO THREAD 1534 PLACES PACKETS INTO
`FRAME BLOCK QUEUE 1533
`
`T"‘— 2003
`
`
`
`AUDIO THREAD 1534 INDICATES TO AUDIO
`
`DRIVER 1514 THAT AUDIO DATA CAN BE
`
`
`
`““'— 2012
`
`STORED IN NOW AVAILABLE BUFFER IS 13
`
`
`
`
`
`AUDIO THREAD 1534 INFORMS RECORD
`
`TI-[READ 1536A THAT PACKETS ARE READY TO '""7— 2016
`
`BE STORED
`
`
`
`TO STEP 1620
`
`FIG 16
`
`FIG 20
`
`0021
`0021
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 21 of 44
`
`5,619,554
`
`FROM STEP 1616
`
`
`
`FIG 16
`
`RECORD THREAD 1536A RETRIEVES PACKETS
`
`FROM FRAME BLOCK QUEUE 1538
`
`—=— 2104
`
`RECORD THREAD 1536A CHECKS FOR SILENT
`
`LEADING PACKETS
`
`1 2108
`
`NO
`
`YES
`
`_
`
`DISCARD PACKET *1_. 2116
`
`RECORD TI-[READ 1536A SENDS PACKETS FOR
`STORAGE
`
`
`
`
`
`
`
`2120
`
`
`
`FIG 21
`
`0022
`0022
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 22 of 44
`
`5,619,554
`
`AUDIO THREAD 1534 CHECKS ENERGY LEVEL .._L_ 2204
`WHILE PACKETIZING
`
`
`
`
`
` CONTINUE
`PACKETIZING
`
`AUDIO THREAD 1534 SENDS RECORD STOP TO
`
`
`
`
`
`
`
`
`AUDIO DRIVER 1514 AND A CHECK FOR
`
`SILENCE MESSAGE TO RECORD
`
`THREAD 1536A
`
`FIG 22
`
`0023
`0023
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 23 of 44
`
`5,619,554
`
`AUDIO DRIVER 1514 DETECTS DTMF TONE
`
`AUDIO DRIVER 1514 SENDS DTMF EVENT TO
`
`AUDIO THREAD 1534
`
`AUDIO THREAD 1534 SENDS RECORD STOP
`
`COMMAND T0 AUDIO DRIVER 1514 AND CHECK
`FOR SILENCE MESSAGE TO AUDIO RECORD
`
`THREAD 1536A
`
`—L— 23 ()4
`
`“— 2312
`
`
`
`RECORD THREAD 1536A DISCARDS PACKET IF ——,___ 2314
`SILENCE DETECTED
`
`FIG 23
`
`0024
`0024
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 24 of 44
`
`5,619,554
`
`START TIMER
`
`""'L— 2404
`
` APPLICATION THREAD INSTRUCTS VOICE DATA —,____ 2408
`
`PROCESSOR TO STOP RECORDING
`
`AUDIO DRIVER 1514 SENDS READ WAKE EVENT
`
`' TO AUDIO TI-[READ 1534
`
`SAYS TO STOP RECORDING
`
`AUDIO TI-[READ 1534 CHECKS INDICATOR THAT
`
`'—“ 342°
`
`AUDIO THREAD 1534 SENDS RECORD STOP
`COMMAND T0 AUDIO DRIVER 1514
`
`AUDIO TI-[READ 1534 SENDS CHECK FOR
`
`
`
`SILENCE MESSAGE TO RECORD THREAD 1536A
`
`""1-— 2424
`
`TO FIG 15
`
`FIG 24
`
`0025
`0025
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 25 of 44
`
`5,619,554
`
`AUDIO DRIVER 1514 STOPS RECORDING, SENDS
`RECORD STOP EVENT TO AUDIO THREAD 1534, —; 25 04
`AND RELEASES LAST DATA BUFFER 1518
`
`AUDIO THREAD 1534 SECTIONS LAST DATA
`BUFFER INTO PACKETS AND PLACES PACKETS —'— 2508
`
`INTO FRAME BLOCK QUEUE
`
`AUDIO THREAD POSTS AUDIO RECORD
`
`STOPPED MESSAGE TO RECORD THREAD 1536A
`
`RECORD THREAD 1536A SETS INDICATOR THAT
`
`RECORDING STOPPED, COMPLETES EMPTYING
`
`FRAME BLOCK QUEUE 1538, AND SENDS
`RECORD DONE MESSAGE TO MAIN VRU
`
`APPLICATION THREAD
`
`FIG 25
`
`0026
`0026
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 26 of 44
`
`5,619,554
`
`RETRIEVE PACKETS TO BE PLAYED —z_ 2604
`
`STORE PACKET IN FRAME BLOCK
`
`QUEUE 1533
`
`—1— 2608
`
`BUFFER PACKETS IN BUFFER 1518 —l_...
`
`2512
`
`
`
`
`
`
`
`
`PLAY VOICE SCRIPT 1008
`
`2662
`
`FIG 26
`
`0027
`0027
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 27 of 44
`
`5,619,554
`
`—t—— 2704
`
`"*L 2703
`
`START
`
`PLAY THREAD 153 6B REQUESTS VOICE SCRIPT
`1008
`
`
`
`
`
`PLAY TI-[READ 1536B SETS SEARCHING
`
`INDICATOR TO TRUE
`
`GO TO STEP 2608
`
`FIG 26
`
`FIG 27
`
`0028
`0028
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 23 of 44
`
`5,619,554
`
`START
`
`PLAY THREAD 1536B SETS INDICATORS
`
`
`TELLING AUDIO THREAD 1534 THAT IT WILL BE _‘1— 2804
`
`
`
`PLAYING VOICE DATA
`
`PLAY THREAD 1536B INITIALIZES AUDIO
`DRIVER 1514
`
`___'__ 2808
`
`AUDIO DRIVER 1514 INFORMS AUDIO THREAD ____£_ 2812
`1534
`
`
`
`AUDIO THREAD 1534 DETBRMINES TO PLAY
`
`VOICE DATA VIA INDICATORS SET BY PLAY “%——— 2316
`
`THREAD 1536B
`
`DONE
`
`FIG 23
`
`0029
`0029
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 29 of 44
`
`5,619,554
`
`FROM STEP 2.608
`
`FIG 26
`
`
`
`AUDIO THREAD 1534 RETRIEVES ONE PACKET
`
`FROM FRAIVIE BLOCK QUEUE 1538
`
`1 2904
`
`AUDIO THREAD 1534 STORES THE DATA IN
`
`FIRST DATA BUFFER 1518A
`
`—*v— 2903
`
`AUDIO THREAD 1534 INSTRUCTS AUDIO
`
`DRIVER 1514 TO BEGIN PLAYING
`
`
`
`
`
`TO STEP 2616
`
`FIG 26
`
`STEP2612 J
`
`FIG 29
`
`0030
`0030
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 30 of 44
`
`5,619,554
`
`FROM 2612
`
`FIG 26
`
`
`
`AUDIO DRIVER 1514 PLAYS VOICE SCRIPT 1003 —z_ 3004
`
`
`
`
`PLAY THREAD 1536B INFORMS VOICE DATA
`
`SYSTEM 1500 THAT VOICE SCRIPT 1008 IS
`
`PLAYING
`
` AUDIO DRIVER 1514 INFORMS AUDIO THREAD ———L_ 3012
`
`1534 THAT PLAYED BUFFER 1518 IS E1\/IPTY
`
`
`
`STEP2616 J
`
`FIG 30
`
`0031
`0031
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 31 of 44
`
`5,619,554
`
`FROM STEP
`
`
`
`
`
`2616
`
`FIG 26
`
`AUDIO TI-[READ 1534 RETRIEVES PACKETS
`
`FROM THE FRAME BLOCK QUEUE 1538
`
`
`
`"fl-— 3104
`
`AUDIO THREAD 1534 STORES DATA IN SECOND
`DATA BUFFER 1518B
`
`‘L 3103
`
`AUDIO THREAD 1534 INFORMS ‘AUDIO DRIVER
`1514 THAT DATA ARE IN SECOND DATA
`
`
`
`
`
`
`
`
`
`BUFFER1 5 18B
`
`
`
`AUDIO THREAD 1534 POSTS AN AUDIO FED
`PLAY QUEUE MESSAGE TO THE PLAY TI-[READ —“c._. 3115
`1536B
`
`TO STEP 2612
`
`FIG 26
`
`FIG 31
`
`0032
`0032
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 32 of 44
`
`5,619,554
`
`AUDIO DRIVER 1514 DETECTS DTIVIF TONE AND —1_ 3204
`SENDS DTNIF EVENT TO AUDIO THREAD 1534
`
`
`
`
`AUDIO THREAD 1534 SENDS PLAY STOP
`
`COMMAND TO AUDIO DRIVER 1514
`
`
`
`AUDIO DRIVER 1514 SENDS PLAY STOP EVENT —-—L
`TO AUDIO THREAD 1534
`
`3212
`
`
`
`
`AUDIO THREAD 1534 FLUSI-IES DATA BUFFERS
`1518, POSTS AUDIO PLAY STOPPED MESSAGE —L 3216
`TO PLAY TI-IREAD 1536B
`
`FLUSHES FRAME BLOCK QUEUE 1533
`
`FIG 32
`
`0033
`0033
`
`
`
`
`
`PLAY THREAD 1536B SENDS AUDIO DONE
`MESSAGE TO APPLICATION THREAD AND
`
`
`
`_‘— 3220
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 33 of 44
`
`5,619,554
`
`
`AUDIO DRIVER I514 RUNS OUT OF VOICE DATA
`AND SENDS PLAY NO MORE FRAMES EVENT TO "‘“t— 3304
`
`
`
`
`
`AUDIO THREAD 1534
`
`
`
`
`
`
`
`AUDIO THREAD 1534 SENDS PLAY STOP
`
`COMMAND TO AUDIO DRIVER 1514
`
`AUDIO DRIVER 1514 SENDS PLAY STOP EVENT
`
`TO AUDIO THREAD 1534
`
`
`
`AUDIO THREAD 1534 FLUSHES DATA BUFFERS
`
`1518 AND POSTS AUDIO PLAY DONE MESSAGE "_'l—_ 3315
`
`TO PLAY THREAD 1536B
`
`PLAY THREAD 1536B SENDS AUDIO DONE
`
`MESSAGE TO MAIN VRU APPLICATION THREAD
`
`AND FLUSHES THE FRAME BLOCK QUEUE I538
`
`FIG 33
`
`0034
`0034
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 34 of 44
`
`5,619,554
`
`FIG 34
`
`0035
`0035
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 35 of 44
`
`5,619,554
`
`._.-L_
`
`3504
`
`TO FIG 37
`STEP 3704
`
`TO FIG 38
`STEP 3804
`
`
`
`PLAY THREAD 1536B RECEIVES PACKET FROM
`VOICE SCRIPT SERVICE 908, PLACES THE
`PACKET INTO FRAME BLOCK QUEUE 1538, AND
`SETS SEARCHING INDICATOR TO FALSE
`
`
`
`
`
`
`NO
`
`3512
`
`NO
`
`YES
`
`IS THIS THE
`
`LAST PACKET?
`
`YES
`
`TO FIG 36
`
`STEP 3604
`
`FIG 35
`
`0036
`0036
`
`
`
`U.S. Patent
`
`' Apr.3,1997
`
`Sheet 36 of 44
`
`5,619,554
`
`
`
`FROM FIG 35 STEP
`
`3512
`
`
`
`
`
`3604
`
`/“
`
`N0
`
`T0 FIG 28
`STEP 2804
`
`YES
`
`
`
`TO FIG 37
`
`STEP 3704
`
`
`
`FIG 36
`
`0037
`0037
`
`
`
`
`
`
`3704
`
`SEARCHING
`
`INDICATOR SET
`
`TO TRUE?
`
`
`
`RETRIEVE PACKET FROM
`
`VOICE SCRIPT SERVICE 908
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 37 of 44
`
`5,619,554
`
`FROM FIG 35
`
`STEP 3508
`
`FROM FIG 36
`
`STEP 3604
`
`
`
`
`
`NO
`
`YES
`
`TO FIG 40
`
`STEP 4004
`
`FIG 37
`
`0038
`0038
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 33 of 44
`
`5,619,554
`
`FROM FIG 35
`
`STEP 3512
`
`
`
`PLAY TI-[READ 1536B SENDS NEXT SEARCH
`
`REQUEST TO VOICE SCRIPT SERVICE 908 AND T. 3304
`SETS SEARCHING INDICATOR TO TRUE
`
`NO
`
`TO FIG 28
`STEP 2804
`
`YES
`
`RETRIEVE PACKET FROM VOICE SCRIPT
`
`SERVICE 908
`
`
`
`TO FIG 35
`
`STEP 3504
`
`FIG 38
`
`0039
`0039
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 39 of 44
`
`5,619,554
`
`FROM FIG 37
`
`STEP 3712
`
`
`
`
`
`PLAY THREAD 1536B SENDS SEARCH REQUEST
`
`AND SETS SEARCHING INDICATOR TO TRUE
`
`—7— 3904
`
`PACKET OF VOICE DATA FROM VOICE SCRIPT
`
`SERVICE 908
`
`TO FIG 35
`
`STEP 3504
`
`FIG 39
`
`0040
`0040
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 40 of 44
`
`5,619,554
`
`
`
`
`FROM FIG 37
`
`STEP 3712
`
`ANOTHER
`
`CRIPT TO PLAY‘?
`
`NO-5
`
`DONE
`
`
`
`YES
`
`PLAY THREAD 153 6B SENDS SEARCH REQUEST
`
`TO VOICE SCRIPT SERVICE 908
`
`PLAY THREAD 1536B SETS SEARCHING
`
`INDICATOR TO TRUE
`
`%-—— 4012
`
`
`
`STEP 3 704
`
`TO FIG 37
`
`FIG 40
`
`0041
`0041
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 41 of 44
`
`5,619,554
`
`4142
`
`L
`
`BASE PROCESS
`
`4102
`
`
`
`
`FINISH PROCESS
`
`4 108
`
`COIVIPLETE CALL PROCESS
`
`41 12
`
`FIG 41
`
`0042
`0042
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 42 of 44
`
`5,619,554
`
`SYSTEM 302
`
`CALL RECEIVED BY CALL PROCESSING
`
`NCP 304 IDENTIFIES CALL
`
`
`
`
`
`NCP 304 SENDS OPERATOR CONTROL DATA 324
`
`TO OPERATOR CONSOLE 308
`
`OPERATOR CONSOLE 308 STARTS
`
`BASE PROCESS 4102
`
`DEF RECORD 4104
`
`BASE PROCESS 4102 RETRIEVES
`
`BASE PROCESS 4102 PROCESSES CALL —g 4222
`
`STARTS FINISH PROCESS 41 03
`
`—a_ 4226
`
`STARTS COMPLETE CALL PROC 4112
`
`—-1__ 4230
`
`FIG 42
`
`0043
`0043
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 43 of 44
`
`5,619,554
`
`DEF RECORD
`
`4104
`
`
`
`DEF RECORD 4
`
`TAG #
`
`—;__ 4302
`
`7-4304
`
`14306
`
`L
`
`4308
`
`
`
`LENGTH FIELD
`
`DATA FIELD
`
`DATA 4310
`
`
`
`
`TAG #
`
`14304
`
`LENGTH FIELD
`
`7-4306
`
`DATA FIELD
`
`7-4303
`
`
`
`FIG 43
`
`0044
`0044
`
`
`
`U.S. Patent
`
`Apr. 3, 1997
`
`Sheet 44 of 44
`
`5,619,554
`
`SPECIFIC DEF RECORD
`
`TAG #
`
`P
`
`4406
`
`GROUP DEF RECORD
`
`TLEGD4#
`
`GENUS
`
`GENERIC DEF RECORD
`
`TAG #
`
`43114
`
`CLASS
`
`FIG 44
`
`0045
`0045
`
`
`
`5,619,554
`
`1
`DISTRIBUTED VOICE SYSTEM AND
`METHOD
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates generally to systems and
`methods used in processing telephone calls, and more par-
`ticularly, to systems and methods for allowing telephone
`carriers to o|l’cr enhanced products and services to their
`subscribers.
`2. Related Art
`
`Deregulation of the long-distance telephone industry
`spawned the growth of numerous long-distance service
`providers. each vying for a share of the United States’
`long-distance market. Thus far, the US. industry is domi-
`nated by three large companies: AT&T, MCI and Sprint.
`These large carriers have the resources and capital at their
`disposal to enable them to develop and provide a wide range
`of telcphonc—relatcd services to their customers.
`Perhaps less known, but still extremely important in the
`more than $50 billion interexchange U.S.
`long-distance
`market, are the smaller companies. In l99l,AT&T, MCI and
`Sprint controlled approximately 85 percent of the U.S.
`market. At this time, 12 medium-sized companies shared
`eight percent of the U.S. market. The remhining seven
`percent of the U.S. market was divided among nearly 320
`small carriers.
`
`The larger carriers are able to attract customers by offer-
`ing a full range of services in addition to direct dial calling.
`These services include, but are not limited to: opcrator—
`assisted calling, full-feature calling cards, and specialized
`800 number routing.
`The strategy followed by the smaller carriers in attracting
`customers has been to offer excellent service and low-cost,
`direct—dial
`long—distance calling (e.g.
`l+ca.lling). Many
`smaller carriers, for example, focus on a particular geo-
`graphic market. By understanding the market’s calling pat-
`terns, the smaller carrier can maximize crucial economies
`and can attract subscribers by offering long-distance calling
`at rates lower than those offered by larger carriers.
`Additionally, many smaller carriers use the fact that they
`are a small, local business in order to attract other local
`businesses as their clients. These carriers stress the ability to
`offer more personalized, responsive attention than some
`larger carriers may provide.
`However, many of the smaller carriers a.rc finding it
`increasingly difiicult to compete with the larger carriers by
`offering direct—dial calling alone. For these carriers to attract
`and retain customers, they need the ability to ofier the same
`range of features and services provided by some of the larger
`ca.rriers. For example, a small carrier may have a small travel
`agency as a long-distance subscriber. As the travel agency
`grows, develops more business, and hires additional sales-
`pcrsons, the travel agency's telephone services requirements
`also grow. The travel agency may want to offer calling cards
`to its salespersons who travel frequently The travel agency
`may also want the ability to re-route an incoming call that
`was made to their 800 number. Such re-routing allows the
`travel agency to re-route incoming 800—number calls to any
`telephone number. a voice mailbox, or a pager. Additionally,
`the travel agency may want the ability for its otfice workers,
`clients and vendors to make operator—assisted calls.
`Unfortunately, most smaller carriers can only provide
`direct-dial long distance service to its customers. If a smaller
`ca.rricr wants to offer enhanced products to its customers, the
`
`30
`
`40
`
`45
`
`50
`
`60
`
`65
`
`2
`smaller carrierl has two choices. First, the smaller carrier
`may purchase its own telephone switching system and
`operator consoles. Second. the smaller carrier may purchase
`and resell the products of one of its larger competitors.
`However, reliable, affordable, and scalable switching
`equipment is not commercially available. If a long-distance
`carrier wants to purchase its own equipment, the selection is
`limited to the large-scale complex switching systems that are
`currently available. Because these systems are costly,
`in
`most instances, the smaller carrier is forced to go through a
`larger carrier to obtain enhanced products.
`Several problems arise out of the inability of smaller
`carriers to provide enhanced calling services. Three of these
`problems are new described.
`First, the flexibility and customization options available to
`the smaller carriers in providing services are limited when
`they resell
`the products of their larger competitors. One
`reason for this is that those products were not designed with
`the smaller carriers‘ needs in mind. For example, consider a
`smaller carrier that wants to olfer a product like 800 number
`forwarding to its customers. The smaller carrier will want its
`customers to hear customized user prompts. including the
`identification of the carrier. The smaller ca.rrier will also
`want to establish its own prices for the service. To further
`customize its systems, the carrier may want to change the
`way the call processes, or to add additional features such as
`the ability to route an 800 number to a voice mailbox.
`In another example,
`the smaller carrier is unable to
`provide carrier-unique operator services. The cost of pro-
`viding operator services prohibits most smaller carriers from
`hiring their own operators and purchasing the required
`equipment.
`Instead, smaller carriers typically purchase
`operator services from a competitor carrier or from operator
`service providers.
`One drawback of having to use a competitor-’s operators
`is the inability to custom brand the call. For example, when
`a customer of the smaller carrier places an operator-assisted
`call using a competitor carrier's operators, she hears the
`operator of the competitor carrier thank her for using the
`competitor carrier's services. For example, consider the
`following hypothetical. XYZ. a small carrier, procures
`operator services for its users from ABC, a large carrier.
`When XYZ’s user places an operator-assisted call,
`the
`operator answers the call with the greeting: “Thank you for
`using ABC.”
`Another drawback of having to use another‘s operators is
`the inability to custom-tailor call processing because the
`operator services provided and the operator responses can-
`not be customized. The smaller carrier has no control over
`the operators used by the competitor carrier or the operator
`service provider.
`'
`Relying on larger carriers for providing these enhanced
`products does not give smaller carriers the flexibility they
`desire. This is because smaller carriers cannot customize the
`products they obtain from the larger carriers to provide
`unique services to their subscribers.
`A second problem is the range of services that can be
`provided by a smaller carrier is limited to the services that
`carrier can purchase from its competitors. As a result, the
`smaller carrier often cannot create innovative new products
`and services to offer its customers.
`
`Another problem is the smaller carrier's inability to get
`customized fulfillment material through a competitor carrier.
`For example, calling cards provided by a larger competitor
`carrier,
`in turn to be provided to the smaller carrier's
`customers, often hear the name of the competitor carrier.
`
`0046
`0046
`
`
`
`3
`
`4
`
`5,619,554
`
`In summary. because the small carriers must rely on the
`larger competitor carriers for advanced products and ser-
`vices such as calling cards, operator assistance, 800 service,
`audiotcxt, voice mail, and the like,
`the smaller carriers
`cannot offer a full range of carrier-unique and customer-
`uniquc products. As a result, the smaller carriers lose part of
`their ability to compete in the U.S. long-distance market.
`The problems of flexible control of a telephone network
`are not limited to the smaller carriers or the long-distance
`industry. All
`telephone carriers would benefit from the
`ability to offer popular, customized, value-added services.
`Commercially available hardware and conventional solu-
`tions to date, however, do not oifcr this ability.
`
`SUMMARY OF THE INVENTION
`
`The present invention is directed toward a system and
`method for recording and playback of voice scripts and
`voice messages for subscribers to a call processing system.
`Voice scripts are used to allow an automated voice response
`unit to provide instnrctions to and otherwise communicate
`with users of the call processing system. Voice scripts a.rc
`recorded and stored in a voice script service. When required,
`a voice script is retrieved from the voice script service and
`played to the user. The voice script provides a user with a
`greeting,
`instructions on how to proceed when using an
`enhanced feature of the call processing system, andfor other
`required information. The voice scripts can be customized to
`a particular carrier or user, and can also be provided in a
`specified language.
`When a call
`is placed by a user requiring operator
`assistance, a network control processor receives the call data
`for that call. allocates an operator console to handle the call,
`and provides infonrtatiort to the console allowing the con-
`sole to retrieve and play the appropriate script.
`When a voice script or a voice message is recorded, the
`frames of audio voice are encapsulated into packets and the
`packets are stored in a database. Preferably, each packet
`contains a plurality of frames of audio voice. When a voice
`message or voice script is to be played to a user 106, the first
`packet of that voice script or voice message is retrieved and
`playback begins immediately. As the first packet
`is de-
`packetized and the voice script played to the user, subse-
`quent pacl-tcts are retrieved, the data extracted therefrom and
`queued in a buffer for playback. As a result, playback can
`begin as soon as the first packet is retrieved and playback
`continues without interruption until the voice script or the
`voice message is completely played.
`The capability is also provided to record voice scripts
`remotely. This is accomplished through an automated voice
`response unit. To accomplish this, a user with the appropri-
`ate access can dial into a voice response unit and record a
`voice script
`in the same way that voice messages are
`recorded. As a result of this capability, carrier-customers of
`the call processing system can change their customer-spc-
`cifie voice scripts without intervention by a human operator
`at the call processing system.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is described herein with reference
`to the accompanying drawings. In the drawings, like refer-
`ence numbers indicate identical or functionally similar ele-
`ments. Additionally, the left digit(s) of each reference num-
`ber identifies the drawing in which the reference number
`first appears.
`
`FIG. 1 is a high—level block diagram illustrating the
`architecture of a conventional telephone switching configu-
`ration.
`
`FIG. 2 is a high-level operational flow diagram illustrat-
`ing the manner in which a conventional long-distance carrier
`provides long-distance telephone services to a long-distance
`carrier customer.
`
`FIG. 3 is a high—level block diagram: illustrating a call
`processing system.
`FIG. 4 is a high-level block diagram illustrating the
`interface of customers and users to the call processing
`system according to one embodiment of the present inven-
`tion.
`
`FIG. 5 is a high-level operational flow diagram illustrat-
`ing the steps involved in placing and completing a call using
`the call processing system.
`FIG. 6, which comprises FIGS. 7 and 8, is a high—level
`operational flow diagram illustrating the process that the call
`processing system uses to process operator-assisted calls.
`FIG. 7 is a high-level operational flow diagram illustrat-
`ing the process Ihat
`the call processing system uses to
`process operator-assisted calls.
`FIG. 8, which is a continuation of FIG. 7, illustrates a
`high—level operational
`flow of the process that
`the call
`processing system uses to process operator-assisted calls.
`FIG. 9 is a block diagram illustrating a call processing
`system with distributed voice features.
`FIG. 10 is a block diagram illustrating a call processing
`system with distributed voice script capabilities.
`FIG. 11 is an operational flow diagram illustrating the
`process by which a voice script is recorded and stored in a
`voice script database.
`flow diagram illustrating a
`FIG. 12 is an operational
`manner in which a voice script is played to a user.
`FIG. 13 is a block diagram illustrating a distributed voice
`messaging system.
`FIG. 14 is an operational flow diagram illustrating steps
`associated with recording a voice message.
`FIG. 15 is a diagram illustrating a representative func-
`tional arehitecture of a voice data processor.
`FIG. 16 is an operational flow diagram illustrating the
`recording of a voice script or a voice message for later
`playback.
`FIG. 17 is an operational flow diagram illustrating a
`process of initializing a voice data process.
`FIG. 18 is an operational flow diagram illustrating a
`manner in which voice data is recorded.
`
`FIG. 19 is an operational flow diagram illustrating a
`manner in which voice data is checked for silence.
`
`FIG. 20 is an operational flow diagram illustrating a
`manner in which voice data is paeketized.
`FIG. 21 is an operational
`flow diagram illustrating a
`manner in which packetizcd data is stored.
`FIG. 22 is an operational
`flow diagram illustrating a
`manner in which recording is stopped when silence is
`detected.
`
`FIG. 23 is an operational flow diagram illustrating a stop
`recording scenario in response to a DTMF tone.
`FIG. 24 is an operational
`flow diagram illustrating a
`manner in which recording is stopped when a maximum
`time limit is exceeded.
`
`FIG. 25 is an operational flow diagram illustrating steps
`followed upon receipt of a RECORD STOP command.
`
`5
`
`10
`
`I5
`
`25
`
`30
`
`35
`
`4t}
`
`45
`
`50
`
`55
`
`6|}
`
`65
`
`0047
`0047
`
`
`
`5,619,554
`
`5
`Ilow diagram illustrating a
`FIG. 26 is an operational
`manner in which voice data is played.
`FIG. 27 is an operational flow diagram illustrating steps
`involved with retrieving packets of the voice script to be
`played.
`FIG. 28 is an operational flow chart illustrating a manner
`in which a voice data processor is initialized.
`FIG. 29 is an operational flow diagram illustrating the
`buiTering of packets in a data butler.
`FIG. 30 is an operational [low diagram illustrating the
`playback of a voice script.
`FIG. 31 is an operational flow diagram illustrating steps
`of extracting data from packets in the frame block queue and
`storing this data in an available buffer.
`FIG. 32 is an operational
`llow diagram