A method and apparatus logs outgoing phone symbols dialed from an extension. To log the phone numbers, a switching network is coupled to the phone lines and passes a Dual tone multiple frequency signal from the extension to a codec. The codec converts the analog signal it receives into a series of digital values that are passed to a digital signal processor. The digital signal processor decodes the series of digital values into a set of dialed-symbol values indicative of symbols dialed by the extension. The dialed-symbol values are packaged by a processing unit interface and transmitted to the processing unit where they are stored in a log database.
|
1. An apparatus for logging outgoing phone numbers dialed from an extension connected to a phone line, the apparatus comprising:
a switching network coupled to the phone line; a codec coupled to the switching network and capable of converting an analog signal on the phone line into a series of digital values; a digital signal processor coupled to the codec for decoding the series of digital values into a series of dialed-symbol values representing symbols dialed on an extension when the analog signal comprises a Dual tone multiple frequency signal produced by the extension and for decoding the series of digital values into a series of decoded digital values when the analog signal comprises a Dual tone multiple frequency signal produced by a caller phone; a processing unit interface coupled to the digital signal processor and capable of packaging the series of dialed-symbol values into a data packet and capable of packaging the decoded digital values into a second data packet; and a processing unit, comprising a personal computer, coupled to the processing unit interface and capable of receiving the data packet from the interface, retrieving the dialed symbol values from the data packet and storing the dialed-symbol values in a log database, wherein the personal computer further comprises computer readable instructions for performing answering machine functions comprising instructions for converting decoded digital values in the second data packet into dialed-symbol values.
2. The apparatus of
4. The apparatus of
|
The present invention relates to phone systems. In particular, the present invention relates to phone systems that keep a log of outgoing phone calls.
Recently, personal computers (PCs) have been used to manage phone systems for small businesses and homes. These PC-based systems typically use the personal computer as an interface for monitoring or interacting with calls. For example, in one system, the personal computer is used to answer phone calls and record messages from callers. Icons are then displayed on the PC's display unit to represent the recorded messages. If the user wants to play a message, they simply activate the appropriate icon. In other systems, the personal computer has been used to display a log of recent incoming and, in some systems, outgoing calls. In areas where caller identification (Caller ID) is available, incoming call logging systems are even able to store the caller's phone number and in some cases the caller's name.
Currently, these individual features are not efficiently integrated into a single PC-based phone system and redundant components are often needed to achieve all of the features described above.
A method and apparatus logs outgoing phone symbols dialed from an extension. To log the phone symbols, a switching network is coupled to the phone lines and passes analog Dual Tone Multiple Frequency signals from the extension to a CODEC. The CODEC converts the analog signal it receives into a series of digital values that are passed to a digital signal processor. The digital signal processor decodes the series of digital values into a set of dialed-symbol values indicative of symbols dialed from the extension. The dialed-symbol values are packaged by a processing unit interface and transmitted to a processing unit where they are stored in a log database.
Base station 104 is connected to a personal computer 20 and communicates with a handset 110 either through a cord attached between base station 104 and the handset or through radio waves transmitted between base station 104 and handset 110. In one embodiment, the radio waves have a frequency in the range of 900 megahertz, although the particular frequency or frequencies used is not critical and one or more frequencies may be used. Additionally, the phone may operate on a single frequency or at multiple frequencies according to spread spectrum principles. Base station 104 acts as an interface between personal computer 20 and the phone lines of the central office, extension 106, and handset 110. Under this structure, personal computer 20, handset 110, and phone lines 100 and 102 can each be thought of as both an input device providing input to base station 104 and an output device receiving output from base station 104.
In its capacity as an interface between these input/output devices, base station 104 translates information provided by one of the input devices into a format acceptable for one of the output devices and routes the information to the appropriate output device. In addition, base station 104 generates original signals based on input signals that it receives.
Incoming calls on telephone lines 100 and 102 begin with a ring signal that includes a series of ring envelopes. This possible ring signal is received by telephone line interface 112 of base station 104, which examines the possible ring signal to determine if it is a valid ring signal.
Telephone line interface 112 examines the first ring envelope to determine if it has the proper voltage and frequency to possibly be considered a valid ring signal. If telephone line interface 112 determines that the ring signal may be a valid ring signal, it passes a digital ring detect envelope along a line 113 to microcontrollers 114 and 116 within base station 104. The digital ring detect envelope is a binary signal that has one value for the duration of a detected analog ring envelope and another value at all other times.
Microcontrollers 114 and 116 measure the duration of the digital ring envelope to ensure that the minimum duration of the envelope exists. If the envelope exists for a minimum amount of time, the ring signal is considered valid.
If a valid ring signal is detected, microcontroller 114 notifies personal computer 20 that a valid ring has been detected. At roughly the same time, microcontroller 116 examines a ring tone enable flag stored in a buffer associated with microcontroller 116. The status of the flag determines whether ring tone generation is enabled in base station 104 at the time the ring-detect signal is received.
If ring tone generation is enabled, microcontroller 116 passes a digital ring generation packet to a Radio Frequency (RF) module 128, which acts as a transmitter by transmitting the packet to handset 110 using radio frequency signals. In this context, microcontroller 116 acts as a ring generator.
During the ring signal, switching network 118 is configured to connect line-to-cpe path 130 to CODEC 124. In this configuration, when caller identification (caller ID) information is present on lines 100 and 102, it is routed through line-to-cpe path 130 and switching network 118 and into CODEC 124. CODEC 124 converts the analog caller ID information into encoded digital values, which are provided to a digital signal processor 126. The caller ID information is then decoded from the encoded digital values by digital signal processor 126 and the decoded information is stored in a buffer until it is transmitted to personal computer 20 by microcontroller 114.
The caller ID information is used by personal computer 20 to generate a log of incoming calls and to announce and/or display who is calling. If there is no caller ID information on lines 100 and 102, computer 20 logs the time and duration of the call but does not log any caller information.
If after ringing begins, a user activates handset 110 to take the call, switching network 118 is configured so that a communication path is created that extends from phone lines 100 and 102, through telephone line interface 112, switching network 118, and RF module 128, to handset 110. This allows the user to converse with the party on the other end of the line.
If the call is answered from an extension phone, by taking the extension phone "off-hook", a speaker and microphone assembly 105 in the extension phone are connected to the phone lines through a telephone line interface 107. Note that after a call has been answered on either the extension phone or the handset, another connection can be made to the call by taking either the extension CPE or the handset off-hook.
In one embodiment, if a user does not answer the call after a predetermined number of ring envelopes on the ring signal, the call is routed to answering machine software stored in personal computer 20. This routing sends voice signals from phone lines 100 and 102, through telephone line interface 112, and switching network 118, to CODEC 124, where the analog signals are converted into encoded digital signals. The encoded digital signals are then provided to digital signal processor 126, which decodes the encoded digital signals into a set of digital values that are buffered until they are packaged by microcontroller 114 to be sent to personal computer 20.
In this configuration, personal computer 20 can also decode Dual Tone Multiple Frequency (DTMF) signals that are created when the caller dials one or more symbols on their phone. Under the Dual Tone Multiple Frequency system, each dialed symbol generates an analog signal consisting of two different frequencies. Table 1 below shows the two signal frequencies created for each symbol, with low frequency signals shown along the vertical border and high frequency signals shown along the horizontal border.
TABLE 1 | |||||
DTMF | 1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz | |
697 Hz | 1 | 2 | 3 | A | |
770 Hz | 4 | 5 | 6 | B | |
852 Hz | 7 | 8 | 9 | C | |
941 Hz | * | 0 | # | D | |
The DTMF signals and any speech signals from the caller are routed from microcontroller 114 to personal computer 20 using an audio packet 150 of FIG. 2. Audio packet 150 includes a header byte that is divided into a block number nibble 154 and an audio packet identifier nibble 152. Block number nibble 154 is used to identify the order of individual audio packets that together form a complete audio signal. Audio packet identifier nibble 152 identifies this packet as containing audio data instead of command data.
After audio packet identifier nibble 152, audio data packet 150 includes twelve bytes of audio data, which are denoted as audio payload 156. In one embodiment, an eight-bit encoding format is used to encode the audio data where the most significant bit is a polarity bit, the next three bits represents a segment code and the four remaining bits represent a quantization code.
The last byte of audio packet 150 is the same as the first byte, except that the position of the nibbles has been reversed.
With reference to
Although the exemplary environment described herein employs the hard disk, the removable magnetic disk 29 and the removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memory (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 38. A user may enter commands and information into the personal computer 20 through local input devices such as a keyboard 40, pointing device 42 and a microphone 43. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus 23, but may be connected by other interfaces, such as a sound card, a parallel port, a game port or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor 47, personal computers may typically include other peripheral output devices, such as a speaker 45 and printers (not shown).
The personal computer 20 may operate in a networked environment using logic connections to one or more remote computers, such as a remote computer 49. The remote computer 49 may be another personal computer, a hand-held device, a server, a router, a network PC, a peer device or other network node, and typically includes many or all of the elements described above relative to the personal computer 20, although only a memory storage device 50 has been illustrated in FIG. 3. The logic connections depicted in
When used in a LAN networking environment, the personal computer 20 is connected to the local area network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing communications over the wide area network 52, such as the Internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a network environment, program modules depicted relative to the personal computer 20, or portions thereof, may be stored in the remote memory storage devices. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. For example, a wireless communication link may be established between one or more portions of the network.
Phone controller 182 is the main controller for the personal computer portion of the phone system. Phone controller 182 monitors the current state of the phone system and routes data packets from base station 104 to appropriate software units on personal computer 20.
When phone controller 182 receives an audio data packet, such as data packet 150 of
The phone system of the present invention also permits logging of outgoing calls. In particular, the present invention logs phone numbers dialed from an extension. A method of logging such numbers is described below with reference to the flow diagram of FIG. 5 and the block diagrams of
When an extension CPE is taken "off-hook" at an initial step 220 of
Upon measuring a valid off-hook signal at step 224, microcontoller 116 establishes a communication path from phone lines 100 and 102, through line-to-cpe signal path 130, switching network 118, to CODEC 124. If base station 104 is connected to an active personal computer 20, microcontroller 116 also conveys the off-hook status of the extension to personal computer 20 via microcontroller 114 using a state data packet such as data packet 250 of FIG. 6.
Data packet 250 conveys the current state of the phone system to personal computer 20. Header bytes 252 and 254 designate data packet 250 as a packet that contains state data. Bytes 256 and 260 each contain sets of binary flags that convey the current state of different portions of the phone system. These binary flags are described further below. Byte 258 of data packet 250 contains the current line connections through switching network 118 as well as the on-hook/off-hook status of base station 104 and handset 110. Bytes 266 and 268 form a sixteen-bit checksum value and the remaining bytes of data packet 250 are reserved.
Returning to the flow diagram of
The DTMF signals created by tone generator 109 pass out along phone lines 100 and 102 to the phone company's central office, which uses the DTMF signals to connect the call. At the same time, because of the communication path established at step 224 above, CODEC 124 and digital signal processor 126 receive and decode the DTMF signals into key values at a step 228. Specifically, CODEC 124 converts the analog DTMF signals into digital values that are passed to digital signal processor 126. Digital signal processor 126 includes a digital filter that filter's and decodes the DTMF signals to generate a set of dialed-symbol values. The set of dialed-symbol values are then stored in a buffer associated with microcontroller 116 via microcontroller 114. If base station 104 is not attached to an active personal computer, the dialed symbols remain in the buffer until a connection to a computer is made. In many embodiments, base station 104 can store multiple sets of dialed symbols to allow a log of dialed symbols to be stored on the base station for later transfer to a personal computer.
At step 230, if base station 104 is connected to an active personal computer 20, the dialed-symbol values stored at step 228 are retrieved by microcontroller 116 and sent to personal computer 20 via microcontroller 114 in a dialed-symbol data packet. An example of a dialed-symbol data packet 450 is shown in FIG. 9. Header byte 452 indicates that this is a command data packet and header byte 454 indicates that this is a data packet that includes dialed symbols. The next ten bytes, from byte 456 to byte 458, contain the symbols that were dialed. In the embodiment of
At step 232 of
At step 234 of
When the phone call is complete, the extension will be placed back on-hook. At step 236, telephone line interface 112 detects that the extension is back on-hook and relays this information to microcontroller 116 through line 115. At step 238, microcontroller 116, via microcontroller 114, sends personal computer 20 another state packet that is similar to state packet 250 of FIG. 6. In the state packet, microcontroller 116 indicates that all of the extensions are on-hook and that the far-end phone is on-hook using state bits 276, 278, 280, and 282 of
At step 240, phone controller 182 of
The information stored in log database 192 can be viewed on monitor 47 and/or printed on one or more printers associated with computer 20. In
An example of an interactive display 500 generated by log display controller 188 is shown in FIG. 10. Entries 512, 514, and 516, each show logged information for an outgoing call. In entry 512, the dialed number was not found in the address book database, so a value of "UNKNOWN" was entered for the name of the person called. In entries 514, and 516, the number was found in address book database 186, and the corresponding names were stored in log database 190. In alternative embodiments, an additional field is present in log display 500 to indicate whether the outgoing call was made from the base station or from an extension.
Although the answering machine and logging functionality have been discussed with reference to a personal computer, those skilled in the art will understand that this functionality may be achieved in the base station by adding appropriate components to the base station. In this context, the personal computer can be viewed generically as a processing unit and microcontrollers 114 and 116 can be viewed as interfaces to the processing unit.
In addition, although specific layouts have been described for various data packets, other layouts are possible. In addition, the size of the fields in the data packets or the types of fields in the data packets may be changed within the scope of the present invention.
Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Zuvela, Leonard D., Chiloyan, John H.
Patent | Priority | Assignee | Title |
6813529, | Jan 19 2001 | Microchip Technology Incorporated | Method and apparatus for signal frequency decoding without an analog bandpass filter |
7418090, | Nov 25 2002 | Verizon Patent and Licensing Inc | Methods and systems for conference call buffering |
7903796, | Feb 27 2001 | Verizon Patent and Licensing Inc | Method and apparatus for unified communication management via instant messaging |
7908261, | Feb 27 2001 | Verizon Patent and Licensing Inc | Method and apparatus for context based querying |
7912193, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for call management with user intervention |
7912199, | Nov 25 2002 | Verizon Patent and Licensing Inc | Methods and systems for remote cell establishment |
8467502, | Feb 27 2001 | Verizon Patent and Licensing Inc | Interactive assistant for managing telephone communications |
8472428, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for line management |
8472606, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for directory information lookup |
8472931, | Nov 25 2002 | Verizon Patent and Licensing Inc | Methods and systems for automatic communication line management based on device location |
8488761, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for a call log |
8488766, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for multiuser selective notification |
8494135, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for contact management |
8503639, | Feb 27 2001 | Verizon Patent and Licensing Inc | Method and apparatus for adaptive message and call notification |
8503650, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for configuring and providing conference calls |
8624956, | Aug 16 2001 | Verizon Patent and Licensing Inc | Systems and methods for implementing internet video conferencing using standard phone calls |
8681202, | Aug 16 2001 | Verizon Patent and Licensing Inc | Systems and methods for implementing internet video conferencing using standard phone calls |
8750482, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for preemptive rejection of calls |
8751571, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for CPN triggered collaboration |
8761355, | Nov 25 2002 | Verizon Patent and Licensing Inc | Methods and systems for notification of call to device |
8761363, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for automatic forwarding of communications to a preferred device |
8761816, | Nov 25 2002 | Verizon Patent and Licensing Inc | Methods and systems for single number text messaging |
8767925, | Feb 27 2001 | Verizon Patent and Licensing Inc | Interactive assistant for managing telephone communications |
8774380, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for call management with user intervention |
8798251, | Feb 27 2001 | Verizon Patent and Licensing Inc | Methods and systems for computer enhanced conference calling |
8873730, | Feb 27 2001 | Verizon Patent and Licensing Inc | Method and apparatus for calendared communications flow control |
9392120, | Feb 27 2002 | Verizon Patent and Licensing Inc. | Methods and systems for call management with user intervention |
Patent | Priority | Assignee | Title |
4656657, | Oct 15 1985 | Telephone monitoring device | |
5146490, | May 31 1991 | Primo Microphones, Inc. | Passive telephone line monitoring system |
5351276, | Feb 11 1991 | Wilmington Trust FSB | Digital/audio interactive communication network |
5535265, | Nov 15 1993 | SAMSUNG ELECTRONICS CO , LTD | Method and circuitry for controlling voice mail, call logging and call blocking functions using a modem |
5666397, | Mar 07 1995 | CLEARWAVE COMMUNICATIONS, INC | Individual telephone line call event buffering system |
5734706, | Jul 27 1995 | Caller identification and data retrieval system | |
5742669, | Dec 08 1993 | CYBIOTRONICS, INC | Telephone for storing particulars of outgoing calls and/or special service codes |
6052409, | Apr 30 1997 | Motorola, Inc | Device and method for generating and detecting tones in a digital data communications device |
6134310, | Feb 01 1996 | Nortel Networks Limited | Telecommunications functions management system for managing outgoing calls from a plurality of telephone terminals |
6229878, | Jan 21 1998 | WSOU Investments, LLC | Telephone answering method and apparatus |
6240164, | Jun 05 1998 | Nuclear Decommissioning Authority | Method and apparatus for providing call detail records at subscriber premises |
6438224, | Nov 12 1998 | Dialogic Corporation | Tone detection |
EP510412, | |||
WO9602996, | |||
WO9839941, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 19 1999 | CHILOYAN, JOHN H | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009919 | /0663 | |
Apr 19 1999 | ZUVELA, LEONARD D | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009919 | /0663 | |
Apr 20 1999 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034541 | /0001 | |
May 16 2016 | Microsoft Technology Licensing, LLC | ZHIGU HOLDINGS LIMITED | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040354 | /0001 |
Date | Maintenance Fee Events |
Jun 29 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 29 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 24 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 27 2007 | 4 years fee payment window open |
Jul 27 2007 | 6 months grace period start (w surcharge) |
Jan 27 2008 | patent expiry (for year 4) |
Jan 27 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 27 2011 | 8 years fee payment window open |
Jul 27 2011 | 6 months grace period start (w surcharge) |
Jan 27 2012 | patent expiry (for year 8) |
Jan 27 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 27 2015 | 12 years fee payment window open |
Jul 27 2015 | 6 months grace period start (w surcharge) |
Jan 27 2016 | patent expiry (for year 12) |
Jan 27 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |