FIELDThis invention generally relates to telecommunications and more specifically relates to resending messages from a telephone to a message center based on signal strengths.
BACKGROUNDAlthough cellular telephones have become very popular, they often suffer from poor reception, which is caused by low signal strength. Low signal strength can be caused by interference from buildings, hills, and electronic devices, or it can occur when the cellular telephone is located on the edge of the transmission range. Poor reception is especially a problem when the user is moving, such as when driving, because the cellular telephone signal may be within range and unobstructed one moment, but shortly thereafter the user may move into a valley, behind a building, or simply move toward the end of the range of the signal.
In order to help the user with the problem of poor reception, many cellular phones display a signal-strength indicator on a user interface. This allows the user to monitor the indicator in order to determine when the signal strength is sufficient to make a call or send a message and also to determine when the signal strength is weakening and is about to be lost. Unfortunately, monitoring the signal-strength indicator is inconvenient, distracting, and cumbersome for the user, and may even be dangerous if the user is driving a moving vehicle. Further, if the user is moving, a good signal-strength indication at the time the user looks at the indicator does not guarantee that signal strength will be adequate a short time later when the user is making the call.
Without a better way to handle poor reception and low signal strength, using a cellular telephone will continue to be inconvenient and frustrating for the user.
SUMMARYA method, apparatus, system, and signal-bearing medium are provided. In an embodiment, a message is sent from a source telephone to a message center if a message indication is received by the source telephone in response to a call from the source telephone directed to a target telephone. The message indication indicates that the target telephone does not answer the call. The message center saves the message. If a signal strength of a transmission between the source telephone and the message center during the sending of the message is below a low signal-strength threshold, then the message is recorded to an overlay message at the source telephone. Once the signal strength between the source telephone and the message center exceeds a high signal-strength threshold, an overlay package that includes the overlay message is sent from the source telephone to the target telephone, and the message center replaces the message with the overlay message if the message exists at the message center. The low signal-strength threshold and the high signal-strength threshold are adjusted based on signal strengths of transmissions of test messages retrieved from the message center. In this way, the target telephone may retrieve the overlay message, which was sent with a greater signal strength.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 depicts a block diagram of an example system for implementing an embodiment of the invention.
FIG. 2A depicts a block diagram of an example message database, according to an embodiment of the invention.
FIG. 2B depicts a block diagram of an example overlay package, according to an embodiment of the invention.
FIG. 3 depicts a flowchart of example event processing for a source telephone, according to an embodiment of the invention.
FIG. 4 depicts a flowchart of further example event processing for a source telephone, according to an embodiment of the invention.
FIG. 5 depicts a flowchart of example check signal event processing for a source telephone, according to an embodiment of the invention.
FIG. 6 depicts a flowchart of example package processing for a message center, according to an embodiment of the invention.
FIG. 7 depicts a flowchart of example processing for adjusting signal-strength thresholds based on test messages, according to an embodiment of the invention.
FIG. 8 depicts a flowchart of further example processing for adjusting signal-strength thresholds based on test messages, according to an embodiment of the invention.
DETAILED DESCRIPTIONFIG. 1 depicts a block diagram of anexample system100 for implementing an embodiment of the invention. Thesystem100 includes amessage center102, a source telephone103-1, a target telephone103-2,antennas105,mobile switching centers106, and anetwork108. Themessage center102, themobile switching centers106, and thenetwork108 are connected either by wireless signals or hard wires. The source telephone103-1 and the target telephone103-2 send and receive wireless signals to and from theantennas105. Theantennas105 are connected to themobile switching centers106. In another embodiment, only one of the source and target telephones103-1 and103-2 may communicate via wireless signal. Although only onemessage center102, two telephones103-1 and103-2, twoantennas105, twomobile switching centers106, and onenetwork108 are shown, in other embodiments any number or combination of them may be present.
Themobile switching centers106 perform call routing, connecting calls together by switching packets from one network path to another. Themobile switching centers106 may also register, authenticate, and update the locations of the telephones103-1 and103-2.
Themessage center102 includes aprocessor110, astorage device115, aninput device120, and anoutput device122, all connected directly or indirectly via abus125. Theprocessor110 represents a central processing unit of any type of architecture, such as a CISC (Complex Instruction Set Computing), RISC (Reduced Instruction Set Computing), VLIW (Very Long Instruction Word), or a hybrid architecture, although any appropriate processor may be used. Theprocessor110 executes instructions and includes that portion of themessage center102 that controls the operation of the entire message center. Although not depicted inFIG. 1, theprocessor110 typically includes a control unit that organizes data and program storage in memory and transfers data and other information between the various parts of themessage center102. Theprocessor110 reads and/or writes code and data to/from thestorage device115, thenetwork108, theinput device120, and/or theoutput device122.
Although themessage center102 is shown to contain only asingle processor110 and asingle bus125, other embodiments of the present invention apply equally to electronic devices that may have multiple processors and multiple buses with some or all performing different functions in different ways.
Thestorage device115 represents one or more mechanisms for storing data. For example, thestorage device115 may include read only memory (ROM), random access memory (RAM), magnetic disk storage media, hard disk media, floppy disk media, tape media, CD (compact disk) media, DVD (digital video disk or digital versatile disk) media, optical storage media, flash memory devices, and/or other machine-readable media. In other embodiments, any appropriate type of storage device may be used. Although only onestorage device115 is shown, multiple storage devices and multiple types of storage devices may be present. Further, although themessage center102 is drawn to contain thestorage device115, it may be external to themessage center102 and/or may be distributed across other electronic devices, such as devices connected to thenetwork108.
Thestorage device115 includes amessage center controller126 and amessage database128. The message center controller126 routes messages between the telephones103-1 and103-2 and saves and retrieves messages to/from themessage database128. In an embodiment, themessage center controller126 includes instructions capable of executing on theprocessor110 or statements capable of being interpreted by instructions executing on theprocessor110 to carry out the functions as further described below with reference toFIG. 6. In another embodiment, themessage center controller126 may be implemented either partially or completely in hardware via logic gates and/or other appropriate hardware techniques in lieu of or in addition to a processor-based system.
Themessage database128 includes one ormore messages130 that the source telephone103-1 sent to themessage center102 in lieu of completing a call to the target telephone103-2 at a time when the target telephone103-2 was unable or unwilling to receive a call. In another embodiment, themessages130 may be any message sent between the source and target telephones. The target telephone103-2 may optionally retrieve, save, delete, and/or forward themessages130. Themessage center controller126 organizes themessages130 in themessage database128 by source and target. In various embodiments, themessages130 may include audio, video, text, data, or any combination thereof. The message database is further described below with reference toFIG. 2A.
Although themessage center controller126 and themessage database128 are both illustrated as being contained within thestorage device115 in themessage center102, in other embodiments they may be on different storage devices and/or on different electronic devices and may be accessed remotely, e.g., via thenetwork108.
Theinput device120 may be a keyboard, mouse or other pointing device, trackball, touchpad, touchscreen, keypad, microphone, voice recognition device, or any other appropriate mechanism for the user to input data to themessage center102 and/or to manipulate the user interfaces of themessage center102. Although only oneinput device120 is shown, in another embodiment any number (including zero) and type of input devices may be present.
Theoutput device122 is that part of themessage center102 that presents output to the user. Theoutput device122 may be a cathode-ray tube (CRT) based video display well known in the art of computer hardware. But, in other embodiments theoutput device122 may be replaced with a liquid crystal display (LCD) based or gas, plasma-based, flat-panel display. In still other embodiments, any appropriate display device may be used. In other embodiments, a speaker or a printer may be used. In other embodiments any appropriate output device may be used. Although only oneoutput device122 is shown, in other embodiments, any number (including zero) of output devices of different types or of the same type may be present.
Thebus125 may represent one or more busses, e.g., PCI (Peripheral Component Interconnect), ISA (Industry Standard Architecture), X-Bus, EISA (Extended Industry Standard Architecture), or any other appropriate bus and/or bridge (also called a bus controller).
Themessage center102 may be implemented using any suitable hardware and/or software, such as a personal computer. Portable computers, laptop or notebook computers, PDAs (Personal Digital Assistants), pocket computers, telephones, pagers, automobiles, teleconferencing systems, appliances, client computers, server computers, and mainframe computers are examples of other possible configurations of themessage center102. The hardware and software depicted inFIG. 1 may vary for specific applications and may include more or fewer elements than those depicted. For example, other peripheral devices such as audio adapters, or chip programming devices, such as EPROM (Erasable Programmable Read-Only Memory) programming devices may be used in addition to or in place of the hardware already depicted.
The source telephone103-1 attempts to place a call to the target telephone103-2. The telephones103-1 and103-2 are labeled “source” and “target” only to illustrate that the source telephone103-1 attempts to place a call to the target telephone103-2, and a telephone that is used as a source in an embodiment may be used as a target in another embodiment, and vice versa. The source telephone103-1 includes aprocessor160, astorage device162, aninput device164, and anoutput device166, all connected directly or indirectly via abus167. The source telephone103-1 may further include a transmitter, an antenna, and/or a transceiver for transmitting and receiving messages and telephone calls (either partially or completely via wireless signals) to/from themessage center102 and/or the target telephone103-2 via theantenna105, themobile switching center106, themessage center102, and/or thenetwork108. Although the source telephone103-1 is depicted inFIG. 1 as being a stand-alone system, in other embodiments the source telephone103-1 may be embedded as part of another device, such as a modem, fax machine, automobile, appliance, laptop or notebook computer, pager, PDA (Personal Digital Assistant), or any other appropriate device.
Theprocessor160 is analogous to theprocessor110 previously described above. Thestorage device162 is analogous to thestorage device115 previously described above and stores or is encoded with atelephone controller168 and anoverlay package170.
Thetelephone controller168 includes instructions capable of executing on theprocessor160 or statements capable of being interpreted by instructions executing on theprocessor160 to carry out the functions as further described below with reference toFIGS. 3,4,5,7, and8. In another embodiment, thecontroller160 may be implemented either partially or completely in hardware via logic gates and/or other appropriate hardware techniques in lieu of or in addition to a processor-based telephone.
Theoverlay package170 may include a message previously sent to themessage center102 plus identifying information. Thetelephone controller168 sends theoverlay package170 to themessage center102, and themessage system controller126 replaces apre-existing message130 with an overlay message from theoverlay package170. Theoverlay package170 is further described below with reference toFIG. 2B.
Theinput device164 may be a keyboard, mouse or other pointing device, trackball, touchpad, touchscreen, keypad, microphone, voice recognition device, or any other appropriate mechanism for the user to input audio, video, text, data, or any combination thereof to the source telephone103-1 and/or to manipulate the user interfaces of the source telephone103-1. Although only oneinput device164 is shown, in another embodiment any number of input devices of the same type or of different types may be present.
Theoutput device166 is that part of the source telephone103-1 that presents output to the user. Theoutput device166 may be a display, speaker, or any other appropriate output device or combination thereof. Although only oneoutput device166 is shown, in other embodiments, any number of output devices of the same type or of different types may be present.
Thebus167 is analogous to thebus125 previously described above.
The target telephone103-2 may be analogous to the source telephone103-1 as previously described above and may be the same or a different type of telephone and may be connected through the same type ofnetwork108 or a different type ofnetwork108 as the source telephone103-1.
Thenetwork108 may be any suitable network or combination of networks and may support any appropriate protocol suitable for communication of data and/or code. In various embodiments, thenetwork108 may be a PSTN (Public Switched Telephone Network, ISDN (Integrated Service Digital Network), or FDDI (Fiber Distributed Data Interface). In various embodiments, thenetwork108 may support wireless communications or hard-wired communications, such as a telephone line or cable.
In another embodiment, thenetwork108 may support Infiniband. In another embodiment, thenetwork108 may support the Ethernet IEEE (Institute of Electrical and Electronics Engineers) 802.3x specification. In another embodiment, thenetwork108 may be the Internet and may support IP (Internet Protocol). In another embodiment, thenetwork108 may be a local area network (LAN) or a wide area network (WAN). In another embodiment, thenetwork108 may be a hotspot service provider network. In another embodiment, thenetwork108 may be an intranet. In another embodiment, thenetwork108 may be a GPRS (General Packet Radio Service) network. In another embodiment, thenetwork108 may be a FRS (Family Radio Service) network. In another embodiment, thenetwork108 may be any appropriate cellular data network or cell-based radio network technology. In another embodiment, thenetwork108 may be an IEEE 802.11B wireless network. In another embodiment, thenetwork108 may be any suitable network or combination of networks. Although onenetwork108 is shown, in other embodiments any number of networks (of the same or different types) may be present.
The various software components illustrated inFIG. 1 and implementing various embodiments of the invention may be implemented in a number of manners, including using various computer software applications, routines, components, programs, objects, modules, data structures, etc., referred to hereinafter as “computer programs,” or simply “programs.” The computer programs typically comprise one or more instructions that are resident at various times in various memory and storage devices in themessage center102 and/or the source telephone103-1, and that, when read and executed by one or more processors in themessage center102 and/or the source telephone103-1, cause the respective electronic devices to perform the steps necessary to execute steps or elements embodying the various aspects of an embodiment of the invention.
Moreover, while embodiments of the invention have and hereinafter will be described in the context of fully functioning electronic devices, such as themessage center102 and the source telephone103-1, the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and the invention applies equally regardless of the particular type of signal-bearing medium used to actually carry out the distribution. The programs defining the functions of this embodiment may be delivered to themessage center102 and the source telephone103-1 via a variety of tangible signal-bearing media, which include, but are not limited to:
(1) information permanently stored on a non-rewriteable storage medium, e.g., a read-only memory device attached to or within an electronic device, such as a CD-ROM readable by a CD-ROM drive;
(2) alterable information stored on a rewriteable storage medium, e.g., a hard disk drive or diskette; or
(3) information conveyed to an electronic device by a communications medium, such as through a computer or a telephone network, e.g., thenetwork108.
Such tangible signal-bearing media, when communicatively coupled (directly or indirectly) to a processor and when carrying machine-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
Embodiments of the present invention may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. Aspects of these embodiments may include configuring a computer system to perform, and deploying software systems and web services that implement, some or all of the methods described herein. Aspects of these embodiments may also include analyzing the client company, creating recommendations responsive to the analysis, generating software to implement portions of the recommendations, integrating the software into existing processes and infrastructure, metering use of the methods and systems described herein, allocating expenses to users, and billing users for their use of these methods and systems.
In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. But, any particular program nomenclature that follows is used merely for convenience, and thus embodiments of the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
The exemplary environments illustrated inFIG. 1 are not intended to limit the present invention. Indeed, other alternative hardware and/or software environments may be used without departing from the scope of the invention.
FIG. 2A depicts a block diagram of anexample message database128, according to an embodiment of the invention. Theexample message database128 includes a targettelephone identifier field205, a time of themessage field210, a length of themessage field215, a sourcetelephone identifier field220, and amessage field130.
Thetarget telephone identifier205 identifies the target telephone103-2 that is the target of themessage130. In an embodiment, thetarget telephone identifier205 may include the telephone number of the target telephone103-2. The time of themessage210 includes the date and/or time that the source telephone103-1 sent the message130 (directed to the target telephone identifier205) to themessage center102. The length of themessage215 includes the length or amount of data in themessage130.
Thesource telephone identifier220 identifies the source telephone103-1 that sent themessage130 to themessage center102. In various embodiments, thesource telephone identifier220 includes the telephone number, the electronic serial number (ESN), or the mobile identification number (MIN) of the source telephone103-1.
Themessage130 includes message content sent by the source telephone103-1 identified by thetarget telephone identifier220 that is intended for the target telephone103-2 identified by thetarget telephone identifier205.
FIG. 2B depicts a block diagram of anexample overlay package170, according to an embodiment of the invention. Theexample overlay package170 includes a targettelephone identifier field255, a time of theprevious message field260, a length of theoverlay message field265, a sourcetelephone identifier field270, and aoverlay message field275.
Thetarget telephone identifier255 identifies the target telephone103-2 that was the target of themessage130, which the source telephone103-1 previously sent. In an embodiment, thetarget telephone identifier255 may include the telephone number of the target telephone103-2. The time of theprevious message260 includes the date and/or time that the source telephone103-1 previously sent the message130 (directed to the target telephone identifier255) to themessage center102. The length of theoverlay message265 includes the length or amount of data in theoverlay message275.
Thesource telephone identifier270 identifies the source telephone103-1 that sent theprevious message130 and that sends theoverlay package170 to themessage center102. In various embodiments, thesource telephone identifier270 includes the telephone number, the electronic serial number (ESN), or the mobile identification number (MIN) of the source telephone103-1.
Theoverlay message275 includes a replacement message for the previously-sentmessage130. In an embodiment, theoverlay message275 and themessage130 may include identical content at the time that the source telephone103-1 sends them, but they may include different content at the time themessage center102 receives them because of the difference in signal strengths of the different wireless transmissions at different times.
FIGS. 3 and 4 depict flowcharts of example event processing for the source telephone103-1, according to an embodiment of the invention. Control begins atblock300. Control then continues to block305 where thecontroller168 at the source telephone103-1 receives an event from a component (e.g., theinput device164 or the processor110) of the source telephone103-1. Control then continues to block310 where thecontroller168 at the source telephone103-1 determines whether the received event is a dial event received from theinput device164, indicating that the user of the source telephone103-1 desires to place a call to the target telephone103-2. If the determination atblock310 is true, then the received event is a dial event received from theinput device164, indicating that the user of the source telephone103-1 desires to place a call to the target telephone103-2, so control continues to block315 where thecontroller168 at the source telephone103-1 receives the telephone number of the target telephone103-2 from theinput device164 or determines or retrieves the telephone number from thestorage device162 and places the call directed to the target telephone103-2.
Control then continues to block320 where thecontroller168 at the source telephone103-1 determines whether source telephone103-1 has received a message indication (e.g., a message tone) from themessage center102 in response to the call from the source telephone103-1 directed to the target telephone103-2. A message indication indicates that the target telephone103-2 is unable to receive the call or the call is otherwise not completed and that the source telephone103-1 may leave a message with themessage center102, which the target telephone103-2 may retrieve later.
If the determination atblock320 is true, then thecontroller168 at the source telephone103-1 has received a message indication from themessage center102 in response to the call from the source telephone103-1 directed to a target telephone103-2, so control continues to block325 where thecontroller168 at the source telephone103-1 determines whether the signal strength (the amount of energy or power) in the transmission of themessage130 between the source telephone103-1 and themessage center102 is below a low signal-strength threshold. The low signal-strength threshold is determined and adjusted as further described below with reference toFIGS. 7 and 8.
In various embodiments, the signal strength of the transmission may include any or all of the signal strength of the transmission from the source telephone103-1 to theantenna105, the transmission from theantenna105 to themobile switching center106, the transmission from themobile switching center106 to themessage center102, and any intermediate transmissions. The transmissions may include wireless transmissions, wired transmission, or any multiple or combination thereof. In an embodiment, signal strength is measured in terms of dBm (decibels above or below one milliwatt). In another embodiment, the signal strength may include a signal-to-noise ratio (SNR) (a comparison of the signal strength with the noise that is interfering).
If the determination atblock325 is false, then the signal strength of the transmission between the source telephone103-1 and themessage center102 of themessage130 is not below a low signal-strength threshold, so control continues to block330 where thecontroller168 at the source telephone103-1 processes the call, including sending amessage130, or a portion thereof, from the source telephone103-1 to themessage center102, which themessage center102 saves for optional later retrieval by the target telephone103-2. Themessage130 is directed to the target telephone103-2 and may include an identifier of the target telephone103-2. Themessage130 may further included a recorded voice message of the user of the source telephone103-1, video, text, or any other appropriate information. Control then continues to block435 where thecontroller168 at the source telephone103-1 determines whether themessage center102, the target telephone103-2, or the source telephone103-1 has hung up or terminated the call.
If the determination atblock435 is true, then a hang up occurred or the call is terminated, so control continues to block440 where thecontroller168 at the source telephone103-1 determines whether the message flag is true. If the determination atblock440 is true, then the message flag is true and the source telephone103-1 is currently recording anoverlay message275, so control continues to block445 where thecontroller168 at the source telephone103-1 stops recording theoverlay message275. Control then returns to block305, as previously described above.
If the determination atblock440 is false, then the message flag is false and the source telephone103-1 is not currently recording anoverlay message275, so control returns to block305, as previously described above.
If the determination atblock435 is false, then the call is still in progress, so control continues to block450 where thecontroller168 at the source telephone103-1 determines whether the message flag is true. If the determination atblock450 is true, then the message flag is true and the source telephone103-1 is currently recording anoverlay message275, so control continues to block455 where thecontroller168 at the source telephone103-1 determines whether the amount of memory in thestorage device162 that is available for theoverlay message275 is below a threshold.
If the determination atblock455 is true, then the available memory is below a threshold, so control continues to block460 where thecontroller168 at the source telephone103-1 stops recording theoverlay message275. Control then continues to block465 where thecontroller168 at the source telephone103-1 sets the message flag to false. Control then returns to block330, as previously described above.
If the determination atblock455 is false, then the available memory is not below a threshold, so control returns to block330, as previously described above.
If the determination atblock450 is false, then the message flag is false and the source telephone103-1 is not currently recording anoverlay message275, so control returns to block330, as previously described above.
If the determination atblock325 is true, then the signal strength of the transmission of themessage130, or a portion thereof, between the source telephone103-1 and themessage center102 is below a low signal-strength threshold, so control continues to block370 where thecontroller168 at the source telephone103-1 starts recording themessage130 by starting to save themessage130 that the source telephone103-1 is sending to themessage center102 to theoverlay message275. For example, thecontroller168 at the source telephone103-1 starts recording the voice, video, or data message that the user of the source telephone103-1 is creating, which is intended for and directed to the target telephone103-2. Thus, thecontroller168 may record themessage130 to theoverlay message275 during the time that the user is creating themessage130 and thecontroller168 is sending themessage130 to themessage center102.
Control then continues to block375 where thecontroller168 at the source telephone103-1 sets a message flag to true, indicating that the source telephone103-1 is currently recording themessage130 as theoverlay message275. Control then continues to block330 where thecontroller168 at the source telephone103-1 processes the call, sending themessage130 to themessage center102 or sending the call to the target telephone103-2. Control then continues to block435, as previously described above.
If the determination atblock320 is false, then thecontroller168 at the source telephone103-1 has not received a message indication from themessage center102 in response to the call from the source telephone103-1 directed to the target telephone103-2, so control continues to block380 where thecontroller168 at the source telephone103-1 sets the message flag to be false, indicating that the source telephone103-1 is not recording an overlay message. Control then continues to block330 where thecontroller168 at the source telephone103-1 processes the call, sending voice, audio, video, or data, to the target telephone103-2. Control then continues tobock435, as previously described above.
If the determination atblock310 is false, then the received event not a dial event, so control continues to block385 where thecontroller168 at the source telephone103-1 processes the check signal event, as further described below with reference toFIG. 5. Control then returns to block305 where thecontroller168 at the source telephone103-1 receives another event, as previously described above.
FIG. 5 depicts a flowchart of example check signal event processing for a source telephone103-1, according to an embodiment of the invention. Control begins atblock500. Control then continues to block505 where thecontroller168 at the source telephone103-1 determines whether the received event is a check signal event. Theprocessor160, a clock, timer, or other device periodically sends a check signal event to thecontroller168 at the source telephone103-1.
If the determination atblock505 is true, then the received event is a check signal event, so in response to the check signal event, control continues to block510 where thecontroller168 at the source telephone103-1 determines whether the signal strength of a transmission between the source telephone103-1 and themessage center102 exceeds a high signal-strength threshold. The high signal-strength threshold is determined and adjusted as further described below with reference toFIGS. 7 and 8.
In various embodiments, the signal strength of the transmission may include any or all of the transmission from the source telephone103-1 to theantenna105, the transmission from theantenna105 to themobile switching center106, the transmission from themobile switching center106 to themessage center102, and any intermediate transmissions. The transmissions may include wireless transmissions, wired transmission, or any multiple or combination thereof. The high signal-strength threshold represents a greater signal strength than the low signal-strength threshold.
If the determination atblock510 is true, then the signal strength of the transmission between the source telephone103-1 and themessage center102 exceeds a high signal-strength threshold, so control continues to block515 where thecontroller168 at the source telephone103-1 determines whether theoverlay message275 was previously recorded from themessage130 that was sent to themessage center102.
If the determination atblock515 is true, then theoverlay message275 exists and was previously recorded from the message130 (indicating that when themessage130 was previously sent, the signal strength was below the low signal-strength threshold), so control continues to block520 where thecontroller168 at the source telephone103-1 sends theoverlay package170, including thetarget telephone identifier255, the time of themessage260, the length of theoverlay message265, thesource telephone identifier270, and theoverlay message275 to themessage center102. In an embodiment, thecontroller168 at the source telephone103-1 first sends thefields255,260,265, and270 of theoverlay package170 and waits to send theoverlay message275 until themessage center102 requests theoverlay message275 in response to receiving thefields255,260,265, and270. In another embodiment, themessage center102 may notify the source telephone103-1 if themessage130 is retrieved or deleted by the target telephone103-2, in which case the source telephone103-1 does not send theoverlay message275 to themessage center102. Control then continues to block525 where thecontroller168 at the source telephone103-1 performs normal processing for the check signal event. Control then continues to block599 where the logic ofFIG. 5 returns.
If the determination atblock515 is false, then theoverlay message275 does not exist or was not previously recorded from themessage130, so control continues to block525, as previously described above.
If the determination atblock510 is false, then the signal strength of the transmission does not exceed the high signal-strength threshold, so control continues to block525 where thecontroller168 at the source telephone103-1 performs normal processing for the check signal event. Control then continues to block599 where the logic ofFIG. 5 returns.
If the determination atblock505 is false, then the received event is not a check signal event, so control continues to block530 where thecontroller168 at the source telephone103-1 processes other events. Control then continues to block599 where the logic ofFIG. 5 returns.
FIG. 6 depicts a flowchart of example package processing for themessage center102, according to an embodiment of the invention. Control begins atblock600. Control then continues to block605 where thecontroller126 at themessage center102 receives a package. Control then continues to block610 where thecontroller126 at themessage center102 determines whether the received package is anoverlay package170. If the determination atblock610 is true, then the received package is anoverlay package170, so control continues to block615 where thecontroller126 at themessage center102 determines whether amessage130 exists that matches theoverlay package170.
In various embodiments, themessage130 exists if it has not been retrieved, listened to, or deleted by the target telephone103-2. In an embodiment, thecontroller126 at themessage center102 determines if themessage130 exists at themessage center102 by determining if thesource telephone identifier270 in theoverlay package170 matches thesource telephone identifier220 of the source telephone103-1 that sent themessage130. In another embodiment, thecontroller126 at themessage center102 determines if themessage130 exists at themessage center102 by determining whether thetarget telephone identifier255 in theoverlay package170 matches thetarget telephone identifier205 of the target telephone103-2 of themessage130. In another embodiment, thecontroller126 at themessage center102 determines if themessage130 exists at themessage center102 by determining whether thetime260 in theoverlay package170 matches thetime210 that themessage130 was sent. In another embodiment, thecontroller126 at themessage center102 further determines if themessage130 exists at themessage center102 by determining whether alength265 of theoverlay message275 matches alength215 of themessage130.
If the determination atblock615 is true, then amessage130 exists that matches theoverlay package170, so control continues to block620 where thecontroller126 at themessage center102 replaces the existingmessage130 with theoverlay message275 from theoverlay package170. Thus, when the target telephone103-2 later retrieves a message directed to it, the target telephone103-2 receives theoverlay message275 instead of themessage130, where theoverlay message275 was sent from the source telephone103-1 to themessage center102 at a greater signal strength than themessage130. In another embodiment, thecontroller126 saves theoverlay message275 while also keeping the existingmessage130, so that the target telephone103-2 may later optionally receive either or both of theoverlay message275 and the existingmessage130. Control then continues to block699 where the logic ofFIG. 6 returns.
If the determination atblock615 is false, then amessage130 does not exist that matches theoverlay package170, so control continues to block625 where thecontroller126 at themessage center102 discards the receivedoverlay package170. Control then continues to block699 where the logic ofFIG. 6 returns.
If the determination atblock610 is false, then the received package is not anoverlay package170, so control continues to block630 where thecontroller126 at themessage center102 performs normal package processing. Control then continues to block699 where the logic ofFIG. 6 returns.
FIG. 7 depicts a flowchart of example processing for adjusting signal-strength thresholds based on test messages, according to an embodiment of the invention. Control begins atblock700. Control then continues to block703 where thecontroller168 at the source telephone103-1 initializes the low signal-strength threshold and the high signal-strength threshold to any appropriate values, where the high signal-strength threshold is above or higher than the low signal-strength threshold.
Control then continues to block705 where thecontroller168 at the source telephone103-1 determines whether a test time period has elapsed and the source telephone103-1 is not busy. The source telephone103-1 may be busy if a call is currently in progress, a message is currently being retrieved or sent, or thecontroller168 at the source telephone103-1 is performing another task. If the determination atblock705 is true, then the test time period has elapsed and the source telephone103-1 is not busy, so control continues to block710 where thecontroller168 at the source telephone103-1 sends a test message to themessage center102. Control then continues to block715 where thecontroller168 at the source telephone103-1 retrieves the test message from themessage center102 and senses the signal strength of the transmission of the retrieved test message between themessage center102, themobile switching center106, theantenna105, and/or the source telephone103-1.
Control then continues to block720 where thecontroller168 at the source telephone103-1 determines whether the retrieved test message is identical to the previously-sent test message. In an embodiment, the test message is a digital message, and thecontroller168 at the source telephone103-1 performs a bit-by-bit comparison of the sent and retrieved test messages. In another embodiment, thecontroller168 at the source telephone103-1 determines whether the retrieved test message is within a threshold difference from the sent test message, e.g., less than a threshold number of bits are different. If the determination atblock720 is true, then the retrieved test message is identical to (or is within a threshold difference of) the sent message, so control continues to block725 where thecontroller168 at the source telephone103-1 determines whether the signal strength of the retrieved test message transmission is greater than or above the high signal-strength threshold.
If the determination atblock725 is true, then the signal strength of the transmission of the retrieved test message is greater than the high signal-strength threshold, so control continues to block730 where thecontroller168 at the source telephone103-1 does not adjust the low signal-strength threshold or the high signal-strength threshold. Control then continues to block799 where the logic ofFIG. 7 returns.
If the determination atblock725 is false, then the signal strength of the transmission of the retrieved test message is not greater than the high signal-strength threshold, so control continues to block735 where thecontroller168 at the source telephone103-1 determines whether the signal strength of the transmission of the retrieved test message is between the high signal-strength threshold and the low signal-strength threshold, i.e., is less than or below the high signal-strength threshold and greater than or above the low signal-strength threshold.
If the determination atblock735 is true, then the signal strength of the transmission of the retrieved test message is between the high signal-strength threshold and the low signal-strength threshold, so control continues to block740 where thecontroller168 at the source telephone103-1 adjusts (changes) the high signal-strength threshold to be below the signal strength of the transmission of the retrieved test message, but above the low signal-strength threshold. Control then continues to block799 where the logic ofFIG. 7 returns.
If the determination atblock735 is false, then the signal strength of the transmission of the retrieved test message is below the low signal-strength threshold, so control continues to block745 where thecontroller168 at the source telephone103-1 adjusts (changes) the high signal-strength threshold to be below the signal strength of the transmission of the retrieved test message and adjusts (changes) the low signal-strength threshold to be below the signal strength of the transmission of the retrieved test message. Thecontroller168 at the source telephone103-1 ensures that the low signal-strength threshold is below the high signal-strength threshold. Control then continues to block799 where the logic ofFIG. 7 returns.
If the determination atblock720 is false, then the retrieved test message is not identical to the sent test message, or the retrieved test message is not within a threshold difference of the sent test message, so control continues to block750 where thecontroller168 at the source telephone103-1 processes non-identical test messages, as further described below with reference toFIG. 8. Control then continues to block799 where the logic ofFIG. 7 returns.
If the determination atblock705 is false, then control continues to block755 where thecontroller168 at the source telephone103-1 waits for a period of time. Control then returns to block705, as previously described above. Thus, thecontroller168 at the source telephone103-1 periodically sends test messages to themessage center102, retrieves those test messages from themessage center102, compares the sent test messages to the retrieved test messages, and adjusts (changes) the high signal-strength threshold and the low signal-strength threshold based on the signal strengths of the retrieved test messages and based on the comparison of the sent test messages to the retrieved test messages.
FIG. 8 depicts a flowchart of example processing for adjusting signal-strength thresholds based on non-identical test messages, according to an embodiment of the invention. Control begins atblock800. Control then continues to block805 where thecontroller168 at the source telephone103-1 determines whether the signal strength of the transmission of the retrieved test message is above the high signal-strength threshold. If the determination atblock805 is true, then the signal strength of the transmission of the retrieved test message is above the high signal-strength threshold, so control continues to block810 where thecontroller168 at the source telephone103-1 adjusts (changes) both the low signal-strength threshold and the high signal-strength threshold to be above the signal strength of the transmission of the retrieved test message, where the low signal-strength threshold is below the high signal-strength threshold. Control then continues to block899 where the logic ofFIG. 8 returns.
If the determination atblock805 is false, then the signal strength of the transmission of the retrieved test message is not above the high signal-strength threshold, so control continues to block815 where thecontroller168 at the source telephone103-1 determines whether the signal strength of the transmission of the retrieved test message is between the low signal-strength threshold and the high signal-strength threshold (i.e., above the low signal-strength threshold and below the high signal-strength threshold). If the determination atblock805 is true, then the signal strength of the transmission of the retrieved test message is between the low signal-strength threshold and the high signal-strength threshold, so control continues to block820 where thecontroller168 at the source telephone103-1 adjusts (changes) the low signal-strength threshold to be above the signal strength of the transmission of the retrieved test message, but below the high signal-strength threshold. Control then continues to block899 where the logic ofFIG. 8 returns.
If the determination atblock805 is false, then the signal strength of the transmission of the retrieved test message is below the low signal-strength threshold, so control continues to block825 where the low signal-strength threshold and the high signal-strength threshold are left unadjusted. Control then continues to block899 where the logic ofFIG. 8 returns.
In the previous detailed description of exemplary embodiments of the invention, reference was made to the accompanying drawings (where like numbers represent like elements), which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments were described in sufficient detail to enable those skilled in the art to practice the invention, but other embodiments may be utilized and logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. Different instances of the word “embodiment” as used within this specification do not necessarily refer to the same embodiment, but they may. The previous detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
In the previous description, numerous specific details were set forth to provide a thorough understanding of the invention. But, the invention may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order not to obscure the invention.