Language selection

Search

Patent 2259175 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2259175
(54) English Title: WIRELESS SMART PHONE
(54) French Title: TELEPHONE SANS FIL INTELLIGENT
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04N 1/00 (2006.01)
  • H04M 1/00 (2006.01)
  • H04M 1/247 (2021.01)
  • H04M 1/64 (2006.01)
  • H04M 1/65 (2006.01)
  • H04M 1/725 (2021.01)
  • H04M 3/42 (2006.01)
  • H04M 11/00 (2006.01)
  • H04M 11/10 (2006.01)
  • H04M 1/247 (2006.01)
  • H04M 1/725 (2006.01)
  • H04Q 7/32 (2006.01)
(72) Inventors :
  • JOHNSON, WILLIAM J. (United States of America)
(73) Owners :
  • MCI COMMUNICATIONS CORPORATION (United States of America)
(71) Applicants :
  • MCI COMMUNICATIONS CORPORATION (United States of America)
(74) Agent: OSLER, HOSKIN & HARCOURT LLP
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 1997-06-27
(87) Open to Public Inspection: 1997-12-31
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US1997/011236
(87) International Publication Number: WO1997/050222
(85) National Entry: 1998-12-21

(30) Application Priority Data:
Application No. Country/Territory Date
60/029,183 United States of America 1996-06-27
08/799,414 United States of America 1997-02-12

Abstracts

English Abstract




A telephone device (100) that enables a user to perform data processing
functions. Data processing functions include calculator, recorder, data
transmission, facsimile, and answering device functions. A macro function is
further provided to enable an invocable sequence of telephone buttons (104) to
be defined by the user. Telephone calls can be received and processed (112)
while the telephone device is in an off-line mode. Functionality may be
updated or added to the telephone device through software download (122, 120)
over the telephone network.


French Abstract

L'invention concerne un appareil téléphonique (100) qui permet à l'usager d'exécuter des fonctions de traitement de données. Ces fonctions de traitement de données sont, notamment, des fonctions calculatrice, enregistreur, transmission de données, télécopie, et répondeur. L'appareil téléphonique comprend en outre une macrofonction qui permet à l'usager de définir une séquence pouvant être appelée de touches téléphoniques. Ainsi, les appels téléphoniques peuvent être reçus et traités (112) alors que l'appareil téléphonique est en mode hors-ligne. Grâce à un téléchargement du logiciel sur le réseau téléphonique, il est possible de mettre à jour les fonctions de l'appareil téléphonique ou d'en ajouter des nouvelles.

Claims

Note: Claims are shown in the official language in which they were submitted.


-57-
What is Claimed is:
1. A telephone device, comprising:
a connecting circuit for connecting the telephone device to a network
thereby enabling the telephone device to receive and initiate telephone calls over
the network; and
a computer system for controlling the telephone device, said computer
system comprising,
a processor coupled to said connecting circuit,
a memory device coupled to said processor for storing computer
program logic for controlling said processor,
data means coupled to said processor for transmitting and
receiving data over the network, and
means for accepting input from a user, said input implemented
through user interface interrupt vectors that enable said processor to operate the
telephone device to perform data processing functions.

2. The telephone device of claim 1, further comprising:
an answering device for playing an outgoing message when an incoming
telephone call is not answered after a predetermined number of rings.

3. The telephone device of claim 2, further comprising:
a recorder for recording an audible message, said recorder having a
configurable sampling rate.

4. The telephone device of claim 3, wherein said recorder comprises a
converter for converting speech to text.

5. The telephone device of claim 3, wherein the outgoing message
corresponds to a record in an index table stored on said memory device, said

-58-
record including an index number equal to one, a data type of recording, a date
and time identifier, and a unique file name for the outgoing message, and wherein
the audible message corresponds to a different record in said index table, said
different record including an index number not equal to one, a data type of
recording, a date and time identifier, and a unique file name for the audible
message.

6. The telephone device of claim 3, further comprising:
a playback device for playing the audible message.

7. The telephone device of claim 1, wherein a portion of said computer
program logic is input to the telephone device from the network via said data
means.

8. The telephone device of claim 1, wherein an on-hook status message is
provided to the network so that telephone calls can be received while the
telephone device is in an off-line mode.

9. The telephone device of claim 3, wherein said recorder is configured to
record one side of a telephone conversation.

10. The telephone device of claim 3, wherein said recorder is configured to
record both sides of a telephone conversation.

11. The telephone device of claim 1, further comprising:
calculating means for configuring the telephone device to function as a
calculator.

12. The telephone device of claim 1, further comprising:
macro means for defining an invocable sequence of telephone buttons.

-59-
13. A telephone device comprising:
call connecting means for connecting the telephone device to a network
thereby enabling the telephone device to receive and initiate telephone calls over
the network; and
control means for controlling the telephone device, wherein said control
means is responsive to user interface interrupt vectors to configure the telephone
device to perform data processing functions.

14. The telephone device of claim 13, wherein said control means provides
an on-hook status message to the network so that telephone calls can be receivedwhile the telephone device is in an off-line mode.

15. The telephone device of claim 13, wherein said control means comprises:
recording means for recording an audible message; and
playback means for playing the audible message.

16. The telephone device of claim 15, wherein said recording means has a
configurable sampling rate.

17. The telephone device of claim 16, wherein said recording means
comprises converting means for converting speech to text.

18. The telephone device of claim 15, wherein said control means further
comprises:
answering means for playing an outgoing message when an incoming
telephone call is not answered after a predetermined number of rings.

19. The telephone device of claim 13, wherein said control means comprises:
facsimile means for receiving and transmitting facsimile messages over
the network.

-60-
20. The telephone device of claim 19, wherein said facsimile means
comprises a modem.

21. The telephone device of claim 18, wherein said control means further
comprises:
facsimile means for receiving and transmitting facsimile messages over
the network.

22. The telephone device of claim 13, wherein said control means comprises:
calculating means for configuring the telephone device to function as a
calculator.

23. The telephone device of claim 21, wherein said control means further
comprises:
calculating means for configuring the telephone device to function as a
calculator.

24. The telephone device of claim 13, further comprising:
macro means for defining an invocable sequence of telephone buttons.

25. The telephone device of claim 24, wherein the sequence is a user-defined
sequence.

26. The telephone device of claim 21, further comprising:
macro means for defining an invocable sequence of telephone buttons.

27. The telephone device of claim 26, wherein the sequence is a user-defined
sequence.

-61-
28. A method for controlling operation of a telephone device, comprising:
(1) establishing a connection between the telephone device and a
software provider over a network;
(2) downloading computer program logic from the software provider
into the telephone device for controlling a processor; and
(3) installing user interface interrupt vectors in a memory device
coupled to the processor, wherein said user interface interrupt vectors are used in
configuring the telephone device to perform data processing functions,

29. The method of claim 28, wherein said computer program logic comprises
on-hook status message means for enabling the processor to configure the
telephone device to provide an on-hook status message to the network so that
telephone calls can be received while the telephone device is in an off-line mode.

30. The method of claim 29, wherein said computer program logic further
comprises:
recording means for enabling the processor to configure the telephone
device to record an audible message; and
playback means for enabling the processor to configure the telephone
device to play the audible message.

31. The method of claim 30, wherein said computer program logic further
comprises:
answering means for enabling the processor to configure the telephone
device to play an outgoing message when an incoming telephone call is not
answered after a predetermined number of rings.

32. The method of claim 31, wherein said computer program logic further
comprises:

-62-
facsimile means for enabling the processor to configure the telephone
device to receive and to transmit facsimile messages over the network.

33. The method of claim 32, wherein said computer program logic further
comprises:
calculating means for enabling the processor to configure the telephone
device to function as a calculator.

34. The method of claim 33, wherein said computer program logic further
comprises:
macro means for enabling the processor to configure the telephone device
to define an invocable sequence of telephone buttons.

35. A method for processing of a telephone call by a telephone device,
comprising:
(1) determining whether the telephone device is in an off-line mode;
(2) answering the telephone call if the telephone device is in the
off-line mode, and
(a) processing a facsimile if a facsimile tone is detected, and
(b) initiating an answering device sequence if a facsimile tone
is not detected; and
(3) ringing a ringer if the telephone device is not in the off-line mode,
and
(a) initiating a received call processing sequence if the
telephone call is not answered after a predetermined number of rings.

36. The method of claim 35, wherein step (2)(A) comprises:
(i) creating a file having a unique file name on a storage device;
(ii) storing received facsimile data in said file; and
(iii) inserting a record into an index table that corresponds to said file.

-63-
37. The method of claim 36, wherein said record includes an index number,
a data type of facsimile, a date and time identifier, and said unique file name.
38. The method of claim 35, wherein step (2)(B) comprises:
(i) providing a device unavailable message if a recorder is in use; and
(ii) securing the recorder if the recorder is not in use, and
(a) playing an outgoing message,
(b) recording an incoming message on the recorder for a
predetermined time interval,
(c) inserting a record into an index table that corresponds to
the incoming message, and
(d) releasing the recorder.

39. The method of claim 38, wherein step (ii)(b) comprises:
(1) creating a file on the recorder having a unique file name;
(2) converting speech in the incoming message to incoming text; and
(3) storing the incoming text in said file.

40. The method of claim 39, wherein said record includes an index number,
a data type of recording, a date and time identifier, and said unique file name.
41. The method of claim 35, wherein step (3)(A) comprises:
(i) answering the telephone call if the telephone device is in the
off-line mode, and
(a) processing a facsimile if a facsimile tone is detected, and
(b) initiating an answering device sequence if a facsimile tone
is not detected.

-64-
42. A method for controlling operation of a telephone device, comprising:
(1) receiving a telephone button sequence that allows a user to
perform data processing functions; and
(2) configuring the telephone device to perform data processing
functions selected by the user.

43. The method of claim 42, wherein the telephone device is configured to
perform recorder functions and step (2) comprises:
(a) controlling a recorder to record a new recording into a file having
a unique file name; and
(b) inserting a record that corresponds to the new recording into an
index table, wherein said record includes an index number, a data type of
recording, a date and time identifier, and said unique file name.

44. The method of claim 42, wherein the telephone device is configured to
perform recorder functions and step (2) comprises:
(a) playing a recording that corresponds to an index number selected
by the user, wherein the recording corresponds to a record in an index table that
includes said index number; and
(b) providing an error tone if said index number is not valid.

45. The method of claim 42, wherein the telephone device is configured to
perform recorder functions and step (2) comprises:
(a) deleting a record from an index table, wherein said record includes
an index number selected by the user; and then
(b) re-enumerating records in said index table that include index
numbers greater than or equal to 2.

-65-
46. The method of claim 42, wherein the telephone device is configured to
perform recorder functions and step (2) comprises:
(a) retrieving a record from an index table;
(b) annotating for the user an index number, data type, and date and
time identifier included in said record; and
(c) playing a recording that corresponds to said record if said data type
is recording.

47. The method of claim 46, wherein step (2) further comprises:
(d) retrieving a next record from said index table if said data type is
facsimile.

48. The method of claim 46, wherein step (2) further comprises:
(d) discontinuing step (C) if a hot-key is selected by the user; and
(e) retrieving a next record from said index table.

49. The method of claim 42, wherein the telephone device is configured to
perform facsimile functions and step (2) comprises:
(a) setting up a page header as specified by the user;
(b) setting up a TO field and a FROM field as specified by the user;
(c) specifying a facsimile to be sent, wherein the facsimile
corresponds to an index number selected by the user, the facsimile correspondingto a record in an index table that includes said index number;
(d) prompting the user for a target telephone number for the facsimile;
and
(e) sending the facsimile.

50. The method of claim 49, wherein the facsimile to be sent is a facsimile
previously received by the telephone device.

-66-
51. The method of claim 49, wherein the facsimile to be sent is a speech
recording.

52. The method of claim 51, wherein step (E) comprises:
(i) converting the speech recording to textual words;
(ii) placing the textual words into a transmit queue in a
first-in-first-out order; and
(iii) repeating steps (i) and (ii) until conversion of the speech recording
is complete.

53. The method of claim 52, wherein step (E) further comprises:
(iv) retrieving a line of textual words from said transmit queue;
(v) transmitting a page of textual words once said page is complete;
(vi) transmitting a last page of textual words once step (iii) is complete
and all textual words are retrieved from said transmit queue.

54. The method of claim 42, wherein the telephone device is configured to
perform recorder functions and step (2) comprises:
(a) determining if a recorder is in use; and
(B) providing a device unavailable message if the recorder is in use;
and
(C) securing the recorder if the recorder is not in use, and
(i) providing a prompt to the user for recording an outgoing
message,
(ii) recording the outgoing message on the recorder for a
predetermined time interval,
(iii) inserting a record into an index table that corresponds to
the outgoing message, said record including an index number equal to one, and
(iv) releasing the recorder.

-67-
55. The method of claim 42, further comprising:
(3) sending an on-hook status message to a telephone network switch
so that telephone calls can be received while the telephone device is in an off-line
mode.

56. The telephone device of claim 1, wherein said data means comprises a
modem.

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 022~917~ 1998-12-21
WO 97!50222 PCT/US97/11236

Wireless Smart Phone

Background of the Invention

1. Field of the Invention

The present invention relates to a telephone device. More particularly, the
present invention relates to a telephone device configured for use on a wirelessor cellular network. Still more particularly, the present invention relates to atelephone device that includes a computer system that enables the telephone
device to perform data processing functions.

2. Related Art

Telephone comml-nication is an integral part of the business and personal
lives of most individuals in society today. With the advent of wireless or cellular
telephones, many individuals carry a telephone on their person or have a
telephone in their car. However, performing tasks with such a conventional
telephone requires that a call be placed to a service provider to perform such
tasks. The types of tasks or functions that the telephone can perforrn are thus
limited to the services offered by a service provider. For example, the Sprint
SpectrumsM Service provides an answering machine service. However, to
retrieve the messages from the answering m~çhine, a call must be placed to the
service provider. Further, the speed or efficiency of performing these functionsis dependent upon the service provider, and service bottle-necks can occur.
Many individuals also routinely carry a calculator to perform various types
of calculations. For example, a real estate agent would normally have a calculator
to perform some calculations regarding the price or interest rates for purchase of
a home. A real estate agent would also routinely carry a telephone in order to
m~int~in contact with buyers and sellers. Some individuals routinely carry a
personal recorder or dictating machine so that recordings or notes can be made

CA 022~917~ 1998-12-21
WO 97!50222 I'CTIUS97/11236


at any time. Some individuals also routinely require access to a device for
sending and receiving fa~simile messages. However, no single device is availablethat allows a user to make and receive telephone calls, use a calculator, make
recordings on a recorder, and send and receive f~r.~imiles. Therefore, there is a
need in the art for a single device that is capable of providing telephone
communication, as well as perforrning various other functions or tasks routinelyrequired by an individual.

