`
`[19]
`United States Patent
`Hogan et a1.
`
`[11] Patent Number:
`5,619,554
`Apr. 8, 1997
`[45] Date of Patent:
`
`“111 1111 III "III Illll 111 111 lllll ||||| 111 Ill" 1111 III Ill" 1111
`U8005619554A
`
`[54] DISTRIBUTED VOICE SYSTEM AND
`METHOD
`
`[75]
`
`Inventors: Steven J. Hogan; Kristi T. Feltz;
`Douglas R. Murdock; David J.
`Vercande. all of Cedar Rapids; Roy A.
`Rhodes, Marion, all of Iowa
`
`[73] Assigncc: LinkUSA Corporation. Cedar Rapids,
`Iowa
`
`[21] Appl. No: 257,623
`
`[22]
`
`Filed:
`
`Jun. 8, 1994
`
`[51}
`
`[52] US. Cl.
`
`Int. Cl.“ ............................ .. G10L 9100; H04M 1164;
`H04M 3150
`............................... .. 379167; 379188; 379189;
`379171; 379176; 39512.79; 39512.87
`[58} Field of Search .................................. 379167, 88, 89,
`3791142, 112. 71. 76. 83. 87: 370161; 39512.87,
`2.89. 2.79
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`1011994 Kala
`39512.37
`1111994 Hopper ct a].
`379167
`111995 Heileman, Jr. el al.
`3791207
`911995 Jammaleddin ................ ..
`1211995 While et al.
`......................... .. 370194.1
`
`
`
`5.359.645
`5.367.609
`5.384.829
`5.443.633
`5.477.541
`
`OTHER PUBLICATIONS
`
`Somme Architec Series Portico, {SDS Product Overview),
`[992.
`
`The Open Architect Newark Interface. “Profit from Open
`Architecture".
`
`Primon Examiner—Krista M. Zele
`Assistant Examiner—Parag Dharia
`Attorney, Agent, or Fina—Sterne, Kcssler. Goldstein & Fox,
`P.L.L.C.
`
`[57]
`
`ABSTRACT
`
`A distributed voice system and method provides voice
`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 is retrieved. the data
`are extracted therefrom and playback can begin. As the voice
`is being played back to a user 106, subsoquenl packets are
`retrieved, the data extracted therefrom. and the data bufl'ered
`for playback. In this manner, a voice script or a voice
`message can be played back without interruption.
`
`16 Claims, 44 Drawing Sheets
`
`. PLAY THREAD
`
`379133
`379188
`331131
`379183
`.. 3411110
`379196
`.. 379133
`
`4.232.199
`4,611,096
`4,625.08]
`4.697.282
`4.841.574
`4.891.835
`4.905.003
`4.918.322
`5.222.120
`
`1111980 Boatwright el al. .
`911986 Asmuth at 5.1.
`.
`1111986 Lolita ela].
`911937 Winter et al.
`611989 Pham et a1.
`111990 Leung et a}.
`211990 Heiferich
`411990 Winteret a}.
`611993 McLeod et a1.
`
`..
`.
`
`.
`
`
`
`AUDIO SYSTEM 1510/‘/
`
`
`VOICE MODULE 1530/‘/
`
`0001
`0001
`
`Facebook Ex. 1010
`Facebook EX. 1010
`U.S. Pat. 8,243,723
`US. Pat. 8,243,723
`
`
`
`
`
`U
`
`4
`
`5,619,554
`
`
`tmMmmDMEOHwDUwmMEOHmDO“GEH<ZHGEOaUZMHfiZHUHMO#_“P__m_mQMm“rm................L
`oEEzEmBnt«flmmm4.34mEganMco.mEUHEm"mmmmb
`
`
`
` 7NH:lJl,NNH"n9lllllllllllllllllllllllllllllllllllllJ./__El_xJ13;Hgm,9::.....mo:mmmmonmboM@2058mAha:m.
`
`
`
`
`N:IrA,“IrN:mmo
`
`3
`
`0002
`
`WW ____ __..., .._ _.Y ._ _.. __.
`
`mmmfimqupmm5thw_1...............iSEggmm
`4l«M_v“HM.Na_.:l-
`
`OZHHSAEM
`
`mi.
`
`mmmmb
`
`meg
`
`.._.
`
`no
`“‘2'
`p-n-a
`
`no
`I—(
`
`fin
`NH
`
`MOHémmO
`
`mAOmZOO
`
`mg.
`
`:uE
`
`.QZHHSAHOSHO
`
`mMMwD
`
`<93
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 2 of 44
`
`
`
`ORIGWATE CALL
`
`AND SEND IT TO
`
`5,619,554
`
`202
`
`MATRIX SWITCH 102
`
`
`
`
`
`
`
`
`
` MAW SWITCH 102
`
`USES CALL DATA TO
`
`DETERMINE HOW TO
`
`HANDLE AND ROUTE
`
`THECALL
`
`204
`
`FOR A 0+ CALL,
`
`FOR A 1+ CALL,
`206
`PROVIDE OPERATOR
`USE CALL DATA 144
`1 "CALL DATA 146 T0
`
`210
`T0 ROUTE THE CALL
`OPERATOR CONSOLE
`
`108
`
`
`SEND OPERATOR
`0
`2 8 L COMMANDS 143 TO
`MATRIX SWITCH 102
`
`FIG 2
`
`0003
`0003
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 3 of 44
`
`5,619,554
`
`MOhémAHO
`
`40528
`
`Km5‘3_62
`
`am«3
`
`MOM.ng
`
`wmm<H<Q
`
`
`
`meOmmmml.~l
`
`mam293
`
`M___M
`
`mGE
`
`08BS002
`
`1|1.:.fl5mmm?
`
`
`
`amm‘HOwZOOMOHQMmmO
`
`_
`
`.x“mm
`
`\
`
`X/
`
`\£5.4,
`x.\SEQ/
`
`NE
`
`mm.
`
`fifi
`
`oaqfizoaIflmzzéo86>
`
`
`‘35\M/IL/Efizzéom2
`x,0592
`
`
`
`
`
`EUHEmEUHbSmmmmD
`
`20342;me
`
`
`
`MEOHmDOOZF<ZHOHMO
`
`m:
`
`0004
`0004
`
`
`
`
`
`US. Patent
`
`5,619,554
`
`AEmmawe"mmama:
`
`OEQEBwagzgme
`
`9x..m,_3Emmao:3:__o:
`
`m2:
`
`.55mm3n"amMmmHmommSw__mHsn
`
`4%ENHme___OEH<ZHOEO%Mmammmoofi
`
`
`
`OEEZEMEmmmwmwu.
`
`2%.:|__
`
`0005
`
`v65
`
`________
`
`
`Mum—SHOEmDU
`
`EUHEm
`
`$2830
`
`553
`
`mm
`
`DZHH<ZHGEO
`
`mmmmb
`
`«63
`
` II||I I
`
`mmmmb
`
`fivein
`
`ZHH<ZHUHMO
`
`._._._u._m.I:w_n_u._m_W_.._.m_m__
`
`I|
`
`JII|||||IlIIlll|||lIII||||||L
`
`
`
`
`
`
`
`
`US. 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 304
`DETERMINES HOW
`
`1.506
`
`1503
`
` NCP 304 INSTRUCTS
`MATRIX SWITCH 306
`
`REGARDING
`
`CALL ROUTING
`
`
`
`
`
`
`
`
`
`
`
` MATRIX SWITCH 306
`
`DIRECTS THE CALL
`
`TO THE DESTINATION
`
`AS INSTRUCTED BY
`
`NCP 304
`
`DONE
`
`FIG 5
`
`0006
`0006
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 6 of 44
`
`5,619,554
`
`
`
`FIG 8
`
`FIG?
`
`FIG 6
`
`0007
`0007
`
`
`
`U.S. Patent
`
`Apr. 8, 1997
`
`Sheet 7 of 44
`
`5,619,554
`
`INITIATE A CALL
`
`REQUIRING OPERATOR L702
`ASSISTANCE
`
`CALL PROCESSING
`SYSTEM 302 RECEIVES
`CALL AUDIO 142 AND
`
`CALL DATA 144
`
`704
`
`
`
`
`
`NCP 304
`
`DETERMINES THAT
`ORIGINATTNG USER
`REQUIRES OPERATOR
`ASSISTANCE
`
`7—706
`
`NCP 304 INSTRUCTS
`
`MATRIX SWITCH 306
`TO ROUTE CALL AUDIO L708
`_ 142 TO OPERATOR
`CONSOLE 308
`
`CONTROL DATA 324 TO
`
`OPERATOR CONSOLE 303
`INDICATING HOW
`TO HANDLE THE CALL
`
`L710
`
`0008
`0008
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 3 of 44
`
`5,619,554
`
`FROM 710
`
`FIG 7
`
`802
`
`806
`
`303
`
`810
`
`
`
`VALIDITY OF THE CARD NUNIBER
`
`
`CALLING CARD NUIVIBER IS VALID,
`IF
`OPERATOR CONSOLE 308 SENDS OPERATOR
`
`RESPONSE DATA TO NCP 304 TO CONFIGURE
`
`THE CALL
`
`NCP 304 INSTRUCTS MATRIX SWITCH
`306 TO ROUTETHE CALL TO THE
`
`CORRECT DESTINATION
`
`FOR A COLLECT CALL, THE OPERATOR VERIFIES
`THAT THE CALLED PARTY IS WILLING TO
`
`ACCEPT THE CHARGES FOR THE CALL
`
`IF THE CALLED PARTY REFUSES THE COLLECT
`
`CALL CHARGES, OPERATOR CONSOLE 308
`
`INSTRUCTS NCP 304 TO TERIVEINATE THE
`
`
`
`
`
`CONNECTION
`
`FIG 8
`
`0009
`0009
`
`804
`
`
`
`
`
`IF THE CALL IS A CALLING CARD CALL,
`
`OPERATOR CONSOLE 308 PROMPTS THE CALLER
`
`FORTI-IECARDNTJIVIBERAND VERIFIESTHE
`
`
`
`
`
`S.U
`
`.m
`
`9
`
`5
`
`011
`
`M
`
`1.,Mam
`
`ommos/vimMmagma:
`
`85>
`
`.wmamam
`
`ummoSmmmmoSmEHmE
`.#5855>mzmézofi
`
`5.,hm0E
`
`£1.
`
`mot/mm
`
`3w
`
`motam
`
`v.3
`
`M.NE9:
`
`am053d<o9Q?155
`
`155200W.85>55>,me
`m3:saJl§<n
`155o.523mommmoofiwmmZOmmmm
`
`0010
`
`
`
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 10 of 44
`
`455,916.,5
`
`{In
`
`\Illllillllllll::X-22%55>QZm920%053%
`
`N843mmole__mm<m<H€Qamt/vimmmDMOUmEMOHDmHmHmHQ
`
`
`
`
`
` wdmMOT/ammmPmHMUmmung?fl
`
`mAEmDHO>
`
`MEMm>ZOU
`
`viola.
`
`MAEmUHO>
`
`moofi
`
`IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII4lJ..IrIIllII4
` MOmmmUOMm
`
`EMngmz
`
`dogma/HOD
`
`0011
`0011
`
`IrrIIIII1IaIInuunui..IIIIIIJI1IIIIIIIIIIIuIIIIIIrIII.n...........J
`
`QMOUm—‘Mme
`
`mgmMm>MMm
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 11 of 44
`
`5,619,554
`
`
`
`START
`
`
`
`RECORD VOICE AUDIO
`
`1 1104
`
`
`
`PACKETIZE VOICE AUDIO INTO
`
`
`
` ‘7— 1116
`
`
`
`TL— 1108
`
`_‘-- 1112
`
`
`
`VOICE SCRIPT 1008
`
`DISTRIBUTE VOICE SCRIPT 1008
`
`SAVE VOICE SCRIPT 1008 IN
`
`DATABASE 1004
`
`FIG 11
`
`0012
`0012
`
`
`
`US. 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
`
`1203
`
`I
`
`--1__
`
`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
`
`1215
`
`TO VRU 334
`
`M 1262
`NO
`
`1220
`
`/‘/
`NHNMUM # OF
`PACKETS?
`
`YES
`
`
`
`
`
`VRU 334 PLAYS VOICE SCRIPT 1008 I 1224
`
`
`
`FIG 12
`
`0013
`0013
`
`
`
`
`
`tnetaPQMU
`
`Apr. 8, 1997
`
`Sheet 13 of 44
`
`455,916.,5
`
`mUHO>
`
`m0<mmmaa
`
`MEMMm
`
`Na
`
`QZm..H.ZOMm
`
`MOEmEme
`
`mam
`
`0014
`0014
`
`MMOBEMZ
`
`MOmmeOMm
`
`AOMHZOU
`
`2DE
`
`
`
`mow/yam"ED
`
`EN
`
`gum
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 14 of 44
`
`5,619,554
`
`START
`
`VRU 334 RECEIVES AUDIO MESSAGE -z__ 1404
`
`VRU 334 PACKETIZES AUDIO
`MESSAGE
`
`L— 14.03
`
`
`
`SEQUENTIALLY NUMBERED AND 1 1412
`SENT TO FED 904
`
`MESSAGE PACKETS ARE
`
`FED 904 ASSIGNS A MESSAGE
`
`
`
`
`
`NUMBER AND SENDS VOICE
`
`MES SAGE 1308 TO VOICE MESSAGE
`
`_’—— _ 1416
`
`SERVER 1302
`
`FED 904 SENDS MESSAGE NUMBER
`TO VRU 334
`
`*1— 1420
`
`FIG 14
`
`0015
`0015
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 15 of 44
`
`5,619,554
`
`VOICEMODULE1530/‘/
`
`MESSAGE
`
`QUEUE 15.32
`
`1510/“
`
`
`
`
`
`
`
`FIG15
`
`
`
`AUDIOSYSTEM
`
`0016
`
`
`
`US. Patent
`
`Apr. 8, 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
`
`
`
`
`
`STORE PACKETIZED AUDIO VOICE
`
`AS VOICE SCRIPT 1008 OR VOICE
`
`MESSAGE 1308
`
`
`
`FIG 16
`
`0017
`0017
`
`
`
`
`
`_L— 1604
`
`I 1608
`
`
`
`
`—L-— 1612
`
`—’—— 1616
`
`'_1.._ 1620
`
`
`
`
`
`US. 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
`
`I
`
`"—7—-
`
`1708
`
`RECORD THREAD 1536A INITIALIZES AUDIO
`
`DRIVER 1514
`
`—2_._
`
`1712
`
`AUDIO DRIVER 1514 ALERTS AUDIO THREAD
`1534
`
`“"7—
`
`1716
`
`
`
`AUDIO THREAD 1534 DETERMINES IF RECORD
`REQUIRED VIA INDICATORS
`
`1718
`
`TO STEP 1612
`
`FIG 16
`
`FIG 17
`
`0018
`0018
`
`
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 18 of 44
`
`5,619,554
`
`FROM STEP 1608
`
`FIG 16
`
`AUDIO THREAD 1534 COMIMANDS AUDIO
`
`DRIVER 1514 TO BEGIN RECORDING
`
`AUDIO DRIVER 1514 INDICATES RECORD
`
`COMIVIAND ACCEPTED
`
`AUDIO THREAD 1534 SENDS NEXT BUFFER
`
`COMMAND TO AUDIO DRIVER 1514
`
`EVENT TO AUDIO THREAD 1534
`
`
`
`AUDIO DRIVER 1514 SENDS RECORD BEGUN
`
`AUDIO DRIVER 1514 INFORMS AUDIO THREAD
`
`
`
`1534 THAT BUFFER 1518 IS FULL
`
`_"7—— 1820
`
`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
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 20 of 44
`
`5,619,554
`
`FROM STEP
`
`
`
`1612
`
`FIG 16
`
`AUDIO THREAD 1534 PACKETIZES VOICE DATA ——¢_
`
`2004
`
`AUDIO THREAD 1534 PLACES PACKETS INTO
`FRAME BLOCK QUEUE 1538
`
`‘— 2003
`
`
`
`AUDIO THREAD 1534 INDICATES TO AUDIO
`
`DRIVER 1514 THAT AUDIO DATA CAN BE
`
`
`
`“‘7— 2012
`
`STORED IN NOW AVAILABLE BUFFER 1513
`
`
`
`
`
`
`
`
`
`AUDIO THREAD 1534 INFORMS RECORD
`
`THREAD 1536A THAT PACKETS ARE READY TO “*7— 2016
`
`BE STORED
`
`TO STEP 1620
`
`FIG 16
`
`FIG 20
`
`0021
`0021
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 21 of 44
`
`5,619,554
`
`FROM STEP 1616
`
`
`
`FIG 16
`
`
` i 2108
`
`
`
`
`
`
`
`
`RECORD THREAD 1536A RETRIEVES PACKETS
`
`FROM FRANIE BLOCK QUEUE 1538
`
`i 2104
`
`RECORD THREAD 1536A CHECKS FOR SILENT
`
`LEADING PACKETS
`
`YES
`
`_
`
`DISCARD PACKET —z_ 2116
`
`RECORD THREAD 1536A SENDS PACKETS FOR
`STORAGE
`
`
`
`2 20
`'— 1
`
`
`
`
`
`FIG 21
`
`0022
`0022
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 22 0f 44
`
`5,619,554
`
`AUDIO THREAD 1534 CHECKS ENERGY LEVEL EL 2204
`WHILE PACKETIZING
`
`
`
` CONTINUE
`PACKETIZING
`
`
`
`
`AUDIO DRIVER 1514 AND A CHECK FOR
`
`SILENCE MESSAGE TO RECORD
`
`THREAD 1536A
`
`FIG 22
`
`0023
`0023
`
`
`
`
`
`AUDIO THREAD 1534 SENDS RECORD STOP TO
`
`
`
`
`
`
`
`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
`
`
`
`REC RD
`O
`
`‘
`THREAD 1536A DISCARDS PACKET IF —L__ 2314
`SILENCE DETECTED
`
`FIG 23
`
`0024
`0024
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 24 of 44
`
`5,619,554
`
`START TIMER
`
`""1— 2404
`
` APPLICATION THREAD INSTRUCTS VOICE DATA —L_ 2408
`
`PROCESSOR TO STOP RECORDING
`
`AUDIO DRIVER 1514 SENDS READ
`
`TO AUDIO THREAD 1534
`
`WAKE
`
`EVENT _L__ 2412
`
`AUDIO THREAD 1534 CHECKS INDICATOR THAT __L_ 2416
`
`SAYS TO STOP RECORDING
`
`L“ 2420
`
`AUDIO THREAD 1534 SENDS RECORD STOP
`COW/{AND T0 AUDIO DRIVER 1514
`
`AUDIO THREAD 1534 SENDS CHECK FOR
`
`
`
`SILENCE MESSAGE TO RECORD THREAD 1536A
`
`"—1-— 2424
`
`TO FIG 15
`
`FIG 24
`
`0025
`0025
`
`
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 25 of 44
`
`5,619,554
`
`AUDIO THREAD 1534 SECTIONS LAST DATA
`BUFFER INTO PACKETS AND PLACES PACKETS _7— 2508
`
`INTO FRAME BLOCK QUEUE
`
`AUDIO THREAD POSTS AUDIO RECORD
`
`STOPPED MESSAGE TO RECORD THREAD 1536A
`
`AUDIO DRIVER 1514 STOPS RECORDING, SENDS
`RECORD STOP EVENT TO AUDIO THREAD 1534, —L 25 04
`AND RELEASES LAST DATA BUFFER 1518
`
`
`
`
`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
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 26 of 44
`
`5,619,554
`
`
`
`RE'I‘RIEVE PACKETS TO BE PLAYED —1_ 2604
`
`STORE PACKET IN FRAME BLOCK
`
`QUEUE 1538
`
`_1— 2608
`
`BUFFER PACKETS IN BUFFER 1518 _L« 2612
`
`PLAY VOICE SCRIPT 1008
`
`
`
`
`
`
`
`2662
`
`FIG 26
`
`0027
`0027
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 27 of 44
`
`5,619,554
`
`
`
`START
`
`
`
`PLAY THREAD 1536B REQUESTS VOICE SCRIPT
`1008
`
`
`
`
`
`PLAY THREAD 1536B SETS SEARCHING
`
`INDICATOR TO TRUE
`
`
`
`GO TO STEP 2608
`
`FIG 26
`
`
`
`1 2704
`
`TIL 2708
`
`
`
`FIG 27
`
`0028
`0028
`
`
`
`US. 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
`
`_.__l__ 2808
`
`AUDIO DRIVER 1514 EEORMS AUD
`
`10 THREAD
`
`———2_ 2812
`
`
`
`
`
`
`
`AUDIO THREAD 1534 DETERMINES TO PLAY
`
`VOICE DATA VIA INDICATORS SET BY PLAY “fl... 2316
`
`THREAD 15363
`
`DONE
`
`FIG 23
`
`0029
`0029
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 29 of 44
`
`5,619,554
`
`FROM STEP 2608
`
`FIG 26
`
`
`
`
`
`AUDIO THREAD 1534 RETRIEVES ONE PACKET
`
`FROM FRAME BLOCK QUEUE 1538
`
`i 2904
`
`AUDIO THREAD 1534 STORES THE DATA IN
`
`FIRST DATA BUFFER 1518A
`
`
`
`TO STEP 2616
`
`FIG 26
`
`STEP2612 j
`
`FIG 29
`
`0030
`0030
`
`
`
`
`
`AUDIO THREAD 1534 INSTRUCTS AUDIO
`
`DRIVER 1514 TO BEGIN PLAYING
`
`
`
`
` _"7— 2908
`
`
`
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 30 of 44
`
`5,619,554
`
`FROM 2612
`
`FIG 26
`
`
`
`
`
`
`
`
`AUDIO DRIVER 1514 PLAYS VOICE SCRIPT 1003 —a_ 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 1513 IS EMPTY
`
`
`
`STEP2616 1
`
`FIG 30
`
`0031
`0031
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 31 of 44
`
`5,619,554
`
`FROM STEP
`
`
`
`
`
`2616
`
`FIG 26
`
`
`
`
`
`AUDIO THREAD 1534 RETRIEVES PACKETS
`
`FROM THE FRANIE BLOCK QUEUE 1538
`
`
`
`'—'-— 3104
`
`AUDIO THREAD 1534 STORES DATA IN SECOND
`DATA BUFFER 1518B
`
`i 3108
`
`
`
`AUDIO THREAD 1534 INFORMS AUDIO DRIVER
`1514 THAT DATA ARE IN SECOND DATA
`
`
`
`i 3112
`
`
`BUFFERI 5 18B
`
`
`
`
`AUDIO THREAD 1534 POSTS AN AUDIO FED
`PLAY QUEUE NIESSAGE TO THE PLAY THREAD —“c._. 3116
`1536B
`
`TO STEP 2612
`
`FIG 26
`
`FIG 31
`
`0032
`0032
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 32 of 44
`
`5,619,554
`
`
`
`AUDIO DRIVER 1514 DETECTS DTIVIF TONE AND —1_ 3204
`SENDS DTMF EVENT TO AUDIO THREAD 1534
`
`AUDIO THREAD 1534 SENDS PLAY STOP
`
`COMMAND TO AUDIO DRIVER 1514
`
`AUDIO DRIVER 1514 SENDS PLAY STOP EVENT u-L 3212
`TO AUDIO THREAD 1534
`
`AUDIO THREAD 1534 FLUSI-IES DATA BUFFERS
`1518, POSTS AUDIO PLAY STOPPED MESSAGE i 3216
`TO PLAY THREAD 1536B
`
`
`
`
`
`
`
`
`_‘— 3220
`
`
`
`
`
`
`
`FLUSHES FRAME BLOCK QUEUE 1533
`
`FIG 32
`
`0033
`0033
`
`PLAY THREAD 1536B SENDS AUDIO DONE
`MESSAGE TO APPLICATION THREAD AND
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 33 of 44
`
`5,619,554
`
`
`AUDIO DRIVER 1514 RUNS OUT OF VOICE DATA
`AND SENDS PLAY NO MORE FRAMES EVENT TO *7— 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
`
`
`
`AND FLUSHES THE FRAME BLOCK QUEUE 1538
`
`
`
`
`
`AUDIO THREAD 1534 FLUSI-IES DATA BUFFERS
`
`1518 AND POSTS AUDIO PLAY DONE MESSAGE "—1-.— 3316
`
`TO PLAY THREAD 1536B
`
`PLAY THREAD 1536B SENDS AUDIO DONE
`
`MESSAGE TO MAIN VRU APPLICATION THREAD
`
`FIG 33
`
`0034
`0034
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 34 of 44
`
`
`
`
`
`5,619,554
`
`FIG 34
`
`0035
`0035
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 35 of 44
`
`5,619,554
`
`PLAY THREAD 15363 RECEIVES PACKET FROM
`VOICE SCRIPT SERVICE 908, PLACES THE
`PACKET INTO FRAME BLOCK QUEUE 1538, AND
`SETS SEARCHING INDICATOR TO FALSE
`
`._.L_
`
`3504
`
`
`
`NO
`
`TO FIG 37
`STEP 3704
`
`YES
`
`3512
`
`
`
`
`
`
`
`
`IS THIS THE
`
`
`
`LAST PACKET?
`
`YES
`
`TO FIG 36
`
`STEP 3604
`
`FIG 35
`
`0036
`0036
`
`NO
`
`TO FIG 38
`STEP 3804
`
`
`
`US. Patent
`
`' Apr.3,1997
`
`Sheet 36 of 44
`
`5,619,554
`
`FROM FIG 35 STEP
`
`3512
`
`
`
`
`
`
`
`
`
`/
`
`YES
`
`TO FIG 37
`
`STEP 3704
`
`
`
`
`
`TO FIG 28
`STEP 2804
`
`3604
`
`NO
`
`FIG 36
`
`0037
`0037
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 37 of 44
`
`5,619,554
`
`FROM FIG 35
`
`STEP 3508
`
`
`
`
`FROM FIG 36
`
`STEP 3604
`
`3704
`
`SEARCHING
`
`
`
`
`
`NO
`
`YES
`
`TO FIG 40
`
`STEP 4004
`
`INDICATOR SET
`
`
`
`TO TRUE?
`
`
`
`
`
`RETRIEVE PACKET FROM
`
`VOICE SCRIPT SERVICE 908
`
`FIG 37
`
`0038
`0038
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 33 of 44
`
`5,619,554
`
`
`
`
`PLAY THREAD 1536B SENDS NEXT SEARCH
`
`REQUEST TO VOICE SCRIPT SERVICE 908 AND I 3304
`SETS SEARCHING INDICATOR T0 TRUE
`
`
`
`
`3808
`
`//
`
`FROM FIG 35
`
`STEP 3512
`
`
`
`
`
`NO
`
`TO FIG 28
`STEP 2804
`
`—_‘—-
`
`3812
`
`RETRIEVE PACKET FROM VOICE SCRIPT
`
`YES
`
`SERVICE 908
`
`TO FIG 35
`
`STEP 3504
`
`
`
`FIG 38
`
`0039
`0039
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 39 of 44
`
`FROM FIG 37
`
`STEP 3712
`
`PLAY THREAD 1536B SENDS SEARCH REQUEST
`
`AND SETS SEARCHING INDICATOR TO TRUE
`
`5,619,554
`
`—L 3904
`
`
`
`
`
`
`
`PACKET OF VOICE DATA FROM VOICE SCRIPT
`
`SERVICE 908
`
`TO FIG 35
`
`STEP 3504
`
`FIG 39
`
`0040
`0040
`
`
`
`5,619,554
`
`DONE
`
`I 4012
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 40 of 44
`
`
`
`
`FROM FIG 37
`
`STEP 3712
`
`ANOTHER
`
`CRIPT TO PLAY9
`
`
`
`
`
`NO—i'
`
`YES
`
`PLAY THREAD 153 6B SENDS SEARCH REQUEST
`
`TO VOICE SCRIPT SERVICE 908
`
`PLAY THREAD 153613 SETS SEARCHING
`
`INDICATOR TO TRUE
`
`
`
`STEP 3 704
`
`TO FIG 37
`
`FIG 40
`
`0041
`0041
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 41 of 44
`
`5,619,554
`
`4142'3_
`
`
`
`BASE PROCESS
`
`4102
`
`FlNISI-I PROCESS
`
`4 108
`
`
`
`
`
`
`COMPLETE CALL PROCESS
`
`41 12
`
`FIG 41
`
`0042
`0042
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 42 of 44
`
`5,619,554
`
`CALL RECEIVED BY CALL PROCESSING
`
`SYSTEM 302
`
`NCP 304 SENDS OPERATOR CONTROL DATA 324
`
`TO OPERATOR CONSOLE 308
`
`
`
`NCP 304 IDENTIFIES CALL
`
`
`
`
`
`4214
`
`OPERATOR CONSOLE 308 STARTS
`BASE PROCESS 4102
`
`—'_l_
`
`BASE PROCESS 4102 RETRIEVES
`
`DEF RECORD 4104
`
`BASE PROCESS 4102 PROCESSES CALL 1 4222
`
`STARTS FINISH PROCESS 4103
`
`—w_ 4226
`
`STARTS COMPLETE CALL PROC 4112
`
`—'i__ 4230
`
`FIG 42
`
`0043
`0043
`
`
`
`US. Patent
`
`Apr. 8, 1997
`
`Sheet 43 of 44
`
`5,619,554
`
`"L. 4302
`
`14304
`
`L4306
`
`L 4308
`
`1—4304
`
`7—43 06
`
`
`
`
`
`
`"1—4303
`
`
`
`
`
`
`
`DEF RECORD
`
`4104
`
`DEF RECORD #
`
`TAG #
`
`LENGTH FIELD
`
`
`
`
`
`
`DATA FIELD
`
`DATA 43.19
`
`TAG #
`
`LENGTH FIELD
`
`DATA FIELD
`
`FIG 43
`
`0044
`0044
`
`
`
`US. Patent
`
`Apr. 3, 1997
`
`Sheet 44 of 44
`
`5,619,554
`
`SPECIFIC DEF RECORD
`
`TAG#
`m I
`
`4406
`
`GROUP DEF RECORD
`
`4394
`
`
`
`P
`
`GENUS
`
`CLASS
`
`TAG #
`43 Q4
`
`GENERIC DEF RECORD
`
`TAG #
`
`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 olIer 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 telephone—related 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 appmximately 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: operator—
`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+calling). 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 are finding it
`increasingly diliicult 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
`carriers. 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-
`persons, 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 rc-route an incoming call that
`was made to their 800 number. Such re-routing allows the
`travel agency to re-route incoming BOO—number calls to any
`telephone number. a voice mailbox, or a pager. Additionally,
`the travel agency may want the ability for its office 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
`carrier wants to offer enhanced products to its customers, the
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`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
`can‘iers to provide enhanced calling services. Three of these
`problems are now 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 can'icrs‘ needs in mind. For example, consider a
`smaller carrier that wants to ofi'er 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 carrier 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, 3. large can'ier.
`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,
`audiotext, 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 lclcphone 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 cenvcntional solu-
`tions to date, however, do not oiTer 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 instructions to and otherwise communicate
`with users of the call processing system. Voice scripts are
`recorded and stored in a voice script service. When required,
`a voice seripl 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, ande’or 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 information 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 packets 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-spe-
`cific 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 digitts) 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~distanee carrier
`provides long-distance telephone services to a longndistance
`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-
`[1011.
`
`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 that
`the call processing system uses to
`process operator-assisted calls.
`FIG. 8, which is a continuation of FIG. 7, illustrates a
`high-level operational
`[low 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
`prooess 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 architecture 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 packetiaed.
`FIG. 21 is an operational
`flow diagram illustrating a
`manner in which packetized 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 fl0w 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
`
`IS
`
`25
`
`3!}
`
`35
`
`4t}
`
`45
`
`50
`
`55
`
`60
`
`65
`
`0047
`0047
`
`
`
`
`
`5,619,554
`
`
`
`5
`flow 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