Summary of the Inven~ion

In one embodiment, the present invention is a telephone device that
includes a connecting circuit for connecting the telephone device to a network to
enable it to receive and initiate telephone calls over the network. The telephone
device also includes a computer system for controlling the telephone device to
allow a user to perform data processing functions. The computer system can
include a processor, data means for transmitting and receiving data over the
network, and a memory device for storing computer program logic or software
that is used to control the processor. The telephone device includes means for
accepting input from a user; the input is implemented through user interface
intellulJt vectors that enable the processor to operate the telephone device to
perform data processing functions selected by the user. An on-hook status
message can be provided to the network so that telephone calls can be received
while the telephone device is in the off-line mode. The telephone device can also
include an answering device for playing an outgoing message when an incoming
telephone call is not answered after a predetermined number of rings. The
telephone device can also be configured with a recorder for recording an audiblemessage, and a playback device for playing the audible message.
In a further embodiment of the present invention, the telephone device is
equipped with calculating means to configure the telephone device to function asa calculator. The telephone device can also be equipped with f~r~imile means for

CA 022~917~ 1998-12-21

WO 97/50222 PCTIUS97/11236


receiving and transmitting f~reimile messages over the network. The telephone
device may further include macro means for defining an invocable sequence of
telephone buttons.
In yet a fulrther embodiment of the present invention, a method for
controlling operation of a telephone device is provided in order to install
telephone device processing software. The method of controlling operation for
pclrulllling in~t~ tion includes: establishing a connection between the telephone
device and a software provider over a network; downloading computer prograrn
logic from the software provider into the telephone device for controlling a
processor; and installing user interface interrupt vectors in a memory device
coupled to the processor. The user interface interrupt vectors are used to enable
ap~lopl;ate processing which is associated to corresponding user interface
telephone key operation. The user interface interrupt vectors are used in
configuring the telephone device to perform data processing functions selected
l S by a user.
In yet a further embodiment of the present invention, a method for
processing of a telephone call by a telephone device is provided. This process
includes: determining whether the telephone device is in an off-line mode;
answering the telephone call if the telephone device is in the off-line mode; and
ringing a ringer if the telephone device is not in the off-line mode. Upon
answering the telephone call, when in the off-line mode, a fs~simile is processed
if a f~cimile tone is detected. An answering device sequence is initiated if a
fa(~imile tone is not detected. Upon ringing a ringer, if the telephone device is
not in the off-line mode, a received call processing sequence is initiated if the
telephone call is not answered after a predetPrmined number of rings.
In yet a further embodiment of the present invention, a method for
controlling operation of a telephone device is provided that includes: receivinga telephone button sequence that initiates an off-line mode that allows a user to
perform data processing functions; and configuring the telephone device to
perform data processing functions selected by the user. An on-hook status




. ~ , . . .. ., , ~,. .. ....

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236


message can be sent to a telephone network switch so that telephone calls can bereceived while the telephone device is in an off-line mode. The data processing
functions can include recorder functions to record a new recording, to play a
recording, to delete a record corresponding to a recording, or to browse throughS a stored arrangement or index table of recordings. The data processing functions
can also include f~simile functions to send a facsimile. The facsimile sent may
be a f~cimile previously received by the telephone device, or it may be a speech
recording.

Features and Advantages

It is a feature of the present invention that the telephone device operates
in an off-line mode that allows a user to perform off-line functions. It is a further
feature that telephone calls can be received and processed while the telephone
device is in off-line mode.
It is a further feature of the present invention that functionality can be
updated or added to the telephone device via software downloaded over a
telephone net~vork from a software provider.
It is yet a further feature of the present invention that the telephone device
perforrns the function of an answering device, with incoming messages recorded
and stored on the telephone device itself. This elimin~tes the need to make a
separate call to a service provider to review or retrieve recorded messages.
It is yet a further feature of the present invention that the telephone device
operates as a recorder in the off-line mode to allow a user to make recordings. It
is a further feature of the present invention that it operates as a recorder in the on-
line mode to allow a user to record one or both sides of a telephone call.
It is yet a further feature ofthe present invention that the telephone device
provides facsimile or data receipt and tr~n~mi~sion.
It is still a further feature of the present invention that the telephone devicecan be configured to function as a calculator.

CA 022~9l7~ l998-l2-2l
WO 97/50222 PCT/US97/11236


It is a further feature that the telephone device can play any previously
saved recordings (recorded or answer device messages) in off-line mode, or play
to one or both sides of a telephone call.
It is an advantage of the present invention that all recordings, including
S incoming answering m~hine recordings, are stored on the telephone device itself.
All recordings can be reviewed using only the telephone device, without having
to make a call to a service provider.
It is a further advantage of the present invention that one device can
perform a multitude of functions, including, for example, initiating and receiving
telephone calls, as well as calculator, recorder, f~csimile, and answering device
functions.
It is yet a further advantage of the present invention that f~csimile
messages can be received or transmitted while a telephone call is in progress.
It is yet a further advantage of the present invention that personalized
macros can be defined to automate pressing of telephone buttons to automaticallynavigate through customer service or automatic response unit menus.

Brief Description of the Drawings

The present invention is described with reference to the accompanying
drawings. In the drawings, like reference numbers indicate identical or
functionally similar elements. Additionally, the left-most digit(s) of a reference
number identifies the drawing in which the reference number first appears.

FIG. 1 shows a telephone device of the present invention configured to
download software;
FIG. 2 shows one embodiment of a schematic for the telephone device of
the present invention;
FIG. 3 shows a flow diagram for downloading software to the telephone
device of the present invention;




. ~, ... , .. ... ~ . , ,. ,, ... ~.. ........ .... ....

CA 022~917~ 1998-12-21

WO 97tS0222 PCT/US97111236


FIG. 4 shows a flow diagram for operating the telephone device of the
present invention in an on-line mode;
FIG. 5 shows a flow diagram for placing the telephone device of the
present invention in an off-line mode;
FIGS. 6a and 6b show a flow diagram for receiving a call from a switch;
FIG. 7 shows a flow ~ gr~m for m~nitoring the selection by a user of off-
line functions;
FIGS. 8a through 8e show flow diagrams for configurmg the telephone
device of the present invention to function as a calculator;
FIGS. 9a through 9c show flow diagrams for configuring the telephone
device of the present invention to function as a recorder;
FIGS. 10a through lOd show flow diagrams for configuring the
telephone device of the present invention to function as a f~l~simile transmitting
and receiving device;
FIG. 11 shows a flow diagram for specifying an answering outgoing
message;
FIG. 12 shows a flow diagram for configuring the telephone device of the
present invention to function as an answering device to record a message; and
FIGS. 13a through 13g show flow diagrams for configuring the
telephone device to store and execute user-defned sequences of keystrokes.




RE(~ H~ l (RULE gl)

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236


De~ailed Description of the Embodiments

1 . 01 L ~ vi~ ~v

The telephone device of the present invention is configured to operate as
a wireless telephone device for receiving and initiating telephone calls over a
network. Such a network can be a digital or analog network, such as a cellular
telephone network made available by a network provider. The telephone device
of the present invention also contains a computer system that enables the
telephone device to perform data processing functions, including functions in anoff-line mode. Technology is producing smaller and faster parts. It is possible
to m~nl-f~ctllre data processing systems into small devices, such as a telephonedevice. Telephone calls can be received while the telephone device of the present
invention is in off-line mode. Such data processing functions can include, for
example, calculator, recorder, facsimile, and answering device functions. A
further function which is operated at any time (on-line or off-line mode) includes
a macro function that enables an invocable sequence of telephone buttons to be
defined. The invocable sequence can be defined by the user.
To accomplish the data processing functions, the telephone device of the
present invention is preferably configured with a processor, one or more memory
devices, and data means for transmitting and receiving data over the network.
The processor is controlled by computer program logic or software that is storedin a memory device. Software can be downloaded via the network to the
telephone device of the present invention by dialing in to a software provider.
This enables the software to be updated, and to add additional functionality to the
telephone device.
When configured to operate as a recorder, hot keys are provided so that
the user can toggle record mode during a call, or in the off-line mode. Other
recorder functions, as discussed below, operate only in the off-line mode. When
configured as an answering device, the telephone device of the present invention



.. . . . . .. . . . .

CA 022~917~ 1998-12-21
WO 97/50222 PCT/US97111236


answers incoming calls while the telephone is in the off-line mode, or if the
telephone call is not answered in a predetermined number of rings. The telephonedevice of the present invention also functions as a facsimile device. For in-bound
façsimile messages, the telephone device functions similar to an answering
device, but f~cimi]e processing is automatically initi~ted when the f~rcimile tone
is detected. Previously received f~simile messages or voice recordings can be
transmitted out as a f~ccimile message. The telephone device of the present
invention can also be configured to operate as a calculator in the off-line mode.
A hot key, for example the pound (#) prefix, can be used to enter the calculatormode. In an alternate embodiment of the present invention, a hot key allows a
user to enter the calculator mode during a telephone call, to allow both parties to
hear the results of a particular calculation.

2. Description of the Telephone Device

FIG. 1 shows a telephone device of the present invention which will also
be referred to herein as a Smart Phone. The telephone device is configured as a
handset 100 that includes an antenna 102, a keypad 104, a speaker 106, and a
microphone 108. Alternatively, handset 100 could also include a display for
displaying sllph~nllmeric characters, or graphics, to a user. Internal to handset 100
is a computer system 110 that includes a processor 112 having a central
procçc~ing unit (CPU) 114 and a main memory 116. A modem 119 is included
for transmitting and receiving data over the network. A direct access storage
device (DASD) 118 or equivalent secondary memory capable of long term non-
volatile storage, such as a hard drive, is provided. DASD 118 can store computerprogram logic or software, as well as other data generated through operation of
the telephone device. As shown in FIG. 1, software 122 can be downloaded to
handset 100 from a software provider 120 over the network.
One embodiment of a schematic for the telephone device of the present
invention is shown in FIG. 2. Central processing unit (CPU) 114 is connected to

CA 022~917~ 1998-12-21
W O 97!50222 PCTrUS97/11236


a digital bus 214. Digital bus 214 is a communication bus to which the various
components shown in the schematic of FIG. 2 are connected. Three memory or
storage devices are connected to digital bus 214. The first memory or storage
device is DASD 118. The second memory or storage device is a random access
memory (RAM) 218. The third memory or storage device is a read only memory
(ROM) 216. Co~ ul~l program logic or software is stored in DASD 118, and/or
RAM 218, and/or ROM 216. Such computer programs, when executed, enable
CO111~ eI system 110 to perform the features of the present invention as ~ cu~sed
herein. In particular, the computer programs, when executed, enable CPU 114
to perform the features of the present invention. Accordingly, such computer
programs or software represent controllers of computer system 110.
The telephone device of the present invention includes a connecting
circuit for connecting the telephone device to a network to enable the telephonedevice to receive and initiate telephone calls over the network. In the preferred
embodiment, the connection to the network is a wireless one, such as in a cellular
phone system. It would be a~ l to one skilled in the relevant art that the
phone connection could alternatively be a wire-line connection.
As shown in FIG. 2, radio frequency (RF) signals are received by antenna
102. A circulator 202 is provided to prevent mixing of RF signals going out withRF signals coming in on antenn~ 102. Radio frequency signals received by
anterma 102, denoted by reference numeral 290 in FIG. 2, are input to a receiver260. Receiver 260 converts RF signal 290 to an analog signal carried on a receive
analog line 261. The receive analog signal on receive analog line 261 is input to
speaker 106. In like manner, an analog signal carried on a transmit analog line
251 is input from microphone 108 to a transmitter 250. Transmitter 250 converts
the transmit analog signal from transmit analog line 251 to RF out signal 280
which is transmitted via antenna 102.
As shown in FIG. 2, keypad 104 is connected to digital bus 214 via a
keypad matrix interface 204. Keypad matrix interface 204 monitors for pressing
ofthe telephone buttons on keypad 104 by the user. Keypad matrix interface 204

CA 022~917~ 1998-12-21
WO 97/50222 PCT/US97/11236

- 10-
is not enabled unless the telephone device is off-hook, or the telephone device is
in an off-line mode to be discussed further below. When keypad matrix interface
204 deterrnines that telephone buttons on keypad 104 have been pressed by the
user, the sequence of pressed telephone buttons is sent to CPU 114. This is
accomplished through the use of an interrupt request, identified in FIG. 2 as IRQ
on a line 205 connecting keypad matrix interface 204 to digital bus 214. CPU
114 processes the sequence of keys sent to it by keypad matrix interface 204 andmaps the telephone button sequence to the command or function selected by the
user.
The connecting circuit of the telephone device also includes a tone
detector 222 connected to digital bus 214. Tone detector 222 is tapped into the
receive analog signal of receive analog line 261 at a tap 263. Tone detector 222monitors the receive analog signal on receive analog line 261 to detect a f~c~imile
tone to det~rminf~ if the receive signal corresponds to an incoming f~r.cimile or a
telephone call. Tone detector 222 is particularly useful in the embodiment wheretransmitter 250 and receiver 260 are shared between modem 119 and other
telephone processes.
A signal detector 228 is connected to digital bus 214 to receive the analog
signal of receive analog line 261 at a tap 264. Signal detector 228 detects a
unique identifier, CPU 114 instructs a ringer 224 to ring indicating that a
telephone call is being sent to the telephone device. While ringer 224 is ringing,
CPU 114 monitors for receipt of an off-hook detection from an on/off hook
detector 226. On/offhook detector 226 sends an off-hook message to CPU 114
if the phone is picked up by the user. The off-hook message is sent to CPU via
an interrupt, noted in FIG.2 as IRQ on a line 227 connecting on/offhook detector226 to digital bus 214. Signal detector 228 also detects when incoming RF signal290 has terminated, such as when the other party has hung up. An alternate
embodiment may elimin~te tone detector 222 by p~lr(3~ ing tone detection as partof processing with signal detector 228.

CA 022~917~ 1998-12-21
WO 97!50222 PCTIUS97/11236


A tone/signal generator 229 is connected to digital bus 214 to transmit an
analog signal onto transmit analog line 251 at a tap 253. Tone/signal generator
229 is used to generate a tone/signal that is L~ Led as RF by transmitter 250.
The tone/signal generated by tone/signal generator 229 is used to dial digits of a
telephone number, to ~ le a telephone session, and to change the status from
off-hook to on-hook to enable the telephone device to receive another call.
In order to enable a user to hear their own voice in speaker 106, a sidetone
connection is provided from microphone 108 to speaker 106. The voice signal
from the telephone user is dampened, and mixed with the signal being received
from the other party. To do so, a tap 255 is made into transmit analog line 251.The sidetone signal is then dampened through element 208 and sent through a
switch 206 to receive the analog signal of receive analog line 261 at a tap 268.In this manner, a user listening into speaker 106 will hear both their own voiceas well as the voice of the party to whom they are speaking.
Amplifiers and filters necess~ry to achieve proper mixing of the signals
have been omitted for clarity, and would be readily apparent to one skilled in the
relevant arts.
~ In order to make recordings, the telephone device of the present invention
is equipped with an analog-to-digital (A/D) converter 242 that is connected to
digital bus 214. A/D converter 242 is used to convert analog signals to digital
signals that can be stored or recorded on DASD 118 or RAM 218. DASD 118
and RAM 218 thus function as recorders of audible messages. To record a
message gPnPr~tçcl by the user, the user speaks into microphone 108. This analogsignal is :~cçcce.1 at a tap 257 in the transmit analog signal of transmit analog line
251. The tapped signal is then sent from tap 257 through a switch 241 to A/D
242 through a tap 243. To record a party other than the user, or both the user and
a telephone-connected party, a tap 265 is provided to receive the analog signal of
receive analog line 261. The tapped signal is sent via a switch 240 and tap 243
to A/D converter 242. Thus, CPU 114 operation of switch 240 and switch 241
enable off-line recording for the recording of one or both sides of a telephone call.

CA 022~917~ 1998-12-21
WO 9?150222 rCT/US97/11236

- 12 -
The telephone device of the present invention can also play messages that
have been recorded. To do so, a digital-to-analog (D/A) converter 244 is
provided. To play a recording that is heard by the user through speaker 106, thesignal is sent from D/A 244 through a tap 247 and a switch 246 into receive
analog signal 261 at a tap 267. The tapped signal is then sent to speaker 106 sothat it can be heard by the user. To enable a party other than the user to hear the
played recording, the signal is sent from D/A converter 244 through tap 247 and
a switch 245 to transmit the analog signal on transmit analog line 251 at a tap
254. The signal is then transmitted to the other party by transmitter 250.
A clock 220 is connected to digital bus 214. Clock 220 is used to provide
a date and time identifier for the various lecol.lings made by the telephone device
of the present invention. A battery (not shown) ensures that clock 220 continuesto operate.
To facilitate sending and receiving of data, such as computer program
logic or soft~vare, and f~ccimile messages, modem 119 is provided. Modem 119
is connt-ct~l to digital bus 214 via a modem interface 270. Modem interface 270
functions as a data interface between digital bus 214 and modem 119.
Alternatively, modem 119 could be hard wired to digital bus 214. Modem
interface 270 is connected on a transmitter side of modem 119 to a modulator
module 235. Modulator module 235 is connected to a transmitter module 236
and a transmitter synthesizer 237. Transmitter module 236 is connected to an R:~out line 231. RF out line 231 connects via a switch 232 to RF out signal 280 at
a tap 252. Data to be transmitted out of the telephone device via modem 119 is
retrieved from one or more of the memory or storage devices and sent via digitalbus 214 to modem interface 270. The data to be sent is then transmitted from
modem interface 270 into the transmitter side of modem 119 where it is
converted to an RF signal.
Modem 119 also includes a receive side that has a demodulator module
238 that is also connected to modem interface 270. A receive module 239 and a
receive synthesizer 230 are connected to demodulator module 238. RF signals

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97111236

- 13 -
to be received by modem 119 are accessed at tap 262 in RF in signal 290. This
RF signal is sent via a switch 234 to an RF in line 233 connected to receive
module 239. The receive side of modem 119 converts the incoming RF signal
into digital data that is sent via modem interface 270 to digital bus 214 for storage
on one or more of the memorv storage devices.
In the embodiment shown in FIG. 2, modem 119 uses a transmitter and
receiver sepa~dLe from transmitter 250 and receiver 260. In the preferred
embodiment, transmitter module 236 of modem 119 operates at a frequency
different from the operating frequency of transmitter 250. Likewise, receiver
module 239 of modem 119 operates at a frequency different from the operating
frequency of receiver 260. This allows for simultaneous use of the telephone
device to transmit and receive messages via modem 119 while on a telephone call
using tr~n~mi1ter 250 and receiver 260. Consequently, a user can send or receivea f~r~imile message while on a telephone call. To implement this feature, modem
119 is preferably configured as shown in FIG. 2, between circulator 202 and
transmitter 250/receiver 260 used for telephone calls.
In an alternate embodiment, modem 119 can be configured to use
tr~n~minrr 250 and receiver 260. In yet another embodiment, a separate modem
is not provided, and modem functionality is provided by software. In such an
embodiment, transmitter 2~0 and receiver 260 are used to transmit and receive
f~rsimile messages. Consequently, such an embodiment does not allow facsimile
messages to be transmitted or received while a telephone call is in progress.
However, such an embodiment may be advantageous because of reduced cost and
reduced size of the telephone device.
In the embodiment shown in FIG. 2, CPU 114 provides standard bus
control over the devices connected to digital bus 214. It is to be understood that
when the switches shown in FIG. 2 are closed, the switch is in an "on" state.
When the switches shown in FIG. 2 are open, the switch is in an lloffi' state. All
switches are controlled by CPU 114 through digital bus 214 (connection of
switches to digital bus 214 not shown). The state of the various switches will

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236

- 14-
now be described for operation of the telephone device. All switches are assumedto be open, except as indicated in the following descriptions.
When the telephone device is powered and ready to receive a call, the
switches shown in FIG. 2 are open, i.e., in an off state. Signal detector 228 is in
a monitoring mode, monitoring for its unique identifier to lock onto the
a~rol,~;ate RF signal. When signal detector 228 detects the unique identifier, the
signal is locked and CPU 114 causes ringer 224 to begin ringing. While ringer
224 is ringing, CPU 114 is waiting for an off-hook interrupt request from on/offhook detector 226 indicating that the phone has been picked up. If an off-hook
interrupt request is not detected in a predetermined number of rings, a receivedcall processing sequence will be initiated. The call is answered and an outgoingmessage is retrieved from DASD 118. The digital file corresponding to the
outgoing message is sent to D/A converter 244 which converts the outgoing
message to an analog signal. Switch 245 is closed, and the analog outgoing
message is sent to transmitter 250 where it is converted to an RF signal that istransmitted out to the party on the other end of the telephone call. Switch 256 is
open to assure no noise is mixed with the outgoing message. In a ple~e.led
embodiment, switch 246 remains open while switch 245 is closed to play the
outgoing message to the other party. Alternatively, switch 246 could be closed
at the same time that switch 245 is closed. By closing switch 246, the outgoing
message would be played through speaker 106 at the same time it was being
transmitted to the party on the other end of the line. Likewise, switch 266 can be
open to assure no incoming signals are tr~n~mitted to speaker 106.
The outgoing message preferably concludes with a "beep" that prompts
the person at the other end of the line to leave a message. Once the beep is
issued, switch 245 is opened which turns this switch off. D/A converter 244 is
also turned off. Switch 240 is then opened and A/D converter 242 is turned on.
The message to be recorded is received as the receive analog signal on receive
analog line 261 and routed to A/D converter 242 through switch 240. The analog
signal is then converted by A/D converter 242 into a digital file that is recorded

CA 022~917~ 1998-12-21

WO 97!50222 PCT/~S97/11236

- 15-
on DASD 118 or RAM 218. Preferably, the recording continues for a
predeterrnin~d and configurable amount of time. The recording is cut off after aset amount of time (e.g.,30 seconds or 45 seconds) to preserve disk space. To cut
off recording, switch 240 is opened. A signal is generated by tone/signal
generator 229 to terrninzlte the telephone call, and place the telephone device on-
hook to enable it to receive another telephone call. Switch 266 can be open to
assure no incoming signals are transmitted to speaker 106.
When a call is answered by a user, the user picks up before the specified
number of rings which places the telephone device off-hook. Switch 266 is
closed so that the received signal can be heard on speaker 106. Switches 256 and206 are then closed substantially simultaneously. In this manner, bi-directionalanalog signals are sent through microphone 108 and speaker 106 to the person at
the other end of the telephone call. The user of the telephone device of the
present invention can hear not only what is being said by the party at the other end
of the telephone call, but also what they are saying as well. The telephone callcan be terrnin~ted either by the user of the telephone device of the present
invention, or the party at the other end of the telephone call. If the other party
t~rrnin~tes the call, signal detector 228 detects that the received signal has been
t~rrninz~te-l indicating that the other party has hung up. Alternatively, the user of
the telephone device of the present invention can terminate the telephone call by
putting the telephone device on-hook. Tone/signal generator 229 then generates
a tone signal that terrnin~tes the telephone call. Once the telephone call is
t~rrnin~ted by either party, the telephone device is in an on-hook status, and the
switches are then placed in an open state.
As explained more fully in Section 3 below, the telephone device of the
present invention can be placed in an off-line mode that allows a user to perform
off-line functions. To ensure that telephone calls can be received while the
telephone device is in off-line mode, the network must think that the telephone
device is on-hook, and ready to receive a call. Once handset 100 is picked up bythe user to perforrn off-line functions, the network thinks that a call is going to be

CA 022~9l7~ l998-l2-2l

WO 9?/50222 PCT/US97/11236

- 16-
placed and idçntifies the telephone device as being off-hook. Therefore, a signal
is sent to the network to indicate that the telephone device has been hung up, even
though it has not and will be used in an off-line mode. An on-hook status
message is provided to the network so that the network thinks the telephone
device is on-hook so that the telephone device can receive telephone calls whilein the off-line mode.
A user of the telephone device of the present invention can make a
recording using the off-line recorder functions. When the user selects this feature,
switch 241 is closed, and A/D converter 242 is turned on. The user speaks into
microphone 108 and the analog signal, accçssed at tap 257, is ~ ed to A/D
converter 242 where it is converted into a tligiti7~d file. The digiti7~d file is then
transmitted via digital bus 214 to either RAM 218 or DASD 118. RAM 218 is
used to buffer or queue recorded files which are then archived on DASD 118.
When recording is finished, A/D converter 242 is stopped and switch 241 is
opened. The recorded file is archived on DASD 118 using a unique file name.
A recording can also be made while a telephone call is in progress. It is
possible to record not only the user of the telephone device of the present
invention, but also the connected party on the other end of the telephone call.
While a telephone call is in progress, switches 256, 206, and 266 are closed. Torecord both sides of a telephone call in progress, switch 240 and switch 241 areboth closed. By closing switch 240, the connected party is being recorded. By
closing switch 241, the user of the telephone device that is speaking into
microphone 108 is being recorded.
The off-line recorder functions of the present invention also allow a user
to play a recording which has previously been made. The user identifies the
recording to be played by selecting and entering an index number. The recording
to be played is identified by a record in an index table that includes the indexnumber. Once a recording to be played has been identified by the user, switch
246 is closed. The selected recording file to be played is kansferred from DASD
118 via digital bus 214 to D/A converter 244 where it is converted to an analog

CA 022~9l7~ l998-l2-2l

WO 97!50222 PCTIUS97/11236


signal. The analog signal is then sent through switch 246 so that the recording is
played on speaker 106. If during an actual telephone call (switches 256, 206, and
266 are closed) switch 245 is closed in addition to switch 246, the recording
being played can be heard through speaker 106 as well as by the connecte~ party.The recording being played is 1~ .nil~çd to speaker 106 by closing switch 246.
The recording being played is transmitted to the connected party through switch
245.
In the embodiment shown in FIG. 2, modem 119 has its own transmitter
and receiver that are operating on frequencies different from transmitter 250 and
receiver 260 used for telephone calls. In such an embodiment, switch 234 is
closed at all times to be monitoring for an incoming RF signal with the
a~ uln;ate uni~ue identifier. Switch 232 is closed a~lv~l;ately during times of
modem 119 transmitting. For example, switch 234 remains closed to monitor
receipt of an incoming f~c.simile message. Switch 232 is closed only when a
facsimile message is actively being transmitted out of modem 119 or
comrnunications protocol is being managed.
The telephone device of the present invention can be configured to
function as a calculator in the off-line mode. In a p,~r~lled embodiment, the
calculator functions are controlled by software that is contained in DASD 118.
When the calculator function is selected by the user in off-line mode, this
software, if not already in memory, is loaded into RAM 218. Switch 246 is
closed so that speaker 106 can be used for the calculator function. For example,instruction messages are provided over speaker 106 to the user. Additionally, the
operations being performed, the result of such operations, and confirm ltion
messages may also be pronounced to the user over speaker 106. The appropriate
information is sent from CPU 114 via digital bus 214 to D/A converter 244. The
analog signal is then sent via switch 246 to speaker 106.




... . . .. .. .. ~ .

CA 022~917~ 1998-12-21

WO 97/50222 PCTNSg7/11236

- 18-
3. Method of Operation of the Telephone Device

To achieve a reduced product cost, and to describe what would otherwise
be unobvious processing, FIG. 3 and all subsequent figures assume that modem
functionality is integrated using the sarne transmitter 250 and receiver 260 as
other telephone device processes.
Operation of the telephone device of the present invention is controlled
by CPU 114. Computer program logic or software is used to control CPU 114.
In a ~ur~r~ d embodiment, ROM 216 includes a minim~l operating system that
is used to load and initialize software into the telephone device of the presentinvention. A flow diagrarn for downloading software to the telephone device of
the present invention is illustrated in FIG. 3. The process shown in FIG. 3 may
be used to initially configure the telephone device with software, or to provideperiodic updates or software refresh to the telephone device. To do a software
download, the phone is picked up and taken off-hook. In a step 302, a session isestablished with a service, such as software provider 120. The session is
established with the service by dialing a number such as a l-800 number or a
local number. The service can be an automatic response unit (ARU), or a voice
response unit (VRU). In a preferred embodiment, CPU 114 instructs modem 119
to establish the session with the service. Modem 119 then dials the correct
number for connecting to the service, and controls all of the handshake signals
that are required. In an embodiment without a separate modem, CPU 114 would
directly control establishing the session with the service.
ln a step 304, software 122 is downloaded to the telephone device of the
present invention. The software download is a data transfer from software
provider 120 into the telephone device. In a preferred embodiment, once the
modem connection is established, the software is downloaded immediately
without any menu plo~ g. The downloaded software is stored on DASD 118.
In doing so, user interface interrupt vectors (UIIV) are installed, as indicated in
a step 306. The user interface interrupt vectors are used in correlating particular

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236

- 19-
additional functions with certain key invocations on the telephone device. Once
the software download is completed, the session is termin~ter~ as indicated in astep 308.
The software download of FIG. 3 must be performed at least once to equip
the telephone device of the present invention with its complete functionality.
Particularly, the sofhvare download of FIG. 3 is used to configure the telephonedevice with all functions. The software download of FIG. 3 can be repeated to
provide updates or refresh of the software contained in the telephone device. The
software download of FIG. 3 can also be used to add additional functionality to
the telephone device.
Each key on keypad 104 has an associated user interface interrupt vector.
Additionally, preclefin~.d sequences of keys on keypad 104, referred to herein as
a macro or macro sequence, has an associated user interface interrupt vector. The
interrupt vector is a list of memory addresses which point to terminate and stayresident (TSR) software functions. A certain sequence maps to particular TSR
functions by way of the specified interrupt vector entry. The user interface
interrupt vector is a function assigned to the particular key or sequence of keys.
The user interface interrupt vector includes the memory address where that
function is resident. User interface interrupt vectors ensure that when a particular
key or macro sequence is pressed, the associated process or function is executedfirst. This allows the keys on keypad 104 to provide functionality beyond the
DTMF tone associated with each of these keys. For example, as explained below
with respect to FIG. 5, the telephone device of the present invention can operate
in an off-line mode. To put the phone in the off-line mode, a user presses a
predetermined button sequence or macro sequence, for example, "***." When
"***" is pressed by the user, the associated button interrupt vector ensures that the
"***" macro sequence is executed before the DTMF (Dual Tone Multi
Frequency) tone associated with the "*" key is generated.
The telephone device of the present invention can be operated in an
on-line mode as indicated in FIG. 4. In the on-line mode, the telephone device

CA 022~917~ 1998-12-21

WO 97/50222 PcTllJs97lll236

- 20 -
is off-hook, and a dial tone is delivered, as indicated iri a step 402. In a step 404,
on-line telephone call functions are performed such as d aling digits. The on-line
mode is termin~ted by h~nging up the phone as illustrated in a step 406.
The telephone device of the present invention can also be operated in an
S off-line mode. A flow diagram for placing the telephone device of the present
invention in off-line mode is shown in FIG. 5. In a step 502, the telephone device
is taken off-hook. The user then presses a predetermined button sequence for
initiating the off-line mode, as indicated in a step 504. As noted above, this
predeterrnined button or macro sequence for initiating off-line mode can be, forexarnple, "***." To ensure that a telephone call can still be received by the
telephone device while in off-line mode, an on-hook status message is sent to the
network or a cellular switch, as indicated in a step 506. In this manner, the
cellular switch or server of the network thinks that the telephone device of thepresent invention is hung up or on-hook. In reality, the telephone device is off-
hook during off-line mode, but the network thinks it is on-hook to ensure that
telephone calls are still sent by the network to the telephone device during off-line
mode.
The off-line mode allows a user to perform off-line functions, as indicated
in a step 508. As explained more fùlly below, such functions can include, for
example, calculator, recorder, f~rcimile, and answering machine functions. A
further function, operated in on-line or off-line mode, includes a macro function
that enables an invocable sequence of telephone buttons to be defined by the user.
When the user is finished perforrning off-line functions, the user puts the phone
on-hook, as indicated in a step 510. In a step 512, the telephone device resets for
subsequent on-line telephone operation.
A flow diagrarn for receiving a call from a switch is illustrated in ~IGS. 6a
and 6b. FIGS. 6a and 6b assume an embodiment such that modem 119 shares
transmitter 250 and receiver 260. When the switch has a call for the telephone
device of the present invention, the switch determines whether or not the


RE~ H~;~; 1 (RULE91)

CA 02259175 1998-12-21
wo 97/50222 PCTtUS97/11236

-20.1-
telephone device is on or off-hook, as indicated in a step 602. A decision is made
in a step 604 whether the




RE~ ; l (RULE 91)



.. , . .. , ~ . . . .

CA 022~917~ 1998-12-21

WO 97~50222 PCTIUS97/11236

- 2 1 -
telephone device is off-hook. If the telephone device is off-hook, then busy signal
processing is provided as indicated in a step 606 and the process stops in a step
608. If the telephone device is not off-hook, then the switch transmits the callthrough to the telephone device as indicated in a step 610. In a decision step 612,
it is determined whether the telephone device is in an off-line mode. It' the
telephone device is in off-line mode, then the call is answered and a received call
processing sequence is initiated, as indicated in a step 614. In a decision step616, tone detector 222 determines whether a f~imile tone is present for the call.
If a f:~csimile tone is detected, then a f~csimile processing sequence is initiated
by way of flow chart connector 5000. The f~csimile processing sequence is
illustrated in FIG. lOd. If a f~csimile tone is not detected in the call, an answering
device sequence is initiated by way of flow chart connector 3000. The answering
device sequence is illustrated in FIG. 12. Note that in an embodiment of the
telephone device wherein modem 119 operates on separate frequencies from that
of receiver 260 and transmitter 250, i.e., modem 119 has its own receiver and
transmitter, then decision step 616 would not be needed to separately detect a
facsimile tone.
Referring back to decision step 612, if the telephone device is not in the
off-line mode, then the ringer begins ringing as illustrated in a step 618. In adecision step 620, it is determined whether the user answers in a predetermined
number N of rings. If the telephone call is not answered after the predetçrrnined
number of rings, received call processing sequence indicated by step 614 is
initiated. If the user does answer the telephone call within Ihe predeterrnin~d
number of rings, when the user picks up, the user may hear a facsimile tone. If
a facsimile tone is detected in a step 622, then the user presses a hot-key to
initiate f~csimile takeover, as indicated in a step 624. The user can then hang up,
as shown in a step 626, and the facsimile processing sequence (FIG. lOd) is
automatically executed. When the user hangs up in step 626, the call is not
terrnin~t.od Background processing of the facsimile proces~ing sequence
continues. However, it is important that the user hot-key for facsimile takeover

REC ll~l~l) ~11~;1 (RULE 91)

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97/11236


in step 624 before h~nging the telephone up in step 626. If the user hangs up
before hot-keying for f~rsimile takeover, then the call will be tçrmin~ted before
the f~rsimile is processed.
~et--rnin~ to ~lPçi~ion step 622, if the user does not detect a f~rsimile tone,
then norrnal call proc~scing of the teleph- ne call cnntinues, as indicated in a step
628. Such nor nal call processing is in the on-line mode illllstrated in FIG. 4.A flow diagram for monitoring the selection by a user of off-line functions
is illustrated in FIG. 7, referred to herein as the main off-line monitoring loop.
The off-line mode is initi~ted in a step 702. As noted in step 702, the off-linemode is termin~ted when the user hangs up the telephone device. In a step 704,
an off-line mode variable is set. The off-line mode variable is a boolean variable,
or a register that can be monitored. This variable indicates whether the telephone
device is in the off-line mode. It is to be understood that all "_VAR" variablesshown in the flow diagrams are persistent variables that retain their current value
until subsequently changed. As noted in step 704, the off-line mode variable canalso be used to illnmin~te an indicator light on the telephone device to assist the
user. In a step 706, the telephone device is waiting for user input or selection of
the off-line function to be used. If the calculator functions are selected in a
decision step 70X, then processing continues to the calculator function sequenceby way of flow chart connector 8000. The calculator function sequence is
illustrated in FIG. 8A. If the user selects recorder functions as illustrated in a
decision step 710, then processing c- ntin-les to the recorder function sequence by
way of flow chart connector 1000. The recorder function sequence is illustrated
in FIGS. 9a and 9b. If the user selects f~c~imile functions as illustrated in a
decision step 712, then the f~rcimile function sequence is initi~ted by way of flow
chart connector 2000. The f~rsimile function sequence is illu~rated in FIGS. lOaand 1 Ob. If the user selects specifying the answering outgoing message functionas illustrated in a decision step 714, then the outgoing message sequence is
initiated by way of flow chart connector 6000. The outgoing message sequence
RE(, ~ SHEET (RULE 91)



..... . ..

CA 02259l75 l998-l2-2l

WO 97/50222 PCT/US97/11236

-2yl -
is illustrated in FIG. 11. After performing the selected functions, or not
recognizing a pre-defined key




RE(, ~ ;l) SHEET (RULE 91)

CA 022~917~ 1998-12-21

WO 9~/50222 PCT/US97/11236

- 23 -
sequence, processing returns to step 706 of FIG. 7 by way of flow chart connector
4000 to wait for further user input. Procec~ing is tc....ii.~t~d when the user exits
the off-line mode by h~ngin~ up the telephone device.
FIGS. 8a through 8e illustrate flow diagrams used in the calculator
function sequence. With reference to FIG. 8a, a flow diagrarn is illustrated formonitoring the duration of a key press. The duration of the key press is an
el~m~nt of a preferred embodiment of operation of the calculator function. The
me~nin~ of a particular key during the calculator function depends upon whether
the key was pressed for a minim~l press duration or a long press duration. The
process of identifying the me~nin~ of a key as a function of the duration of thekey press is disclosed in co-pending application entitled "System and Method forTransmitting Data and Comm~n~ls Using a Telephone," application number
08/672,186, filed on June 27, 1996 (Atty. Docket: RIC-96-009; 1575.0840000),
the entirety of which is incorporated herein by reference. The foregoing
application also includes a plc~ d embodiment of carrying out the calculator
function of the present invention.
Arriving at a step 802 implies the telephone device has entered a
calculator mode. In step 802, the variables used by the calculator function are
initi~li7ed The Work Area variable is analogous to the display area of a
conventional calculator. The Binary Operator variable is a Boolean variable thatindicates whether a binary operation is in progress. A Binary Operation always
requires two terrns, for example, add, subtract, multiply and divide. The BinaryOperator variable is set to false in step 802. The Operator variable contains the
most recent operator that has been entered by the user. In step 802, the Operator
variable is set to the operation equal. The History List variable is used to allow
the results of a calculation to be annotated or pronounced back to the user. Tnis
is also useful in providing calculation with confirrn~tion to the user. In step 802,
the History List is set to empty. In a step 804, the Memory Cell is initi~li7~1, i.e.,
the Memory Cell variable is set to 0. The Memory Cell provides a memory area
that can be used to store the information or results contained in the Work Area.

RE~ 1) SHEET (RULE 91)


.. . ...

CA 022~917~ 1998-12-21

WO 97/50222 PcT/us97lll236

- 24 -
In the embodiment shown in FIG. 8a, only one Memory Cell is illustrated.
However, it is to be understood that a plurality of Memory Cells could be used.
In a step 806, the user is p~u~ d with calculator instructions. Such plolll~ g
is done through speaker 106. An alternate embodiment may prompt through a
S display provided on handset 100. The user can hot-key out of the instructions to
go immediately to a step 808.
In step 808, the telephone device waits for a telephone button pressed by
the user. In a step 810, the start time of the button press is saved. Release of the
button is waited for in a step 812. In a step 814, the wait time once the button is
released is saved. In a step 816, the duration of the key press is calculated bysubtracting end time from start time. In a step 818, an entry is placed into a
queue. The entry includes both the button that was pressed (button identifier),
along with the button press duration calculated in Istep 816. Processing then
continues at wait step 808.
FIGS. 8b and 8c illustrate a flow diagram for a logical proce~ing
sequence associated with the calculator function. In a step 820, the next entry is
retrieved from the queue identified in step 818. Access to the queue is preferably
controlled by semaphore processing. Access may be blocked until there is
something in the queue. This is identified in step 820 as an implicit wait. A
~lerelled embodiment for carrying out step 820 is to retrieve the next queue entry,
and match that queue entry to a translation table. The translation table maps the
button identifier and button press duration (queue entries) to a defined semantic
or interpreted message. The best match in the translation table for the queue entry
is located. A default can be used if no match is found. The translation table ispreferably m~int~ined as a data table that includes four column entries for eachrow: (1) button pressed; (2) minimum duration; (3) maximum duration; and
(4) interpreted message. The queue entry is processed in accordance with the
interpreted message from the translation table, and the process returns to get the
next queue entry.


RE~ ;l) SHEET (RULE 91)

CA 022~917~ 1998-12-21
W O 97/50222 PCT~US97/11236


Table 1 below is one example of a translation table. The lengths of
durations D1, D2, and D3 are implementation dependent. Preferably, duration Dl
is less than duration D2, which is less than duration D3. Accordingly, the
semantics in Table 1 essentially have either a short duration (between D1 and D2)
or a long duration (between D2 and D3). However, the present invention is
designed to accommodate any number of semantics for any particular key, and
any number of duration ranges. Preferably, semantics that translate to digits have
short durations. Semantics that translate to comm~n~c (other than the Quit
Command and the decimal point) have long durations.

10Key Pressed Minimum MaximumInterpreted Message
Duration Duration
# Dl D2 Hot Key
# D2 D3Clear Work and Start Anew
* Dl D2 Decimal Point
* D2 D3EqualswithConfirmation
0 D1 D2 0
0 D2 D3 Equals
Dl D2
D2 D3Store to Memory Cell
2 Dl D2 2
2 D2 D3Retrieve from Memory Cell
3 Dl D2 3
3 D2 D3 Add
4 Dl D2 4
4 D2 D3 Subtract
D I D2 5
D2 D3 Multiply
6 D1 D2 6




.. . ~ ,.. , ., . , .. . ,~ . .

CA 022~917~ 1998-12-21
WO 9?/50222 PCT/US97/11236

- 26 -

Key Pressed Minimum Maximum Interpreted Message
Duration Duration
6 D2 D3 Divide
7 Dl D2 7
7 D2 D3 %
8 D1 D2 8
8 D2 D3 SquareRoot
9 D1 D2 9
9 D2 D3 l/x

Table 1
In a step 822, a New Number variable is set to false. The New Number
variable is only true when there is a number in a Number Buffer that is ready for
use, and needed in a calculation. A decision step 824 monitors whether the user
wants to quit the calculator function. If the user elects to quit in decision step
824, the processing continues to step 706 of FIG. 7 by way of flow chart
connector 4000. Calculator mode is exited upon return to step 706.
In a step 826, processor 112 interprets the current entry by reference to the
translation table (see Table l, above). In particular, processor 112 searches
through the translation table until it finds a row that matches the current entry's
key and duration. The current entry is then tr:m~l~ted as defined by the semantic
represented by the matching row.
In a step 827, processor 112 determines whether the interpreted
(translated) current entry is equal to a digit or a period (decimal point). If the
interpreted current entry is not equal to a digit or period, then a step 828 is
performed (discussed below). Otherwise, a step 830 is performed.
In step 830, processor 112 appends the translated digit or decimal point
into the Number Buffer. The Number Buffer is used to hold a number that is
being formed by the user.

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236

- 27 -
In a step 832, processor 112 determines whether there are multiple
decimal points in the Number Buffer. If there are not multiple decimal points inthe Number Buffer, then control returns to step 820. Otherwise, a step 834 is
performed.
- 5 In step 834, processor 112 clears the Number Buffer.
In a step 836, an audible message is provided to the user, informing the
user that the number being formed was in error (since it had more than one
decimal point). In one embodiment, processor 112 further informs the user that
the number being formed has been cleared, and that the user should re-enter the
l 0 number. Control then returns to step 820.
If processor 112 determined in step 827 that the interpreted current entry
was not equal to a digit or a decimal point, then step 828 is performed.
In step 828, processor 112 deterrnines whether the interpreted current
entry is equal to a calculator-related operator, such as a unary operator, a binary
operator, a memory operator, clear, equals, equals with confirrn~tion, etc. If the
interpreted current entry is not an operator, then processor 112 assumes that the
interpreted current entry is either equal to some other meaning defined in the
translation table, or equal to a no-op. A no-op implies that a hit was not found in
the translation table and the input is therefore ignored. In either case, processor
112 a~ opl;ately processes the command (step 829), and returns to step 820.
If processor 112 det~rmin~s in step 828 that the interpreted current entry
is equal to a calculator-related operator, then a step 838 is p~lr~ ed.
In step 838, processor 112 determines whether the user has previously
begun entering a new number for use in a current calculation. Processor 112
performs step 838 by determinin~ whether the Number Buffer is cleared. If the
Number Buffer is cleared, then the user has not begun entering a number, and step
846 is performed (~ cu~sed below). If the Number Buffer is not cleared, then theuser has previously begun to enter a number, and step 840 is performed.
In step 840, processor 112 converts the number in the Number Buffer to
a real number using well known techniques. Processor 112 sets an Input variable




.

CA 022~917~ 1998-12-21

WO 97/50222 PCTIUS97/11236

28
equal to this real number. This real number rC plese~ an operand to the current
calculation, for example 978.32. Processor 112 then clears the Number Buffer.
In a step 842, processor 112 sets the New Number variable equal to true,
indicating that the user has entered a nurnber for use in the current calculation.
Procçc~in~ then continues at 8d and 8e, as illustrated in FIGS. 8d and 8e. Upon
completion of the proce~in~ shown in FIGS. 8d and 8e7 control passes to step
846.
Step 846 is also performed if, in step 838, processor 112 determined that
the user had not previously begun entering a new number for use in the current
calculation. In step 846, processor 112 sets the Input variable equal to the
comm~n-l or operator as deterrnined by step 826.
Processing then continues at 8d and 8e, illustrated in FIGS. 8d and 8e.
Upon completion of the processing shown in FIGS. 8d and 8e, control returns to
step 820.
A flow diagrarn for processing nurnbers and op~.dl~ entered by the user
is illustrated in FIGS. 8d and 8e. In a step 848, processor 112 dcte. ., . i l-~s whether
the user has entered a new nurnber for use in a current calculation by .1~IP.I I I l;II;IIg
whether the New Nurnber variable is equal to true. If the user has not entered anew number, then step 850 is performed (discussed below). Otherwise, a step
849 is performed.
In step 849, processor 112 appends one or more codes to the History List.
These codes lcples~lll the real number stored in the Input variable. If these codes
are sent to the speaker 106, then speaker 106 is caused to audibly annunciate this
real number.
In a step 851, processor 112 clet~rrninPs whether the current calculation
involves a pending binary operation. Processor 112 perforrns step 851 by
~let~rrnining whether the Binary Operator variable is equal to true. If the Binary
Operator variable is not equal to true, then processor 112 in a step 858 sets the
Work Area variable equal to the real nurnber in the Input variable, and sets the


RE~ll~l~l) ~H~;~;l (RULE 91)

CA 02259175 1998-12-21

WO 9.7150222 PcTlus97/ll236

-28~1 -
New Number variable equal to false. Control then returns to the flowcharts
shown in FIGS. 8b and 8c.




RE( ll~ H~;~;I (RULE91)

CA 022~917~ 1998-12-21

WO 9~/50222 PCTIUS97/11236

- 29 -
If processor 112 det-~rmin~s in step 851 that the Binary Operator variable
is equal to true, then a step 853 is performed. In step 853, processor 112 pelru~ s
the binary operation in-lic~ted by the Operator variable on the real number in the
Work Area variable, and the real number in the Input variable. Processor 112
5stores the result in the Work Area variable. In a step 856, processor 112 sets the
Binary Operator variable equal to false. Control then returns to the flowcharts
shown in FIGS. 8b and 8c.
If, in step 848, processor 112 determin~d that the user had not previously
entered a number for use in the current calculation, then a step 850 is performed.
10In step 850, processor 112 det~rrnin~s whetherthe following is true: (l) a binary
operation is currently being performed (by reference to the Binary Operator
variable); and (2) the most recent command entered by the user as stored in the
Input variable is not a Retrieve From Memory operation. If these two conditions
are true, then the user has i~ lo~ ly formed a calculation. This is the case when
15the user has requested a binary operation, but has provided only a single number
for use in the binary operation.
Accordingly, if these two conditions are true, then processor 112 in a step
852 audibly conveys an error message to the user. Control then returns to the
flowcharts shown in FIGS. 8b and 8c.
20If, in step 850, processor 112 det~rmin~s that these two conditions are not
both true, then a step 854 is performed.
In step 854, processor 112 det~rmin~ whether the tr~n~l~ted current entry
(as stored in the Input variable) is a binary operator comm~nf1 such as the
multiplication comm~nd If the tr~n.cl~ted current entry is not a binary operator25co~ tl then a step 862 is pGlrolllled (described below). Otherwise, a step 855is performed.
In step 855, processor 112 sets the Operator variable equal to the value of
the Input variable (that is, processor 112 sets the Operator variable equal to the
binary operator command represented by the tr~n.cl~ted current entry).


RE(,ll~ ;l' (RULE 91)

CA 022~9175 1998-12-21

WO 9~/50222 PCTIUS97/11236

- 30 -
In a step 857, processor 112 sets the Binary Operator variable equal to
true.
In a step 860, processor 112 appends one or more codes to the History
List. These codes ~ c,selll the binary operation command stored in the Operator
variable. If these codes are sent to speaker 106, then speaker 106 is caused to
audibly annunciate this binary operation. For example, if the Operator variable
stores the addition operator, then these codes when sent to speaker 106 causes
speaker 106 to audibly annunciate the word "plus."
Control then returns to the flowcharts shown in FIGS. 8b and 8c.
If, in step 854, processor 112 detl- minecl that the tr~n~l~ted current entry
is not a binary operator comm~n~l, then step 862 is performed. In step 862,
processor 112 determines whether the translated current entry (as stored in the
Input variable) is a unary operator, such as the 1 /x comm~nd If the tr~n~ ted
current entry is not a unary operator, then a step 872 is performed (described
below). Otherwise, a step 864 is performed.
In step 864, processor 112 performs error checking. The actual error
checking performed by processor 112 is implementation dependent, and depends
on the unary operations that are supported by processor 112. In the embodiment
being described, processor 112 in step 864 dctçrrnines whether the following
conditions are true: (1) the Work Area variable stores zero; and (2) the tr~n~latçd
current entry is the l/x unary comm~n.l If both these conditions are true, then
processor 112 in a step 866 audibly conveys a divide-by-zero error message to the
user. Control then returns to the flowcharts shown in FIG. 8b and 8c.
If both these conditions are determined in step 864 to not be true, then a
step 868 is performed. In step 868, processor 112 applies the unary operator
indicated by the tr~n~l~ted current entry to the real number stored in the Work
Area variable. Processor 112 stores the result in the Work Area variable.
In a step 870, processor 112 appends one or more codes to the History
List. These codes rep~s~ the unary operation command represented by the


1 (RULE 91)

CA 02259175 1998-12-21

WO 9?./50222 PCT/US97/11236


- 3011 -
tr~ncl~ted current entry. If these codes are sent to speaker 106, then speaker
106




RE~ ;l (RULE91)

CA 022~917~ 1998-12-21
wo 97l50222 pcTrus97/ll236


is caused to audibly ~nnlmri~te this unary operation. Control then returns to the
flowcharts shown in FIGS. 8b and 8c.
If, in step 862, processor 112 det~rmin~d that the tr~n.~l~t~cl current entry
is not a unary op~,.d~or, then a step 872 is pe.rc,~ ed. In step 872, processor 112
d~ s whether the tr~n~l~ted current entry (as stored in the Input variable)
is equal to the equals comm~n-l If the tr~n.cl~tt~d current entry is not equal to the
equals co~ l, then a step 876 is performed (described below). Otherwise, a
step 874 is ~c~Çol~--ed.
In step 874, processor 112 comm~n~1~ speaker 106 to audibly annunciate
(i.e., annotate) to the user the col~le~ ofthe Work Area variable. Processor 112performs step 874 by tr~n.cmittin~ to speaker 106 one or more codes that represent
the real nurnber stored in the Work Area variable. Contrcl then returns to the
flowcharts shown in FIGS. 8b and 8c.
If, in step 872, processor 112 detçrmint?cl that the tr~n~l~ted current entry
was not equal to the equals comm~n-l, then step 876 is performed. In step 876,
processor 112 detçrmin~s whether the tr~n~l~ted current entry (as stored in the
Input variable) is equal to the equals with confirm~tion comm~n-l If the
tr~n~l~ted current entry is not equal to the equals with confirm~tion comm~nd,
then a step 880 is performed (described below). Otherwise, a step 878 is
performed.
In step 878, processor 112 comm~n(l~ speaker 106 to audibly annunciate
the status of the current calculation. Processor 112 pe;fo~rns step 878 by
transferring the contents of the History List to speaker 106 to audibly annunciate
the word "equals" by transferring ~,ru~ ;ate code(s) to speaker 106. Then a step874 is performed, wherein speaker 106 is commzm-led to audibly annunciate the
contents of the Work Area variable (described above). Control then returns to the
flowcharts shown in FIGS. 8b and 8c.
If, in step 876, processor 112 detçrmin~ d that the tr~n~l~tetl current entry
(as stored in the Input variable) is not equal to the equals with confirm~tion
comm~n(l, then step 880 is perforrned. In step 880, processor 112 deterrnines

RE( l l~ H~;~; l (RULE 91)


... . .. . . . .

CA 022~917~ 1998-12-21

WO 9~/50222 PcTlus97/ll236

- 32 -
whether the tr~n~l~tecl current entry (as stored in the Input variable) is equal to the
set memory cell comm~ntl If the tr~n~l~ted current entry is not equal to the setmemory cell comm~n~l then a step 884 is performed (described below).
Otherwise, a step 882 is p~lro~ cd.
In step 882, processor 112 sets the Memory Cell equal to the value of the
Work Area variable. Control then returns to the flowcharts shown in FIGS. 8b
and 8c.
If, in step 880, processor 112 det~nnined that the tr~n~l~tçcl current entry
(as stored in the Input variable) is not equ~l to the set memory cell comm~n-l then
step 884 is performed. In step 884, processor 112 determines whether the
tr~n~l~ted current entry (as stored in the Input variable) is equal to the retrieve
memory cell co~ ld If the tr~n~l~t~d current entry is not equal to the retrieve
memory cell comm~n-l then a step 895 is ~ r~ ed. Otherwise, a step 886 is
performed.
In step 886, processor 112 appends to the History List one or more codes
repres~ntin~ the real nurnber stored in the Memory Cell. These codes, if sent toSpeaker 106, cause speaker 106 to audibly annunciate this real number.
In a step 888, processor 112 detçrminP.s whether the current calculation
involves a binary operation. Processor 112 p~lrO~ s step 888 by determining
whether the Binary Operator variable is equal to true. If the Binary Operator
variable is not equal to true, then processor 112 in a step 894 sets the Work Area
variable equal to the real number in the Memory Cell. Control then returns to the
flowcharts shown in FIGS. 8b and 8c.
If processorll2de~r~ll.i..~sinstep888thattheBinaryOperatorvariable
is equal to true, then a step 890 is pel~lllled. In step 890, processor 112 performs
the binary operation indicated by the Operator variable on the real number in the
Work Area variable and the real number in the Memory Cell. Processor 112
stores the result in the Work Area variable. In a step 892, processor 112 sets the
Binary Operator variable equal to false. Control then returns to the flowcharts
shown in FIGS. 8b and 8c.

SHEET (RULE 91)

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97tll236

- 33 -
If, in step 884, processor 112 d~ d that the tr~n.cl~ted current entry
is not equal to the retrieve memory cell operation, then step 8g~ is performed. ~n
step 895, processor 112 det~rmin~s whether the trs~n.cl~te(l current entry (as stored
in the Input variable) is equal to the clear work comm~nd If the tr~ ted
current entry is not equal to the clear work COmm~n(l, then control returns to the
flowcharts shown in FIGS. 8b and 8c. Otherwise, processor 112 sets the Work
Area variable to zero, sets the Binary Operator variable to false, sets the Operator
variable to the equals comm~n~1, empties the History List, and clears the NumberBuffer, as shown in a step 897.
In a step 899, processor 112 provides a ready greeting. Control then
returns to the flowcharts shown in FIGS. 8b and 8c.
In a particularly pref~ ed embodiment, the duration of a key press is used
to identify the particular calculator function to be performed. Alternatively,
multiple buttons may be used to indicate a particular function. For example, an
asterisk or star followed by a digit may imply the add or addition binary operator.
Sequences of prefix buttons can map to a particular function or definition so that
the telephone device of the present invention can be enabled with many types of
calculator operations.
FIGS. 9a and 9b illustrate a flow diagram for the recorder function
sequence. In a step 902, the user is prompted with the recorder functions. Upon
encounter of step 902, the telephone device has entered a recorder mode. Such
pl~ln~ g can be done by playing the prompt through speaker 106. ~Itern~tively,
such pro~ Jtil1g could be done by displaying the instructions or menu on a
display provided on handset 100. In a step 904, the telephone device waits for
user input. If the user elects to turn the record mode on, as indicated in a decision
step 906, then proces~ing continues at a decision step 908. In decision step 908,
it is determinpcl whether a record variable has already been set to on. If the record
variable has already been set to on, processing returns to wait step 904. If therecord variable has not been set to on, then the record variable is set to on in a
step 910.

RE(,1 l~ (RULE 91)

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97111236

- 34 -
In a step 912, recorder usage is secured. In a preferred embodiment,
recorder usage is secured through the use of semaphore processing. Such a
semaphore gives exclusive rights to use the recorder to one process or function
at a time. The semaphore blocks access to the recorder by the other processes orfunctions until the process using the device has completed. Once the semaphore
has granted access to the recorder, thereby securing recorder usage, the recorder
is started in a step 914. Once the recorder is started, processing returns to wait
step 904. The foregoing sequence provides for making a recording while the
telephone device is in the off-line mode or in the on-line mode. As noted above
in Section 2, the recorder can be turned on in the on-line mode while a telephone
call is in progress. In the preferred embodiment of the present invention, a
recording can be made while in the on-line mode or in the off-line mode. A hot-
key is provided to allow the user to initiate recording while in the on-line mode
during a telephone call, or in the off-line mode.
If the user selects turning the record mode off in a decision step 916, then
processing continues at a decision step 918. In decision step 918, it is det~rmin~d
whether the record variable is on. If the record variable is not on, i.e., it is off,
then processing returns to wait step 904. Since the record variable is not on, this
indicates that the record mode is already off.
Retllrnin~ to decision step 918, if the record variable is on, then the record
variable is turned off in a step 920. The recorder is stopped in a step 922. A
date/time register is ~cces~ed in a step 924. Date and time information is
provided to the date/time register by clock 220.
In a step 926, a four field record is inserted into an index table that
corresponds to the new recording that has just been made. An exemplary index
table is illustrated in Table 2 below.




- -T ~ - ~ -.. .. .

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97111236



Index Dat~ Type
Number (facsimile or ,c~o~d.l.g) Date/Time Pa~ Name
Recording Date/Time when cu~ent OGM OGM Path Name
created
2 F~- ~ ilP Date/Time when fax received Unique Path Name


.
Date/Time when l~,co.J..,g Unique Path Name
N Recording made

Table 2

The first field is an index number or reference enumeration value. As
explained more fully below, the index number ~c.~igned to the outgoing message
(OGM) for the answering device is always one. All other recordings are ~c~ignPd
an index number of two through N. The second field in the index table record is
a data type. The data type can either be f~csimile or recording. The recording
data type is ~e~i~ned to any type of recording that is made, for example, a
l 5 recording made by the user of the telephone device while in the off-line mode, or
a recording of a telephone conversation that is recorded while the telephone
device is in the on-line mode. A l~cordillg data type is also ~c~ign~ to a message
that is recorded in response to the answering machine outgoing message. A
f~c~imile data type is ~igned to a f~csimile message that is received by the
telephone device of the present invention. The third field is a date and time
identifier that iclentifies the date and time at which the recording was created, or
the date and time at which the f~simile was received. The fourth field is a fully
qualified and unique path name for the location at which the recording or
f~c~imile is stored. The recordings and f~csimile messages are stored on DASD
118 under unique file names. The record in the index table provides a map or
identifier to locate a particular recording or f~cimile message. Step 926 provides
an interface to recorder operation which is shown in FIG. 9c. Once the record

RE( ll~l~;D ~ ; l (RULE 91)


. ~ . .... .. . .. .

CA 022~917~ 1998-12-21

WO 9'1150222 PCTIUS97/11236

- 36 -
corresponding to the new recording is inserted into the index table in step 926,recorder usage is released in a step 928. In the plcr~ d embodiment, the releaseof recorder usage is controlled by sçm~phnre proce~sing Processing then
continues at wait step 904.
In a manner similar to that for ~ g the recorder on, the user can turn
the recorder offat any time by executing a hot-key. Record mode on and record
mode offare available to access in both on-line mode and off-line mode via a hot-
key. This allows the user of the telephone device of the present invention to
access the recorder at any time.
The recorder functions which appear below decision step 930 in FIGS. 9a
and 9b are only available to the user in off-line mode, and during periods whererecording is not active. Therefore, decision step 930 ensures that the record
variable is not on, i.e., is off, when processing continues below decision step 930.
In decision step 930, if the record variable is still on, then processing returns to
wait step 904. If the record variable is not on, i.e., the record variable is offand
the recorder is off, then processing continues at decision step 932. The telephone
device cannot be in record mode to operate the functions identified below
decision step 930.
Decision step 932 allows a user to delete an index table entry or index
table record. In a step 934, the user is prompted to enter the index number of the
record or entry to be deleted from the index table. In a step 936, it is ~içtermined
whether the index number entered by the user is valid. To be valid, the index
nurnber must not be number one, and it rriust exist. If the index number enteredby the user is not valid, then an error tone is provided in a step 938 and
processing returns to wait step 904. If the index number is valid as deterrninedin step 936, then the file corresponding to the index table entry (index number)is deleted in a step 940. The file deleted in step 940 is the file that contains the
data itself for the recording or f~çsimile that corresponds to the index number
entered by the user. The corresponding record in the index table is deleted fromthe index table in a step 942. The index table entries or records are then re-

~ ) Sll~;l (RULE 91)


- T

CA 022~917~ 1998-12-21
WO 97!50222 PCT/US97/11236


enumerated for index numbers ranging from two to N in a step 944. The
outgoing message for the answering device function is assigned an index number
equal to one and therefore is not affected by the re-enumeration of step 944. A
successful completion tone is provided to the user in a step 946 to indicate that
the index table entry selected by the user has been successfully deleted.
Processing then returns to wait step 904.
A user can also browse the information that has been stored in the index
table, as indicated in a decision step 948. To browse the index table, the next
index table entry starting with one is retrieved in a step 950. If all index table
entries have been processed, as indicated in a decision step 952, then a successful
completion tone is provided to the user in a step 954. Processing then continuesat wait step 904.
Returning to decision step 9S2, if all index table entries have not been
processed, then the next index table entry that has been retrieved in step 950 is
annotated in a step 956. The index number, data type, and date and time
identifier included in the record retrieved from the index table are annotated for
the user. Such annotation can be accomplished by pronouncing the index
number, data type, and date and time identifier to the user through speaker 106.Alternatively, such annotation can be accomplished by displaying the index
number, data type, and date and time identifier on a display included in handset100. An index table entry having a fAr~imile data type cannot be played back to
the user through speaker 106. Therefore, in a decision step 958, it must be
~et~nnined whether the data type of the retrieved record is facsimile. If the data
type is not facsimile, then processing continues at a step 964. In step 964, therecording file is played for the user through speaker 106.
Thereafter, a decision step 966 is used to allow a user to hot-key out of
playing the entire recording file. Decision step 966 is used to monitor whether
the user has entered a key to hot-key out of playing the recording file, for
example, the pound key (#). If the user has selected the pound key, then
processing will return from decision step 966 to step 950 to get the next index

CA 022~917~ 1998-12-21

WO 9?150222 PCT/US97/11236

- 38 -
table entry. If in decision step 966 the user did not opt to terminzlte play in step
964, then decision step 960 is used to monitor whether the user wants to exit or~uit the browse function. The user can do so by hot-keying out of the browse
function at any time by selecting a predetçrminecl key, such as the asterisk (*) or
S star key. If the user has hit the star key, then in decision step 960 processing will
return to step 904. If the user has not hot-keyed out of the browse function, then
in a decision step 962, it is ~1et~rmin~cl whether the data type currently processed
is f~reimile. If the data type is not f~r.eimile, then processing returns to step 964
to continue playing the recording file. Steps 966 and 960 are decisions based onl 0 monitoring which occurs in step 964.
In decision step 962, if the data type is f~rsimile, then processing returns
to step 950 to get the next index table entry. Referring back to step 958, if the
data type is f~esimile, processing continues to step 960.
A decision step 968 allows a user to play a recording that corresponds to
an index number selected by the user. In a step 970, the user is prompted to enter
an index number that corresponds to the recording that the user wishes to be
played. In a step 972, it is determined whether or not the index number entered
by the user is valid. For example, to be a valid index number to play a recording,
the index number must exist and must not correspond to a f~ceimile data type.
If the index number is not valid, e.g., corresponds to a fz~reimile message, then an
error tone is provided to the user in a step 974. Processing then continues at wait
step 904.
Returning to decision step 972, if the index number entered by the user is
valid, then the file corresponding to this index number is played for the user in a
step 976. To carry out step 976, the (1igi~i7tod file corresponding to the recording
is retrieved, converted to an analog signal by D/A converter 244, and the analogsignal is played out through speaker 106 to be heard by the user. A decision step
978 is used to monitor whether the user wants to hot-key out of playing the entire
recording. If the user enters the hot-key (pound key), or playing of the recording
is complete, then processing returns to wait step 904. Otherwise, playing of the

CA 022~9l7~ l998-l2-2l
W O 9~/50222 PCTAUS97/11236

-39-
recording continues until the user either hot-keys out or playing of the recording
is complete.
A decision step 980 allows a user to select a restate options function. If
the restate options function is selected in decision step 980, then proceccin
continues at step 902 to prompt the user with recorder functions. If the user elects
to quit or exit from recorder functions in a step 982, then processing continlles
back to step 706 in FIG. 7 by way of low chart connector 4000.
FIG. 9c illustrates a flow diagram for implementing step 914 to start the
recorder. In a step 990, a unique file name is generated on one or more of the
storage or memory devices of the telephone device. The steps for generating a
unique file name on a storage device would be readily a~enl to one of skill in
the relevant art and have been omitted for brevity. In a step 992, the sound to be
recorded is saved as samples to a digitized file. In a preferred embo~liment therecorder operates at a configurable sampling rate. The sampling rate determin~s
the number of samples per second that are taken. The more samples that are
taken per second increases the quality of the leconling. The sampling rate can be
made configurable by storing the sarnpling rate in a register accessible by the
computer program logic.
In a step 994, the recording samples are stored in the file having the
unique file name generated in step 990. In operation, steps 992 and 994 occur
simultaneously .
To stop the recorder, the recorder is interrupted (for example, maximum
record time elapsed) and input/output is completed, as indicated in a step 996.
FIGS. lOa and lOb illustrate a flow diagrarn for the f~cimile function
sequence. In a step 1002, the user is prompted with the f~csimile functions. Such
nl~uling can be done by playing the prompt through speaker 106. ~ltçrn~tively,
such pro~ tillg could be done by displaying the instructions or menu on a display
provided on handset 100. In a step 1004, the telephone device waits for user
input. If the user selects to set up a page header, as indicated in a decision step
1006, then proces~inE continues at a step 1008.

RE~ l l~ 1~1) SHEET (RULE 91)


.. .. . .. . . . . . . ..

CA 022~917~ 1998-12-21

WO 9?/50222 PCT/US97/11236

- 40 -
In step 1008, the user specifies a fixed-length header upon prompting with
the current header setting. For example, to enter this h(~(ling, pressing a number
followed by the pound (#) key will indicate a nurneric character. Pressing the star
(*) key followed by a pound key will indicate a blank. In order to identify
alphabetic characters, one preferred embodiment would use the following
scenario. The first entry would indicate the key, and the second entry would
indicate the letter on the particular key that was to be used. For example, the
sequence "21 " would indicate an "a" (key 2, first letter), the sequence "22" would
indicate a "B" (key 2, second letter), and the sequence "23" would indicate a "C"
~0 (key 2, third letter). A "Z" would be indicated by "01." Key sequence "**" would
indicate the end of the input, and "##" would keep the current setting. In a step
1010, a static header variable is set to the string just entered. A static variable is
a persistent variable that keeps its value until modified again. Processing thencontinues at wait step 1004.
In a decision step 1012, the user can elect to set up a "TO" field. The user
specifies a fixed length "TO" field upon plo~ g with the current "TO" field
setting. The same type of key sequence would be used to identify the string for
the "TO" field as was described above for the fixed-length header in step 1008.
In a step 1016, a static "TO" variable is set for the string that is entered.
Processing then continues at wait step 1004.
Similarly, the user can elect to set up a "FROM" field, as indicated in a
decision step 1018. The user specifies a fixed-length "FROM" field upon
prompting with the current "FROM" field setting. The same type of key
processing is used as was described above for steps 1014 and 1008. In a step
1022, a static "FROM" variable is set to the string that has been entered.
Processing then continues at wait step 1004.
The matter or inforrnation to be sent can be specified by the user, as
indicated in a decision step 1024. If the user elects to specify the matter to be sent
in decision step 1024, the user specifies an index number upon prompting with
the current setting of the matter to be sent in a step 1026. The index nurnber must


CA 022~917~ 1998-12-21
WO 97150222 PCT/US97111236

- 41 -
be a valid entry in the index table. In a decision step 1028, it is determined
whether the index number entered by the user is valid. For example, an index
number is valid if it exists. If the index number is not valid as determined in
decision step 1028, then an error tone is provided to the user in a step 1030.
Processing then continues at wait step 1004.
Ret~ ing to decision step 1028, if the index number entered by the user
is valid, a static index variable is set to the entered index number in a step 1032.
Processing then continues at wait step 1004. In a decision step 1034, the user can
elect to specify a target telephone number to which the facsimile is to be sent. If
the user elects to specify the target telephone number in step 1034, then the user
enters the digits of the target telephone number in a step 1036. Preferably, in step
1036, the user is prompted with the current setting of the target telephone number.
In a step 1038, a static target variable is set to the telephone number entered by
the user in step 1036. Processing then continues at wait step 1004.
In a decision step 1040, the user can elect to actually send the f~c~imile.
If the user elects to send the f~rsimile in decision step 1040, processing continues
at a decision step 1042. In decision step 1042, it is deterrnined whether a target
number has been specified by the user. If a target number has not been specifiedby the user, then an error tone is provided to the user in step 1030. Processingthen continues at wait step 1004.
Retl-ming to decision step 1042, if the target number has been specified
by the user, then the header will be formatted for the start of every page in a step
1044. The static header variable from step 1010 is used. In a step 1046, the
telephone device of the present invention will actually make the call. In a
decision step 1048, it is determined whether the call made in step 1046 has beencompleted to a f~ imi1e tone. If the call has completed to a facsimile tone, then
the formatted first page will be transmitted as indicated in a step 1050. Step 1050
transmits the title information page using the TO variable, the FROM variable,
and the target variable established in steps 1016, 1022, and 1038, respectively.In a decision step 1052, it is determined whether the index variable that

CA 022~917~ 1998-12-21

WO 9~/50222 PCT/US97/11236

- 42 -
corresponds to the index number of an entry in the index table entered by the user
references a facsimile. If the index variable does point to a facsimile, then the
stored f~csimile will be transmitted in a step 1054 and the connection will be
tçrmin~t~d A successful completion tone will then be provided to the user in a
step 1062. Processing continues at step 706 in FIG. 7 by way of flow chart
connector 4000.
If the index variable entered by the user points to a f~imile, as indicated
in decision step 1052, then a stored facsimile is transmitted in step 1054. Thus,
the telephone devise of the present invention can be used to forward a fAc~imilepreviously received.
Retl~rning to decision step 1052, if the index variable does not point to a
facsimile, then processing continues at the translator and formatter sequence
shown in FIG.10c by way of flow chart connector 7000. At the conclusion of the
translator and formatter sequence, a sllcce~ful completion tone is provided to the
user in step 1062 and processing continues at step 706 in FIG. 7 by way of flow
chart connector 4000.
The translator and formatter sequence is illustrated in FIG. l Oc. In a step
1070, the translator thread and the formatter thread are spawned. This results in
a parallel sequence of proce~ing. In a step 1072, a digital recording is converted
to textual words, and the words are placed into a transmit queue in first-in-first-
out (FIFO) order. In a decision step 1074, it is determined whether conversion
of the complete recording has been done. Steps 1072 and 1074 occur in
conjunction with each other. If complete conversion of the recording has not
been done, then processing returns to step 1072. If conversion of the recording
is complete, then the translator thread is termin:~ted in a step 1076 and the
translator thread stops.
The conversion from speech to text can be carried out in the following
manner. The analog signal has already been converted to a digital signal by
analog-to-digital converter 242. The digitized information is already stored either
in RAM 218 or DASD 118. Computer program logic or software converts the

RE( ll~ S~ l (RULE91)


T

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97/11236

- 43 -
stored digital information to text strings (step 1072). Computer program logic or
software for converting the digitized information into the text string is
commercially available. Such software includes "DragonDictate" offered by
Dragon Systems, Inc. Another commercially available speech-to-text conversion
package is "Voice Type Dictation System" offered by IBM. Alternatively, the
speech-to-text conversion could be carried out using a single chip that includesthe ap~ropliate software contained on the chip itself.
The forrnatter thread is opeldlillg in parallel with the translator thread. In
a step 1078 of the formatter thread, the next line of words is retrieved from the
transmit queue. As indicated in step 1078, the formatter thread may retrieve
words from the queue as they become available, but waits until an entire line ofwords is available. Processing leaves step 1078 for either a completed line, or no
other words are in the queue and the translator thread has already completed. Ina decision step 1080, it is determined whether the translator thread has
t~rmin~te.l and whether there are no more words in the transmit queue.
In decision step 1080, if the translator thread has not termin~te.l or there
are more words in the transmit queue, then processing continues at a decision step
1086. In decision step 1086, it is det~r~nin~cl whether the current formatted page
has been completed. Decision step 1086 determin~s whether the nurnber of lines
that are needed to go on a particular f~csimile page are ready. If the page is
complete, then the page is transmitted in a step 1088. The next page is then
prepared for in a step 1090, and processing returns to the beginning of the
formatter thread at step 1078. As lines are gathered according to a page width,
they are converted to scan lines for tr~n.~mi~ion.
In decision step 1080, if the translator thread has t~rmin~t~d and there are
no more words in the transmit queue, then the last formatted page ofthe f~c~imile
is transmitted and the connection is terminated in a step 1082. The formatter
thread is then terminated in a step 1084 and processing returns to step 1062 of
FIGS. l Oa and 1 Ob.


REC l l~l~;D ~H ~ ~; l (RULE 91)

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97/11236

- 44 -
The translator and formatter threads provide two independent and
simultaneous threads of procç~.~ing. This ensures that the kan~mi.c~ion of a
f~rcimile message by the telephone device of the present invention is not hung up
or slowed down by the conversion process. Conversion of the recording into
textual words and the tr~,n~mi~ion of the fAr~imile message are occurring
simultaneously. In one embodiment of the present invention, the textual words
of the f~csimile message are played over speaker 106 to help identify any
conversion errors while the f~c~imile message is being transmitted. Preferably,
the textual words of the f~ccimile message are not played over speaker 106.
l C Referring back to FIGS. 1 Oa and 1 Ob, in a decision step 1058, the user can
elect to restate options. If the user elects to restate options, then processingcontinues at step 1002 to prompt the user with f~r.simile functions. If the userelects to quit the f~csimile functions in a decision step 1060, then processing
continues at step 706 in FIG. 7 by way of flow chart connector 4000. Other-,vise,
processing continues at steR 1004 to wait for user input.
FIG. l Od illustrates a flow diagram for the f~rsimile procçs~ing sequence.
In a step 1092, a unique file name is gel,~.d~ed on one or more of the storage or
memory devices of the telephone device. The steps for generating a unique file
name on a storage device would be readily a~ uc~l~ to one of skill in the relevant
art and have been omitted for brevity. In a step 1094, the digitized f~c~imile
message is received, such as through modem 119, and stored under the unique filename gel~lated in step 1092. In a step 1096, the four-field record is inserted into
the index table to identify the recorded farsimile message. In a manner similar
to recordings, the first field is an index number of two through N. The second
field is a data type of f~imi!e. The third field is the date and time at which the
f~rcimile was received. The fourth field is the unique file (and path) name for the
stored f:~csimile message. In a step 1098, the connection is termin~ted
The outgoing message (OGM) sequence is illuskated in FIG. 11. In a
decision step 1102, it is determined whether or not the recorder is currently inuse. If the recorder is in use, then a device unavailable message is provided to the

RE( ll~ SHEET (RULE 91)

CA 022~9l7~ l998-l2-2l

WO 9~/50222 PCT/US97/11236

- 45 -
user in a step 1104. The device unavailable message informs the user that the
device (recorder) required to pelru~ a selPcted function is not currently available
to perform that function. In one embodiment, the device unavailable message is
provided as a preprogra nmed message in the telephone device. In an alternative
embo~lim~ont, the user can record a personalized device unavailable message thatis referenced through the index table. Proce~ing then continues at step 706 in
FIG. 7 by way of flow chart connector 4000. If the recorder is currently in use,then the user cannot at this time record or specify the outgoing message.
Returning to decision step 1102, if the recorder is not currently in use,
then the usage of the recorder is secured in a step 1106. Preferably, the recorder
is secured using the recorder semaphore processing discussed above. In a step
1108, the user is prompted to provide the outgoing message. In a preferred
embodiment, such prompting will include playing of the existing outgoing
message if there is one. After the prompt, the recorder will be started for a
predeterminecl time of N seconds in a step 1110. Step 1110 will execute the start
recorder sequence illustrated in FIG. 9c. As such, a unique file name will be
generated for the outgoing message. Index number one is reserved for the
outgoing message. In a step 1112, the outgoing message that has been recorded
will be entered into the index table using an index nurnber of one. In a step 1114,
the recorder is freed or released using the recorder semaphore processing.
Processing then continues at step 706 in FIG. 7 by way of flow chart connector
4000.
The answering device sequence is illustrated in FIG. 12. In a decision
step 1202, it is ~letPrmined whether or not the recorder is currently in use. If the
recorder is in use, then a device unavailable message such as that described above
is provided to the caller in a step 1204. The telephone call is then termin:~te~l in
a step 1206. This stops the answering device sequence. If the recorder is
~;ullclllly in use, such as by the user in the off-line mode, then the recorder cannot
be simultaneously used to record an incoming message.


RE(, l ll~ ; l (RULE 91)


~ .

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97111236

- 46 -
Returning to decision step 1202, if the recorder is not ~;u~ lly in use,
then the usage of the recorder is secured in a step 1208. Preferably, the recorder
is secured using the recorder semaphore processing discussed above. In a step
1210, the outgoing message, referenced by the index table entry index number
one, is played to the person on the other end ofthe telephone call. In a step 1212,
a prompt tone, such as a "beep", is provided. The recorder is started for a
predetermined time of N seconds in a step 1214. Step 1214 will execute the startrecorder sequence illustrated in FIG. 9c. As such, a unique file name will be
generated for the incoming message. An index table entry or record will be
inserted into the index table for the incoming message in a step 1216. In a step1218, the call is termin~tecl Finally, in a step 1220, the recorder is freed or
released using the recorder semaphore processing. The answering device
- sequence will then terminate.
The telephone device of the present invention includes a macro function
that enables an invocable sequence of telephone buttons to be defined. The
macro functionality is available in on-line or off-line mode, and operates
indepPn~ently of any other processing. FIGS. 13a-13g show flow diagrams for
configuring the telephone device to store and execute user-defined sequences of
keystrokes or macros. The macros of the present invention can be referenced
through button assignment~ or voice command assignm~?nt~. Voice comm~n~l
assignments are converted to the equivalent strings when used in the present
invention. The macro function of the present invention relieves a user from
interfacing with an automated telephone service when the service menus and
sequence of keystrokes are well known by the user. For example, the macros of
the present invention allow a user to traverse menus in order to sample music,
place orders, or inquire as to stock trades. Likewise, telephone mail or automatic
response units provide menus from which a user navigates by pressing telephone
buttons for options and selections. Customized macros can be defined for those
voice-mail systems routinely accessed by the user. A particularly preferred
method of implementing macros using a telephone device is contained in

RE( ll~l~;l) SHEET (RULE 91)


- - T

CA 022~917~ 1998-12-21

WO 9.7/50222 PCTIUS97111Z36

- 47 -
copending application entitled Automated Telephone Service Interface,
application number 08/721,408, filed September 26, 1996 (Atty. Docket:
RIC-96-008A; 1575.0930001), which is a continl1~tion-in-part of application
number 08/673,813, filed June 27, 1996 (now provisional application number
60/031,100), the entirety of both of the foregoing applications is incorporated
herein by reference.
In accordance with the present invention, a local library of macros is
maint~ined on one or more of the storage or memory devices of the telephone
device. This local library is m:~int~in~.l for example, as a macro table of entries
that includes the following fields: MACRO, INVOKE-TYPE; lNVOCATION;
and VOICE-RECORDING. An exemplary macro table is illustrated in Table 3
below.

MACRO Button Type Button Time Since Press of
(Immediate or Wait) Previous Entry
INVOKE-TYPE Voice Command or Button
15 INVOCATION Text String or Button
VOICE-RECORDING Voice-recorded description of the macro

Table 3

The MACRO field is an ordered list of three field records. The first field
record in the MACRO field is a button type. The button type can be immediate
or wait. For a button type of immediate, the DTMF tones corresponding to the
telephone buttons in the macro sequence are issued immediately, one after the
other when playing the macro. For a button type of wait, the DTMF tones
corresponding to the telephone buttons are issued with a predetermined time
delay between DTMF tones, once the signal level at the source (other end of the
telephone call) indicates it is ready for the next key. This process is described in
more detail below with respect to FIG. 13c. The selection of immediate button
type or wait button type is preferably done through the duration of the key press

RE( ll~l~;l) SHEET (RULE 91)

CA 022~917~ 1998-12-21

WO 9~150222 PCT/US97111236

- 48 -
of a predet~rmine(l key. The process of identifying the m~ning of a key as a
function of the duration of the key press is disclosed in copending application
entitled "System and Method for Transmitting Data and Comm~n~lc Using a
Telephone," application nurnber 08/672,186, filed on June 27, 1996 (Atty.
Docket: RIC-96-009; 1575.0840000) referred to above. The second field record
in the MACRO field is the button itself. The third field record in the MACRO
field is the time since press of the previous entry.
The INVOKE-TYPE field detçrrnin~s whether the macro will be invoked
by a voice command or a button comm~n~l The INVOCATION field indicates
the actual button used to invoke the macro if it has an invoke type of button. The
INVOCATION field could also be a text string that corresponds to the voice
comm~3n(1 used to invoke the macro. The final field is a voice recorded
description of the macro itself.
FIGS. 13a and 13b illustrate the primary flow diagram used to configure
the telephone device of the present invention to store and execute user-defined
sequences of keystrokes or macros. The macros of the present invention can be
used to access a service or to traverse menus, such as in an automatic response
unit. The process starts in a step 1302. In a step 1304, the dial tone is delivered
to the telephone device of the present invention. In a step 1306, a macro recordmode variable is set to off indicating that no macro is currently being recorded.
In a step 1308, a button press by the user is monitored. In a decision step 1310,
it is determined whether any monitored button has been pressed by the user. If
a monitored button has been pressed by the user, then processing continues to a
decision step 1312. In decision step 1312, it is determined whether the macro
record mode variable is set to on, thereby ~1etertnining whether a macro is
lly being recorded. If a macro is currently being recorded, as determined
in decision step 1312, then processing continues at a step 1314. In step 1314, the
button pressed by the user is applol.liately saved to a record buffer. The record
buffer (also called a macro buffer) stores MACRO records in the MACRO field
shown above in Table 3. It is here, in step 1314, that the button type, immediate

~ ; I' (RULE 91)

CA 022~917~ 1998-12-21

WO 97!50222 PCT/US97/11236

- 49 -
or wait, is dGI~ ed The duration of the key press is passed from step 1308 to
step 1314. Processing then continues at a decision step 1316. Returning to
decision step 1312, if a macro is not currently being recorded, then processing
also continues at decision step 1316. Returning to decision step 1310, if a
monitored button was not pressed (e.g., telephone connection t~rrnin~ted by
h~ngin~ up), then step 1310 also continues at step 1316. Thus, step 1308 flows
to step 1310 for buttons pressed and telephone on-hook status. Step 1314 traps
telephone device user activity to a macro for subsequent use ('~macro recording").
Steps 1316, 1320, 1346, 1356, 1358, 1360, 1362, and 1364 determine the
meaning of user input. In the preferred embodiment, a command sequence is
identified by a command prefix followed by a uni~ue button. for example, the
asterisk button '*' followed by the one button ' 1 ' indicates the command to turn
the record mode on. Thus, the asterisk '*' can be a command prefix for
identifying all comm~n~ls (*1, *2, *3, etc.). A prefix may also be formed by
I S multiple buttons to prevent interfering with menus. One embodiment may define
special command buttons on an extended keypad for comm~nds. Yet another
embodiment may use button press durations to distinguish between comm~n~lc.
In the pr~rG,led embodiment of a button command prefix (e.g., *), the
prefix is queued up for recognition of comm~n-l~ at steps 1316, 1320, 1346, 1356,
1358, and 1360. Obvious queuing of a prefix is assumed in FIG. 7A so focus
remains on primary proces~ing
In decision step 1316, it is determined whether the user has selected to
record a macro. In decision step 1316, it is also determined whether or not the
macro record mode is active. If the user has selected to record a macro, and thetelephone device is not ~ GIILly in the macro record mode, then the macro recordmode is turned on in a step 1318 by setting the record mode variable to ON.
Processing then returns to button press monitoring step 1308. Note that kapping
only occurs if the macro record mode variable is set to ON.
Returning to decision step 1316, if the user has not selected to record a
macro, then in a decision step 1320 it is determined whether the user has selected

CA 022~917~ 1998-12-21
WO 97/50222 PCT/US97/11236

- 50 -
to save a macro. In decision step 1320, it is also ~1~.t~.rmined whether o} not the
macro record mode is active, thereby denoting that a macro was in the process ofbeing saved. It should be noted that in decision steps 1346, 1356, 1358, and
1360, it is insured that for each selected function, the telephone device is not in
the macro record mode. In the preferred embodiment, the functions indicated by
steps 1346, 1356, 1358, and 1360 cannot be performed if the telephone device is
in the macro record mode. In an ~Itern~te embodiment, the telephone device of
the present invention would provide an error tone if the user had selected one of
the foregoing functions while the telephone device was in the macro record mode.Retllrning to decision step 1320, if it is deterrnined that the user selected
to save the macro, then macro record mode is turned off in a step 1322. The
record buffer, referred to in step 1314 above, now contains the particular
telephone buttons of the macro sequence, as well as the telephone buttons
col,~ollding to the save comrnand sequence. In a step 1324, the save cnmm~ntl
sequence information is removed from the record buffer. This insures that the
save cormnand sequence does not get saved as part of the macro itself. In a step1326, the user is prompted with a tone to indicate that the invocation must be set.
In a step 1328, the user enters the particular invocation to be used. The
invocation can be a button, or buttons, to invoke the macro. Alternatively, the
invocation can be a special button or button sequence that indicates use of a voice
comm~n~l If a voice command is used as the invocation, then delimit~rs are used
to turn the recorder on and off during recording of the voice invocation. In a
decision step 1330, it is detPrmin~d whether the invocation type will be by voice
(e.g., user entered '#'). If the invocation is not by voice (e.g., user entered '5'),
then processing continues at a step 1332 where the user is prompted for a
description of the macro. In a step 1334, the user specifies a description of the
macro. In a step 1336, the entry is then saved to one or more of the storage or
memory devices of the telephone device, i.e., in a local macro library. In a step
1338, the record buffer is cleared, and processing continues at button press
monitoring step 1308. Step 1336 will overwrite a local library entry if the

CA 022~917~ 1998-12-21

WO 9~/50222 PCT/US97111236

- 51 -
invocation type and reference m~tches an exi~ting entry. Therefore, the macro
referenced by the voiced string "health benefits" refers to only one macro.
Likewise, the macro referenced by the command sequence *35 refers to only one
macro referenced by the button 5 (*3 is command sequence for invocation by
button(s)).
Retl-rning to decision step 1330, if the invocation type is by voice, then
the invocation voice is converted to a text string in a step 1340. The conversion
from voice to text string can be carried out in a manner similar to that discussed
above with respect to converting speech to text in FIG. l Oc. Step 1340 allows
user specified deli~ to turn voice record on and off. In a decision step 1342,
it is determined whether the text string is empty, or is a null string (i.e., nothing
recorded). If the text string is a null string, then an error tone is provided to the
user in a step 1344. Processing then continues at button press monitoring step
1308. Retllrning to decision step 1342, if the text string is not a null sking (i.e.,
something was recorded), then processing continues at step 1332, described
above. The sequence of steps selected by decision step 1320 as described above
allows a macro to be saved for future reference by a convenient recall method,
command sequence, or voice comm~n.l
If, in step 1320, it is aetermined that the user did not elect to save a macro,
then a decision step 1346 is performed. In decision step 1346, the user can select
to invoke a macro. In decision step 1346~ it is determined if the user selected to
invoke a macro by buttons. If invoking a macro by buttons was selected, then in
a step 1348, the local library of button invocable macros that are stored on thestorage or memory devices of the telephone device are accessed by the specified
command sequence buttons. In a decision step 1350, it is determined whether the
macro selected by the user is found. If the macro is found, then in a step 1354 a
macro variable is set to the macro f1eld in the entry found. Processing then
continues to FIG. 13c, described below, by way of flowchart connector 13c.



RE( 1l~;l) SHEET (RULE 91)


... .. .. .

CA 022~917~ 1998-12-21

WO g~/50222 PCTtUSg7/11236


Ret!~rnin~ to decision step 1350, if the selected macro is not found in the
local library, then an error tone is provided to the user in a step 1352. Processing
then returns to button press monitoring step 1308.
RetlTrnin~ to step 1346, if the user did not elect to invoke a macro, then
a step 1356 is p~lro,ll,cd. It is det~rrnin~(l in decision step 1356 whether the user
selected to invoke a macro by voice. If the user selects this option, then
proce~sing continues to FIG. 13d, described below, by way of flowchart
connector 13d. If in step 1356 the user did not invoke a macro by voice, then a
step 1358 is performed. It is determined in decision step 1358 whether the user
selected a browse macro function. If the user selected the browse macro function,
processing cnntinu~s to FIG.13e, described below, by way of flowchart connector
13e. If the user in step 1358 did not elect the browse macro function, then a step
1360 is performed. It is determined in decision step 1360 whether the user
selected to delete a macro. If the macro delete function was selected by the user,
processing continues to FIG. 13f, described below, by way of flowchart connector13e. Otherwise, step 1360 proceeds to a step 1362.
As rli~cuc~ecl previously, the processes accessed by decision steps 1316,
1320,1346, 1356, 1358, and 1360 (iclçntifi~d as X in FIGS. 13a and 13b) are usedto capture telephone buttons that are entered subsequent to a predetermined
comm~n~l prefix. If a button other than a command prefix is entered as
determined by step 1362 (also shown as Y in FIGS. 13b), then processing
continues to FIG. 13g, described below, by way of flowchart connector 13g.
Otherwise, step 1362 proceeds to a step 1364. Note that a command sequence
would prevent encounter of step 1362.
Finally, it is determined in decision step 1364 whether the call is
tçrmin~te~l If the call was termin~ted (e.g., phone hung up) by the user, then in
a step 1366, the call is terrnin~te~l as is the macro function sequence. For
example, h~nging up in the middle of recording a macro will flush the record
buffer and quit processing. If the phone has not been hung up by the user, then


RE~ SHEET (RULE 91)

CA 022~917~ 1998-12-21

WO 9~150222 PCT/US97/11236


proc~c~ing continues from step 1364 to monitor for a button press by the user instep 1308.
A flow diagram for execllting a macro is illustrated in FIG. 13c. In a step
1368, the next button record is retrieved from the macro variable. First encounter
S of step 1368, from step 1354, retrieves the first button record in the macro
variable. In a decision step 1370, it is det~rrnin~d whether all button records have
been obtained. If all records have been obtained, then the user is provided witha macro completion tone in a step 1372. Processing then returns to button
monitoring step 1308 in FIG. 13a by way of flowchart connector 13a. The tone
provided in step 1372 indicates completion of macro proces~ing This allows a
user to be doing other things or to multi-task while waiting for the telephone
device of the present invention to al~tom~tically navigate to the selected point in
a service menu. The user simply waits for the audible alert.
Returning to decision step 1370, if all records have not been obtained,
processing continues to a decision step 1374. In decision step 1374, it is
det~rmined if the button type is immediate. If the button type is imm~ tç, then
the DTMF signal that collc~onds to the button in the record will be transmitted
in a step 1376. Procec~ing will then continue at step 1368 to get the next button
record from the macro variable.
Ret--rning to decision step 1374, if the button type is not immediate, i.e.,
the button type is wait, then the process of isochronous expansion occurs. The
isochronous expansion begins by waiting in a step 1378 according to the elapsed
time saved in the button record. For a button type of wait, a predetçrrnined or
preprogrammed amount of time elapses between sending of DTMF signals that
correspond to the telephone buttons in the macro sequence. Once the
predetermined time has elapsed, then proce~sing continues at step 1380 to wait
until the decibel or signal level of a received signal (receive analog signal 261 or
a digital signal) indicates that the service is ready to receive the next DTMF
signal in the macro sequence. Once the signal or decibel level has dropped belowa threshold (X decibels), then the DTMF signal that corresponds to the button in

RE( ~ ;l' (RULE 91)

CA 022~917~ 1998-12-21

WO 97/50222 PCT/US97tl 1236

- 54 -
the record is ll~ls,l,illed in step 1376. The next button from the macro record is
then obtained in step 1368.
A macro may be composed as a lllixlule of immediate and wait buttons.
The decibel threshold used by step 1380 is preferably configurable by a user.
A flow diagram for invoking a macro by voice is illustrated in FIG. l 3d.
In a step 1382, the user is p-olll~ted for the voice comrnand to invoke the macro.
In a step 1384, the user enters the delimited voice comm~nrl In a step 1386, thevoice is then converted to a text string, in a manner similar to that described
above. The local library (voice invoked macros) stored on a memory or storage
device of the present invention is then accessed in a step 1388 to find the string
identified in step 1386. If the macro for the text string is found, as determined in
a decision step 1390, then in a step 1392, the macro variable is set to the macro
field from the library entry found. The macro is then executed by the flowchart
shown in FIG. 13c, described above, by way of the flowchart connector 13c.
Rehlrning to decision step 1390, if the m~t~hing macro is not found, then an error
tone is provided to the user in a step 1394. Processing then continues back to step
1308 shown in FIG. l 3b by way of flowchart connector l 3c.
FIG. l 3e illustrates a flow diagram for browsing macros. In a step 1301,
the user is provided with a message that explains how to hot-key out of the
browse macro function. In the embodiment shown in FIG. 13e, the only way to
exit the browse macro fimction is to hit the identified hot key. The hot key canbe selected at any time to exit the browse macro function. In a step 1303, the next
entry in the macro library is retrieved. First encounter of step 1308 from step
1301 retrieves the first library entry. If all macro library entries have been
retrieved as tl~termined in a decision step 1305, then the user is provided with an
entries exhausted message in a step 1307. Processing then returns to the main
loop shown in FIGS. l 3a and l 3b by way of flowchart connector l 3a.
Returning to decision step 1305, if all macro library entries have not been
retrieved, then the description is played of the retrieved macro library entry in a
step 1309. Step 1309 plays the recording or armotates the text string. The user

RE( ll~l~l) SHEET (RULE 91)

CA 022~917~ 1998-12-21
wO 9~/50222 PCT/US97/11236

- 55 -
is then pnJ~ led in a step 1311 for whether the user wants to hear the invocation
for this macro library entry. If the user does want to hear the invocation, as
det~rmined in a decision step 1313, then procçs~ing continues to a decision step1315. In decision step 1315, it is detPrrnined whether the invocation type is a
S voice c-)mm~n-l If the invocation type is not a voice comm~n-l indicating that
it is a button comm~n(l, then the button (or buttons) is annotated to the user in a
step 1317. A tone is then provided to the user to indicate the end of the entry
output in a step 1321. Processing then continues to step 1303 to get the next
macro library entry.
Ret~lrnin~ to decision step 1315, if the invocation type is a voice
comm~n~l, then the string is annotated to the user in a step 1319. The tone
indicating the end of entry output is then provided to the user in step 1321, and
processing returns to step 1303.
Returning to step 1313, if the user opted to not hear the invocation
sequence, then step 1313 proceeds to step 1321 for tone output, and processing
returns to step 1303.
FIG. 13f illustrates a flow diagram for deleting a macro. In a step 1323,
the user is prompted with a tone for the invocation type, i.e., voice or button.Deleting a macro by its voice comm~n~, or by its button l~r~cnce, is determined
by the type of delete command captured by step 1360 of FIGS. 13a and 13b. In
a step 1325, the user enters the invocation according to the delete comm~n~
determin~-d at step 1360. In step 1325, the user speaks the voice command for a
voice comm~n(l macro or otherwise enters the button reference. In a step 1327,
an attempt is made to retrieve the entry from the local macro library of the
telephone device ofthe present invention. Step 1327 is carried out in accordancewith the type of invocation for the macro sequence. For example, if the macro isa voice command macro, then the voice string from step 1325 is searched in step
1327 to find the particular macro. Step 1325 converts the voice to a text stringin pre~ ion for the search. In a decision step 1329, it is det~nnin~d whether the
macro has been found. If the macro has not been found, then an error tone is

RE( 11~1~1)S~ ;l (RULE91)

CA 022~917~ 1998-12-21

WO 97~50222 PCT/US97/11236

- 56-
provided to the user in a step 1331. Proc~os~ing then returns to the button monitor
step 1308 in FIGS. 13a and 13b by way of flowchart connector 13a.
Ret~.rning to decision step 1329, if the macro is found, then it is deleted
in a step 1333. A s~lcce~.cful tone is provided to the user in a step 1335.
S P~oces~ g then continues to step 1308 ofthe main loop shown in FIGS. 13a and
13b by way of flowchart connector 13a.
FIG. 13g illustrates a flow diagram for transmitting DTMF signals for
a~propl;ate buttons, for example dialing digits on menu option selections of an
automated service. In a step 1337, tr~n~mi~ion of the DTMF signal
col~ ollding to the button that has been entered is transmitted. Processing thencontinues to step 1308 in FIGS. 13a and 13b by way of flowchart connector 13a.

4. Conclusion

While various embo~im~nt~ of the present invention have been described
above, it should be understood that they have been presented by way of example
only, and not limitation. For example, additional functions can be added to the
telephone device by using the software downloading feature of the present
invention. The telephone device of the present invention may be configured with
a display to facilitate interfacing with the user. The telephone device of the
present invention may also be configured with removable storage or memory
devices to facilitate interfacing the telephone device with a computer. The
telephone device of the present invention may be called to retrieve recorded
messages to facilitate remote access by the user. Thus, the breadth and scope ofthe present invention should not be limited by any of the above-described
exemplary embodiments, but should be defined only in accordance with the
following claims and their equivalents.




RE( I l~l~;l) SHEET (RULE 91)

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(86) PCT Filing Date 1997-06-27
(87) PCT Publication Date 1997-12-31
(85) National Entry 1998-12-21
Dead Application 2003-06-27

Abandonment History

Abandonment Date Reason Reinstatement Date
2002-06-27 FAILURE TO REQUEST EXAMINATION
2003-06-27 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $300.00 1998-12-21
Maintenance Fee - Application - New Act 2 1999-06-28 $100.00 1999-06-16
Registration of a document - section 124 $100.00 1999-10-01
Maintenance Fee - Application - New Act 3 2000-06-27 $100.00 2000-06-13
Maintenance Fee - Application - New Act 4 2001-06-27 $100.00 2001-06-20
Maintenance Fee - Application - New Act 5 2002-06-27 $150.00 2002-06-14
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
MCI COMMUNICATIONS CORPORATION
Past Owners on Record
JOHNSON, WILLIAM J.
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative Drawing 1999-03-30 1 10
Drawings 1998-12-21 29 741
Description 1998-12-21 60 2,806
Claims 1998-12-21 11 335
Abstract 1998-12-21 1 56
Cover Page 1999-03-30 1 48
Fees 2000-06-13 1 56
PCT 1999-02-19 5 340
Correspondence 1999-03-02 1 29
Prosecution-Amendment 1998-12-21 1 18
PCT 1998-12-21 6 218
Assignment 1998-12-21 2 103
Assignment 1999-10-01 4 289
PCT 2000-06-05 1 69
Fees 2002-06-14 1 56
Fees 2001-06-20 1 53
Fees 1999-06-16 1 60